✨ Introducing new features. 数据大屏

This commit is contained in:
MicLng committed 2021-10-26 12:53:54 +08:00
1 parent 8494e3ebca
commit 9be823dc71
278 files changed
+47708 -370

No files matched your search

+2
View File
@@ -409,6 +409,7 @@ INSERT INTO `sys_menu` VALUES (9003, '表单修改', 'gen_form_edit', NULL, 9001
INSERT INTO `sys_menu` VALUES (9004, '表单删除', 'gen_form_del', NULL, 9001, '1', 2, '0', '1', '2018-05-15 21:35:18', '2020-03-24 08:58:47', '0', 1);
INSERT INTO `sys_menu` VALUES (9005, '数据源管理', NULL, '/gen/datasource', 9000, 'icon-mysql', 0, '0', '0', '2019-08-12 09:42:11', '2020-03-24 08:58:49', '0', 1);
INSERT INTO `sys_menu` VALUES (9006, '表单设计', NULL, '/gen/design', 9000, 'icon-biaodanbiaoqian', 2, '0', '0', '2019-08-16 10:08:56', '2020-03-24 08:58:53', '0', 1);
INSERT INTO `sys_menu` VALUES (10000, '大屏设计', NULL, 'http://127.0.0.1:9095/', -1, 'icon-shuju', 2, '0', '0', '2019-08-16 10:08:56', '2020-03-24 08:58:53', '0', 1);
COMMIT;
-- ----------------------------
@@ -649,6 +650,7 @@ INSERT INTO `sys_role_menu` VALUES (1, 9003);
INSERT INTO `sys_role_menu` VALUES (1, 9004);
INSERT INTO `sys_role_menu` VALUES (1, 9005);
INSERT INTO `sys_role_menu` VALUES (1, 9006);
INSERT INTO `sys_role_menu` VALUES (1, 10000);
COMMIT;
-- ----------------------------
+2 -2
View File
@@ -36,9 +36,9 @@ INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '#
INSERT INTO `config_info` VALUES (2, 'pigx-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '74f53b71c7799aa754da75662378b93c', '2019-04-18 02:11:32', '2021-05-07 23:40:38', NULL, '10.1.1.143', '', '', '认证中心配置文件', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (3, 'pigx-codegen-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)\n client-secret: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)\n scope: server\n# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_codegen}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n\npigx:\n tenant:\n column: tenant_id\n tables:\n - gen_datasource_conf', 'b7d132a3ecdfac4252c994adbb65b23a', '2019-04-18 02:12:10', '2019-08-27 18:24:18', NULL, '127.0.0.1', '', '', '代码生成', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (4, 'pigx-daemon-elastic-job-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(tz2NM4GcmnE7sNJTYL8ZSg==)\n client-secret: ENC(tz2NM4GcmnE7sNJTYL8ZSg==)\n scope: server\n## 定时任务\n# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true', '4124589805657db024b20772cccf57f5', '2019-04-18 02:12:57', '2020-11-09 16:18:05', NULL, '172.16.1.198', '', '', '定时任务-elastic-job配置', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (5, 'pigx-gateway-dev.yml', 'DEFAULT_GROUP', 'gateway:\n encode-key: \'pigxpigxpigxpigx\'\n\nswagger:\n ignore-providers:\n - pigx-auth\n - pigx-tx-manager\n\nribbon:\n rule:\n gray-enabled: true\n\n# 验证码相关配置参考: http://t.cn/A647jEdu\naj:\n captcha:\n cache-type: redis\n water-mark: pig4cloud', 'c9c6c4268b5df12740d28d5aeffb49ea', '2019-04-18 02:13:52', '2021-01-11 17:37:42', NULL, '172.16.1.105', '', '', '', '', '', 'yaml', '');
INSERT INTO `config_info` VALUES (5, 'pigx-gateway-dev.yml', 'DEFAULT_GROUP', 'gateway:\n encode-key: \'pigxpigxpigxpigx\'\n\nswagger:\n ignore-providers:\n - pigx-monitor\n - pigx-auth\n - pigx-tx-manager\n\nribbon:\n rule:\n gray-enabled: true\n\n# 验证码相关配置参考: http://t.cn/A647jEdu\naj:\n captcha:\n cache-type: redis\n water-mark: pig4cloud', 'cd9f8a6a46e2c128f3b172be76ea3221', '2019-04-18 02:13:52', '2021-10-07 15:32:51', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '');
INSERT INTO `config_info` VALUES (6, 'pigx-monitor-dev.yml', 'DEFAULT_GROUP', 'spring:\n # 安全配置\n security:\n user:\n name: ENC(rZHA4LW5hHmhLAAzJoFNag==) # pigx\n password: ENC(bjeyh+Aeii3kHXkoo00ZUw==) # pigx\n autoconfigure:\n exclude: com.pig4cloud.pigx.common.core.config.JacksonConfig\n boot:\n admin:\n ui:\n title: \'pigx 服务状态监控\'\n brand: \'pigx 服务状态监控\'\n external-views:\n - label: \"SQL监控\"\n url: /druid/sql.html\n order: 2000\n iframe: true\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS #显示详细信息\n\n\n# druid 监控的服务\nmonitor:\n applications:\n - pigx-upms-biz', 'bafb4b4e1c86115d15be0bf23ec48a6c', '2019-04-18 02:14:17', '2021-02-10 21:32:49', NULL, '10.1.1.42', '', '', '监控配置文件', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (7, 'pigx-upms-biz-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n client-secret: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n scope: server\n ignore-urls:\n - /error\n - /druid/**\n - /actuator/**\n - /v2/api-docs\n\n# 数据源\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n stat-view-servlet:\n enabled: true\n allow: \"\"\n url-pattern: /druid/*\n #login-username: admin\n #login-password: admin\n filter:\n stat:\n enabled: true\n log-slow-sql: true\n slow-sql-millis: 10000\n merge-sql: false\n wall:\n config:\n multi-statement-allow: true\n\n# 文件系统 (提供测试环境,不要乱传)\noss:\n endpoint: http://minio.pig4cloud.com\n access-key: lengleng\n secret-key: lengleng\n bucket-name: lengleng\n\n# Logger Config\nlogging:\n level:\n com.pig4cloud.pigx.admin.mapper: debug\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - sys_user\n - sys_role\n - sys_menu\n - sys_dept\n - sys_log\n - sys_social_details\n - sys_dict\n - sys_dict_item\n - sys_public_param\n - sys_log\n - sys_file\n - sys_oauth_client_details', 'ef3968c8268783f233bec0d657dbaaab', '2019-04-18 02:32:44', '2021-02-18 12:46:02', NULL, '10.1.1.60', '', '', 'admin 服务配置', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (7, 'pigx-upms-biz-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n client-secret: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n scope: server\n ignore-urls:\n - /error\n - /druid/**\n - /actuator/**\n - /v2/api-docs\n\n# 数据源\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n stat-view-servlet:\n enabled: true\n allow: \"\"\n url-pattern: /druid/*\n #login-username: admin\n #login-password: admin\n filter:\n stat:\n enabled: true\n log-slow-sql: true\n slow-sql-millis: 10000\n merge-sql: false\n wall:\n config:\n multi-statement-allow: true\n\n# 文件系统 (minio测试环境,不可当生产使用)\noss:\n endpoint: http://minio.pig4cloud.com\n access-key: lengleng\n secret-key: lengleng\n bucket-name: tmp\n\n# Logger Config\nlogging:\n level:\n com.pig4cloud.pigx.admin.mapper: debug\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - sys_user\n - sys_role\n - sys_menu\n - sys_dept\n - sys_log\n - sys_social_details\n - sys_dict\n - sys_dict_item\n - sys_public_param\n - sys_log\n - sys_file\n - sys_oauth_client_details', 'd80383a5e111c923f65d1edeb5ee18aa', '2019-04-18 02:32:44', '2021-10-07 13:28:09', '', '127.0.0.1', '', '', 'admin 服务配置', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (8, 'pigx-tx-manager-dev.yml', 'DEFAULT_GROUP', '# 页面配置\nspring:\n mvc:\n static-path-pattern: /**\n resources:\n static-locations: classpath:/static/\n\n\n# LCN 配置\ntm:\n transaction:\n netty:\n delaytime: 5 # 客户端链接最大通讯时间 (秒)\n hearttime: 15 # 客户端心跳时间 (秒)\n redis:\n savemaxtime: 30 # redis 保存时间 (秒)\n socket:\n port: 9998 # 通讯端口\n maxconnection: 1000 #最大链接数\n compensate:\n auto: false #是否自动补偿\n notifyUrl: http://ip:port/path #补偿结果通知(配消息总线里面)\n tryTime: 30 # z再次重试时间间隔\n maxWaitTime: 5000 # 请求超时的最大时间 (毫秒)', '885f5c125f2df7a08692929ccce154be', '2019-04-18 02:54:03', '2019-04-18 02:54:03', NULL, '127.0.0.1', '', '', '分布式事务协调模块', NULL, NULL, 'yaml', NULL);
INSERT INTO `config_info` VALUES (9, 'pigx-daemon-quartz-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(tz2NM4GcmnE7sNJTYL8ZSg==)\n client-secret: ENC(tz2NM4GcmnE7sNJTYL8ZSg==)\n scope: server\n\n# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n quartz:\n #相关属性配置\n properties:\n org:\n quartz:\n scheduler:\n instanceName: clusteredScheduler\n instanceId: AUTO\n jobStore:\n class: org.quartz.impl.jdbcjobstore.JobStoreTX\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n clusterCheckinInterval: 10000\n useProperties: false\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 50\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n #数据库方式\n job-store-type: jdbc\n #初始化表结构\n #jdbc:\n #initialize-schema: never\n\n', '276cf549fb8b084e35dc07d1eb309932', '2019-04-18 03:08:34', '2019-08-27 18:25:41', NULL, '127.0.0.1', '', '', 'quartz 配置文件', 'null', 'null', 'yaml', 'null');
INSERT INTO `config_info` VALUES (10, 'pigx-pay-platform-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)\n client-secret: ENC(gPFcUOmJm8WqM3k3eSqS0Q==)\n scope: server\n# 数据源\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx_pay}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/\n# 租户表维护\npigx:\n pay:\n test: lengleng\n aliPayConfig:\n expire-time: 30\n return-url: http://pig4cloud.com\n notify-url: http://wechat.pigx.top/pay/notify/ali/callbak\n wxPayConfig:\n notify-url: https://admin.pig4cloud.com/pay/notify/wx/callbak\n mergePayConfig:\n return-url: http://pig4cloud.com\n notify-url: http://wechat.pigx.top/pay/notify/merge/callbak\n xsequence: #发号器相关配置\n db:\n retry-times: 3\n table-name: pay_sequence\n tenant:\n column: tenant_id\n tables:\n - pay_channel\n - pay_trade_order\n - pay_goods_order\n - pay_notify_record', '5ae561216eef67b9fc83a2b077c0adb0', '2019-05-28 11:46:27', '2021-01-04 22:16:41', NULL, '10.1.1.163', '', '', '支付模块配置', 'null', 'null', 'yaml', 'null');
+38 -38
View File
@@ -3,7 +3,6 @@ USE pigxx_report;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for gaea_dict
-- ----------------------------
@@ -140,7 +139,7 @@ INSERT INTO `gaea_dict_item` VALUES (253, 'MENU_LANGUAGE', 'API文档', 'API', '
INSERT INTO `gaea_dict_item` VALUES (254, 'MENU_LANGUAGE', '系统通告', 'Announcement', '', 1, 'zh', '', 1, 'admin', '2021-04-06 16:34:10', 'admin', '2021-04-06 16:34:10', 1);
INSERT INTO `gaea_dict_item` VALUES (255, 'REPORT_GROUP', '分组3', 'group_3', NULL, 1, 'zh', NULL, 3, 'admin', '2021-04-13 16:45:28', 'admin', '2021-04-13 16:45:28', 1);
INSERT INTO `gaea_dict_item` VALUES (257, 'MENU_LANGUAGE', '文件管理', 'FileManagement', NULL, 1, 'zh', NULL, 1, 'admin', '2021-04-27 13:57:58', 'admin', '2021-04-27 13:57:58', 1);
INSERT INTO `gaea_dict_item` VALUES (260, 'CHART_PROPERTIES', 'x轴字段', 'xAxis', NULL, 1, 'zh', NULL, 1, 'admin', '2021-09-16 22:20:01', 'admin', '2021-09-16 22:20:01', 1);
INSERT INTO `gaea_dict_item` VALUES (260, 'CHART_PROPERTIES', 'x轴字段', 'xAxis', NULL, 1, 'zh', NULL, 1, 'admin', '2021-10-25 20:07:24', 'admin', '2021-10-25 20:07:24', 1);
INSERT INTO `gaea_dict_item` VALUES (261, 'CHART_PROPERTIES', '柱状', 'bar', NULL, 1, 'zh', NULL, 6, 'admin', '2021-04-29 10:48:43', 'admin', '2021-04-29 10:48:50', 1);
INSERT INTO `gaea_dict_item` VALUES (262, 'CHART_PROPERTIES', '折线', 'line', NULL, 1, 'zh', NULL, 7, 'admin', '2021-04-29 10:48:43', 'admin', '2021-04-29 10:48:50', 1);
INSERT INTO `gaea_dict_item` VALUES (263, 'CHART_PROPERTIES', '饼图/仪表盘/气泡地图name', 'name', NULL, 1, 'zh', NULL, 8, 'admin', '2021-04-29 10:48:43', 'admin', '2021-04-29 10:48:50', 1);
@@ -149,7 +148,7 @@ INSERT INTO `gaea_dict_item` VALUES (265, 'CHART_PROPERTIES', '时间轴-时', '
INSERT INTO `gaea_dict_item` VALUES (266, 'CHART_PROPERTIES', '时间轴-天', 'xAxis-day', NULL, 1, 'zh', NULL, 3, 'admin', '2021-04-29 10:48:43', 'admin', '2021-04-29 10:48:50', 1);
INSERT INTO `gaea_dict_item` VALUES (267, 'CHART_PROPERTIES', '时间轴-月', 'xAxis-month', NULL, 1, 'zh', NULL, 4, 'admin', '2021-04-29 10:48:43', 'admin', '2021-04-29 10:48:50', 1);
INSERT INTO `gaea_dict_item` VALUES (268, 'CHART_PROPERTIES', '时间轴-年', 'xAxis-year', NULL, 1, 'zh', NULL, 5, 'admin', '2021-04-29 10:48:43', 'admin', '2021-04-29 10:48:50', 1);
INSERT INTO `gaea_dict_item` VALUES (269, 'CHART_PROPERTIES', '文本数字', 'text', NULL, 1, 'zh', NULL, 10, 'admin', '2021-09-16 22:20:01', 'admin', '2021-09-16 22:20:01', 1);
INSERT INTO `gaea_dict_item` VALUES (269, 'CHART_PROPERTIES', '文本数字', 'text', NULL, 1, 'zh', NULL, 10, 'admin', '2021-10-25 20:07:24', 'admin', '2021-10-25 20:07:24', 1);
INSERT INTO `gaea_dict_item` VALUES (270, 'SOURCE_TYPE', 'mysql', 'mysql', '[{\"label\":\"driverName\",\"value\":\"com.mysql.cj.jdbc.Driver\",\"labelValue\":\"驱动类\"},{\"label\":\"jdbcUrl\",\"value\":\"jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\",\"labelValue\":\"连接串\"},{\"label\":\"username\",\"value\":\"root\",\"labelValue\":\"用户名\"},{\"label\":\"password\",\"value\":\"root\",\"labelValue\":\"密码\"}]', 1, 'zh', NULL, 1, '管理员', '2021-03-23 10:54:08', 'lixiaoyan', '2021-03-26 13:22:05', 3);
INSERT INTO `gaea_dict_item` VALUES (271, 'SOURCE_TYPE', 'oracle', 'oracle', '[{\"label\":\"driverName\",\"value\":\"oracle.jdbc.driver.OracleDriver\",\"labelValue\":\"驱动类\"},{\"label\":\"jdbcUrl\",\"value\":\"jdbc:oracle:thin:@//localhost:1521/orcl\",\"labelValue\":\"连接串\"},{\"label\":\"username\",\"value\":\"root\",\"labelValue\":\"用户名\"},{\"label\":\"password\",\"value\":\"root\",\"labelValue\":\"密码\"}]', 1, 'zh', NULL, 2, 'admin', '2021-03-23 10:54:08', 'admin', '2021-03-23 10:54:08', 1);
INSERT INTO `gaea_dict_item` VALUES (272, 'SOURCE_TYPE', 'mssqlserver', 'mssqlserver', '[{\"label\":\"driverName\",\"value\":\"com.microsoft.sqlserver.jdbc.SQLServerDriver\",\"labelValue\":\"驱动类\"},{\"label\":\"jdbcUrl\",\"value\":\"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test_db\",\"labelValue\":\"连接串\"},{\"label\":\"username\",\"value\":\"root\",\"labelValue\":\"用户名\"},{\"label\":\"password\",\"value\":\"root\",\"labelValue\":\"密码\"}]', 1, 'zh', NULL, 3, 'admin', '2021-03-23 10:54:08', 'admin', '2021-03-23 10:54:08', 1);
@@ -240,11 +239,11 @@ CREATE TABLE `gaea_report` (
-- Records of gaea_report
-- ----------------------------
BEGIN;
INSERT INTO `gaea_report` VALUES (187, '日志大屏', 'log_ajreport', NULL, NULL, NULL, '', 1, 0, 'admin', '2021-06-30 10:06:31', 'admin', '2021-06-30 10:06:31', 1);
INSERT INTO `gaea_report` VALUES (188, '汽车生产销售大屏', 'car_ajreport', NULL, NULL, NULL, '', 1, 0, 'admin', '2021-06-30 14:32:53', 'admin', '2021-06-30 14:32:53', 1);
INSERT INTO `gaea_report` VALUES (189, '访问大屏', 'acc_ajreport', NULL, NULL, NULL, '', 1, 0, 'admin', '2021-06-30 15:19:59', 'admin', '2021-06-30 15:19:59', 1);
INSERT INTO `gaea_report` VALUES (187, '日志大屏', 'log_ajreport', NULL, 'report_screen', NULL, '', 1, 0, 'admin', '2021-06-30 10:06:31', 'admin', '2021-06-30 10:06:31', 1);
INSERT INTO `gaea_report` VALUES (188, '汽车生产销售大屏', 'car_ajreport', NULL, 'report_screen', NULL, '', 1, 0, 'admin', '2021-06-30 14:32:53', 'admin', '2021-06-30 14:32:53', 1);
INSERT INTO `gaea_report` VALUES (189, '访问大屏', 'acc_ajreport', NULL, 'report_screen', NULL, '', 1, 0, 'admin', '2021-06-30 15:19:59', 'admin', '2021-06-30 15:19:59', 1);
INSERT INTO `gaea_report` VALUES (190, '空白大屏', 'blank', NULL, 'report_screen', '', '', 1, 0, 'admin', '2021-06-30 16:34:40', 'admin', '2021-07-01 15:19:56', 3);
INSERT INTO `gaea_report` VALUES (193, '物流大屏1', 'logistics_one', NULL, 'report_screen', '', '', 1, 0, 'admin', '2021-09-17 19:13:15', 'admin', '2021-09-17 19:13:15', 2);
INSERT INTO `gaea_report` VALUES (193, '物流大屏1', 'logistics_one', NULL, 'report_screen', '', '', 1, 0, 'admin', '2021-10-25 20:07:24', 'admin', '2021-10-25 20:07:24', 2);
COMMIT;
-- ----------------------------
@@ -280,8 +279,10 @@ BEGIN;
INSERT INTO `gaea_report_dashboard` VALUES (269, 'log_ajreport', '大屏', 1920, 1080, '#000', 'https://report.anji-plus.com/file/download/ee0de1b0-4cd3-4acd-886d-a60c054239a2', NULL, NULL, 1, 0, 0, 'admin', '2021-06-30 10:24:28', 'admin', '2021-07-02 16:13:04', 45);
INSERT INTO `gaea_report_dashboard` VALUES (270, 'car_ajreport', '大屏', 1920, 1080, '#000', 'https://report.anji-plus.com/file/download/border2@2x', NULL, NULL, 1, 0, 0, 'admin', '2021-06-30 14:50:47', 'admin', '2021-07-02 16:10:09', 23);
INSERT INTO `gaea_report_dashboard` VALUES (271, 'acc_ajreport', '大屏', 1920, 1080, '#000', 'https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b', NULL, NULL, 1, 0, 0, 'admin', '2021-06-30 15:29:16', 'admin', '2021-07-02 10:26:43', 5);
INSERT INTO `gaea_report_dashboard` VALUES (272, 'blank', '大屏', 1920, 1080, '#000', 'https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b', NULL, NULL, 1, 0, 0, 'admin', '2021-06-30 16:58:51', 'admin', '2021-07-02 16:39:27', 11);
INSERT INTO `gaea_report_dashboard` VALUES (273, 'test', '大屏', 1920, 1080, '#000', 'https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b', NULL, NULL, 1, 0, 0, 'admin', '2021-07-02 10:26:18', 'admin', '2021-07-02 10:26:18', 1);
INSERT INTO `gaea_report_dashboard` VALUES (274, 'logn_ajreport', '大屏', 1920, 1080, '#000', 'https://report.anji-plus.com/file/download/3dcd98a1-c328-4e7d-9f24-bdc09f8553ea', NULL, NULL, 1, 0, 0, 'admin', '2021-07-02 16:14:26', 'admin', '2021-07-02 17:14:57', 32);
INSERT INTO `gaea_report_dashboard` VALUES (275, 'logistics_one', '大屏', 1920, 1080, '', 'https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b', NULL, NULL, 1, 0, 0, 'admin', '2021-09-16 22:20:01', 'admin', '2021-09-16 22:20:01', 30);
INSERT INTO `gaea_report_dashboard` VALUES (275, 'logistics_one', '大屏', 1920, 1080, '', 'https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b', NULL, NULL, 1, 0, 0, 'admin', '2021-10-25 20:07:24', 'admin', '2021-10-25 20:07:24', 30);
COMMIT;
-- ----------------------------
@@ -385,7 +386,6 @@ INSERT INTO `gaea_report_dashboard_widget` VALUES (8708, 'logistics_one', 'widge
INSERT INTO `gaea_report_dashboard_widget` VALUES (8709, 'logistics_one', 'widget-text', '{\"backgroundColor\":\"\",\"color\":\"rgba(0, 206, 209, 1)\",\"textAlign\":\"center\",\"backgroundImage\":\"https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b\",\"letterSpacing\":0,\"title\":\"大屏\",\"background\":\"rgba(115,170,229,.0)\",\"width\":1920,\"fontSize\":36,\"layerName\":\"文本框\",\"text\":\"收发车情况\",\"fontWeight\":\"normal\",\"height\":1080}', '{\"dataType\":\"staticData\",\"refreshTime\":5000,\"staticData\":\"文本框\"}', '', '{\"top\":732,\"left\":169,\"width\":209,\"index\":12,\"height\":57}', '{\"data\":[{\"type\":\"el-radio-group\",\"label\":\"数据类型\",\"name\":\"dataType\",\"require\":false,\"placeholder\":\"\",\"selectValue\":true,\"selectOptions\":[{\"code\":\"staticData\",\"name\":\"静态数据\"},{\"code\":\"dynamicData\",\"name\":\"动态数据\"}],\"value\":\"staticData\"},{\"type\":\"el-input-number\",\"label\":\"刷新时间(毫秒)\",\"name\":\"refreshTime\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"value\":5000},{\"type\":\"el-button\",\"label\":\"静态数据\",\"name\":\"staticData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"staticData\",\"value\":\"文本框\"},{\"type\":\"dycustComponents\",\"label\":\"\",\"name\":\"dynamicData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"chartType\":\"widget-text\",\"value\":\"\"}],\"setup\":[{\"type\":\"el-input-text\",\"label\":\"图层名称\",\"name\":\"layerName\",\"required\":false,\"placeholder\":\"\",\"value\":\"文本框\"},{\"type\":\"el-input-text\",\"label\":\"文本内容\",\"name\":\"text\",\"required\":false,\"placeholder\":\"\",\"value\":\"收发车情况\"},{\"type\":\"el-input-number\",\"label\":\"字体大小\",\"name\":\"fontSize\",\"required\":false,\"placeholder\":\"\",\"value\":36},{\"type\":\"vue-color\",\"label\":\"字体颜色\",\"name\":\"color\",\"required\":false,\"placeholder\":\"\",\"value\":\"rgba(0, 206, 209, 1)\"},{\"type\":\"el-input-number\",\"label\":\"字体间距\",\"name\":\"letterSpacing\",\"required\":false,\"placeholder\":\"\",\"value\":0},{\"type\":\"vue-color\",\"label\":\"字体背景\",\"name\":\"background\",\"required\":false,\"placeholder\":\"\",\"value\":\"rgba(115,170,229,.0)\"},{\"type\":\"el-select\",\"label\":\"文字粗细\",\"name\":\"fontWeight\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"normal\",\"name\":\"正常\"},{\"code\":\"bold\",\"name\":\"粗体\"},{\"code\":\"bolder\",\"name\":\"特粗体\"},{\"code\":\"lighter\",\"name\":\"细体\"}],\"value\":\"normal\"},{\"type\":\"el-select\",\"label\":\"对齐方式\",\"name\":\"textAlign\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"center\",\"name\":\"居中\"},{\"code\":\"left\",\"name\":\"左对齐\"},{\"code\":\"right\",\"name\":\"右对齐\"}],\"value\":\"center\"}],\"position\":[{\"type\":\"el-input-number\",\"label\":\"左边距\",\"name\":\"left\",\"required\":false,\"placeholder\":\"px\",\"value\":169},{\"type\":\"el-input-number\",\"label\":\"上边距\",\"name\":\"top\",\"required\":false,\"placeholder\":\"px\",\"value\":732},{\"type\":\"el-input-number\",\"label\":\"宽度\",\"name\":\"width\",\"required\":false,\"placeholder\":\"该容器在1920px大屏中的宽度\",\"value\":209},{\"type\":\"el-input-number\",\"label\":\"高度\",\"name\":\"height\",\"required\":false,\"placeholder\":\"该容器在1080px大屏中的高度\",\"value\":57}]}', NULL, 1, 0, 13, 'admin', '2021-07-15 17:40:33', 'admin', '2021-07-15 17:40:33', 1);
INSERT INTO `gaea_report_dashboard_widget` VALUES (8710, 'logistics_one', 'widget-text', '{\"lengedColor\":\"#fff\",\"lateralPosition\":\"\",\"reversalY\":0,\"reversalX\":0,\"minHeight\":0,\"marginRight\":40,\"textInterval\":0,\"isNoTitle\":true,\"textFontWeight\":\"normal\",\"titleText\":\"\",\"layoutFront\":\"\",\"text\":\"发车\",\"radius\":5,\"xName\":\"\",\"isShowY\":true,\"fontWeight\":\"normal\",\"height\":1080,\"maxWidth\":10,\"area\":true,\"textAlign\":\"center\",\"lineColor\":\"#fff\",\"subTextColor\":\"#fff\",\"textColor\":\"#fff\",\"subText\":\"\",\"lineColorY\":\"#fff\",\"xNameFontSize\":12,\"lineColorX\":\"#fff\",\"textNameY\":\"\",\"marginLeft\":10,\"subTextFontSize\":20,\"background\":\"rgba(115,170,229,.0)\",\"fontSize\":25,\"marginBottom\":10,\"layerName\":\"发车\",\"hideX\":true,\"color\":\"rgba(0, 206, 209, 1)\",\"backgroundImage\":\"https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b\",\"NameColorY\":\"#fff\",\"title\":\"大屏\",\"isShowSplitLineX\":false,\"lineWidth\":3,\"isShowSplitLineY\":false,\"splitLineColorY\":\"#fff\",\"areaThickness\":5,\"lengedFontSize\":16,\"splitLineColorX\":\"#fff\",\"textAngle\":0,\"Xcolor\":\"#fff\",\"xNameColor\":\"#fff\",\"lengedWidth\":15,\"smoothCurve\":true,\"fontSizeY\":12,\"fontSizeX\":16,\"backgroundColor\":\"\",\"colorY\":\"#fff\",\"letterSpacing\":0,\"markPoint\":true,\"NameFontSizeY\":16,\"textFontSize\":20,\"pointSize\":5,\"customColor\":[{\"color\":\"#00F4FFFF\"},{\"color\":\"#9CA69C\"}],\"longitudinalPosition\":\"\",\"subTextFontWeight\":\"normal\",\"width\":1920,\"isShowLegend\":true,\"marginTop\":50}', '{\"dataType\":\"staticData\",\"refreshTime\":5000,\"staticData\":\"文本框\"}', '', '{\"top\":788,\"left\":423,\"width\":100,\"index\":13,\"height\":40}', '{\"data\":[{\"type\":\"el-radio-group\",\"label\":\"数据类型\",\"name\":\"dataType\",\"require\":false,\"placeholder\":\"\",\"selectValue\":true,\"selectOptions\":[{\"code\":\"staticData\",\"name\":\"静态数据\"},{\"code\":\"dynamicData\",\"name\":\"动态数据\"}],\"value\":\"staticData\"},{\"type\":\"el-input-number\",\"label\":\"刷新时间(毫秒)\",\"name\":\"refreshTime\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"value\":5000},{\"type\":\"el-button\",\"label\":\"静态数据\",\"name\":\"staticData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"staticData\",\"value\":\"文本框\"},{\"type\":\"dycustComponents\",\"label\":\"\",\"name\":\"dynamicData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"chartType\":\"widget-text\",\"value\":\"\"}],\"setup\":[{\"type\":\"el-input-text\",\"label\":\"图层名称\",\"name\":\"layerName\",\"required\":false,\"placeholder\":\"\",\"value\":\"发车\"},{\"type\":\"el-input-text\",\"label\":\"文本内容\",\"name\":\"text\",\"required\":false,\"placeholder\":\"\",\"value\":\"发车\"},{\"type\":\"el-input-number\",\"label\":\"字体大小\",\"name\":\"fontSize\",\"required\":false,\"placeholder\":\"\",\"value\":25},{\"type\":\"vue-color\",\"label\":\"字体颜色\",\"name\":\"color\",\"required\":false,\"placeholder\":\"\",\"value\":\"rgba(0, 206, 209, 1)\"},{\"type\":\"el-input-number\",\"label\":\"字体间距\",\"name\":\"letterSpacing\",\"required\":false,\"placeholder\":\"\",\"value\":0},{\"type\":\"vue-color\",\"label\":\"字体背景\",\"name\":\"background\",\"required\":false,\"placeholder\":\"\",\"value\":\"rgba(115,170,229,.0)\"},{\"type\":\"el-select\",\"label\":\"文字粗细\",\"name\":\"fontWeight\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"normal\",\"name\":\"正常\"},{\"code\":\"bold\",\"name\":\"粗体\"},{\"code\":\"bolder\",\"name\":\"特粗体\"},{\"code\":\"lighter\",\"name\":\"细体\"}],\"value\":\"normal\"},{\"type\":\"el-select\",\"label\":\"对齐方式\",\"name\":\"textAlign\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"center\",\"name\":\"居中\"},{\"code\":\"left\",\"name\":\"左对齐\"},{\"code\":\"right\",\"name\":\"右对齐\"}],\"value\":\"center\"}],\"position\":[{\"type\":\"el-input-number\",\"label\":\"左边距\",\"name\":\"left\",\"required\":false,\"placeholder\":\"px\",\"value\":423},{\"type\":\"el-input-number\",\"label\":\"上边距\",\"name\":\"top\",\"required\":false,\"placeholder\":\"px\",\"value\":788},{\"type\":\"el-input-number\",\"label\":\"宽度\",\"name\":\"width\",\"required\":false,\"placeholder\":\"该容器在1920px大屏中的宽度\",\"value\":100},{\"type\":\"el-input-number\",\"label\":\"高度\",\"name\":\"height\",\"required\":false,\"placeholder\":\"该容器在1080px大屏中的高度\",\"value\":40}]}', NULL, 1, 0, 14, 'admin', '2021-07-15 17:40:33', 'admin', '2021-07-15 17:40:33', 1);
INSERT INTO `gaea_report_dashboard_widget` VALUES (8711, 'logistics_one', 'widget-text', '{\"lengedColor\":\"#fff\",\"lateralPosition\":\"\",\"reversalY\":0,\"reversalX\":0,\"minHeight\":0,\"marginRight\":40,\"textInterval\":0,\"isNoTitle\":true,\"textFontWeight\":\"normal\",\"titleText\":\"\",\"layoutFront\":\"\",\"text\":\"收车\",\"radius\":5,\"xName\":\"\",\"isShowY\":true,\"fontWeight\":\"normal\",\"height\":1080,\"maxWidth\":10,\"area\":true,\"textAlign\":\"center\",\"lineColor\":\"#fff\",\"subTextColor\":\"#fff\",\"textColor\":\"#fff\",\"subText\":\"\",\"lineColorY\":\"#fff\",\"xNameFontSize\":12,\"lineColorX\":\"#fff\",\"textNameY\":\"\",\"marginLeft\":10,\"subTextFontSize\":20,\"background\":\"rgba(115,170,229,.0)\",\"fontSize\":25,\"marginBottom\":10,\"layerName\":\"收车\",\"hideX\":true,\"color\":\"rgba(0, 206, 209, 1)\",\"backgroundImage\":\"https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b\",\"NameColorY\":\"#fff\",\"title\":\"大屏\",\"isShowSplitLineX\":false,\"lineWidth\":3,\"isShowSplitLineY\":false,\"splitLineColorY\":\"#fff\",\"areaThickness\":5,\"lengedFontSize\":16,\"splitLineColorX\":\"#fff\",\"textAngle\":0,\"Xcolor\":\"#fff\",\"xNameColor\":\"#fff\",\"lengedWidth\":15,\"smoothCurve\":true,\"fontSizeY\":12,\"fontSizeX\":16,\"backgroundColor\":\"\",\"colorY\":\"#fff\",\"letterSpacing\":0,\"markPoint\":true,\"NameFontSizeY\":16,\"textFontSize\":20,\"pointSize\":5,\"customColor\":[{\"color\":\"#00F4FFFF\"},{\"color\":\"#9CA69C\"}],\"longitudinalPosition\":\"\",\"subTextFontWeight\":\"normal\",\"width\":1920,\"isShowLegend\":true,\"marginTop\":50}', '{\"dataType\":\"staticData\",\"refreshTime\":5000,\"staticData\":\"文本框\"}', '', '{\"top\":787,\"left\":3,\"width\":100,\"index\":13,\"height\":40}', '{\"data\":[{\"type\":\"el-radio-group\",\"label\":\"数据类型\",\"name\":\"dataType\",\"require\":false,\"placeholder\":\"\",\"selectValue\":true,\"selectOptions\":[{\"code\":\"staticData\",\"name\":\"静态数据\"},{\"code\":\"dynamicData\",\"name\":\"动态数据\"}],\"value\":\"staticData\"},{\"type\":\"el-input-number\",\"label\":\"刷新时间(毫秒)\",\"name\":\"refreshTime\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"value\":5000},{\"type\":\"el-button\",\"label\":\"静态数据\",\"name\":\"staticData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"staticData\",\"value\":\"文本框\"},{\"type\":\"dycustComponents\",\"label\":\"\",\"name\":\"dynamicData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"chartType\":\"widget-text\",\"value\":\"\"}],\"setup\":[{\"type\":\"el-input-text\",\"label\":\"图层名称\",\"name\":\"layerName\",\"required\":false,\"placeholder\":\"\",\"value\":\"收车\"},{\"type\":\"el-input-text\",\"label\":\"文本内容\",\"name\":\"text\",\"required\":false,\"placeholder\":\"\",\"value\":\"收车\"},{\"type\":\"el-input-number\",\"label\":\"字体大小\",\"name\":\"fontSize\",\"required\":false,\"placeholder\":\"\",\"value\":25},{\"type\":\"vue-color\",\"label\":\"字体颜色\",\"name\":\"color\",\"required\":false,\"placeholder\":\"\",\"value\":\"rgba(0, 206, 209, 1)\"},{\"type\":\"el-input-number\",\"label\":\"字体间距\",\"name\":\"letterSpacing\",\"required\":false,\"placeholder\":\"\",\"value\":0},{\"type\":\"vue-color\",\"label\":\"字体背景\",\"name\":\"background\",\"required\":false,\"placeholder\":\"\",\"value\":\"rgba(115,170,229,.0)\"},{\"type\":\"el-select\",\"label\":\"文字粗细\",\"name\":\"fontWeight\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"normal\",\"name\":\"正常\"},{\"code\":\"bold\",\"name\":\"粗体\"},{\"code\":\"bolder\",\"name\":\"特粗体\"},{\"code\":\"lighter\",\"name\":\"细体\"}],\"value\":\"normal\"},{\"type\":\"el-select\",\"label\":\"对齐方式\",\"name\":\"textAlign\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"center\",\"name\":\"居中\"},{\"code\":\"left\",\"name\":\"左对齐\"},{\"code\":\"right\",\"name\":\"右对齐\"}],\"value\":\"center\"}],\"position\":[{\"type\":\"el-input-number\",\"label\":\"左边距\",\"name\":\"left\",\"required\":false,\"placeholder\":\"px\",\"value\":3},{\"type\":\"el-input-number\",\"label\":\"上边距\",\"name\":\"top\",\"required\":false,\"placeholder\":\"px\",\"value\":787},{\"type\":\"el-input-number\",\"label\":\"宽度\",\"name\":\"width\",\"required\":false,\"placeholder\":\"该容器在1920px大屏中的宽度\",\"value\":100},{\"type\":\"el-input-number\",\"label\":\"高度\",\"name\":\"height\",\"required\":false,\"placeholder\":\"该容器在1080px大屏中的高度\",\"value\":40}]}', NULL, 1, 0, 15, 'admin', '2021-07-15 17:40:33', 'admin', '2021-07-15 17:40:33', 1);
INSERT INTO `gaea_report_dashboard_widget` VALUES (8712, 'DSADASD', 'widget-barchart', '{\"lengedColor\":\"#fff\",\"lateralPosition\":\"\",\"reversalY\":false,\"reversalX\":false,\"minHeight\":0,\"marginRight\":40,\"textInterval\":0,\"isNoTitle\":true,\"textFontWeight\":\"normal\",\"titleText\":\"\",\"layoutFront\":\"\",\"radius\":5,\"xName\":\"类型\",\"isShowY\":true,\"fontWeight\":\"normal\",\"height\":1080,\"maxWidth\":10,\"textAlign\":\"center\",\"subTextColor\":\"#fff\",\"textColor\":\"#FFD700\",\"subText\":\"\",\"lineColorY\":\"#fff\",\"xNameFontSize\":12,\"lineColorX\":\"#fff\",\"textNameY\":\"数量\",\"marginLeft\":10,\"subTextFontSize\":20,\"background\":\"\",\"marginBottom\":10,\"layerName\":\"柱状图\",\"hideX\":true,\"verticalShow\":false,\"backgroundImage\":\"https://report.anji-plus.com/file/download/bf566e48-ccad-40e1-8ee9-228427e5466b\",\"NameColorY\":\"#fff\",\"title\":\"大屏\",\"isShowSplitLineX\":false,\"isShowSplitLineY\":false,\"splitLineColorY\":\"#fff\",\"lengedFontSize\":16,\"splitLineColorX\":\"#fff\",\"textAngle\":0,\"Xcolor\":\"#fff\",\"xNameColor\":\"#fff\",\"lengedWidth\":15,\"fontSizeY\":12,\"fontSizeX\":12,\"backgroundColor\":\"#000\",\"colorY\":\"#fff\",\"NameFontSizeY\":12,\"isShow\":false,\"textFontSize\":20,\"customColor\":[{\"color\":\"#ff7f50\"},{\"color\":\"#87cefa\"},{\"color\":\"#da70d6\"},{\"color\":\"#32cd32\"},{\"color\":\"#6495ed\"}],\"longitudinalPosition\":\"\",\"subTextFontWeight\":\"normal\",\"width\":1920,\"isShowLegend\":true,\"marginTop\":50}', '{\"dynamicData\":{\"chartType\":\"widget-barchart\",\"setCode\":\"dasd\",\"chartProperties\":{\"num\":\"bar\",\"type\":\"xAxis\"},\"contextData\":{}},\"dataType\":\"dynamicData\",\"refreshTime\":5000,\"staticData\":{\"categories\":[\"苹果\",\"三星\",\"小米\",\"oppo\",\"vivo\"],\"series\":[{\"name\":\"手机品牌\",\"data\":[1000,2229,3879,2379,4079]}]}}', '', '{\"top\":64,\"left\":186,\"width\":1006,\"index\":0,\"height\":536}', '{\"data\":[{\"type\":\"el-radio-group\",\"label\":\"数据类型\",\"name\":\"dataType\",\"require\":false,\"placeholder\":\"\",\"selectValue\":true,\"selectOptions\":[{\"code\":\"staticData\",\"name\":\"静态数据\"},{\"code\":\"dynamicData\",\"name\":\"动态数据\"}],\"value\":\"dynamicData\"},{\"type\":\"el-input-number\",\"label\":\"刷新时间(毫秒)\",\"name\":\"refreshTime\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"value\":5000},{\"type\":\"el-button\",\"label\":\"静态数据\",\"name\":\"staticData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"staticData\",\"value\":{\"categories\":[\"苹果\",\"三星\",\"小米\",\"oppo\",\"vivo\"],\"series\":[{\"name\":\"手机品牌\",\"data\":[1000,2229,3879,2379,4079]}]}},{\"type\":\"dycustComponents\",\"label\":\"\",\"name\":\"dynamicData\",\"required\":false,\"placeholder\":\"px\",\"relactiveDom\":\"dataType\",\"relactiveDomValue\":\"dynamicData\",\"chartType\":\"widget-barchart\",\"dictKey\":\"BAR_PROPERTIES\",\"value\":{\"chartType\":\"widget-barchart\",\"setCode\":\"dasd\",\"chartProperties\":{\"num\":\"bar\",\"type\":\"xAxis\"},\"contextData\":{}}}],\"setup\":[{\"type\":\"el-input-text\",\"label\":\"图层名称\",\"name\":\"layerName\",\"required\":false,\"placeholder\":\"\",\"value\":\"柱状图\"},{\"type\":\"el-switch\",\"label\":\"竖展示\",\"name\":\"verticalShow\",\"required\":false,\"placeholder\":\"\",\"value\":false},{\"type\":\"vue-color\",\"label\":\"背景颜色\",\"name\":\"background\",\"required\":false,\"placeholder\":\"\",\"value\":\"\"},[{\"name\":\"柱体设置\",\"list\":[{\"type\":\"el-slider\",\"label\":\"最大宽度\",\"name\":\"maxWidth\",\"required\":false,\"placeholder\":\"\",\"value\":10},{\"type\":\"el-slider\",\"label\":\"圆角\",\"name\":\"radius\",\"require\":false,\"placeholder\":\"\",\"value\":5},{\"type\":\"el-slider\",\"label\":\"最小高度\",\"name\":\"minHeight\",\"require\":false,\"placeholder\":\"\",\"value\":0}]},{\"name\":\"标题设置\",\"list\":[{\"type\":\"el-switch\",\"label\":\"标题\",\"name\":\"isNoTitle\",\"required\":false,\"placeholder\":\"\",\"value\":true},{\"type\":\"el-input-text\",\"label\":\"标题\",\"name\":\"titleText\",\"required\":false,\"placeholder\":\"\",\"value\":\"\"},{\"type\":\"vue-color\",\"label\":\"字体颜色\",\"name\":\"textColor\",\"required\":false,\"placeholder\":\"\",\"value\":\"#FFD700\"},{\"type\":\"el-select\",\"label\":\"字体粗细\",\"name\":\"textFontWeight\",\"required\":false,\"placeholder\":\"\",\"selectOptions\":[{\"code\":\"normal\",\"name\":\"正常\"},{\"code\":\"bold\",\"name\":\"粗体\"},{\"code\":\"bolder\",\"name\":\"特粗体\"},{\"code\":\"lighter\",\"name\":\"细体\"}],\"value\":\"normal\"},{\"type\":\"el-input-number\",\"label\":\"字体大小\",\"name\":\"textFontSize\",\"required\":false,\"placeholder\":\"\",\"value\":20},{\"type\":\"el-select\",\"label\":\"字体位置\",\"name\":\"textAlign\",\"required\":false,\"placehoLine truncated
COMMIT;
-- ----------------------------
@@ -409,38 +409,38 @@ CREATE TABLE `gaea_report_data_set` (
`version` int DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `unique_set_code` (`set_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='数据集管理';
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='数据集管理';
-- ----------------------------
-- Records of gaea_report_data_set
-- ----------------------------
BEGIN;
INSERT INTO `gaea_report_data_set` VALUES (46, 'log_ajdevices', '日志-资产统计', '', 'pigx_report_init', 'SELECT device_type,COUNT(device_id)as nums from aj_report_devices GROUP BY device_type;', '[{\"device_type\":\"交换机\",\"nums\":12},{\"device_type\":\"服务器\",\"nums\":10},{\"device_type\":\"路由器\",\"nums\":4},{\"device_type\":\"防火墙\",\"nums\":2}]', 1, 0, 'admin', '2021-06-30 09:57:47', 'admin', '2021-06-30 09:57:47', 1);
INSERT INTO `gaea_report_data_set` VALUES (47, 'log_ajfireacl', '日志-防火墙ACL次数', '', 'pigx_report_init', 'SELECT acl_type,COUNT(id) as nums from aj_report_init.aj_report_fireacl GROUP BY acl_type;', '[{\"acl_type\":\"LDAP389\",\"nums\":13},{\"acl_type\":\"Server1433\",\"nums\":9},{\"acl_type\":\"共享文件445\",\"nums\":7},{\"acl_type\":\"存储514\",\"nums\":14},{\"acl_type\":\"网页浏览443\",\"nums\":31},{\"acl_type\":\"远程桌面3389\",\"nums\":62},{\"acl_type\":\"远程登陆23\",\"nums\":66}]', 1, 0, 'admin', '2021-06-30 10:41:36', 'admin', '2021-06-30 10:41:36', 1);
INSERT INTO `gaea_report_data_set` VALUES (48, 'log_ajattack', '日志-攻击占比', '', 'pigx_report_init', 'SELECT attack_type,COUNT(id)as nums from aj_report_fireattack GROUP BY attack_type;', '[{\"attack_type\":\"SQL注入\",\"nums\":9},{\"attack_type\":\"UDP\",\"nums\":11},{\"attack_type\":\"WEB\",\"nums\":7},{\"attack_type\":\"僵尸网络\",\"nums\":24},{\"attack_type\":\"弱口令\",\"nums\":6},{\"attack_type\":\"端口扫描\",\"nums\":16},{\"attack_type\":\"网站扫描\",\"nums\":8},{\"attack_type\":\"超大ICMP\",\"nums\":19}]', 1, 0, 'admin', '2021-06-30 10:44:01', 'admin', '2021-06-30 13:13:56', 3);
INSERT INTO `gaea_report_data_set` VALUES (50, 'log_ajmailfailtop5', '日志-邮件认证失败top5', '', 'pigx_report_init', 'SELECT username,count(id)as nums from aj_report_mail WHERE status=0 GROUP BY username ORDER BY nums desc limit 5;', '[{\"nums\":63,\"username\":\"zhangsi\"},{\"nums\":52,\"username\":\"wangwu\"},{\"nums\":39,\"username\":\"liliu\"},{\"nums\":39,\"username\":\"IT1\"},{\"nums\":30,\"username\":\"IT2\"}]', 1, 0, 'admin', '2021-06-30 11:07:53', 'admin', '2021-06-30 11:07:53', 1);
INSERT INTO `gaea_report_data_set` VALUES (51, 'log_ajmailfail', '日志-邮件认证失败趋势', '', 'pigx_report_init', 'SELECT DATE_FORMAT(create_time,\'%Y-%m-%d\')as date,count(id)as nums from aj_report_mail WHERE status=0 \ngroup by date', '[{\"date\":\"2021-06-21\",\"nums\":25},{\"date\":\"2021-06-22\",\"nums\":16},{\"date\":\"2021-06-23\",\"nums\":89},{\"date\":\"2021-06-24\",\"nums\":61},{\"date\":\"2021-06-25\",\"nums\":53}]', 1, 0, 'admin', '2021-06-30 12:58:19', 'admin', '2021-06-30 12:58:19', 1);
INSERT INTO `gaea_report_data_set` VALUES (52, 'log_ajwifiamount', '日志-wifi登陆趋势', '', 'pigx_report_init', 'SELECT * from aj_report_wifiamount;', '[{\"fail\":15,\"datetime\":\"2021-06-17\",\"success\":210},{\"fail\":43,\"datetime\":\"2021-06-18\",\"success\":234},{\"fail\":28,\"datetime\":\"2021-06-19\",\"success\":199},{\"fail\":80,\"datetime\":\"2021-06-20\",\"success\":260},{\"fail\":45,\"datetime\":\"2021-06-21\",\"success\":245},{\"fail\":26,\"datetime\":\"2021-06-22\",\"success\":216},{\"fail\":10,\"datetime\":\"2021-06-23\",\"success\":150}]', 1, 0, 'admin', '2021-06-30 13:07:35', 'admin', '2021-06-30 13:07:35', 1);
INSERT INTO `gaea_report_data_set` VALUES (53, 'car_ajpro', '汽车-生产趋势', '', 'pigx_report_init', 'SELECT datetime,sum(manus)as nums from aj_report_manus GROUP BY datetime;', '[{\"datetime\":\"2021-06-18\",\"nums\":252},{\"datetime\":\"2021-06-19\",\"nums\":133},{\"datetime\":\"2021-06-20\",\"nums\":189},{\"datetime\":\"2021-06-21\",\"nums\":219},{\"datetime\":\"2021-06-22\",\"nums\":159}]', 1, 0, 'admin', '2021-06-30 14:23:02', 'admin', '2021-06-30 14:23:02', 1);
INSERT INTO `gaea_report_data_set` VALUES (54, 'car_ajsale', '汽车-销售趋势', '', 'pigx_report_init', 'SELECT datetime,sum(sales)as nums from aj_report_manus GROUP BY datetime;', '[{\"datetime\":\"2021-06-18\",\"nums\":231},{\"datetime\":\"2021-06-19\",\"nums\":140},{\"datetime\":\"2021-06-20\",\"nums\":170},{\"datetime\":\"2021-06-21\",\"nums\":191},{\"datetime\":\"2021-06-22\",\"nums\":144}]', 1, 0, 'admin', '2021-06-30 14:24:33', 'admin', '2021-06-30 14:24:33', 1);
INSERT INTO `gaea_report_data_set` VALUES (55, 'car_ajproTop5', '汽车-生产TOP5', '', 'pigx_report_init', 'SELECT brand,sum(manus)as nums from aj_report_manus GROUP BY brand ORDER BY nums desc limit 5;', '[{\"brand\":\"E-30\",\"nums\":215},{\"brand\":\"C-50\",\"nums\":210},{\"brand\":\"D-40\",\"nums\":175},{\"brand\":\"A-100\",\"nums\":100},{\"brand\":\"A-110\",\"nums\":97}]', 1, 0, 'admin', '2021-06-30 14:26:55', 'admin', '2021-06-30 14:26:55', 1);
INSERT INTO `gaea_report_data_set` VALUES (56, 'car_ajsaleTop5', '汽车-销售TOP5', '', 'pigx_report_init', 'SELECT brand,sum(sales)as nums from aj_report_manus GROUP BY brand ORDER BY nums desc limit 5;', '[{\"brand\":\"E-30\",\"nums\":221},{\"brand\":\"C-50\",\"nums\":189},{\"brand\":\"D-40\",\"nums\":169},{\"brand\":\"A-100\",\"nums\":81},{\"brand\":\"B-100\",\"nums\":80}]', 1, 0, 'admin', '2021-06-30 14:30:00', 'admin', '2021-06-30 14:30:00', 1);
INSERT INTO `gaea_report_data_set` VALUES (57, 'car_ajunsale', '汽车-滞销', '', 'pigx_report_init', 'SELECT brand,sum(unsales) as nums from aj_report_manus GROUP BY brand ORDER BY nums desc;', '[{\"brand\":\"C-50\",\"nums\":21},{\"brand\":\"A-110\",\"nums\":20},{\"brand\":\"A-100\",\"nums\":19},{\"brand\":\"B-110\",\"nums\":11},{\"brand\":\"E-30\",\"nums\":9},{\"brand\":\"D-40\",\"nums\":6},{\"brand\":\"B-100\",\"nums\":5}]', 1, 0, 'admin', '2021-06-30 14:30:46', 'admin', '2021-06-30 14:30:46', 1);
INSERT INTO `gaea_report_data_set` VALUES (58, 'car_ajrework', '汽车-返修', '', 'pigx_report_init', 'SELECT brand,sum(rework) as nums from aj_report_manus GROUP BY brand ORDER BY nums desc;', '[{\"brand\":\"E-30\",\"nums\":58},{\"brand\":\"D-40\",\"nums\":27},{\"brand\":\"C-50\",\"nums\":22},{\"brand\":\"A-100\",\"nums\":5},{\"brand\":\"A-110\",\"nums\":5},{\"brand\":\"B-110\",\"nums\":5},{\"brand\":\"B-100\",\"nums\":4}]', 1, 0, 'admin', '2021-06-30 14:31:16', 'admin', '2021-06-30 14:31:16', 1);
INSERT INTO `gaea_report_data_set` VALUES (59, 'car_ajreturn', '汽车-退货', '', 'pigx_report_init', 'SELECT brand,sum(`return`) as nums from aj_report_manus GROUP BY brand ORDER BY nums desc;', '[{\"brand\":\"E-30\",\"nums\":24},{\"brand\":\"C-50\",\"nums\":10},{\"brand\":\"D-40\",\"nums\":6},{\"brand\":\"A-110\",\"nums\":2},{\"brand\":\"B-110\",\"nums\":1},{\"brand\":\"A-100\",\"nums\":0},{\"brand\":\"B-100\",\"nums\":0}]', 1, 0, 'admin', '2021-06-30 14:31:45', 'admin', '2021-06-30 14:31:45', 1);
INSERT INTO `gaea_report_data_set` VALUES (60, 'acc_ajacc', '访问-访问人数趋势', '', 'pigx_report_init', 'SELECT datetime,access from aj_report_access ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"access\":1000},{\"datetime\":\"2021-06-19\",\"access\":1200},{\"datetime\":\"2021-06-20\",\"access\":1600},{\"datetime\":\"2021-06-21\",\"access\":2000},{\"datetime\":\"2021-06-22\",\"access\":800}]', 1, 0, 'admin', '2021-06-30 15:15:17', 'admin', '2021-06-30 15:16:04', 2);
INSERT INTO `gaea_report_data_set` VALUES (61, 'acc_ajregister', '访问-注册人数趋势', '', 'pigx_report_init', 'SELECT datetime,register from aj_report_access ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"register\":12},{\"datetime\":\"2021-06-19\",\"register\":20},{\"datetime\":\"2021-06-20\",\"register\":40},{\"datetime\":\"2021-06-21\",\"register\":100},{\"datetime\":\"2021-06-22\",\"register\":30}]', 1, 0, 'admin', '2021-06-30 15:15:55', 'admin', '2021-06-30 15:15:55', 1);
INSERT INTO `gaea_report_data_set` VALUES (62, 'acc_ajrt', '访问-系统RT', '', 'pigx_report_init', 'SELECT datetime,rt from aj_report_exper ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"rt\":90.92},{\"datetime\":\"2021-06-19\",\"rt\":100.02},{\"datetime\":\"2021-06-20\",\"rt\":98.89},{\"datetime\":\"2021-06-21\",\"rt\":110.99},{\"datetime\":\"2021-06-22\",\"rt\":89.78}]', 1, 0, 'admin', '2021-06-30 15:16:37', 'admin', '2021-07-01 16:06:00', 2);
INSERT INTO `gaea_report_data_set` VALUES (63, 'acc_ajqps', '访问-系统QPS', '', 'pigx_report_init', 'SELECT datetime,qps from aj_report_exper ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"qps\":9000},{\"datetime\":\"2021-06-19\",\"qps\":10000},{\"datetime\":\"2021-06-20\",\"qps\":9560},{\"datetime\":\"2021-06-21\",\"qps\":13456},{\"datetime\":\"2021-06-22\",\"qps\":8990}]', 1, 0, 'admin', '2021-06-30 15:19:06', 'admin', '2021-06-30 15:19:06', 1);
INSERT INTO `gaea_report_data_set` VALUES (64, 'acc_ajerror', '访问-系统ERROR', '', 'pigx_report_init', 'SELECT datetime,error from aj_report_exper ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"error\":2},{\"datetime\":\"2021-06-19\",\"error\":3},{\"datetime\":\"2021-06-20\",\"error\":1},{\"datetime\":\"2021-06-21\",\"error\":9},{\"datetime\":\"2021-06-22\",\"error\":3}]', 1, 0, 'admin', '2021-06-30 15:19:33', 'admin', '2021-06-30 15:19:33', 1);
INSERT INTO `gaea_report_data_set` VALUES (65, 'amount_1', 'amount1', '', 'pigx_report_init', 'SELECT sum(success)as nums from aj_report_wifiamount;', '[{\"nums\":1514}]', 1, 0, 'admin', '2021-07-05 15:00:18', 'admin', '2021-07-05 15:00:18', 1);
INSERT INTO `gaea_report_data_set` VALUES (66, 'logis_1', '库存', '', 'pigx_report_init', 'select name,nums from aj_report_common1 order by nums', '[{\"name\":\"上海\",\"nums\":500},{\"name\":\"北京\",\"nums\":600},{\"name\":\"西安\",\"nums\":1000},{\"name\":\"河南\",\"nums\":1200},{\"name\":\"武汉\",\"nums\":2000}]', 1, 0, 'admin', '2021-07-06 15:44:41', 'admin', '2021-07-06 15:54:16', 3);
INSERT INTO `gaea_report_data_set` VALUES (67, 'logis_2', '收车量', '', 'pigx_report_init', 'select name,nums from aj_report_common2 order by nums;', '[{\"name\":\"武汉\",\"nums\":20},{\"name\":\"河南\",\"nums\":50},{\"name\":\"西安\",\"nums\":70},{\"name\":\"北京\",\"nums\":100},{\"name\":\"上海\",\"nums\":200}]', 1, 0, 'admin', '2021-07-06 16:51:27', 'admin', '2021-07-06 16:51:27', 1);
INSERT INTO `gaea_report_data_set` VALUES (68, 'logis_3', '收发车情况', '', 'pigx_report_init', 'select time,collect,start from aj_report_common3;', '[{\"start\":8,\"time\":\"1月\",\"collect\":10},{\"start\":12,\"time\":\"2月\",\"collect\":15},{\"start\":22,\"time\":\"3月\",\"collect\":20},{\"start\":28,\"time\":\"4月\",\"collect\":30},{\"start\":35,\"time\":\"5月\",\"collect\":28},{\"start\":38,\"time\":\"6月\",\"collect\":40},{\"start\":100,\"time\":\"7月\",\"collect\":80},{\"start\":120,\"time\":\"8月\",\"collect\":90},{\"start\":89,\"time\":\"9月\",\"collect\":65},{\"start\":50,\"time\":\"10月\",\"collect\":50},{\"start\":34,\"time\":\"11月\",\"collect\":35},{\"start\":23,\"time\":\"12月\",\"collect\":27}]', 1, 0, 'admin', '2021-07-06 17:24:16', 'admin', '2021-07-06 17:30:15', 2);
INSERT INTO `gaea_report_data_set` VALUES (69, 'logis_table', '表格测试', '', 'pigx_report_init', 'select date,address,name from aj_report_table;', '[{\"date\":\"2021-05-01\",\"address\":\"这是一条测试表格事件1\",\"name\":\"上汽安吉\"},{\"date\":\"2021-05-02\",\"address\":\"这是一条测试表格事件2\",\"name\":\"上汽大通\"},{\"date\":\"2021-05-03\",\"address\":\"这是一条测试表格事件3\",\"name\":\"上汽智行\"},{\"date\":\"2021-05-04\",\"address\":\"这是一条测试表格事件4\",\"name\":\"上汽国际\"},{\"date\":\"2021-05-05\",\"address\":\"这是一条测试表格事件5\",\"name\":\"上汽国内\"},{\"date\":\"2021-05-06\",\"address\":\"这是一条测试表格事件6\",\"name\":\"上汽运输\"},{\"date\":\"2021-05-07\",\"address\":\"这是一条测试表格事件7\",\"name\":\"上汽大众\"}]', 1, 0, 'admin', '2021-07-06 17:56:23', 'admin', '2021-07-07 10:59:34', 4);
INSERT INTO `gaea_report_data_set` VALUES (70, 'per', '百分比', '', 'pigx_report_init', 'select doub from aj_report_nums where id =2;', '[{\"doub\":55.33}]', 1, 0, 'admin', '2021-07-14 16:17:14', 'admin', '2021-07-15 10:35:21', 2);
INSERT INTO `gaea_report_data_set` VALUES (71, 'barstack_ajreport', '柱状堆叠数据', '', 'pigx_report_init', 'select time,type,nums from aj_report_barstack', '[{\"time\":\"2021-07-27\",\"type\":\"A\",\"nums\":12},{\"time\":\"2021-07-27\",\"type\":\"B\",\"nums\":20},{\"time\":\"2021-07-27\",\"type\":\"C\",\"nums\":11},{\"time\":\"2021-07-26\",\"type\":\"A\",\"nums\":11},{\"time\":\"2021-07-26\",\"type\":\"B\",\"nums\":30},{\"time\":\"2021-07-25\",\"type\":\"B\",\"nums\":20},{\"time\":\"2021-07-25\",\"type\":\"C\",\"nums\":15}]', 1, 0, 'admin', '2021-07-27 19:50:52', 'admin', '2021-08-16 14:08:51', 7);
INSERT INTO `gaea_report_data_set` VALUES (72, 'compare_ajreport', '柱状对比图示例数据', '', 'pigx_report_init', 'SELECT time,type,nums from aj_report_comparestack', '[{\"time\":\"2021-08-23\",\"type\":\"成功\",\"nums\":12},{\"time\":\"2021-08-23\",\"type\":\"失败\",\"nums\":1},{\"time\":\"2021-08-24\",\"type\":\"成功\",\"nums\":24},{\"time\":\"2021-08-24\",\"type\":\"失败\",\"nums\":5},{\"time\":\"2021-08-25\",\"type\":\"成功\",\"nums\":13},{\"time\":\"2021-08-25\",\"type\":\"失败\",\"nums\":8},{\"time\":\"2021-08-26\",\"type\":\"成功\",\"nums\":19},{\"time\":\"2021-08-26\",\"type\":\"失败\",\"nums\":3},{\"time\":\"2021-08-27\",\"type\":\"成功\",\"nums\":9},{\"time\":\"2021-08-27\",\"type\":\"失败\",\"nums\":15}]', 1, 0, 'admin', '2021-08-27 13:48:33', 'admin', '2021-08-27 13:48:33', 1);
INSERT INTO `gaea_report_data_set` VALUES (46, 'log_ajdevices', '日志-资产统计', '', 'mysql_ajreport', 'SELECT device_type,COUNT(device_id)as nums from aj_report_devices GROUP BY device_type;', '[{\"device_type\":\"交换机\",\"nums\":12},{\"device_type\":\"服务器\",\"nums\":10},{\"device_type\":\"路由器\",\"nums\":4},{\"device_type\":\"防火墙\",\"nums\":2}]', 1, 0, 'admin', '2021-06-30 09:57:47', 'admin', '2021-06-30 09:57:47', 1);
INSERT INTO `gaea_report_data_set` VALUES (47, 'log_ajfireacl', '日志-防火墙ACL次数', '', 'mysql_ajreport', 'SELECT acl_type,COUNT(id) as nums from pigxx_report_init.aj_report_fireacl GROUP BY acl_type;', '[{\"acl_type\":\"LDAP389\",\"nums\":13},{\"acl_type\":\"Server1433\",\"nums\":9},{\"acl_type\":\"共享文件445\",\"nums\":7},{\"acl_type\":\"存储514\",\"nums\":14},{\"acl_type\":\"网页浏览443\",\"nums\":31},{\"acl_type\":\"远程桌面3389\",\"nums\":62},{\"acl_type\":\"远程登陆23\",\"nums\":66}]', 1, 0, 'admin', '2021-06-30 10:41:36', 'admin', '2021-06-30 10:41:36', 1);
INSERT INTO `gaea_report_data_set` VALUES (48, 'log_ajattack', '日志-攻击占比', '', 'mysql_ajreport', 'SELECT attack_type,COUNT(id)as nums from aj_report_fireattack GROUP BY attack_type;', '[{\"attack_type\":\"SQL注入\",\"nums\":9},{\"attack_type\":\"UDP\",\"nums\":11},{\"attack_type\":\"WEB\",\"nums\":7},{\"attack_type\":\"僵尸网络\",\"nums\":24},{\"attack_type\":\"弱口令\",\"nums\":6},{\"attack_type\":\"端口扫描\",\"nums\":16},{\"attack_type\":\"网站扫描\",\"nums\":8},{\"attack_type\":\"超大ICMP\",\"nums\":19}]', 1, 0, 'admin', '2021-06-30 10:44:01', 'admin', '2021-06-30 13:13:56', 3);
INSERT INTO `gaea_report_data_set` VALUES (50, 'log_ajmailfailtop5', '日志-邮件认证失败top5', '', 'mysql_ajreport', 'SELECT username,count(id)as nums from aj_report_mail WHERE status=0 GROUP BY username ORDER BY nums desc limit 5;', '[{\"nums\":63,\"username\":\"zhangsi\"},{\"nums\":52,\"username\":\"wangwu\"},{\"nums\":39,\"username\":\"liliu\"},{\"nums\":39,\"username\":\"IT1\"},{\"nums\":30,\"username\":\"IT2\"}]', 1, 0, 'admin', '2021-06-30 11:07:53', 'admin', '2021-06-30 11:07:53', 1);
INSERT INTO `gaea_report_data_set` VALUES (51, 'log_ajmailfail', '日志-邮件认证失败趋势', '', 'mysql_ajreport', 'SELECT DATE_FORMAT(create_time,\'%Y-%m-%d\')as date,count(id)as nums from aj_report_mail WHERE status=0 \ngroup by date', '[{\"date\":\"2021-06-21\",\"nums\":25},{\"date\":\"2021-06-22\",\"nums\":16},{\"date\":\"2021-06-23\",\"nums\":89},{\"date\":\"2021-06-24\",\"nums\":61},{\"date\":\"2021-06-25\",\"nums\":53}]', 1, 0, 'admin', '2021-06-30 12:58:19', 'admin', '2021-06-30 12:58:19', 1);
INSERT INTO `gaea_report_data_set` VALUES (52, 'log_ajwifiamount', '日志-wifi登陆趋势', '', 'mysql_ajreport', 'SELECT * from aj_report_wifiamount;', '[{\"fail\":15,\"datetime\":\"2021-06-17\",\"success\":210},{\"fail\":43,\"datetime\":\"2021-06-18\",\"success\":234},{\"fail\":28,\"datetime\":\"2021-06-19\",\"success\":199},{\"fail\":80,\"datetime\":\"2021-06-20\",\"success\":260},{\"fail\":45,\"datetime\":\"2021-06-21\",\"success\":245},{\"fail\":26,\"datetime\":\"2021-06-22\",\"success\":216},{\"fail\":10,\"datetime\":\"2021-06-23\",\"success\":150}]', 1, 0, 'admin', '2021-06-30 13:07:35', 'admin', '2021-06-30 13:07:35', 1);
INSERT INTO `gaea_report_data_set` VALUES (53, 'car_ajpro', '汽车-生产趋势', '', 'mysql_ajreport', 'SELECT datetime,sum(manus)as nums from aj_report_manus GROUP BY datetime;', '[{\"datetime\":\"2021-06-18\",\"nums\":252},{\"datetime\":\"2021-06-19\",\"nums\":133},{\"datetime\":\"2021-06-20\",\"nums\":189},{\"datetime\":\"2021-06-21\",\"nums\":219},{\"datetime\":\"2021-06-22\",\"nums\":159}]', 1, 0, 'admin', '2021-06-30 14:23:02', 'admin', '2021-06-30 14:23:02', 1);
INSERT INTO `gaea_report_data_set` VALUES (54, 'car_ajsale', '汽车-销售趋势', '', 'mysql_ajreport', 'SELECT datetime,sum(sales)as nums from aj_report_manus GROUP BY datetime;', '[{\"datetime\":\"2021-06-18\",\"nums\":231},{\"datetime\":\"2021-06-19\",\"nums\":140},{\"datetime\":\"2021-06-20\",\"nums\":170},{\"datetime\":\"2021-06-21\",\"nums\":191},{\"datetime\":\"2021-06-22\",\"nums\":144}]', 1, 0, 'admin', '2021-06-30 14:24:33', 'admin', '2021-06-30 14:24:33', 1);
INSERT INTO `gaea_report_data_set` VALUES (55, 'car_ajproTop5', '汽车-生产TOP5', '', 'mysql_ajreport', 'SELECT brand,sum(manus)as nums from aj_report_manus GROUP BY brand ORDER BY nums desc limit 5;', '[{\"brand\":\"E-30\",\"nums\":215},{\"brand\":\"C-50\",\"nums\":210},{\"brand\":\"D-40\",\"nums\":175},{\"brand\":\"A-100\",\"nums\":100},{\"brand\":\"A-110\",\"nums\":97}]', 1, 0, 'admin', '2021-06-30 14:26:55', 'admin', '2021-06-30 14:26:55', 1);
INSERT INTO `gaea_report_data_set` VALUES (56, 'car_ajsaleTop5', '汽车-销售TOP5', '', 'mysql_ajreport', 'SELECT brand,sum(sales)as nums from aj_report_manus GROUP BY brand ORDER BY nums desc limit 5;', '[{\"brand\":\"E-30\",\"nums\":221},{\"brand\":\"C-50\",\"nums\":189},{\"brand\":\"D-40\",\"nums\":169},{\"brand\":\"A-100\",\"nums\":81},{\"brand\":\"B-100\",\"nums\":80}]', 1, 0, 'admin', '2021-06-30 14:30:00', 'admin', '2021-06-30 14:30:00', 1);
INSERT INTO `gaea_report_data_set` VALUES (57, 'car_ajunsale', '汽车-滞销', '', 'mysql_ajreport', 'SELECT brand,sum(unsales) as nums from aj_report_manus GROUP BY brand ORDER BY nums desc;', '[{\"brand\":\"C-50\",\"nums\":21},{\"brand\":\"A-110\",\"nums\":20},{\"brand\":\"A-100\",\"nums\":19},{\"brand\":\"B-110\",\"nums\":11},{\"brand\":\"E-30\",\"nums\":9},{\"brand\":\"D-40\",\"nums\":6},{\"brand\":\"B-100\",\"nums\":5}]', 1, 0, 'admin', '2021-06-30 14:30:46', 'admin', '2021-06-30 14:30:46', 1);
INSERT INTO `gaea_report_data_set` VALUES (58, 'car_ajrework', '汽车-返修', '', 'mysql_ajreport', 'SELECT brand,sum(rework) as nums from aj_report_manus GROUP BY brand ORDER BY nums desc;', '[{\"brand\":\"E-30\",\"nums\":58},{\"brand\":\"D-40\",\"nums\":27},{\"brand\":\"C-50\",\"nums\":22},{\"brand\":\"A-100\",\"nums\":5},{\"brand\":\"A-110\",\"nums\":5},{\"brand\":\"B-110\",\"nums\":5},{\"brand\":\"B-100\",\"nums\":4}]', 1, 0, 'admin', '2021-06-30 14:31:16', 'admin', '2021-06-30 14:31:16', 1);
INSERT INTO `gaea_report_data_set` VALUES (59, 'car_ajreturn', '汽车-退货', '', 'mysql_ajreport', 'SELECT brand,sum(`return`) as nums from aj_report_manus GROUP BY brand ORDER BY nums desc;', '[{\"brand\":\"E-30\",\"nums\":24},{\"brand\":\"C-50\",\"nums\":10},{\"brand\":\"D-40\",\"nums\":6},{\"brand\":\"A-110\",\"nums\":2},{\"brand\":\"B-110\",\"nums\":1},{\"brand\":\"A-100\",\"nums\":0},{\"brand\":\"B-100\",\"nums\":0}]', 1, 0, 'admin', '2021-06-30 14:31:45', 'admin', '2021-06-30 14:31:45', 1);
INSERT INTO `gaea_report_data_set` VALUES (60, 'acc_ajacc', '访问-访问人数趋势', '', 'mysql_ajreport', 'SELECT datetime,access from aj_report_access ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"access\":1000},{\"datetime\":\"2021-06-19\",\"access\":1200},{\"datetime\":\"2021-06-20\",\"access\":1600},{\"datetime\":\"2021-06-21\",\"access\":2000},{\"datetime\":\"2021-06-22\",\"access\":800}]', 1, 0, 'admin', '2021-06-30 15:15:17', 'admin', '2021-06-30 15:16:04', 2);
INSERT INTO `gaea_report_data_set` VALUES (61, 'acc_ajregister', '访问-注册人数趋势', '', 'mysql_ajreport', 'SELECT datetime,register from aj_report_access ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"register\":12},{\"datetime\":\"2021-06-19\",\"register\":20},{\"datetime\":\"2021-06-20\",\"register\":40},{\"datetime\":\"2021-06-21\",\"register\":100},{\"datetime\":\"2021-06-22\",\"register\":30}]', 1, 0, 'admin', '2021-06-30 15:15:55', 'admin', '2021-06-30 15:15:55', 1);
INSERT INTO `gaea_report_data_set` VALUES (62, 'acc_ajrt', '访问-系统RT', '', 'mysql_ajreport', 'SELECT datetime,rt from aj_report_exper ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"rt\":90.92},{\"datetime\":\"2021-06-19\",\"rt\":100.02},{\"datetime\":\"2021-06-20\",\"rt\":98.89},{\"datetime\":\"2021-06-21\",\"rt\":110.99},{\"datetime\":\"2021-06-22\",\"rt\":89.78}]', 1, 0, 'admin', '2021-06-30 15:16:37', 'admin', '2021-07-01 16:06:00', 2);
INSERT INTO `gaea_report_data_set` VALUES (63, 'acc_ajqps', '访问-系统QPS', '', 'mysql_ajreport', 'SELECT datetime,qps from aj_report_exper ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"qps\":9000},{\"datetime\":\"2021-06-19\",\"qps\":10000},{\"datetime\":\"2021-06-20\",\"qps\":9560},{\"datetime\":\"2021-06-21\",\"qps\":13456},{\"datetime\":\"2021-06-22\",\"qps\":8990}]', 1, 0, 'admin', '2021-06-30 15:19:06', 'admin', '2021-06-30 15:19:06', 1);
INSERT INTO `gaea_report_data_set` VALUES (64, 'acc_ajerror', '访问-系统ERROR', '', 'mysql_ajreport', 'SELECT datetime,error from aj_report_exper ORDER BY datetime;', '[{\"datetime\":\"2021-06-18\",\"error\":2},{\"datetime\":\"2021-06-19\",\"error\":3},{\"datetime\":\"2021-06-20\",\"error\":1},{\"datetime\":\"2021-06-21\",\"error\":9},{\"datetime\":\"2021-06-22\",\"error\":3}]', 1, 0, 'admin', '2021-06-30 15:19:33', 'admin', '2021-06-30 15:19:33', 1);
INSERT INTO `gaea_report_data_set` VALUES (65, 'amount_1', 'amount1', '', 'mysql_ajreport', 'SELECT sum(success)as nums from aj_report_wifiamount;', '[{\"nums\":1514}]', 1, 0, 'admin', '2021-07-05 15:00:18', 'admin', '2021-07-05 15:00:18', 1);
INSERT INTO `gaea_report_data_set` VALUES (66, 'logis_1', '库存', '', 'mysql_ajreport', 'select name,nums from aj_report_common1 order by nums', '[{\"name\":\"上海\",\"nums\":500},{\"name\":\"北京\",\"nums\":600},{\"name\":\"西安\",\"nums\":1000},{\"name\":\"河南\",\"nums\":1200},{\"name\":\"武汉\",\"nums\":2000}]', 1, 0, 'admin', '2021-07-06 15:44:41', 'admin', '2021-07-06 15:54:16', 3);
INSERT INTO `gaea_report_data_set` VALUES (67, 'logis_2', '收车量', '', 'mysql_ajreport', 'select name,nums from aj_report_common2 order by nums;', '[{\"name\":\"武汉\",\"nums\":20},{\"name\":\"河南\",\"nums\":50},{\"name\":\"西安\",\"nums\":70},{\"name\":\"北京\",\"nums\":100},{\"name\":\"上海\",\"nums\":200}]', 1, 0, 'admin', '2021-07-06 16:51:27', 'admin', '2021-07-06 16:51:27', 1);
INSERT INTO `gaea_report_data_set` VALUES (68, 'logis_3', '收发车情况', '', 'mysql_ajreport', 'select time,collect,start from aj_report_common3;', '[{\"start\":8,\"time\":\"1月\",\"collect\":10},{\"start\":12,\"time\":\"2月\",\"collect\":15},{\"start\":22,\"time\":\"3月\",\"collect\":20},{\"start\":28,\"time\":\"4月\",\"collect\":30},{\"start\":35,\"time\":\"5月\",\"collect\":28},{\"start\":38,\"time\":\"6月\",\"collect\":40},{\"start\":100,\"time\":\"7月\",\"collect\":80},{\"start\":120,\"time\":\"8月\",\"collect\":90},{\"start\":89,\"time\":\"9月\",\"collect\":65},{\"start\":50,\"time\":\"10月\",\"collect\":50},{\"start\":34,\"time\":\"11月\",\"collect\":35},{\"start\":23,\"time\":\"12月\",\"collect\":27}]', 1, 0, 'admin', '2021-07-06 17:24:16', 'admin', '2021-07-06 17:30:15', 2);
INSERT INTO `gaea_report_data_set` VALUES (69, 'logis_table', '表格测试', '', 'mysql_ajreport', 'select date,address,name from aj_report_table;', '[{\"date\":\"2021-05-01\",\"address\":\"这是一条测试表格事件1\",\"name\":\"上汽安吉\"},{\"date\":\"2021-05-02\",\"address\":\"这是一条测试表格事件2\",\"name\":\"上汽大通\"},{\"date\":\"2021-05-03\",\"address\":\"这是一条测试表格事件3\",\"name\":\"上汽智行\"},{\"date\":\"2021-05-04\",\"address\":\"这是一条测试表格事件4\",\"name\":\"上汽国际\"},{\"date\":\"2021-05-05\",\"address\":\"这是一条测试表格事件5\",\"name\":\"上汽国内\"},{\"date\":\"2021-05-06\",\"address\":\"这是一条测试表格事件6\",\"name\":\"上汽运输\"},{\"date\":\"2021-05-07\",\"address\":\"这是一条测试表格事件7\",\"name\":\"上汽大众\"}]', 1, 0, 'admin', '2021-07-06 17:56:23', 'admin', '2021-07-07 10:59:34', 4);
INSERT INTO `gaea_report_data_set` VALUES (70, 'per', '百分比', '', 'mysql_ajreport', 'select doub from aj_report_nums where id =2;', '[{\"doub\":55.33}]', 1, 0, 'admin', '2021-07-14 16:17:14', 'admin', '2021-07-15 10:35:21', 2);
INSERT INTO `gaea_report_data_set` VALUES (71, 'barstack_ajreport', '柱状堆叠数据', '', 'mysql_ajreport', 'select time,type,nums from aj_report_barstack', '[{\"time\":\"2021-07-27\",\"type\":\"A\",\"nums\":12},{\"time\":\"2021-07-27\",\"type\":\"B\",\"nums\":20},{\"time\":\"2021-07-27\",\"type\":\"C\",\"nums\":11},{\"time\":\"2021-07-26\",\"type\":\"A\",\"nums\":11},{\"time\":\"2021-07-26\",\"type\":\"B\",\"nums\":30},{\"time\":\"2021-07-25\",\"type\":\"B\",\"nums\":20},{\"time\":\"2021-07-25\",\"type\":\"C\",\"nums\":15}]', 1, 0, 'admin', '2021-07-27 19:50:52', 'admin', '2021-08-16 14:08:51', 7);
INSERT INTO `gaea_report_data_set` VALUES (72, 'compare_ajreport', '柱状对比图示例数据', '', 'mysql_ajreport', 'SELECT time,type,nums from aj_report_comparestack', '[{\"time\":\"2021-08-23\",\"type\":\"成功\",\"nums\":12},{\"time\":\"2021-08-23\",\"type\":\"失败\",\"nums\":1},{\"time\":\"2021-08-24\",\"type\":\"成功\",\"nums\":24},{\"time\":\"2021-08-24\",\"type\":\"失败\",\"nums\":5},{\"time\":\"2021-08-25\",\"type\":\"成功\",\"nums\":13},{\"time\":\"2021-08-25\",\"type\":\"失败\",\"nums\":8},{\"time\":\"2021-08-26\",\"type\":\"成功\",\"nums\":19},{\"time\":\"2021-08-26\",\"type\":\"失败\",\"nums\":3},{\"time\":\"2021-08-27\",\"type\":\"成功\",\"nums\":9},{\"time\":\"2021-08-27\",\"type\":\"失败\",\"nums\":15}]', 1, 0, 'admin', '2021-08-27 13:48:33', 'admin', '2021-08-27 13:48:33', 1);
COMMIT;
-- ----------------------------
@@ -519,13 +519,13 @@ CREATE TABLE `gaea_report_data_source` (
`version` int DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `unique_source_code` (`source_code`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='数据源管理';
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='数据源管理';
-- ----------------------------
-- Records of gaea_report_data_source
-- ----------------------------
BEGIN;
INSERT INTO `gaea_report_data_source` VALUES (1, 'pigx_report_init', 'mysql数据源', '测试数据源,演示使用', 'mysql', '{\"driverName\":\"com.mysql.cj.jdbc.Driver\",\"jdbcUrl\":\"jdbc:mysql://pigx-mysql:3306/pigxx_report_init?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\",\"username\":\"root\",\"password\":\"root\"}', 1, 0, 'admin', '2021-06-30 09:48:46', 'admin', '2021-09-17 15:02:15', 5);
INSERT INTO `gaea_report_data_source` VALUES (1, 'mysql_ajreport', 'mysql数据源', '', 'mysql', '{\"driverName\":\"com.mysql.cj.jdbc.Driver\",\"jdbcUrl\":\"jdbc:mysql://pigx_mysql:3306/pigxx_report_init?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\",\"username\":\"root\",\"password\":\"root\"}', 1, 0, 'admin', '2021-06-30 09:48:46', 'admin', '2021-06-30 09:48:46', 1);
COMMIT;
-- ----------------------------
-8
View File
@@ -1,8 +0,0 @@
USE pigxx_config;
UPDATE `config_info` SET `data_id` = 'application-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = '# 配置文件加密根密码\njasypt:\n encryptor:\n password: pigx\n algorithm: PBEWithMD5AndDES\n iv-generator-classname: org.jasypt.iv.NoIvGenerator\n\nspring:\n redis:\n host: pigx-redis\n servlet:\n multipart:\n max-file-size: 100MB\n max-request-size: 100MB\n cloud:\n sentinel:\n eager: true\n filter:\n url-patterns: /** \n transport:\n dashboard: pigx-sentinel:5020\n\n# 端点对外暴露\nmanagement:\n endpoints:\n web:\n exposure:\n include: \'*\' \n endpoint:\n health:\n show-details: ALWAYS\n# feign 相关配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 20000\n readTimeout: 20000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n#开启灰度\ngray:\n rule:\n enabled: true\n\n# mybatis-plus 配置\nmybatis-plus:\n tenant-enable: ture\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n db-type: oracle\n id-type: auto\n select-strategy: not_empty\n insert-strategy: not_empty\n update-strategy: not_empty\n type-handlers-package: com.pig4cloud.pigx.common.data.handler\n configuration:\n jdbc-type-for-null: null\n# swagger 全局配置\nswagger:\n enabled: true\n title: PigX Swagger API\n license: Powered By PigX\n licenseUrl: https://pig4cloud.com/\n terms-of-service-url: https://pig4cloud.com/\n contact:\n email: wangiegie@gmail.com\n url: https://pig4cloud.com/about.html\n authorization:\n name: oauth2\n auth-regex: ^.*$\n authorization-scope-list:\n - scope: server\n description: server all\n token-url-list:\n - http://${GATEWAY_HOST:pigx-gateway}:${GATEWAY_PORT:9999}/auth/oauth/token\n\n# oauth2 资源服务器相关配置\nsecurity:\n oauth2:\n client:\n ignore-urls:\n - /error\n - /actuator/**\n - /v2/api-docs\n resource:\n loadBalanced: true\n token-info-uri: http://pigx-auth/oauth/check_token', `md5` = '72abb624f721ae5042c48b5a8b2e8801', `gmt_create` = '2019-04-18 02:10:20', `gmt_modified` = '2021-06-30 13:35:38', `src_user` = '', `src_ip` = '172.16.1.60', `app_name` = '', `tenant_id` = '', `c_desc` = '通用配置文件', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 1;
UPDATE `config_info` SET `data_id` = 'pigx-auth-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = '# 数据源\nspring:\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', `md5` = '74f53b71c7799aa754da75662378b93c', `gmt_create` = '2019-04-18 02:11:32', `gmt_modified` = '2021-05-07 23:40:38', `src_user` = NULL, `src_ip` = '10.1.1.143', `app_name` = '', `tenant_id` = '', `c_desc` = '认证中心配置文件', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 2;
USE pigxx;
-- 更新历史菜单排序避免空指针
UPDATE `sys_menu` SET `sort`=1 WHERE ISNULL(`sort`)
+9
View File
@@ -0,0 +1,9 @@
USE pigxx_config;
UPDATE `config_info` SET `data_id` = 'pigx-gateway-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = 'gateway:\n encode-key: \'pigxpigxpigxpigx\'\n\nswagger:\n ignore-providers:\n - pigx-monitor\n - pigx-auth\n - pigx-tx-manager\n\nribbon:\n rule:\n gray-enabled: true\n\n# 验证码相关配置参考: http://t.cn/A647jEdu\naj:\n captcha:\n cache-type: redis\n water-mark: pig4cloud', `md5` = 'cd9f8a6a46e2c128f3b172be76ea3221', `gmt_create` = '2019-04-18 02:13:52', `gmt_modified` = '2021-10-07 15:32:51', `src_user` = 'nacos', `src_ip` = '127.0.0.1', `app_name` = '', `tenant_id` = '', `c_desc` = '', `c_use` = '', `effect` = '', `type` = 'yaml', `c_schema` = '' WHERE `id` = 5;
UPDATE `config_info` SET `data_id` = 'pigx-upms-biz-dev.yml', `group_id` = 'DEFAULT_GROUP', `content` = '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n client-secret: ENC(ltJPpR50wT0oIY9kfOe1Iw==)\n scope: server\n ignore-urls:\n - /error\n - /druid/**\n - /actuator/**\n - /v2/api-docs\n\n# 数据源\nspring:\n autoconfigure:\n exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n druid:\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n url: jdbc:mysql://${MYSQL_HOST:pigx-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pigxx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true\n stat-view-servlet:\n enabled: true\n allow: \"\"\n url-pattern: /druid/*\n #login-username: admin\n #login-password: admin\n filter:\n stat:\n enabled: true\n log-slow-sql: true\n slow-sql-millis: 10000\n merge-sql: false\n wall:\n config:\n multi-statement-allow: true\n\n# 文件系统 (minio测试环境,不可当生产使用)\noss:\n endpoint: http://minio.pig4cloud.com\n access-key: lengleng\n secret-key: lengleng\n bucket-name: tmp\n\n# Logger Config\nlogging:\n level:\n com.pig4cloud.pigx.admin.mapper: debug\n\n# 租户表维护\npigx:\n tenant:\n column: tenant_id\n tables:\n - sys_user\n - sys_role\n - sys_menu\n - sys_dept\n - sys_log\n - sys_social_details\n - sys_dict\n - sys_dict_item\n - sys_public_param\n - sys_log\n - sys_file\n - sys_oauth_client_details', `md5` = 'd80383a5e111c923f65d1edeb5ee18aa', `gmt_create` = '2019-04-18 02:32:44', `gmt_modified` = '2021-10-07 13:28:09', `src_user` = '', `src_ip` = '127.0.0.1', `app_name` = '', `tenant_id` = '', `c_desc` = 'admin 服务配置', `c_use` = 'null', `effect` = 'null', `type` = 'yaml', `c_schema` = 'null' WHERE `id` = 7;
USE pigxx;
-- 更新历史菜单排序避免空指针
INSERT INTO `sys_menu` VALUES (10000, '大屏设计', NULL, 'http://127.0.0.1:9095/', -1, 'icon-shuju', 2, '0', '0', '2019-08-16 10:08:56', '2020-03-24 08:58:53', '0', 1);
INSERT INTO `sys_role_menu` VALUES (1, 10000);
+1 -1
View File
@@ -21,7 +21,7 @@
<mybatis-plus.version>3.4.3.4</mybatis-plus.version>
<dynamic-ds.version>3.4.1</dynamic-ds.version>
<druid.version>1.2.8</druid.version>
<mysql.connector.version>8.0.23</mysql.connector.version>
<mysql.connector.version>8.0.27</mysql.connector.version>
<swagger.core.version>1.5.22</swagger.core.version>
<mp.weixin.version>3.9.0</mp.weixin.version>
<ijpay.version>2.7.6</ijpay.version>
+27
View File
@@ -54,6 +54,33 @@
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<!--undertow容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -0,0 +1,72 @@
package com.anjiplus.template.gaea.business.enums;
/**
* @author zhouhang
* @description EXCEL居中方式
* @date 2021/4/26
*/
public enum ExcelCenterStyleEnum {
/**
* 左对齐
*/
LEFT((short) 1, 1, "左对齐"),
/**
* 右对齐
*/
RIGHT((short) 3, 2, "右对齐"),
/**
* 居中
*/
CENTER((short) 2, 0, "居中"),;
/**
* excel居中code
*/
private final short excelCode;
/**
* 在线文档居中code
*/
private final Integer onlineExcelCode;
/**
* 名称
*/
private final String name;
public Integer getOnlineExcelCode() {
return onlineExcelCode;
}
public String getName() {
return name;
}
public short getExcelCode() {
return excelCode;
}
ExcelCenterStyleEnum(short excelCode, Integer onlineExcelCode, String name) {
this.excelCode = excelCode;
this.onlineExcelCode = onlineExcelCode;
this.name = name;
}
/**
* @param code excel居中样式code
* @return Enum_ExcelCenterStyle
* @description 根据excel居中样式获取在线文档居中样式
* @author zhouhang
* @date 2021/4/26
*/
public static ExcelCenterStyleEnum getExcelCenterStyleByExcelCenterCode(short code) {
for (ExcelCenterStyleEnum value : ExcelCenterStyleEnum.values()) {
if (code == value.getExcelCode()) {
return value;
}
}
return CENTER;
}
}
@@ -0,0 +1,30 @@
package com.anjiplus.template.gaea.business.enums;
/**
* Created by raodeming on 2021/9/3.
*/
public enum ExportTypeEnum {
/** gaea_excel */
GAEA_TEMPLATE_EXCEL("gaea_template_excel", "gaea_template_excel"),
/** gaea_pdf */
GAEA_TEMPLATE_PDF("gaea_template_pdf", "gaea_template_pdf"),;
private String codeValue;
private String codeDesc;
private ExportTypeEnum(String codeValue, String codeDesc) {
this.codeValue = codeValue;
this.codeDesc = codeDesc;
}
public String getCodeValue() {
return this.codeValue;
}
public String getCodeDesc() {
return this.codeDesc;
}
}
@@ -1,16 +1,19 @@
package com.anjiplus.template.gaea.business.modules.accessauthority.dao.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
/**
* @description 权限管理 entity
* @author 木子李·De <lide1202@hotmail.com>
* @date 2019-02-17 08:50:10.009
**/
@TableName(value = "access_authority")
@TableName(keepGlobalPrefix = true, value = "access_authority")
@Data
public class AccessAuthority extends GaeaBaseEntity {
@@ -12,7 +12,7 @@ import java.util.Date;
* @author 木子李·De <lide1202@hotmail.com>
* @date 2019-02-17 08:50:14.136
**/
@TableName(value = "access_role")
@TableName(keepGlobalPrefix = true, value = "access_role")
@Data
public class AccessRole extends GaeaBaseEntity {
@@ -28,4 +28,4 @@ public class AccessRole extends GaeaBaseEntity {
/** 0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG */
private Integer enableFlag;
}
}
@@ -14,7 +14,7 @@ import java.util.Date;
* @author 木子李·De <lide1202@hotmail.com>
* @date 2019-02-17 08:50:14.136
**/
@TableName(value = "access_role_authority")
@TableName(keepGlobalPrefix = true, value = "access_role_authority")
@Data
public class AccessRoleAuthority extends GaeaBaseEntity {
@@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @desc AccessRole 角色管理服务实现
@@ -52,7 +53,16 @@ public class AccessRoleServiceImpl implements AccessRoleService {
List<TreeNode> treeData = accessAuthorityService.getAuthorityTree(operator, true);
// 该角色已选中的菜单及按钮
List<String> checkedKeys = accessRoleMapper.checkedAuthoritys(roleCode);
// List<String> checkedKeys = accessRoleMapper.checkedAuthoritys(roleCode);
LambdaQueryWrapper<AccessRoleAuthority> accessRoleAuthorityWrapper = Wrappers.lambdaQuery();
accessRoleAuthorityWrapper.select(AccessRoleAuthority::getTarget, AccessRoleAuthority::getAction);
accessRoleAuthorityWrapper.eq(AccessRoleAuthority::getRoleCode, roleCode);
List<AccessRoleAuthority> accessRoleAuthorities = accessRoleAuthorityMapper
.selectList(accessRoleAuthorityWrapper);
List<String> checkedKeys = accessRoleAuthorities.stream().map(accessRoleAuthority -> accessRoleAuthority
.getTarget().concat("_").concat(accessRoleAuthority.getAction())).distinct()
.collect(Collectors.toList());
result.put("treeData", treeData);
result.put("checkedKeys", checkedKeys);
@@ -91,4 +101,4 @@ public class AccessRoleServiceImpl implements AccessRoleService {
return true;
}
}
}
@@ -12,7 +12,7 @@ import java.util.Date;
* @author 木子李·De <lide1202@hotmail.com>
* @date 2019-02-17 08:50:11.902
**/
@TableName(value = "access_user")
@TableName(keepGlobalPrefix = true, value = "access_user")
@Data
public class AccessUser extends GaeaBaseEntity {
@@ -46,4 +46,4 @@ public class AccessUser extends GaeaBaseEntity {
/** 最后一次登陆时间 */
private Date lastLoginTime;
}
}
@@ -13,7 +13,7 @@ import java.util.Date;
* @author 木子李·De <lide1202@hotmail.com>
* @date 2019-02-17 08:50:11.902
**/
@TableName(value = "access_user_role")
@TableName(keepGlobalPrefix = true, value = "access_user_role")
@Data
public class AccessUserRole extends GaeaBaseEntity {
@@ -38,4 +38,4 @@ public class AccessUserRole extends GaeaBaseEntity {
@TableField(exist = false)
private Integer version;
}
}
@@ -13,8 +13,10 @@ import com.anji.plus.gaea.utils.GaeaUtils;
import com.anji.plus.gaea.utils.JwtBean;
import com.anjiplus.template.gaea.business.code.ResponseCode;
import com.anjiplus.template.gaea.business.constant.BusinessConstant;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.AccessRoleAuthorityMapper;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.AccessRoleMapper;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.entity.AccessRole;
import com.anjiplus.template.gaea.business.modules.accessrole.dao.entity.AccessRoleAuthority;
import com.anjiplus.template.gaea.business.modules.accessuser.controller.dto.AccessUserDto;
import com.anjiplus.template.gaea.business.modules.accessuser.controller.dto.GaeaUserDto;
import com.anjiplus.template.gaea.business.modules.accessuser.controller.dto.UpdatePasswordDto;
@@ -31,10 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -54,6 +53,9 @@ public class AccessUserServiceImpl implements AccessUserService {
@Autowired
private AccessUserRoleMapper accessUserRoleMapper;
@Autowired
private AccessRoleAuthorityMapper accessRoleAuthorityMapper;
@Value("${customer.user.default.password:'123456'}")
private String defaultPassword;
@@ -168,11 +170,35 @@ public class AccessUserServiceImpl implements AccessUserService {
// 4.读取用户最新人权限主信息
String userKey = String.format(BusinessConstant.GAEA_SECURITY_LOGIN_USER, loginName);
List<String> authorities = accessUserMapper.queryAuthoritiesByLoginName(loginName);
// 为了兼容底层其他数据库,不再写自定义sql
// List<String> authorities =
// accessUserMapper.queryAuthoritiesByLoginName(loginName);
// 当前用户的roleCode集合
LambdaQueryWrapper<AccessUserRole> accessUserWrapper = Wrappers.lambdaQuery();
accessUserWrapper.select(AccessUserRole::getRoleCode);
accessUserWrapper.eq(AccessUserRole::getLoginName, loginName);
List<AccessUserRole> accessUserRoles = accessUserRoleMapper.selectList(accessUserWrapper);
Set<String> roleCodeSet = accessUserRoles.stream().map(AccessUserRole::getRoleCode).collect(Collectors.toSet());
if (roleCodeSet.size() < 1) {
gaeaUser.setAuthorities(new ArrayList<>());
}
else {
LambdaQueryWrapper<AccessRoleAuthority> accessRoleAuthorityWrapper = Wrappers.lambdaQuery();
accessRoleAuthorityWrapper.select(AccessRoleAuthority::getTarget, AccessRoleAuthority::getAction);
accessRoleAuthorityWrapper.in(AccessRoleAuthority::getRoleCode, roleCodeSet);
List<AccessRoleAuthority> accessRoleAuthorities = accessRoleAuthorityMapper
.selectList(accessRoleAuthorityWrapper);
List<String> authorities = accessRoleAuthorities.stream().map(accessRoleAuthority -> accessRoleAuthority
.getTarget().concat(":").concat(accessRoleAuthority.getAction())).distinct()
.collect(Collectors.toList());
gaeaUser.setAuthorities(authorities);
}
gaeaUser.setLoginName(loginName);
gaeaUser.setRealName(accessUser.getRealName());
gaeaUser.setToken(token);
gaeaUser.setAuthorities(authorities);
String gaeaUserStr = JSONObject.toJSONString(gaeaUser);
cacheHelper.stringSetExpire(userKey, gaeaUserStr, 3600);
@@ -72,7 +72,7 @@ public class ReportDashboardController {
* @return
*/
@GetMapping("/export")
@Permission(code = "view", name = "导出大屏")
@Permission(code = "export", name = "导出大屏")
public ResponseEntity<byte[]> exportDashboard(HttpServletRequest request, HttpServletResponse response,
@RequestParam("reportCode") String reportCode,
@RequestParam(value = "showDataSet", required = false, defaultValue = "1") Integer showDataSet) {
@@ -86,7 +86,7 @@ public class ReportDashboardController {
* @return
*/
@PostMapping("/import/{reportCode}")
@Permission(code = "design", name = "导入大屏")
@Permission(code = "import", name = "导入大屏")
public ResponseBean importDashboard(@RequestParam("file") MultipartFile file,
@PathVariable("reportCode") String reportCode) {
reportDashboardService.importDashboard(file, reportCode);
@@ -13,7 +13,7 @@ import lombok.Data;
* @author Raod
* @date 2021-04-12 14:52:21.761
**/
@TableName(value = "gaea_report_dashboard")
@TableName(keepGlobalPrefix = true, value = "gaea_report_dashboard")
@Data
public class ReportDashboard extends GaeaBaseEntity {
@@ -11,20 +11,20 @@ import com.anjiplus.template.gaea.business.modules.dashboard.controller.dto.Char
import com.anjiplus.template.gaea.business.modules.dashboard.controller.dto.ReportDashboardDto;
import com.anjiplus.template.gaea.business.modules.dashboard.controller.dto.ReportDashboardObjectDto;
import com.anjiplus.template.gaea.business.modules.dashboard.dao.ReportDashboardMapper;
import com.anjiplus.template.gaea.business.modules.dashboard.dao.entity.ReportDashboard;
import com.anjiplus.template.gaea.business.modules.dashboard.service.ChartStrategy;
import com.anjiplus.template.gaea.business.modules.dashboard.service.ReportDashboardService;
import com.anjiplus.template.gaea.business.modules.file.entity.GaeaFile;
import com.anjiplus.template.gaea.business.modules.file.service.GaeaFileService;
import com.anjiplus.template.gaea.business.modules.file.util.FileUtils;
import com.anjiplus.template.gaea.business.util.DateUtil;
import com.anjiplus.template.gaea.business.modules.dashboardwidget.controller.dto.ReportDashboardWidgetDto;
import com.anjiplus.template.gaea.business.modules.dashboardwidget.controller.dto.ReportDashboardWidgetValueDto;
import com.anjiplus.template.gaea.business.modules.dashboard.dao.entity.ReportDashboard;
import com.anjiplus.template.gaea.business.modules.dashboardwidget.dao.entity.ReportDashboardWidget;
import com.anjiplus.template.gaea.business.modules.dashboardwidget.service.ReportDashboardWidgetService;
import com.anjiplus.template.gaea.business.modules.dataset.controller.dto.DataSetDto;
import com.anjiplus.template.gaea.business.modules.dataset.controller.dto.OriginalDataDto;
import com.anjiplus.template.gaea.business.modules.dataset.service.DataSetService;
import com.anjiplus.template.gaea.business.modules.file.entity.GaeaFile;
import com.anjiplus.template.gaea.business.modules.file.service.GaeaFileService;
import com.anjiplus.template.gaea.business.modules.file.util.FileUtils;
import com.anjiplus.template.gaea.business.util.DateUtil;
import com.anjiplus.template.gaea.business.util.FileUtil;
import com.anjiplus.template.gaea.business.util.UuidUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -48,6 +48,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -162,7 +163,7 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
.eq(ReportDashboardWidget::getReportCode, reportCode));
List<ReportDashboardWidgetDto> widgets = dto.getWidgets();
List<ReportDashboardWidget> reportDashboardWidgetList = new ArrayList<>();
// List<ReportDashboardWidget> reportDashboardWidgetList = new ArrayList<>();
for (int i = 0; i < widgets.size(); i++) {
ReportDashboardWidget reportDashboardWidget = new ReportDashboardWidget();
ReportDashboardWidgetDto reportDashboardWidgetDto = widgets.get(i);
@@ -181,9 +182,13 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
reportDashboardWidget.setEnableFlag(1);
reportDashboardWidget.setDeleteFlag(0);
reportDashboardWidget.setSort((long) (i + 1));
reportDashboardWidgetList.add(reportDashboardWidget);
// 兼容底层,不采用批量插入
reportDashboardWidgetService.insert(reportDashboardWidget);
// reportDashboardWidgetList.add(reportDashboardWidget);
}
reportDashboardWidgetService.insertBatch(reportDashboardWidgetList);
// reportDashboardWidgetService.insertBatch(reportDashboardWidgetList);
}
@@ -349,6 +354,9 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
}
private String replaceUrl(String imageAddress, Map<String, String> fileMap) {
if (StringUtils.isBlank(imageAddress)) {
return "";
}
String fileId = imageAddress.substring(imageAddress.trim().length() - 36);
String orDefault = fileMap.getOrDefault(fileId, null);
if (StringUtils.isBlank(orDefault)) {
@@ -442,14 +450,18 @@ public class ReportDashboardServiceImpl implements ReportDashboardService, Initi
return data;
}
// 获取时间轴字段和解析时间颗粒度
chartProperties.forEach((key, value) -> {
for (Map.Entry<String, String> entry : chartProperties.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
dto.setParticles(value);
setTimeLineFormat(dto);
if (StringUtils.isNotBlank(dto.getDataTimeFormat())) {
dto.setTimeLineFiled(key);
return;
break;
}
});
}
if (StringUtils.isBlank(dto.getDataTimeFormat())) {
return data;
@@ -11,7 +11,7 @@ import lombok.Data;
* @author Raod
* @date 2021-04-12 15:12:43.724
**/
@TableName(value = "gaea_report_dashboard_widget")
@TableName(keepGlobalPrefix = true, value = "gaea_report_dashboard_widget")
@Data
public class ReportDashboardWidget extends GaeaBaseEntity {
@@ -54,4 +54,7 @@ public class DataSetDto extends GaeaBaseDTO implements Serializable {
private Set<String> setParamList;
/** 指定字段 */
private String fieldLabel;
}
@@ -13,7 +13,7 @@ import lombok.Data;
* @author Raod
* @date 2021-03-18 12:11:31.150755900
**/
@TableName(value = "gaea_report_data_set")
@TableName(keepGlobalPrefix = true, value = "gaea_report_data_set")
@Data
public class DataSet extends GaeaBaseEntity {
@@ -205,12 +205,14 @@ public class DataSetServiceImpl implements DataSetService {
DataSource dataSource = dataSourceService.selectOne("source_code", dataSetDto.getSourceCode());
// 3.参数替换
// 3.1参数校验
log.debug("参数校验替换前:{}", dto.getContextData());
boolean verification = dataSetParamService.verification(dataSetDto.getDataSetParamDtoList(),
dto.getContextData());
if (!verification) {
throw BusinessExceptionBuilder.build(ResponseCode.RULE_FIELDS_CHECK_ERROR);
}
String dynSentence = dataSetParamService.transform(dto.getContextData(), dataSetDto.getDynSentence());
log.debug("参数校验替换后:{}", dto.getContextData());
// 4.获取数据
DataSourceDto dataSourceDto = new DataSourceDto();
BeanUtils.copyProperties(dataSource, dataSourceDto);
@@ -278,6 +280,7 @@ public class DataSetServiceImpl implements DataSetService {
LambdaQueryWrapper<DataSet> wrapper = Wrappers.lambdaQuery();
wrapper.select(DataSet::getSetCode, DataSet::getSetName, DataSet::getSetDesc, DataSet::getId)
.eq(DataSet::getEnableFlag, Enabled.YES.getValue());
wrapper.orderByDesc(DataSet::getUpdateTime);
return dataSetMapper.selectList(wrapper);
}
@@ -286,14 +289,16 @@ public class DataSetServiceImpl implements DataSetService {
if (null == dataSetParamDtoList || dataSetParamDtoList.size() <= 0) {
return;
}
List<DataSetParam> dataSetParamList = new ArrayList<>();
// List<DataSetParam> dataSetParamList = new ArrayList<>();
dataSetParamDtoList.forEach(dataSetParamDto -> {
DataSetParam dataSetParam = new DataSetParam();
BeanUtils.copyProperties(dataSetParamDto, dataSetParam);
dataSetParam.setSetCode(setCode);
dataSetParamList.add(dataSetParam);
// 不采用批量
dataSetParamService.insert(dataSetParam);
// dataSetParamList.add(dataSetParam);
});
dataSetParamService.insertBatch(dataSetParamList);
// dataSetParamService.insertBatch(dataSetParamList);
}
@@ -303,15 +308,17 @@ public class DataSetServiceImpl implements DataSetService {
if (null == dataSetTransformDtoList || dataSetTransformDtoList.size() <= 0) {
return;
}
List<DataSetTransform> dataSetTransformList = new ArrayList<>();
// List<DataSetTransform> dataSetTransformList = new ArrayList<>();
for (int i = 0; i < dataSetTransformDtoList.size(); i++) {
DataSetTransform dataSetTransform = new DataSetTransform();
BeanUtils.copyProperties(dataSetTransformDtoList.get(i), dataSetTransform);
dataSetTransform.setOrderNum(i + 1);
dataSetTransform.setSetCode(setCode);
dataSetTransformList.add(dataSetTransform);
// 不采用批量
dataSetTransformService.insert(dataSetTransform);
// dataSetTransformList.add(dataSetTransform);
}
dataSetTransformService.insertBatch(dataSetTransformList);
// dataSetTransformService.insertBatch(dataSetTransformList);
}
}
@@ -11,7 +11,7 @@ import lombok.Data;
* @author Raod
* @date 2021-03-18 12:12:33.108033200
**/
@TableName(value = "gaea_report_data_set_param")
@TableName(keepGlobalPrefix = true, value = "gaea_report_data_set_param")
@Data
public class DataSetParam extends GaeaBaseEntity {
@@ -37,7 +37,7 @@ public interface DataSetParamService extends GaeaBaseService<DataSetParamParam,
* @param dataSetParamDto
* @return
*/
boolean verification(DataSetParamDto dataSetParamDto);
Object verification(DataSetParamDto dataSetParamDto);
/**
* 参数校验 js脚本
@@ -91,7 +91,7 @@ public class DataSetParamServiceImpl implements DataSetParamService {
* @return
*/
@Override
public boolean verification(DataSetParamDto dataSetParamDto) {
public Object verification(DataSetParamDto dataSetParamDto) {
String validationRules = dataSetParamDto.getValidationRules();
if (StringUtils.isNotBlank(validationRules)) {
@@ -101,7 +101,13 @@ public class DataSetParamServiceImpl implements DataSetParamService {
Invocable invocable = (Invocable) engine;
Object exec = invocable.invokeFunction("verification", dataSetParamDto);
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.convertValue(exec, Boolean.class);
if (exec instanceof Boolean) {
return objectMapper.convertValue(exec, Boolean.class);
}
else {
return objectMapper.convertValue(exec, String.class);
}
}
}
@@ -129,9 +135,21 @@ public class DataSetParamServiceImpl implements DataSetParamService {
String value = contextData.getOrDefault(dataSetParamDto.getParamName(), "").toString();
dataSetParamDto.setSampleItem(value);
}
if (!verification(dataSetParamDto)) {
return false;
Object verification = verification(dataSetParamDto);
if (verification instanceof Boolean) {
if (!(Boolean) verification) {
return false;
}
}
else {
// 将得到的值重新赋值给contextData
if (null != contextData) {
contextData.put(dataSetParamDto.getParamName(), verification);
}
dataSetParamDto.setSampleItem(verification.toString());
}
}
return true;
}
@@ -11,7 +11,7 @@ import lombok.Data;
* @author Raod
* @date 2021-03-18 12:13:15.591309400
**/
@TableName(value = "gaea_report_data_set_transform")
@TableName(keepGlobalPrefix = true, value = "gaea_report_data_set_transform")
@Data
public class DataSetTransform extends GaeaBaseEntity {
@@ -13,7 +13,7 @@ import lombok.Data;
* @author Raod
* @date 2021-03-18 12:09:57.728203200
**/
@TableName(value = "gaea_report_data_source")
@TableName(keepGlobalPrefix = true, value = "gaea_report_data_source")
@Data
public class DataSource extends GaeaBaseEntity {
@@ -33,11 +33,9 @@ import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -76,6 +74,7 @@ public class DataSourceServiceImpl implements DataSourceService {
LambdaQueryWrapper<DataSource> wrapper = Wrappers.lambdaQuery();
wrapper.select(DataSource::getSourceCode, DataSource::getSourceName).eq(DataSource::getEnableFlag,
Enabled.YES.getValue());
wrapper.orderByDesc(DataSource::getUpdateTime);
return dataSourceMapper.selectList(wrapper);
}
@@ -241,7 +240,9 @@ public class DataSourceServiceImpl implements DataSourceService {
columns.forEach(t -> {
try {
Object value = rs.getObject(t);
jo.put(t, value);
// 数据类型转换
Object result = dealResult(value);
jo.put(t, result);
}
catch (SQLException throwable) {
log.error("error", throwable);
@@ -270,6 +271,26 @@ public class DataSourceServiceImpl implements DataSourceService {
}
}
/**
* 解决sql返回值 类型问题 (through reference chain:
* java.util.HashMap["pageData"]->java.util.ArrayList[0]->java.util.HashMap["UPDATE_TIME"]->oracle.sql.TIMESTAMP["stream"])
* @param result
* @return
* @throws SQLException
*/
private Object dealResult(Object result) throws SQLException {
if (null == result) {
return result;
}
String type = result.getClass().getName();
if ("oracle.sql.TIMESTAMP".equals(type)) {
// oracle.sql.TIMESTAMP处理逻辑
return new Date((Long) JSONObject.toJSON(result));
}
return result;
}
/**
* http 执行获取数据
* @param dto
@@ -13,7 +13,7 @@ import java.io.Serializable;
* @author lr
* @since 2021-02-23 10:01:02
*/
@TableName("gaea_dict")
@TableName(keepGlobalPrefix = true, value = "gaea_dict")
public class GaeaDict extends GaeaBaseEntity implements Serializable {
/**
@@ -15,7 +15,7 @@ import java.io.Serializable;
* @author lirui
* @since 2021-03-09 15:52:41
*/
@TableName("gaea_dict_item")
@TableName(keepGlobalPrefix = true, value = "gaea_dict_item")
@UnionUniqueCode(group = BusinessConstant.DICT_ITEM_EXIST_GROUP, code = ResponseCode.DICT_ITEM_REPEAT)
public class GaeaDictItem extends GaeaBaseEntity implements Serializable {
@@ -13,7 +13,7 @@ import java.io.Serializable;
* @author peiyanni
* @since 2021-02-18 14:48:20
*/
@TableName("gaea_file")
@TableName(keepGlobalPrefix = true, value = "gaea_file")
@Data
public class GaeaFile extends GaeaBaseEntity implements Serializable {
@@ -100,7 +100,7 @@ public class GaeaFileServiceImpl implements GaeaFileService {
String newFileName = fileId + suffixName;
// 本地文件保存路径
String filePath = dictPath + newFileName;
String urlPath = fileDownloadPath + File.separator + fileId;
String urlPath = fileDownloadPath + "/" + fileId;
GaeaFile gaeaFile = new GaeaFile();
gaeaFile.setFilePath(filePath);
@@ -111,8 +111,8 @@ public class GaeaFileServiceImpl implements GaeaFileService {
gaeaFileMapper.insert(gaeaFile);
// 写文件 将文件保存/app/dictPath/upload/下
File dest = new File(dictPath + newFileName);
File parentFile = dest.getParentFile();
java.io.File dest = new java.io.File(dictPath + newFileName);
java.io.File parentFile = dest.getParentFile();
if (!parentFile.exists()) {
parentFile.mkdirs();
}
@@ -13,7 +13,7 @@ import lombok.Data;
* @author chenkening
* @date 2021/3/26 10:20
*/
@TableName(value = "gaea_report")
@TableName(keepGlobalPrefix = true, value = "gaea_report")
@Data
public class Report extends GaeaBaseEntity {
@@ -11,8 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* TODO
*
* @author chenkening
* @date 2021/3/26 10:35
*/
@@ -30,12 +28,13 @@ public class ReportServiceImpl implements ReportService {
@Override
public void delReport(ReportDto reportDto) {
deleteById(reportDto.getId());
// 删除gaea_report_excel、gaea_report_dashboard、gaea_report_dashboard_widget
// ...
}
@Override
public void processBeforeOperation(Report entity, BaseOperationEnum operationEnum) throws BusinessException {
// 目前只有大屏一种类型
entity.setReportType("report_screen");
}
}
@@ -0,0 +1,77 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.controller;
import com.anji.plus.gaea.annotation.Permission;
import com.anji.plus.gaea.annotation.log.GaeaAuditLog;
import com.anji.plus.gaea.bean.ResponseBean;
import com.anji.plus.gaea.code.ResponseCode;
import com.anji.plus.gaea.curd.controller.GaeaBaseController;
import com.anji.plus.gaea.curd.service.GaeaBaseService;
import com.anjiplus.template.gaea.business.modules.reportexcel.controller.dto.ReportExcelDto;
import com.anjiplus.template.gaea.business.modules.reportexcel.controller.param.ReportExcelParam;
import com.anjiplus.template.gaea.business.modules.reportexcel.dao.entity.ReportExcel;
import com.anjiplus.template.gaea.business.modules.reportexcel.service.ReportExcelService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author chenkening
* @date 2021/4/13 15:12
*/
@RestController
@Api(tags = "报表表格管理")
@Permission(code = "excelManage", name = "报表管理")
@RequestMapping("/reportExcel")
public class ReportExcelController extends GaeaBaseController<ReportExcelParam, ReportExcel, ReportExcelDto> {
@Autowired
private ReportExcelService reportExcelService;
@Override
public GaeaBaseService<ReportExcelParam, ReportExcel> getService() {
return reportExcelService;
}
@Override
public ReportExcel getEntity() {
return new ReportExcel();
}
@Override
public ReportExcelDto getDTO() {
return new ReportExcelDto();
}
@GetMapping("/detailByReportCode/{reportCode}")
@Permission(code = "query", name = "详情")
@GaeaAuditLog(pageTitle = "详情")
public ResponseBean detailByReportCode(@PathVariable String reportCode) {
ReportExcelDto reportExcelDto = reportExcelService.detailByReportCode(reportCode);
return ResponseBean.builder().data(reportExcelDto).build();
}
@PostMapping("/preview")
@Permission(code = "view", name = "预览")
@GaeaAuditLog(pageTitle = "预览")
public ResponseBean preview(@RequestBody ReportExcelDto reportExcelDto) {
ReportExcelDto result = reportExcelService.preview(reportExcelDto);
return ResponseBean.builder().data(result).build();
}
@PostMapping("/exportExcel")
@Permission(code = "export", name = "导出")
@GaeaAuditLog(pageTitle = "报表导出")
public ResponseBean exportExcel(@RequestBody ReportExcelDto reportExcelDto) {
return ResponseBean.builder().code(ResponseCode.SUCCESS_CODE)
.data(reportExcelService.exportExcel(reportExcelDto)).message("导出成功,请稍后在文件管理中查看").build();
}
// @PostMapping("/exportPdf")
// public ResponseBean exportPdf(@RequestBody ReportExcelDto reportExcelDto) {
// reportExcelService.exportPdf(reportExcelDto);
// return ResponseBean.builder().code(ResponseCode.SUCCESS_CODE)
// .build();
// }
}
@@ -0,0 +1,66 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.controller.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import java.util.List;
/**
* 存储对象类
*
* @author Administrator
*/
@Data
public class GridRecordDataModel {
/**
* 记录序列
*/
Long id;
/**
* 文档ID
*/
String list_id;
/**
* 本记录的行_列
*/
String row_col;
/**
* sheet序号
*/
String index;
/**
* 状态是否当前sheet页
*/
Integer status;
/**
* 块编号 第一块 fblock
*/
String block_id;
/**
* json串
*/
JSONObject json_data;
/**
* 排序位置
*/
Integer order;
/**
* 是否删除
*/
Integer is_delete;
/**
* sheet页数据 未编号分组
*/
List<JSONObject> dataList;
}
@@ -0,0 +1,61 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.controller.dto;
import com.anji.plus.gaea.curd.dto.GaeaBaseDTO;
import lombok.Data;
import java.io.Serializable;
/**
* @author chenkening
* @date 2021/4/13 15:12
*/
@Data
public class ReportExcelDto extends GaeaBaseDTO implements Serializable {
/**
* 报表名称
*/
private String reportName;
/**
* 报表编码
*/
private String reportCode;
/**
* 数据集编码,以|分割
*/
private String setCodes;
/**
* 分组
*/
private String reportGroup;
/**
* 数据集查询参数
*/
private String setParam;
/**
* 报表json字符串
*/
private String jsonStr;
/**
* 报表类型
*/
private String reportType;
/**
* 数据总计
*/
private long total;
/**
* 导出类型
*/
private String exportType;
}
@@ -0,0 +1,16 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.controller.param;
import com.anji.plus.gaea.curd.params.PageParam;
import lombok.Data;
import java.io.Serializable;
/**
* @author chenkening
* @date 2021/4/13 15:12
*/
@Data
public class ReportExcelParam extends PageParam implements Serializable {
}
@@ -0,0 +1,12 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.dao;
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
import com.anjiplus.template.gaea.business.modules.reportexcel.dao.entity.ReportExcel;
/**
* @author chenkening
* @date 2021/4/13 15:11
*/
public interface ReportExcelMapper extends GaeaBaseMapper<ReportExcel> {
}
@@ -0,0 +1,34 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.dao.entity;
import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author chenkening
* @date 2021/4/13 15:11
*/
@TableName(value = "gaea_report_excel")
@Data
public class ReportExcel extends GaeaBaseEntity {
@ApiModelProperty(value = "报表编码")
private String reportCode;
@ApiModelProperty(value = "数据集编码,以|分割")
private String setCodes;
@ApiModelProperty(value = "数据集查询参数")
private String setParam;
@ApiModelProperty(value = "报表json字符串")
private String jsonStr;
@ApiModelProperty(value = "0--已禁用 1--已启用 DIC_NAME=ENABLE_FLAG")
private Integer enableFlag;
@ApiModelProperty(value = "0--未删除 1--已删除 DIC_NAME=DELETE_FLAG")
private Integer deleteFlag;
}
@@ -0,0 +1,39 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.service;
import com.anji.plus.gaea.curd.service.GaeaBaseService;
import com.anjiplus.template.gaea.business.modules.reportexcel.controller.dto.ReportExcelDto;
import com.anjiplus.template.gaea.business.modules.reportexcel.controller.param.ReportExcelParam;
import com.anjiplus.template.gaea.business.modules.reportexcel.dao.entity.ReportExcel;
/**
* TODO
*
* @author chenkening
* @date 2021/4/13 15:14
*/
public interface ReportExcelService extends GaeaBaseService<ReportExcelParam, ReportExcel> {
/**
* 根据报表编码查询详情
* @param reportCode
* @return
*/
ReportExcelDto detailByReportCode(String reportCode);
/**
* 报表预览
* @param reportExcelDto
* @return
*/
ReportExcelDto preview(ReportExcelDto reportExcelDto);
/**
* 导出为excel
* @param reportExcelDto
* @return
*/
Boolean exportExcel(ReportExcelDto reportExcelDto);
// Boolean exportPdf(ReportExcelDto reportExcelDto);
}
@@ -0,0 +1,358 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.anji.plus.gaea.constant.BaseOperationEnum;
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
import com.anji.plus.gaea.exception.BusinessException;
import com.anji.plus.gaea.utils.GaeaAssert;
import com.anji.plus.gaea.utils.GaeaBeanUtils;
import com.anjiplus.template.gaea.business.code.ResponseCode;
import com.anjiplus.template.gaea.business.enums.ExportTypeEnum;
import com.anjiplus.template.gaea.business.modules.dataset.controller.dto.DataSetDto;
import com.anjiplus.template.gaea.business.modules.dataset.controller.dto.OriginalDataDto;
import com.anjiplus.template.gaea.business.modules.dataset.service.DataSetService;
import com.anjiplus.template.gaea.business.modules.file.dao.GaeaFileMapper;
import com.anjiplus.template.gaea.business.modules.file.entity.GaeaFile;
import com.anjiplus.template.gaea.business.modules.report.dao.ReportMapper;
import com.anjiplus.template.gaea.business.modules.report.dao.entity.Report;
import com.anjiplus.template.gaea.business.modules.reportexcel.controller.dto.ReportExcelDto;
import com.anjiplus.template.gaea.business.modules.reportexcel.dao.ReportExcelMapper;
import com.anjiplus.template.gaea.business.modules.reportexcel.dao.entity.ReportExcel;
import com.anjiplus.template.gaea.business.modules.reportexcel.service.ReportExcelService;
import com.anjiplus.template.gaea.business.modules.reportexcel.util.XlsSheetUtil;
import com.anjiplus.template.gaea.business.modules.reportexcel.util.XlsUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.*;
import java.util.*;
/**
* TODO
*
* @author chenkening
* @date 2021/4/13 15:14
*/
@Service
public class ReportExcelServiceImpl implements ReportExcelService {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private ReportExcelMapper reportExcelMapper;
@Autowired
private DataSetService dataSetService;
@Autowired
private ReportMapper reportMapper;
@Value("${customer.file.dist-path:''}")
private String dictPath;
@Value("${customer.file.downloadPath:''}")
private String fileDownloadPath;
@Autowired
private GaeaFileMapper gaeaFileMapper;
@Override
public GaeaBaseMapper<ReportExcel> getMapper() {
return reportExcelMapper;
}
@Override
public ReportExcelDto detailByReportCode(String reportCode) {
QueryWrapper<ReportExcel> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("report_code", reportCode);
ReportExcel reportExcel = reportExcelMapper.selectOne(queryWrapper);
if (reportExcel != null) {
ReportExcelDto dto = new ReportExcelDto();
BeanUtils.copyProperties(reportExcel, dto);
return dto;
}
return null;
}
/**
* 操作前处理
* @param entity 前端传递的对象
* @param operationEnum 操作类型
* @throws BusinessException 阻止程序继续执行或回滚事务
*/
@Override
public void processBeforeOperation(ReportExcel entity, BaseOperationEnum operationEnum) throws BusinessException {
if (operationEnum.equals(BaseOperationEnum.INSERT)) {
String reportCode = entity.getReportCode();
ReportExcel report = this.selectOne("report_code", reportCode);
if (null != report) {
this.deleteById(report.getId());
}
}
}
/**
* 报表预览
*/
@Override
public ReportExcelDto preview(ReportExcelDto reportExcelDto) {
// 根据id查询 报表详情
ReportExcel reportExcel = selectOne("report_code", reportExcelDto.getReportCode());
QueryWrapper<Report> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("report_code", reportExcelDto.getReportCode());
Report report = reportMapper.selectOne(queryWrapper);
GaeaAssert.notNull(reportExcel, ResponseCode.RULE_CONTENT_NOT_EXIST, "reportExcel");
String setParam = reportExcelDto.getSetParam();
GaeaBeanUtils.copyAndFormatter(reportExcel, reportExcelDto);
if (StringUtils.isNotBlank(setParam)) {
reportExcelDto.setSetParam(setParam);
}
reportExcelDto.setReportName(report.getReportName());
// 数据集解析
String jsonStr = analysisReportData(reportExcelDto);
reportExcelDto.setJsonStr(jsonStr);
// reportExcelDto.setTotal(jsonObject.getJSONObject("rows").size());
return reportExcelDto;
}
@Override
public Boolean exportExcel(ReportExcelDto reportExcelDto) {
String reportCode = reportExcelDto.getReportCode();
String exportType = reportExcelDto.getExportType();
logger.error("导出...");
if (exportType.equals(ExportTypeEnum.GAEA_TEMPLATE_EXCEL.getCodeValue())) {
ReportExcelDto report = detailByReportCode(reportCode);
reportExcelDto.setJsonStr(report.getJsonStr());
String jsonStr = analysisReportData(reportExcelDto);
List<JSONObject> lists = (List<JSONObject>) JSON.parse(jsonStr);
OutputStream out;
try {
String fileId = UUID.randomUUID().toString();
String filePath = dictPath + File.separator + fileId + ".xlsx";
String urlPath = fileDownloadPath + java.io.File.separator + fileId;
GaeaFile gaeaFile = new GaeaFile();
gaeaFile.setFilePath(filePath);
gaeaFile.setFileId(fileId);
gaeaFile.setUrlPath(urlPath);
gaeaFile.setFileType("xlsx");
gaeaFile.setFileInstruction(reportCode + ".xlsx");
out = new FileOutputStream(filePath);
XlsUtil.exportXlsFile(out, true, lists);
gaeaFileMapper.insert(gaeaFile);
logger.info("导出成功:{}", gaeaFile);
}
catch (IOException e) {
logger.error("导出失败", e);
}
}
return true;
}
/**
* 解析报表数据,动态插入列表数据和对象数据
*/
private String analysisReportData(ReportExcelDto reportExcelDto) {
String jsonStr = reportExcelDto.getJsonStr();
String setParam = reportExcelDto.getSetParam();
List<JSONObject> dbObjectList = (List<JSONObject>) JSON.parse(jsonStr);
if (dbObjectList != null && dbObjectList.size() > 0) {
for (int x = 0; x < dbObjectList.size(); x++) {
analysisSheetCellData(dbObjectList.get(x), setParam);
}
}
// fastjson $ref 循环引用
return JSONObject.toJSONString(dbObjectList, SerializerFeature.DisableCircularReferenceDetect);
}
/**
* 解析单sheet data
* @param dbObject
*/
private void analysisSheet(JSONObject dbObject, String setParma) {
// data是一个二维数组
if (dbObject.containsKey("data") && null != dbObject.get("data")) {
List<JSONArray> data = (List<JSONArray>) dbObject.get("data");
// 行
for (int r = 0; r < data.size(); r++) {
JSONArray jsonArray = data.get(r);
// 列
for (int c = 0; c < jsonArray.size(); c++) {
// 单元格
JSONObject cell = jsonArray.getJSONObject(c);
if (null != cell && cell.containsKey("v") && StringUtils.isNotBlank(cell.getString("v"))) {
String v = cell.getString("v");
DataSetDto dataSet = getDataSet(v, setParma);
if (null != dataSet) {
OriginalDataDto originalDataDto = dataSetService.getData(dataSet);
if (null != originalDataDto.getData()) {
if (originalDataDto.getData().size() == 1) {
// 对象
JSONObject jsonObject = originalDataDto.getData().get(0);
String fieldLabel = jsonObject.getString(dataSet.getFieldLabel());
String replace = v.replace("#{".concat(dataSet.getSetCode()).concat(".")
.concat(dataSet.getFieldLabel()).concat("}"), fieldLabel);
dbObject.getJSONArray("data").getJSONArray(r).getJSONObject(c).put("v", replace);
dbObject.getJSONArray("data").getJSONArray(r).getJSONObject(c).put("m", replace);
}
else {
// 集合
JSONObject jsonObject = originalDataDto.getData().get(0);
String fieldLabel = jsonObject.getString(dataSet.getFieldLabel());
String replace = v.replace("#{".concat(dataSet.getSetCode()).concat(".")
.concat(dataSet.getFieldLabel()).concat("}"), fieldLabel);
dbObject.getJSONArray("data").getJSONArray(r).getJSONObject(c).put("v", replace);
dbObject.getJSONArray("data").getJSONArray(r).getJSONObject(c).put("m", replace);
}
}
}
}
}
}
System.out.println("aaaa");
}
}
/**
* 解析单sheet celldata
* @param dbObject
*/
private void analysisSheetCellData(JSONObject dbObject, String setParam) {
// 清空data值
dbObject.remove("data");
// celldata是一个一维数组
if (dbObject.containsKey("celldata") && null != dbObject.get("celldata")) {
List<JSONObject> celldata = new ArrayList<>();
celldata.addAll((List<JSONObject>) dbObject.get("celldata"));
// 遍历已存在的单元格,查看是否存在动态参数
for (int i = 0; i < celldata.size(); i++) {
// 单元格对象
JSONObject cellObj = celldata.get(i);
// fastjson深拷贝问题
String cellStr = cellObj.toJSONString();
// 行号
Integer r = cellObj.getInteger("r");
// 列号
Integer c = cellObj.getInteger("c");
JSONObject cell = cellObj.getJSONObject("v");
if (null != cell && cell.containsKey("v") && StringUtils.isNotBlank(cell.getString("v"))) {
String v = cell.getString("v");
DataSetDto dataSet = getDataSet(v, setParam);
if (null != dataSet) {
OriginalDataDto originalDataDto = dataSetService.getData(dataSet);
if (null != originalDataDto.getData()) {
List<JSONObject> data = originalDataDto.getData();
for (int j = 0; j < data.size(); j++) {
if (j == 0) {
// 处理当前行
// 第一行,作为渲染参照数据
JSONObject jsonObject = data.get(j);
String fieldLabel = jsonObject.getString(dataSet.getFieldLabel());
String replace = v.replace("#{".concat(dataSet.getSetCode()).concat(".")
.concat(dataSet.getFieldLabel()).concat("}"), fieldLabel);
dbObject.getJSONArray("celldata").getJSONObject(i).getJSONObject("v").put("v",
replace);
dbObject.getJSONArray("celldata").getJSONObject(i).getJSONObject("v").put("m",
replace);
}
else {
// 新增的行数据
JSONObject addCell = data.get(j);
// 字段
String fieldLabel = addCell.getString(dataSet.getFieldLabel());
String replace = v.replace("#{".concat(dataSet.getSetCode()).concat(".")
.concat(dataSet.getFieldLabel()).concat("}"), fieldLabel);
// 转字符串,解决深拷贝问题
JSONObject addCellData = JSONObject.parseObject(cellStr);
addCellData.put("r", r + j);
addCellData.put("c", c);
addCellData.getJSONObject("v").put("v", replace);
addCellData.getJSONObject("v").put("m", replace);
dbObject.getJSONArray("celldata").add(addCellData);
}
}
}
}
}
}
}
}
/**
* 解析 #{xxxx.xxxxx} 数据
* @param v
* @return
*/
private DataSetDto getDataSet(String v, String setParam) {
DataSetDto dto = new DataSetDto();
if (v.contains("#{") && v.contains("}")) {
int start = v.indexOf("#{") + 2;
int end = v.indexOf("}");
if (start < end) {
String substring = v.substring(start, end);
if (substring.contains(".")) {
String[] split = substring.split("\\.");
dto.setSetCode(split[0]);
dto.setFieldLabel(split[1]);
getContextData(setParam, dto);
return dto;
}
}
}
return null;
}
/**
* 动态参数替换
* @param setParam
* @param dto
*/
private void getContextData(String setParam, DataSetDto dto) {
if (StringUtils.isNotBlank(setParam)) {
JSONObject setParamJson = JSONObject.parseObject(setParam);
Map<String, Object> map = new HashMap<>();
// 查询条件
if (setParamJson.containsKey(dto.getSetCode())) {
JSONObject paramCondition = setParamJson.getJSONObject(dto.getSetCode());
paramCondition.forEach(map::put);
}
dto.setContextData(map);
}
}
}
@@ -0,0 +1,137 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.util;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFPalette;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Color;
import org.apache.poi.xssf.usermodel.XSSFColor;
/**
* 来自:https://github.com/mengshukeji/LuckysheetServer
*
* @author Administrator
*/
@Slf4j
public class ColorUtil {
private static final String S = "0123456789ABCDEF";
public static Short getColorByStr(String colorStr) {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFPalette palette = workbook.getCustomPalette();
if (colorStr.toLowerCase().startsWith("rgb")) {
colorStr = colorStr.toLowerCase().replace("rgb(", "").replace(")", "");
String[] colors = colorStr.split(",");
if (colors.length == 3) {
try {
int red = Integer.parseInt(colors[0].trim(), 16);
int green = Integer.parseInt(colors[1].trim(), 16);
int blue = Integer.parseInt(colors[2].trim(), 16);
HSSFColor hssfColor = palette.findSimilarColor(red, green, blue);
return hssfColor.getIndex();
}
catch (Exception ex) {
log.error(ex.toString());
return null;
}
}
return null;
}
if (colorStr.equals("#000")) {
colorStr = "#000000";
}
if (colorStr != null && colorStr.length() >= 6) {
try {
if (colorStr.length() == 8) {
colorStr = colorStr.substring(2);
}
if (colorStr.length() == 7) {
colorStr = colorStr.substring(1);
}
String str2 = colorStr.substring(0, 2);
String str3 = colorStr.substring(2, 4);
String str4 = colorStr.substring(4, 6);
int red = Integer.parseInt(str2, 16);
int green = Integer.parseInt(str3, 16);
int blue = Integer.parseInt(str4, 16);
HSSFColor hssfColor = palette.findSimilarColor(red, green, blue);
return hssfColor.getIndex();
}
catch (Exception ex) {
log.error(ex.toString());
return null;
}
}
return null;
}
/**
* RGB转换成十六进制
* @param r
* @param g
* @param b
* @return
*/
public static String convertRGBToHex(short r, short g, short b) {
String hex = "";
if (r >= 0 && r < 256 && g >= 0 && g < 256 && b >= 0 && b < 256) {
int x, y, z;
x = r % 16;
r = (short) ((r - x) / 16);
y = g % 16;
g = (short) ((g - y) / 16);
z = b % 16;
b = (short) ((b - z) / 16);
hex = "#" + S.charAt(r) + S.charAt(x) + S.charAt(g) + S.charAt(y) + S.charAt(b) + S.charAt(z);
}
return hex;
}
/**
* @param cell 单元格
* @return 转换RGB颜色值
* @description tint转换RBG
* @author zhouhang
* @date 2021/4/26
*/
public static String getFillColorHex(Cell cell) {
String fillColorString = null;
if (cell != null) {
CellStyle cellStyle = cell.getCellStyle();
Color color = cellStyle.getFillForegroundColorColor();
if (color instanceof XSSFColor) {
XSSFColor xssfColor = (XSSFColor) color;
byte[] argb = xssfColor.getARGB();
fillColorString = convertRGBToHex((short) (argb[1] & 0xFF), (short) (argb[2] & 0xFF),
(short) (argb[3] & 0xFF));
// TODO: 2021/4/26 添加透明度
// if (xssfColor.hasTint()) {
// fillColorString += " * " + xssfColor.getTint();
// byte[] rgb = xssfColor.getRGBWithTint();
// fillColorString += " = [" + (argb[0] & 0xFF) + ", " + (rgb[0] & 0xFF) +
// ", " + (rgb[1] & 0xFF) + ", " + (rgb[2] & 0xFF) + "]";
// }
}
else if (color instanceof HSSFColor) {
HSSFColor hssfColor = (HSSFColor) color;
short[] rgb = hssfColor.getTriplet();
fillColorString = convertRGBToHex((short) (rgb[0] & 0xFF), (short) (rgb[1] & 0xFF),
(short) (rgb[2] & 0xFF));
// 去除黑色背景
if (StringUtils.equals("#000000", fillColorString)) {
return null;
}
}
}
return fillColorString;
}
}
@@ -0,0 +1,324 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.util;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 来自:https://github.com/mengshukeji/LuckysheetServer
*
* @author cr
*/
public class ConstantUtil {
/**
* 导出。字体转换
*/
public static Map<Integer, String> ff_IntegerToName = new HashMap<Integer, String>();
/**
* 导入。字体转换
*/
public static Map<String, Integer> ff_NameToInteger = new HashMap<String, Integer>();
/**
* 导入 36种数字格式。注意官方文档的编号不是连续的,22后面直接是37,所以数组中间补14个空值
*/
public static String[] number_type = null;
/**
* 导入 36种格式的定义字符串
*/
public static String[] number_format = null;
/**
* 数据类型
*/
public static Map<String, Integer> number_format_map = new HashMap<String, Integer>();
static {
// 格式
nf();
// 字体
ff();
}
private static void nf() {
number_type = new String[] { "General", "Decimal", "Decimal", "Decimal", "Decimal", "Currency", "Currency",
"Currency", "Currency", "Percentage", "Percentage", "Scientific", "Fraction", "Fraction", "Date",
"Date", "Date", "Date", "Time", "Time", "Time", "Time", "Time", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "Accounting", "Accounting", "Accounting", "Accounting", "Accounting", "Currency",
"Accounting", "Currency", "Time", "Time", "Time", "Scientific", "Text" };
number_format = new String[] { "General", "0", "0.00", "#,##0", "#,##0.00", "$#,##0;($#,##0)",
"$#,##0;[Red]($#,##0)", "$#,##0.00;($#,##0.00)", "$#,##0.00;[Red]($#,##0.00)", "0%", "0.00%",
"0.00E+00", "# ?/?", "# ??/??", "m/d/yyyy", "d-mmm-yy", "d-mmm", "mmm-yy", "h:mm AM/PM",
"h:mm:ss AM/PM", "h:mm", "h:mm:ss", "m/d/yyyy h:mm", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "#,##0;(#,##0)", "#,##0;[Red](#,##0)", "#,##0.00;(#,##0.00)", "#,##0.00;[Red](#,##0.00)",
"_ * #,##0_ ;_ * (#,##0)_ ;_ * \"-\"_ ;_ @_", "_ $* #,##0_ ;_ $* (#,##0)_ ;_ $* \"-\"_ ;_ @_",
"_ * #,##0.00_ ;_ * (#,##0.00)_ ;_ * \"-\"??_ ;_ @_",
"_ $* #,##0.00_ ;_ $* (#,##0.00)_ ;_ $* \"-\"??_ ;_ @_", "mm:ss", "[h]:mm:ss", "mm:ss.0", "##0.0E+00",
"@" };
for (int x = 0; x < number_format.length; x++) {
if (number_format[x].length() > 0) {
number_format_map.put(number_format[x].toLowerCase(), x);
}
}
}
private static void ff() {
// 0 微软雅黑、1 宋体(Song)、2 黑体(ST Heiti)、3 楷体(ST Kaiti)、 4仿宋(ST FangSong)、 5 新宋体(ST
// Song)、
// 6 华文新魏、 7华文行楷、 8 华文隶书、 9 Arial、 10 Times New Roman 、11 Tahoma 、12 Verdana
ff_IntegerToName.put(0, "微软雅黑");
ff_IntegerToName.put(1, "宋体");
ff_IntegerToName.put(2, "黑体");
ff_IntegerToName.put(3, "楷体");
ff_IntegerToName.put(4, "仿宋");
ff_IntegerToName.put(5, "新宋体");
ff_IntegerToName.put(6, "华文新魏");
ff_IntegerToName.put(7, "华文行楷");
ff_IntegerToName.put(8, "华文隶书");
ff_IntegerToName.put(9, "Arial");
ff_IntegerToName.put(10, "Times New Roman");
ff_IntegerToName.put(11, "Tahoma");
ff_IntegerToName.put(12, "Verdana");
// 0 微软雅黑、1 宋体(Song)、2 黑体(ST Heiti)、3 楷体(ST Kaiti)、 4仿宋(ST FangSong)、 5 新宋体(ST
// Song)、
// 6 华文新魏、 7华文行楷、 8 华文隶书、 9 Arial、 10 Times New Roman 、11 Tahoma 、12 Verdana
ff_NameToInteger.put("微软雅黑", 0);
ff_NameToInteger.put("宋体", 1);
ff_NameToInteger.put("Song", 1);
ff_NameToInteger.put("黑体", 2);
ff_NameToInteger.put("ST Heiti", 2);
ff_NameToInteger.put("楷体", 3);
ff_NameToInteger.put("ST Kaiti", 3);
ff_NameToInteger.put("仿宋", 4);
ff_NameToInteger.put("ST FangSong", 4);
ff_NameToInteger.put("新宋体", 5);
ff_NameToInteger.put("ST Song", 5);
ff_NameToInteger.put("华文新魏", 6);
ff_NameToInteger.put("华文行楷", 7);
ff_NameToInteger.put("华文隶书", 8);
ff_NameToInteger.put("Arial", 9);
ff_NameToInteger.put("Times New Roman", 10);
ff_NameToInteger.put("Tahoma", 11);
ff_NameToInteger.put("Verdana", 12);
}
private static void borderType() {
// "border-left" | "border-right" | "border-top" | "border-bottom" | "border-all"
// | "border-outside" | "border-inside" | "border-horizontal" | "border-vertical"
// | "border-none"
ff_IntegerToName.put(0, "微软雅黑");
ff_IntegerToName.put(1, "宋体");
ff_IntegerToName.put(2, "黑体");
ff_IntegerToName.put(3, "楷体");
ff_IntegerToName.put(4, "仿宋");
ff_IntegerToName.put(5, "新宋体");
ff_IntegerToName.put(6, "华文新魏");
ff_IntegerToName.put(7, "华文行楷");
ff_IntegerToName.put(8, "华文隶书");
ff_IntegerToName.put(9, "Arial");
ff_IntegerToName.put(10, "Times New Roman");
ff_IntegerToName.put(11, "Tahoma");
ff_IntegerToName.put(12, "Verdana");
// 0 微软雅黑、1 宋体(Song)、2 黑体(ST Heiti)、3 楷体(ST Kaiti)、 4仿宋(ST FangSong)、 5 新宋体(ST
// Song)、
// 6 华文新魏、 7华文行楷、 8 华文隶书、 9 Arial、 10 Times New Roman 、11 Tahoma 、12 Verdana
ff_NameToInteger.put("微软雅黑", 0);
ff_NameToInteger.put("宋体", 1);
ff_NameToInteger.put("Song", 1);
ff_NameToInteger.put("黑体", 2);
ff_NameToInteger.put("ST Heiti", 2);
ff_NameToInteger.put("楷体", 3);
ff_NameToInteger.put("ST Kaiti", 3);
ff_NameToInteger.put("仿宋", 4);
ff_NameToInteger.put("ST FangSong", 4);
ff_NameToInteger.put("新宋体", 5);
ff_NameToInteger.put("ST Song", 5);
ff_NameToInteger.put("华文新魏", 6);
ff_NameToInteger.put("华文行楷", 7);
ff_NameToInteger.put("华文隶书", 8);
ff_NameToInteger.put("Arial", 9);
ff_NameToInteger.put("Times New Roman", 10);
ff_NameToInteger.put("Tahoma", 11);
ff_NameToInteger.put("Verdana", 12);
}
/**
* 按自定义格式
* @param fa
* @return
*/
public static Integer getNumberFormatMap(String fa) {
if (number_format_map.containsKey(fa.toLowerCase())) {
return number_format_map.get(fa.toLowerCase());
}
return -1;
}
/**
* 获取poi表格垂直对齐 0 中间、1 上、2下
* @param i
* @return
*/
public static VerticalAlignment getVerticalType(int i) {
if (0 == i) {
return VerticalAlignment.CENTER;
}
else if (1 == i) {
return VerticalAlignment.TOP;
}
else if (2 == i) {
return VerticalAlignment.BOTTOM;
}
// 默认居中
return VerticalAlignment.CENTER;
}
/**
* 获取poi表格水平对齐 0 居中、1 左、2右
* @param i
* @return
*/
public static HorizontalAlignment getHorizontaltype(int i) {
if (2 == i) {
return HorizontalAlignment.RIGHT;
}
else if (1 == i) {
return HorizontalAlignment.LEFT;
}
else if (0 == i) {
return HorizontalAlignment.CENTER;
}
// 默认右
return HorizontalAlignment.RIGHT;
}
/**
* 文字旋转 文字旋转角度(0=0,1=45,2=-45,3=竖排文字,4=90,5=-90)
* @param i
* @return
*/
public static short getRotation(int i) {
short t = 0;
switch (i) {
case 1:
t = 45;
break;
case 2:
t = -45;
break;
case 3:
t = 255;
break;
case 4:
t = 90;
break;
case 5:
t = -90;
break;
default:
t = 0;
}
return t;
}
private static SimpleDateFormat df_DateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static Date stringToDateTime(String date) {
if (date == null || date.length() == 0) {
return null;
}
try {
return df_DateTime.parse(date);
}
catch (ParseException e) {
return null;
}
}
private static SimpleDateFormat df_Date = new SimpleDateFormat("yyyy-MM-dd");
public static Date stringToDate(String date) {
if (date == null || date.length() == 0) {
return null;
}
try {
return df_Date.parse(date);
}
catch (ParseException e) {
return null;
}
}
public static Date toDate(String numberString) {
try {
Double _d = Double.parseDouble(numberString);
String _s = toDate(_d, "yyyy-MM-dd HH:mm:ss");
if (numberString.indexOf(".") > -1) {
return stringToDate(_s);
}
else {
return stringToDateTime(_s);
}
}
catch (Exception ex) {
System.out.println(ex.toString() + " " + numberString);
}
return null;
}
private static final int SECONDS_PER_MINUTE = 60;
private static final int MINUTES_PER_HOUR = 60;
private static final int HOURS_PER_DAY = 24;
private static final int SECONDS_PER_DAY = (HOURS_PER_DAY * MINUTES_PER_HOUR * SECONDS_PER_MINUTE);
/**
* 一天的毫秒数
**/
private static final long DAY_MILLISECONDS = SECONDS_PER_DAY * 1000L;
/**
* 转换方法
*
* @parma numberString 要转换的浮点数
* @parma format 要获得的格式 例如"hh:mm:ss"
**/
public static String toDate(double numberString, String format) {
SimpleDateFormat sdFormat = new SimpleDateFormat(format);
int wholeDays = (int) Math.floor(numberString);
int millisecondsInday = (int) ((numberString - wholeDays) * DAY_MILLISECONDS + 0.5);
Calendar calendar = new GregorianCalendar();
setCalendar(calendar, wholeDays, millisecondsInday, false);
return sdFormat.format(calendar.getTime());
}
private static void setCalendar(Calendar calendar, int wholeDays, int millisecondsInDay, boolean use1904windowing) {
int startYear = 1900;
int dayAdjust = -1; // Excel thinks 2/29/1900 is a valid date, which it isn't
if (use1904windowing) {
startYear = 1904;
dayAdjust = 1; // 1904 date windowing uses 1/2/1904 as the first day
}
else if (wholeDays < 61) {
// Date is prior to 3/1/1900, so adjust because Excel thinks 2/29/1900 exists
// If Excel date == 2/29/1900, will become 3/1/1900 in Java representation
dayAdjust = 0;
}
calendar.set(startYear, 0, wholeDays + dayAdjust, 0, 0, 0);
calendar.set(GregorianCalendar.MILLISECOND, millisecondsInDay);
}
}
@@ -0,0 +1,33 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.util;
public class MSExcelUtil {
public static final short EXCEL_COLUMN_WIDTH_FACTOR = 256;
public static final short EXCEL_ROW_HEIGHT_FACTOR = 20;
public static final int UNIT_OFFSET_LENGTH = 7;
public static final int[] UNIT_OFFSET_MAP = new int[] { 0, 36, 73, 109, 146, 182, 219 };
public static short pixel2WidthUnits(int pxs) {
short widthUnits = (short) (EXCEL_COLUMN_WIDTH_FACTOR * (pxs / UNIT_OFFSET_LENGTH));
widthUnits += UNIT_OFFSET_MAP[(pxs % UNIT_OFFSET_LENGTH)];
return widthUnits;
}
public static int widthUnits2Pixel(short widthUnits) {
int pixels = (widthUnits / EXCEL_COLUMN_WIDTH_FACTOR) * UNIT_OFFSET_LENGTH;
int offsetWidthUnits = widthUnits % EXCEL_COLUMN_WIDTH_FACTOR;
pixels += Math.floor((float) offsetWidthUnits / ((float) EXCEL_COLUMN_WIDTH_FACTOR / UNIT_OFFSET_LENGTH));
return pixels;
}
public static int heightUnits2Pixel(short heightUnits) {
int pixels = (heightUnits / EXCEL_ROW_HEIGHT_FACTOR);
int offsetWidthUnits = heightUnits % EXCEL_ROW_HEIGHT_FACTOR;
pixels += Math.floor((float) offsetWidthUnits / ((float) EXCEL_ROW_HEIGHT_FACTOR / UNIT_OFFSET_LENGTH));
return pixels;
}
}
@@ -0,0 +1,861 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import java.util.*;
/**
* 来自:https://github.com/mengshukeji/LuckysheetServer sheet操作
*
* @author Administrator
*/
@Slf4j
public class XlsSheetUtil {
/**
* 导出sheet
* @param wb
* @param sheetNum
* @param dbObject
*/
public static void exportSheet(Workbook wb, int sheetNum, JSONObject dbObject) {
Sheet sheet = wb.createSheet();
// 设置sheet位置,名称
if (dbObject.containsKey("name") && dbObject.get("name") != null) {
wb.setSheetName(sheetNum, dbObject.get("name").toString());
}
else {
wb.setSheetName(sheetNum, "sheet" + sheetNum);
}
// 是否隐藏
if (dbObject.containsKey("hide") && dbObject.get("hide").toString().equals("1")) {
wb.setSheetHidden(sheetNum, true);
}
// 是否当前选中页
if (dbObject.containsKey("status") && dbObject.get("status").toString().equals("1")) {
sheet.setSelected(true);
}
// 循环数据
if (dbObject.containsKey("celldata") && dbObject.get("celldata") != null) {
// 取到所有单元格集合
List<JSONObject> cells_json = (List<JSONObject>) dbObject.get("celldata");
Map<Integer, List<JSONObject>> cellMap = cellGroup(cells_json);
// 循环每一行
for (Integer r : cellMap.keySet()) {
Row row = sheet.createRow(r);
// 循环每一列
for (JSONObject col : cellMap.get(r)) {
createCell(wb, sheet, row, col);
}
}
}
if (dbObject.containsKey("config") && dbObject.getJSONObject("config").containsKey("borderInfo")) {
JSONArray borderInfo = dbObject.getJSONObject("config").getJSONArray("borderInfo");
setCellBoard(wb, borderInfo, sheet);
}
setColumAndRow(dbObject, sheet);
}
/**
* 每一个单元格
* @param row
* @param dbObject
*/
private static void createCell(Workbook wb, Sheet sheet, Row row, JSONObject dbObject) {
if (dbObject.containsKey("c")) {
Integer c = getStrToInt(dbObject.get("c"));
if (c != null) {
Cell cell = row.createCell(c);
// 取单元格中的v_json
if (dbObject.containsKey("v")) {
// 获取v对象
Object obj = dbObject.get("v");
if (obj == null) {
// 没有内容
return;
}
// 如果v对象直接是字符串
if (obj instanceof String) {
if (((String) obj).length() > 0) {
cell.setCellValue(obj.toString());
}
return;
}
// 转换v为对象(v是一个对象)
JSONObject v_json = (JSONObject) obj;
// 样式
CellStyle style = wb.createCellStyle();
cell.setCellStyle(style);
// 合并单元格
// 参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
// CellRangeAddress region1 = new CellRangeAddress(rowNumber,
// rowNumber, (short) 0, (short) 11);
// mc 合并单元格
if (v_json.containsKey("mc")) {
// 是合并的单元格
JSONObject mc = v_json.getJSONObject("mc");
if (mc.containsKey("rs") && mc.containsKey("cs")) {
// 合并的第一个单元格
if (mc.containsKey("r") && mc.containsKey("c")) {
Integer _rs = getIntByDBObject(mc, "rs") - 1;
Integer _cs = getIntByDBObject(mc, "cs") - 1;
Integer _r = getIntByDBObject(mc, "r");
Integer _c = getIntByDBObject(mc, "c");
CellRangeAddress region = new CellRangeAddress(_r.shortValue(),
(_r.shortValue() + _rs.shortValue()), _c.shortValue(),
(_c.shortValue() + _cs.shortValue()));
sheet.addMergedRegion(region);
}
}
else {
// 不是合并的第一个单元格
return;
}
}
// 取v值 (在数据类型中处理)
// ct 单元格值格式 (fa,t)
setFormatByCt(wb, cell, style, v_json);
// font设置
setCellStyleFont(wb, style, v_json);
// bg 背景颜色
if (v_json.containsKey("bg")) {
String _v = getByDBObject(v_json, "bg");
Short _color = ColorUtil.getColorByStr(_v);
if (_color != null) {
style.setFillForegroundColor(_color);
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
}
}
// vt 垂直对齐 垂直对齐方式(0=居中,1=上,2=下)
if (v_json.containsKey("vt")) {
Integer _v = getIntByDBObject(v_json, "vt");
if (_v != null && _v >= 0 && _v <= 2) {
style.setVerticalAlignment(ConstantUtil.getVerticalType(_v));
}
}
else {
// 默认设置居中
style.setVerticalAlignment(ConstantUtil.getVerticalType(0));
}
// ht 水平对齐 水平对齐方式(0=居中,1=左对齐,2=右对齐)
if (v_json.containsKey("ht")) {
Integer _v = getIntByDBObject(v_json, "ht");
if (_v != null && _v >= 0 && _v <= 2) {
style.setAlignment(ConstantUtil.getHorizontaltype(_v));
}
}
else {
// 默认设置左对齐
style.setAlignment(ConstantUtil.getHorizontaltype(1));
}
// tr 文字旋转 文字旋转角度(0=0,1=45,2=-45,3=竖排文字,4=90,5=-90)
if (v_json.containsKey("tr")) {
Integer _v = getIntByDBObject(v_json, "tr");
if (_v != null) {
style.setRotation(ConstantUtil.getRotation(_v));
}
}
// tb 文本换行 0 截断、1溢出、2 自动换行
// 2:setTextWrapped 0和1:IsTextWrapped = true
if (v_json.containsKey("tb")) {
Integer _v = getIntByDBObject(v_json, "tb");
if (_v != null) {
if (_v >= 0 && _v <= 1) {
style.setWrapText(false);
}
else {
style.setWrapText(true);
}
}
}
// f 公式
if (v_json.containsKey("f")) {
String _v = getByDBObject(v_json, "f");
if (_v.length() > 0) {
try {
if (_v.startsWith("=")) {
cell.setCellFormula(_v.substring(1));
}
else {
cell.setCellFormula(_v);
}
}
catch (Exception ex) {
log.error("公式 {};Error:{}", _v, ex.toString());
}
}
}
}
}
}
}
/**
* 设置边框
* @param borderInfo
* @param sheet
*/
private static void setCellBoard(Workbook wb, JSONArray borderInfo, Sheet sheet) {
// 一定要通过 cell.getCellStyle() 不然的话之前设置的样式会丢失
// 设置边框
for (int i = 0; i < borderInfo.size(); i++) {
JSONObject borderInfoObject = (JSONObject) borderInfo.get(i);
if (borderInfoObject.get("rangeType").equals("cell")) {// 单个单元格
JSONObject borderValueObject = borderInfoObject.getJSONObject("value");
JSONObject l = borderValueObject.getJSONObject("l");
JSONObject r = borderValueObject.getJSONObject("r");
JSONObject t = borderValueObject.getJSONObject("t");
JSONObject b = borderValueObject.getJSONObject("b");
int row_ = borderValueObject.getInteger("row_index");
int col_ = borderValueObject.getInteger("col_index");
Row row = sheet.getRow(row_);
if (null == row) {
row = sheet.createRow(row_);
}
Cell cell = row.getCell(col_);
CellStyle style;
if (null == cell) {
style = wb.createCellStyle();
cell = row.createCell(col_);
cell.setCellStyle(style);
}
else {
style = cell.getCellStyle();
}
if (l != null) {
style.setBorderLeft(BorderStyle.valueOf(l.getShort("style"))); // 左边框
Short color = ColorUtil.getColorByStr(l.getString("color"));
if (null != color) {
style.setLeftBorderColor(color);// 左边框颜色
}
}
if (r != null) {
style.setBorderRight(BorderStyle.valueOf(r.getShort("style"))); // 右边框
Short color = ColorUtil.getColorByStr(r.getString("color"));
if (null != color) {
style.setRightBorderColor(color);// 右边框颜色
}
}
if (t != null) {
style.setBorderTop(BorderStyle.valueOf(t.getShort("style"))); // 顶部边框
Short _vcolor = ColorUtil.getColorByStr(t.getString("color"));
if (null != _vcolor) {
style.setTopBorderColor(_vcolor);// 顶部边框颜色
}
}
if (b != null) {
style.setBorderBottom(BorderStyle.valueOf(b.getShort("style"))); // 底部边框
Short _vcolor = ColorUtil.getColorByStr(b.getString("color"));
if (_vcolor != null) {
// 底部边框颜色
style.setBottomBorderColor(_vcolor);
}
}
}
else if (borderInfoObject.get("rangeType").equals("range")) {
// 选区
Short style_ = borderInfoObject.getShort("style");
String borderType = borderInfoObject.getString("borderType");
Short color = ColorUtil.getColorByStr(borderInfoObject.getString("color"));
JSONObject rangObject = (JSONObject) ((JSONArray) (borderInfoObject.get("range"))).get(0);
JSONArray rowList = rangObject.getJSONArray("row");
JSONArray columnList = rangObject.getJSONArray("column");
for (int row_ = rowList.getInteger(0); row_ < rowList.getInteger(rowList.size() - 1) + 1; row_++) {
for (int col_ = columnList.getInteger(0); col_ < columnList.getInteger(columnList.size() - 1)
+ 1; col_++) {
Row row = sheet.getRow(row_);
if (null == row) {
row = sheet.createRow(row_);
}
Cell cell = row.getCell(col_);
CellStyle style;
if (null == cell) {
style = wb.createCellStyle();
cell = row.createCell(col_);
cell.setCellStyle(style);
}
else {
style = cell.getCellStyle();
}
// "border-left" | "border-right" | "border-top" | "border-bottom"
// | "border-all" | "border-horizontal" | "border-vertical"
// "border-outside" | "border-inside" | | "border-none"
if ("border-left".equals(borderType) || "border-all".equals(borderType)) {
style.setBorderLeft(BorderStyle.valueOf(style_)); // 左边框
style.setLeftBorderColor(color);// 左边框颜色
}
if ("border-right".equals(borderType) || "border-all".equals(borderType)) {
style.setBorderRight(BorderStyle.valueOf(style_)); // 右边框
style.setRightBorderColor(color);// 右边框颜色
}
if ("border-top".equals(borderType) || "border-all".equals(borderType)) {
style.setBorderTop(BorderStyle.valueOf(style_)); // 顶部边框
style.setTopBorderColor(color);// 顶部边框颜色
}
if ("border-bottom".equals(borderType) || "border-all".equals(borderType)) {
style.setBorderBottom(BorderStyle.valueOf(style_)); // 底部边框
style.setBottomBorderColor(color);// 底部边框颜色 }
}
if ("border-outside".equals(borderType)) {
// 外圈边框
if (row_ == rowList.getInteger(0)) {
style.setBorderTop(BorderStyle.valueOf(style_)); // 顶部边框
style.setTopBorderColor(color);// 顶部边框颜色
}
if (col_ == columnList.getInteger(0)) {
style.setBorderLeft(BorderStyle.valueOf(style_)); // 左边框
style.setLeftBorderColor(color);// 左边框颜色
}
if (row_ == rowList.getInteger(rowList.size() - 1)) {
style.setBorderBottom(BorderStyle.valueOf(style_)); // 底部边框
style.setBottomBorderColor(color);// 底部边框颜色 }
}
if (col_ == columnList.getInteger(columnList.size() - 1)) {
style.setBorderRight(BorderStyle.valueOf(style_)); // 右边框
style.setRightBorderColor(color);// 右边框颜色
}
}
if ("border-horizontal".equals(borderType) || "border-inside".equals(borderType)) {
// 内部横线
if (row_ >= rowList.getInteger(0) && row_ < rowList.getInteger(rowList.size() - 1)
&& col_ >= columnList.getInteger(0)
&& col_ <= columnList.getInteger(columnList.size() - 1)) {
style.setBorderBottom(BorderStyle.valueOf(style_)); // 底部边框
style.setBottomBorderColor(color);// 底部边框颜色 }
}
}
if ("border-vertical".equals(borderType) || "border-inside".equals(borderType)) {
// 内部竖线
if (row_ >= rowList.getInteger(0) && row_ <= rowList.getInteger(rowList.size() - 1)
&& col_ >= columnList.getInteger(0)
&& col_ < columnList.getInteger(columnList.size() - 1)) {
style.setBorderRight(BorderStyle.valueOf(style_)); // 右边框
style.setRightBorderColor(color);// 右边框颜色
}
}
if ("border-none".equals(borderType)) {
style.setBorderLeft(BorderStyle.NONE); // 左边框
style.setBorderRight(BorderStyle.NONE); // 左边框
style.setBorderTop(BorderStyle.NONE); // 左边框
style.setBorderBottom(BorderStyle.NONE); // 左边框
}
}
}
}
}
}
/**
* 设置单元格,宽、高
* @param dbObject
* @param sheet
*/
private static void setColumAndRow(JSONObject dbObject, Sheet sheet) {
if (dbObject.containsKey("config")) {
JSONObject config = dbObject.getJSONObject("config");
if (config.containsKey("columnlen")) {
JSONObject columnlen = config.getJSONObject("columnlen");
if (columnlen != null) {
for (String k : columnlen.keySet()) {
Integer _i = getStrToInt(k);
Integer _v = getStrToInt(columnlen.get(k).toString());
if (_i != null && _v != null) {
// sheet.setColumnWidth(_i,
// MSExcelUtil.heightUnits2Pixel(_v.shortValue()));
// TODO 乘以32,有待商榷
sheet.setColumnWidth(_i, _v * 32);
}
}
}
}
if (config.containsKey("rowlen")) {
JSONObject rowlen = config.getJSONObject("rowlen");
if (rowlen != null) {
for (String k : rowlen.keySet()) {
Integer _i = getStrToInt(k);
Integer _v = getStrToInt(rowlen.get(k).toString());
if (_i != null && _v != null) {
Row row = sheet.getRow(_i);
if (row != null) {
// row.setHeightInPoints(MSExcelUtil.pixel2WidthUnits(_v.shortValue()));
row.setHeightInPoints(_v.shortValue());
}
}
}
}
}
}
}
/**
* 单元格字体相关样式
* @param wb
* @param style
* @param dbObject
*/
private static void setCellStyleFont(Workbook wb, CellStyle style, JSONObject dbObject) {
Font font = wb.createFont();
style.setFont(font);
// ff 字体
if (dbObject.containsKey("ff")) {
if (dbObject.get("ff") instanceof Integer) {
Integer _v = getIntByDBObject(dbObject, "ff");
if (_v != null && ConstantUtil.ff_IntegerToName.containsKey(_v)) {
font.setFontName(ConstantUtil.ff_IntegerToName.get(_v));
}
}
else if (dbObject.get("ff") instanceof String) {
font.setFontName(getByDBObject(dbObject, "ff"));
}
}
// fc 字体颜色
if (dbObject.containsKey("fc")) {
String _v = getByDBObject(dbObject, "fc");
Short _color = ColorUtil.getColorByStr(_v);
if (_color != null) {
font.setColor(_color);
}
}
// bl 粗体
if (dbObject.containsKey("bl")) {
Integer _v = getIntByDBObject(dbObject, "bl");
if (_v != null) {
if (_v.equals(1)) {
// 是否粗体显示
font.setBold(true);
}
else {
font.setBold(false);
}
}
}
// it 斜体
if (dbObject.containsKey("it")) {
Integer _v = getIntByDBObject(dbObject, "it");
if (_v != null) {
if (_v.equals(1)) {
font.setItalic(true);
}
else {
font.setItalic(false);
}
}
}
// fs 字体大小
if (dbObject.containsKey("fs")) {
Integer _v = getStrToInt(getObjectByDBObject(dbObject, "fs"));
if (_v != null) {
font.setFontHeightInPoints(_v.shortValue());
}
}
// cl 删除线 (导入没有) 0 常规 、 1 删除线
if (dbObject.containsKey("cl")) {
Integer _v = getIntByDBObject(dbObject, "cl");
if (_v != null) {
if (_v.equals(1)) {
font.setStrikeout(true);
}
}
}
// ul 下划线
if (dbObject.containsKey("ul")) {
Integer _v = getIntByDBObject(dbObject, "ul");
if (_v != null) {
if (_v.equals(1)) {
font.setUnderline(Font.U_SINGLE);
}
else {
font.setUnderline(Font.U_NONE);
}
}
}
}
/**
* 设置cell边框颜色样式
* @param style 样式
* @param dbObject json对象
* @param bs 样式
* @param bc 样式
*/
private static void setBorderStyle(CellStyle style, JSONObject dbObject, String bs, String bc) {
// bs 边框样式
if (dbObject.containsKey(bs)) {
Integer _v = getStrToInt(getByDBObject(dbObject, bs));
if (_v != null) {
// 边框没有,不作改变
if (bs.equals("bs") || bs.equals("bs_t")) {
style.setBorderTop(BorderStyle.valueOf(_v.shortValue()));
}
if (bs.equals("bs") || bs.equals("bs_b")) {
style.setBorderBottom(BorderStyle.valueOf(_v.shortValue()));
}
if (bs.equals("bs") || bs.equals("bs_l")) {
style.setBorderLeft(BorderStyle.valueOf(_v.shortValue()));
}
if (bs.equals("bs") || bs.equals("bs_r")) {
style.setBorderRight(BorderStyle.valueOf(_v.shortValue()));
}
// bc 边框颜色
String _vcolor = getByDBObject(dbObject, bc);
if (_vcolor != null) {
Short _color = ColorUtil.getColorByStr(_vcolor);
if (_color != null) {
if (bc.equals("bc") || bc.equals("bc_t")) {
style.setTopBorderColor(_color);
}
if (bc.equals("bc") || bc.equals("bc_b")) {
style.setBottomBorderColor(_color);
}
if (bc.equals("bc") || bc.equals("bc_l")) {
style.setLeftBorderColor(_color);
}
if (bc.equals("bc") || bc.equals("bc_r")) {
style.setRightBorderColor(_color);
}
}
}
}
}
}
/**
* 设置单元格格式 ct 单元格值格式 (fa,t)
* @param cell
* @param style
* @param dbObject
*/
private static void setFormatByCt(Workbook wb, Cell cell, CellStyle style, JSONObject dbObject) {
if (!dbObject.containsKey("v") && dbObject.containsKey("ct")) {
/*
* 处理以下数据结构 { "celldata": [{ "c": 0, "r": 8, "v": { "ct": { "s": [{ "v":
* "sdsdgdf\r\ndfgdfg\r\ndsfgdfgdf\r\ndsfgdfg" }], "t": "inlineStr", "fa":
* "General" } } }] }
*/
JSONObject ct = dbObject.getJSONObject("ct");
if (ct.containsKey("s")) {
Object s = ct.get("s");
if (s instanceof List && ((List) s).size() > 0) {
JSONObject _s1 = (JSONObject) ((List) s).get(0);
if (_s1.containsKey("v") && _s1.get("v") instanceof String) {
dbObject.put("v", _s1.get("v"));
style.setWrapText(true);
}
}
}
}
// String v = ""; //初始化
if (dbObject.containsKey("v")) {
// v = v_json.get("v").toString();
// 取到v后,存到poi单元格对象
// 设置该单元格值
// cell.setValue(v);
// String v=getByDBObject(v_json,"v");
// cell.setValue(v);
Object obj = getObjectByDBObject(dbObject, "v");
if (obj instanceof Number) {
cell.setCellValue(Double.valueOf(obj.toString()));
}
else if (obj instanceof Double) {
cell.setCellValue((Double) obj);
}
else if (obj instanceof Date) {
cell.setCellValue((Date) obj);
}
else if (obj instanceof Calendar) {
cell.setCellValue((Calendar) obj);
}
else if (obj instanceof RichTextString) {
cell.setCellValue((RichTextString) obj);
}
else if (obj instanceof String) {
cell.setCellValue((String) obj);
}
else {
cell.setCellValue(obj.toString());
}
}
if (dbObject.containsKey("ct")) {
JSONObject ct = dbObject.getJSONObject("ct");
if (ct.containsKey("fa") && ct.containsKey("t")) {
// t 0=bool,1=datetime,2=error,3=null,4=numeric,5=string,6=unknown
String fa = getByDBObject(ct, "fa"); // 单元格格式format定义串
String t = getByDBObject(ct, "t"); // 单元格格式type类型
Integer _i = ConstantUtil.getNumberFormatMap(fa);
switch (t) {
case "s": {
// 字符串
if (_i >= 0) {
style.setDataFormat(_i.shortValue());
}
else {
style.setDataFormat((short) 0);
}
cell.setCellType(CellType.STRING);
break;
}
case "d": {
// 日期
Date _d = null;
String v = getByDBObject(dbObject, "m");
if (v.length() == 0) {
v = getByDBObject(dbObject, "v");
}
if (v.length() > 0) {
if (v.indexOf("-") > -1) {
if (v.indexOf(":") > -1) {
_d = ConstantUtil.stringToDateTime(v);
}
else {
_d = ConstantUtil.stringToDate(v);
}
}
else {
_d = ConstantUtil.toDate(v);
}
}
if (_d != null) {
// 能转换为日期
cell.setCellValue(_d);
DataFormat format = wb.createDataFormat();
style.setDataFormat(format.getFormat(fa));
}
else {
// 不能转换为日期
if (_i >= 0) {
style.setDataFormat(_i.shortValue());
}
else {
style.setDataFormat((short) 0);
}
}
break;
}
case "b": {
// 逻辑
cell.setCellType(CellType.BOOLEAN);
if (_i >= 0) {
style.setDataFormat(_i.shortValue());
}
else {
DataFormat format = wb.createDataFormat();
style.setDataFormat(format.getFormat(fa));
}
break;
}
case "n": {
// 数值
// cell.setCellType(CellType.NUMERIC);
// 数字转字符串
cell.setCellType(CellType.STRING);
if (_i >= 0) {
style.setDataFormat(_i.shortValue());
}
else {
DataFormat format = wb.createDataFormat();
style.setDataFormat(format.getFormat(fa));
}
break;
}
case "u":
case "g": {
// general 自动类型
// cell.setCellType(CellType._NONE);
if (_i >= 0) {
style.setDataFormat(_i.shortValue());
}
else {
DataFormat format = wb.createDataFormat();
style.setDataFormat(format.getFormat(fa));
}
break;
}
case "e": {
// 错误
cell.setCellType(CellType.ERROR);
if (_i >= 0) {
style.setDataFormat(_i.shortValue());
}
else {
DataFormat format = wb.createDataFormat();
style.setDataFormat(format.getFormat(fa));
}
break;
}
}
}
}
}
/**
* 内容按行分组
* @param cells
* @return
*/
private static Map<Integer, List<JSONObject>> cellGroup(List<JSONObject> cells) {
Map<Integer, List<JSONObject>> cellMap = new HashMap<>(100);
for (JSONObject dbObject : cells) {
// 行号
if (dbObject.containsKey("r")) {
Integer r = getStrToInt(dbObject.get("r"));
if (r != null) {
if (cellMap.containsKey(r)) {
cellMap.get(r).add(dbObject);
}
else {
List<JSONObject> list = new ArrayList<>(10);
list.add(dbObject);
cellMap.put(r, list);
}
}
}
}
return cellMap;
}
/**
* 获取一个k的值
* @param b
* @param k
* @return
*/
public static String getByDBObject(JSONObject b, String k) {
if (b.containsKey(k)) {
if (b.get(k) != null && b.get(k) instanceof String) {
return b.getString(k);
}
}
return null;
}
/**
* 获取一个k的值
* @param b
* @param k
* @return
*/
public static Object getObjectByDBObject(JSONObject b, String k) {
if (b.containsKey(k)) {
if (b.get(k) != null) {
return b.get(k);
}
}
return "";
}
/**
* 没有/无法转换 返回null
* @param b
* @param k
* @return
*/
public static Integer getIntByDBObject(JSONObject b, String k) {
if (b.containsKey(k)) {
if (b.get(k) != null) {
try {
String _s = b.getString(k).replace("px", "");
Double _d = Double.parseDouble(_s);
return _d.intValue();
}
catch (Exception ex) {
log.error(ex.getMessage());
return null;
}
}
}
return null;
}
/**
* 转int
* @param str
* @return
*/
private static Integer getStrToInt(Object str) {
try {
if (str != null) {
return Integer.parseInt(str.toString());
}
return null;
}
catch (Exception ex) {
log.error("String:{};Error:{}", str, ex.getMessage());
return null;
}
}
private static Short getStrToShort(Object str) {
try {
if (str != null) {
return Short.parseShort(str.toString());
}
return null;
}
catch (Exception ex) {
log.error("String:{};Error:{}", str, ex.getMessage());
return null;
}
}
}
@@ -0,0 +1,479 @@
package com.anjiplus.template.gaea.business.modules.reportexcel.util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.anjiplus.template.gaea.business.enums.ExcelCenterStyleEnum;
import com.anjiplus.template.gaea.business.modules.reportexcel.controller.dto.GridRecordDataModel;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
/**
* 来自:https://github.com/mengshukeji/LuckysheetServer 使用poi导出xls
*
* @author Administrator
*/
public class XlsUtil {
private final static String MODEL = "{\"c\":0,\"r\":0,\"v\":{\"m\":\"模板\",\"v\":\"模板\",\"bl\":1,\"ct\":{\"t\":\"g\",\"fa\":\"General\"}}}";
private final static String BORDER_MODEL = "{\"rangeType\":\"cell\",\"value\":{\"b\":{\"color\":\"rgb(0, 0, 0)\",\"style\":1},\"r\":{\"color\":\"rgb(0, 0, 0)\",\"style\":1},\"col_index\":5,\"t\":{\"color\":\"rgb(0, 0, 0)\",\"style\":1},\"row_index\":7,\"l\":{\"color\":\"rgb(0, 0, 0)\",\"style\":1}}}";
/**
* 默认行数
*/
private static final int DEFAULT_ROW_INDEX = 84;
/**
* 默认列数
*/
private static final int DEFAULT_COLUMN_INDEX = 64;
/**
* 输出文件流
* @param outputStream 流
* @param isXlsx 是否是xlsx
* @param dbObjectList 数据
*/
public static void exportXlsFile(OutputStream outputStream, Boolean isXlsx, List<JSONObject> dbObjectList)
throws IOException {
Workbook wb = null;
if (isXlsx) {
wb = new XSSFWorkbook();
}
else {
wb = new HSSFWorkbook();
}
if (dbObjectList != null && dbObjectList.size() > 0) {
for (int x = 0; x < dbObjectList.size(); x++) {
XlsSheetUtil.exportSheet(wb, x, dbObjectList.get(x));
}
}
wb.write(outputStream);
}
/**
* @param workbook 工作簿
* @return Map
* @description 读取excel
* @author zhouhang
* @date 2021/4/20
*/
public static List<GridRecordDataModel> readExcel(Workbook workbook) {
List<GridRecordDataModel> list = new ArrayList<>();
Iterator<Sheet> sheetIterator = workbook.sheetIterator();
int sheetIndex = 0;
while (sheetIterator.hasNext()) {
Sheet sheet = sheetIterator.next();
// 生成默认MODEL
GridRecordDataModel model;
if (Objects.equals(0, sheetIndex)) {
model = strToModel("", (sheetIndex + 1) + "", 1, sheetIndex);
}
else {
model = strToModel("", (sheetIndex + 1) + "", 0, sheetIndex);
}
sheetIndex++;
// 读取sheet页
readSheet(sheet, model, workbook);
// 设置sheet页名称
model.getJson_data().put("name", sheet.getSheetName());
list.add(model);
}
return list;
}
public static GridRecordDataModel strToModel(String list_id, String index, int status, int order) {
String strSheet = "{\"row\":84,\"name\":\"reSheetName\",\"chart\":[],\"color\":\"\",\"index\":\"reIndex\",\"order\":reOrder,\"column\":60,\"config\":{},\"status\":reStatus,\"celldata\":[],\"ch_width\":4748,\"rowsplit\":[],\"rh_height\":1790,\"scrollTop\":0,\"scrollLeft\":0,\"visibledatarow\":[],\"visibledatacolumn\":[],\"jfgird_select_save\":[],\"jfgrid_selection_range\":{}}";
strSheet = strSheet.replace("reSheetName", "Sheet" + index).replace("reIndex", index)
.replace("reOrder", order + "").replace("reStatus", status + "");
JSONObject bson = JSONObject.parseObject(strSheet);
GridRecordDataModel model = new GridRecordDataModel();
model.setBlock_id("fblock");
model.setRow_col("5_5");
model.setIndex(index);
model.setIs_delete(0);
model.setJson_data(bson);
model.setStatus(status);
model.setOrder(order);
model.setList_id(list_id);
return model;
}
/**
* @param sheet sheet页
* @param model 数据存储
* @param workbook excel
* @description 读取单个sheet页
* @author zhouhang
* @date 2021/4/20
*/
private static void readSheet(Sheet sheet, GridRecordDataModel model, Workbook workbook) {
// excel数据集合
List<JSONObject> dataList = new ArrayList<>();
model.setDataList(dataList);
// 获取行迭代器
Iterator<Row> rowIterator = sheet.rowIterator();
// 获取合并单元格信息
Map<String, String> rangeMap = getRangeMap(sheet);
// 记录最大列
int maxCellNumber = 0;
int maxRowNumber = 0;
// 列宽
JSONObject columnLenObj = new JSONObject();
// 行高
JSONObject rowLenObj = new JSONObject();
// 读取文档
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
int rowLen = ((int) row.getHeight()) / 20;
if (rowLen == 0) {
rowLen = 30;
}
rowLenObj.put(row.getRowNum() + "", rowLen);
Iterator<Cell> cellIterator = row.cellIterator();
maxRowNumber = row.getRowNum();
while (cellIterator.hasNext()) {
// "{\"c\":0,\"r\":0,\"v\":{\"m\":\"模板\",\"v\":\"模板\",\"bl\":1,\"ct\":{\"t\":\"g\",\"fa\":\"General\"}}}";
JSONObject dataModel = JSONObject.parseObject(MODEL);
// 初始化默认单元格内容
Cell cell = cellIterator.next();
int columnLen = sheet.getColumnWidth(cell.getColumnIndex()) / 25;
if (columnLen == 0) {
columnLen = 73;
}
columnLenObj.put(cell.getColumnIndex() + "", columnLen);
// 修改最大列
maxCellNumber = Math.max(cell.getColumnIndex(), maxCellNumber);
// 设置行列
dataModel.put("c", cell.getColumnIndex());
dataModel.put("r", row.getRowNum());
// 获取单元格内容
switch (cell.getCellType()) {
case STRING:
dataModel.getJSONObject("v").put("m", cell.getStringCellValue());
dataModel.getJSONObject("v").put("v", cell.getStringCellValue());
break;
case NUMERIC:
dataModel.getJSONObject("v").put("m", cell.getNumericCellValue());
dataModel.getJSONObject("v").put("v", cell.getNumericCellValue());
break;
case BLANK:
dataModel.getJSONObject("v").put("m", "");
dataModel.getJSONObject("v").put("v", "");
break;
case BOOLEAN:
dataModel.getJSONObject("v").put("m", cell.getBooleanCellValue());
dataModel.getJSONObject("v").put("v", cell.getBooleanCellValue());
break;
case ERROR:
dataModel.getJSONObject("v").put("m", cell.getErrorCellValue());
dataModel.getJSONObject("v").put("v", cell.getErrorCellValue());
break;
default:
dataModel.getJSONObject("v").put("m", "");
dataModel.getJSONObject("v").put("v", "");
}
// 设置单元格合并标记
dealWithCellMarge(rangeMap, row, cell, dataModel);
// 设置单元格样式、合并单元格信息
dealWithExcelStyle(model, dataModel, cell, sheet, workbook);
dataList.add(dataModel);
}
}
// 设置最大行、列
model.getJson_data().put("column", Math.max(maxCellNumber, DEFAULT_COLUMN_INDEX));
model.getJson_data().put("row", Math.max(maxRowNumber, DEFAULT_ROW_INDEX));
// 设置行高、列宽
model.getJson_data().getJSONObject("config").put("columnlen", columnLenObj);
model.getJson_data().getJSONObject("config").put("rowlen", rowLenObj);
}
/**
* @param sheet sheet页信息
* @return Map<String, String> 单元格合并信息
* @description 获取合并单元格信息 所有合并单元的MAP
* @author zhouhang
* @date 2021/4/21
*/
@NotNull
private static Map<String, String> getRangeMap(Sheet sheet) {
List<CellRangeAddress> rangeAddressList = sheet.getMergedRegions();
Map<String, String> rangeMap = new HashMap<>(rangeAddressList.size() * 5);
for (CellRangeAddress cellAddresses : rangeAddressList) {
for (int i = cellAddresses.getFirstRow(); i <= cellAddresses.getLastRow(); i++) {
for (int j = cellAddresses.getFirstColumn(); j <= cellAddresses.getLastColumn(); j++) {
if (i == cellAddresses.getFirstRow() && j == cellAddresses.getFirstColumn()) {
// 单元格合并初始值特殊标记
rangeMap.put(i + "_" + j, cellAddresses.getFirstRow() + "_" + cellAddresses.getFirstColumn()
+ "_" + cellAddresses.getLastRow() + "_" + cellAddresses.getLastColumn());
}
else {
rangeMap.put(i + "_" + j, cellAddresses.getFirstRow() + "_" + cellAddresses.getFirstColumn());
}
}
}
}
return rangeMap;
}
/**
* @param rangeMap 合并信息
* @param row 行信息
* @param cell 单元格
* @param dataModel 单元格数据存储信息
* @description 设置单元格合并标记
* @author zhouhang
* @date 2021/4/21
*/
private static void dealWithCellMarge(Map<String, String> rangeMap, Row row, Cell cell, JSONObject dataModel) {
if (rangeMap.containsKey(row.getRowNum() + "_" + cell.getColumnIndex())) {
String margeValue = rangeMap.get(row.getRowNum() + "_" + cell.getColumnIndex());
JSONObject mcData = new JSONObject();
String[] s = margeValue.split("_");
mcData.put("r", Integer.parseInt(s[0]));
mcData.put("c", Integer.parseInt(s[1]));
if (s.length == 4) {
mcData.put("rs", Integer.parseInt(s[2]) - Integer.parseInt(s[0]) + 1);
mcData.put("cs", Integer.parseInt(s[3]) - Integer.parseInt(s[1]) + 1);
}
dataModel.getJSONObject("v").put("mc", mcData);
}
}
/**
* @param model sheet页信息
* @param dataModel 单元格信息
* @param cell 单元格
* @param sheet sheet页数据
* @param workbook excel
* @description 获取单元格样式,设置单元格样式
* @author zhouhang
* @date 2021/4/21
*/
private static void dealWithExcelStyle(GridRecordDataModel model, JSONObject dataModel, Cell cell, Sheet sheet,
Workbook workbook) {
// 设置单元格合并信息
dealWithExcelMerge(model, sheet);
// 设置字体样式
setFontStyle(dataModel, workbook, cell);
// 设置单元格样式
dealWithBorderStyle(model, cell, workbook);
}
/**
* @param model 在线表格存储单元
* @param cell cell
* @param workbook workbook
* @description 设置单元格样式
* @author zhouhang
* @date 2021/4/22
*/
private static void dealWithBorderStyle(GridRecordDataModel model, Cell cell, Workbook workbook) {
CellStyle cellStyle = cell.getCellStyle();
// 判断是否存在边框
if (cellStyle.getBorderTop().getCode() > 0 || cellStyle.getBorderBottom().getCode() > 0
|| cellStyle.getBorderLeft().getCode() > 0 || cellStyle.getBorderRight().getCode() > 0) {
JSONObject border = JSONObject.parseObject(BORDER_MODEL);
border.getJSONObject("value").put("row_index", cell.getRowIndex());
border.getJSONObject("value").put("col_index", cell.getColumnIndex());
// xlsx
if (cellStyle instanceof XSSFCellStyle) {
XSSFCellStyle xssfCellStyle = (XSSFCellStyle) cellStyle;
if (Objects.equals((short) 0, cellStyle.getBorderTop().getCode())) {
border.getJSONObject("value").remove("t");
}
else {
border.getJSONObject("value").getJSONObject("t").put("color",
dealWithRbg(xssfCellStyle.getTopBorderXSSFColor().getRGB()));
}
if (Objects.equals((short) 0, cellStyle.getBorderRight().getCode())) {
border.getJSONObject("value").remove("r");
}
else {
border.getJSONObject("value").getJSONObject("r").put("color",
dealWithRbg(xssfCellStyle.getRightBorderXSSFColor().getRGB()));
}
if (Objects.equals((short) 0, cellStyle.getBorderLeft().getCode())) {
border.getJSONObject("value").remove("l");
}
else {
border.getJSONObject("value").getJSONObject("l").put("color",
dealWithRbg(xssfCellStyle.getLeftBorderXSSFColor().getRGB()));
}
if (Objects.equals((short) 0, cellStyle.getBorderBottom().getCode())) {
border.getJSONObject("value").remove("b");
}
else {
border.getJSONObject("value").getJSONObject("b").put("color",
dealWithRbg(xssfCellStyle.getBottomBorderXSSFColor().getRGB()));
}
}
else if (cellStyle instanceof HSSFCellStyle) {
// xls
HSSFWorkbook hssfWorkbook = (HSSFWorkbook) workbook;
HSSFCellStyle hssfCellStyle = (HSSFCellStyle) cellStyle;
if (Objects.equals((short) 0, cellStyle.getBorderTop().getCode())) {
border.getJSONObject("value").remove("t");
}
else {
HSSFColor color = hssfWorkbook.getCustomPalette().getColor(hssfCellStyle.getTopBorderColor());
border.getJSONObject("value").getJSONObject("t").put("color", dealWithRbgShort(color.getTriplet()));
}
if (Objects.equals((short) 0, cellStyle.getBorderRight().getCode())) {
border.getJSONObject("value").remove("r");
}
else {
HSSFColor color = hssfWorkbook.getCustomPalette().getColor(hssfCellStyle.getRightBorderColor());
border.getJSONObject("value").getJSONObject("r").put("color", dealWithRbgShort(color.getTriplet()));
}
if (Objects.equals((short) 0, cellStyle.getBorderLeft().getCode())) {
border.getJSONObject("value").remove("l");
}
else {
HSSFColor color = hssfWorkbook.getCustomPalette().getColor(hssfCellStyle.getLeftBorderColor());
border.getJSONObject("value").getJSONObject("l").put("color", dealWithRbgShort(color.getTriplet()));
}
if (Objects.equals((short) 0, cellStyle.getBorderBottom().getCode())) {
border.getJSONObject("value").remove("b");
}
else {
HSSFColor color = hssfWorkbook.getCustomPalette().getColor(hssfCellStyle.getBottomBorderColor());
border.getJSONObject("value").getJSONObject("b").put("color", dealWithRbgShort(color.getTriplet()));
}
}
JSONArray borderInfo = model.getJson_data().getJSONObject("config").getJSONArray("borderInfo");
if (Objects.isNull(borderInfo)) {
borderInfo = new JSONArray();
model.getJson_data().getJSONObject("config").put("borderInfo", borderInfo);
}
borderInfo.add(border);
}
}
/**
* @param rgb RBG short
* @return rbg(0, 0, 0)
* @description 转换RBG rbg(0,0,0)
* @author zhouhang
* @date 2021/4/26
*/
private static String dealWithRbgShort(short[] rgb) {
return getRbg(Objects.nonNull(rgb), rgb[0], rgb[1], rgb[2]);
}
@NotNull
private static String getRbg(boolean b2, short r, short b, short g) {
if (b2) {
return "rgb(" + (r & 0xFF) + ", " + (b & 0xFF) + ", " + (g & 0xFF) + ")";
}
else {
return "rgb(0, 0, 0)";
}
}
/**
* @param rgb RBG byte
* @return rbg(0, 0, 0)
* @description 转换RBG rbg(0,0,0)
* @author zhouhang
* @date 2021/4/26
*/
private static String dealWithRbg(byte[] rgb) {
if (Objects.isNull(rgb)) {
return "rgb(0, 0, 0)";
}
short[] shorts = new short[] { rgb[0], rgb[1], rgb[2] };
return getRbg(true, shorts[0], shorts[1], shorts[2]);
}
/**
* @param dataModel 单元格内容
* @param workbook workbook
* @param cell cell
* @description s设置字体样式
* @author zhouhang
* @date 2021/4/21
*/
private static void setFontStyle(JSONObject dataModel, Workbook workbook, Cell cell) {
CellStyle cellStyle = cell.getCellStyle();
Font font = workbook.getFontAt(cellStyle.getFontIndexAsInt());
JSONObject v = dataModel.getJSONObject("v");
// ht 水平对齐 水平对齐方式(0=居中,1=左对齐,2=右对齐) excel:左:1 中:2 右:3 未设置:0
v.put("ht", ExcelCenterStyleEnum.getExcelCenterStyleByExcelCenterCode(cellStyle.getAlignment().getCode())
.getOnlineExcelCode());
// bl 字体加粗设置
v.put("bl", font.getBold() ? 1 : 0);
// lt 斜体
v.put("it", font.getItalic() ? 1 : 0);
// ff 字体
v.put("ff", font.getFontName());
// fc 字体颜色
if (font instanceof HSSFFont) {
HSSFFont hssfFont = (HSSFFont) font;
HSSFColor hssfColor = hssfFont.getHSSFColor((HSSFWorkbook) workbook);
if (Objects.nonNull(hssfColor)) {
v.put("fc", ColorUtil.convertRGBToHex(hssfColor.getTriplet()[0], hssfColor.getTriplet()[1],
hssfColor.getTriplet()[2]));
}
}
else {
XSSFFont xssfFont = (XSSFFont) font;
XSSFColor xssfColor = xssfFont.getXSSFColor();
if (Objects.nonNull(xssfColor)) {
v.put("fc", "#" + xssfColor.getARGBHex().substring(2));
}
}
// fs 字体大小
v.put("fs", font.getFontHeightInPoints());
// cl 删除线
v.put("cl", font.getStrikeout() ? 1 : 0);
// ul 下划线
v.put("un", font.getUnderline());
// 背景色
String fillColorHex = ColorUtil.getFillColorHex(cell);
if (Objects.nonNull(fillColorHex)) {
v.put("bg", fillColorHex);
}
}
/**
* @param model sheet页信息
* @param sheet sheet页
* @description 设置单元格合并信息
* @author zhouhang
* @date 2021/4/21
*/
private static void dealWithExcelMerge(GridRecordDataModel model, Sheet sheet) {
if (CollectionUtils.isNotEmpty(sheet.getMergedRegions())) {
// {"color":"","list_id":"","column":60,"index":"1","jfgird_select_save":[],"rh_height":1790,"visibledatacolumn":[],"scrollTop":0,"block_id":"fblock","rowsplit":[],"visibledatarow":[],"jfgrid_selection_range":{},"name":"Sheet1","celldata":[],"ch_width":4748,"row":84,"scrollLeft":0,"id":364598,"chart":[],"config":{},"order":0,"status":1}
JSONObject jsonObject = model.getJson_data();
JSONObject config = jsonObject.getJSONObject("config");
JSONObject merge = new JSONObject();
for (CellRangeAddress mergedRegion : sheet.getMergedRegions()) {
JSONObject mergeBase = new JSONObject();
mergeBase.put("r", mergedRegion.getFirstRow());
mergeBase.put("c", mergedRegion.getFirstColumn());
mergeBase.put("rs", mergedRegion.getLastRow() - mergedRegion.getFirstRow() + 1);
mergeBase.put("cs", mergedRegion.getLastColumn() - mergedRegion.getFirstColumn() + 1);
merge.put(mergedRegion.getFirstRow() + "_" + mergedRegion.getFirstColumn(), mergeBase);
}
config.put("merge", merge);
}
}
}
@@ -53,4 +53,9 @@ public class ReportShareDto extends GaeaBaseDTO implements Serializable {
@ApiModelProperty(value = "0--未删除 1--已删除 DIC_NAME=DELETE_FLAG")
private Integer deleteFlag;
/** 分享码 */
private String sharePassword;
private boolean sharePasswordFlag = false;
}
@@ -1,11 +1,11 @@
package com.anjiplus.template.gaea.business.modules.reportshare.dao.entity;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.*;
import lombok.Data;
import java.util.Date;
/**
@@ -13,7 +13,7 @@ import java.util.Date;
* @author Raod
* @date 2021-08-18 13:37:26.663
**/
@TableName(value = "gaea_report_share")
@TableName(keepGlobalPrefix = true, value = "gaea_report_share")
@Data
public class ReportShare extends GaeaBaseEntity {
@@ -41,4 +41,11 @@ public class ReportShare extends GaeaBaseEntity {
/** 0--未删除 1--已删除 DIC_NAME=DELETE_FLAG */
private Integer deleteFlag;
/** 分享码 */
@TableField(exist = false)
private String sharePassword;
@TableField(exist = false)
private boolean sharePasswordFlag;
}
@@ -13,9 +13,11 @@ import com.anjiplus.template.gaea.business.modules.reportshare.dao.entity.Report
import com.anjiplus.template.gaea.business.modules.reportshare.service.ReportShareService;
import com.anjiplus.template.gaea.business.util.DateUtil;
import com.anjiplus.template.gaea.business.util.JwtUtil;
import com.anjiplus.template.gaea.business.util.MD5Util;
import com.anjiplus.template.gaea.business.util.UuidUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,12 +53,18 @@ public class ReportShareServiceImpl implements ReportShareService {
@Override
public ReportShareDto insertShare(ReportShareDto dto) {
// 设置分享码
if (dto.isSharePasswordFlag()) {
dto.setSharePassword(UuidUtil.getRandomPwd(4));
}
ReportShareDto reportShareDto = new ReportShareDto();
ReportShare entity = new ReportShare();
BeanUtils.copyProperties(dto, entity);
insert(entity);
// 将分享链接返回
reportShareDto.setShareUrl(entity.getShareUrl());
reportShareDto.setSharePassword(dto.getSharePassword());
return reportShareDto;
}
@@ -69,6 +77,12 @@ public class ReportShareServiceImpl implements ReportShareService {
if (null == reportShare) {
throw BusinessExceptionBuilder.build(ResponseCode.REPORT_SHARE_LINK_INVALID);
}
// 解析jwt token,获取密码
String password = JwtUtil.getPassword(reportShare.getShareToken());
if (StringUtils.isNotBlank(password)) {
// md5加密返回
reportShare.setSharePassword(MD5Util.encrypt(password));
}
return reportShare;
}
@@ -103,8 +117,10 @@ public class ReportShareServiceImpl implements ReportShareService {
else {
entity.setShareUrl(entity.getShareUrl() + SHARE_FLAG + shareCode);
}
entity.setShareValidTime(DateUtil.getFutureDateTmdHms(entity.getShareValidType()));
entity.setShareToken(JwtUtil.createToken(entity.getReportCode(), shareCode, entity.getShareValidTime()));
entity.setShareToken(JwtUtil.createToken(entity.getReportCode(), shareCode, entity.getSharePassword(),
entity.getShareValidTime()));
}
}
@@ -7,6 +7,7 @@ import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;
import org.apache.commons.lang3.StringUtils;
import java.util.Date;
import java.util.Map;
@@ -19,8 +20,13 @@ public class JwtUtil {
private static final String JWT_SECRET = "aj-report";
public static String createToken(String reportCode, String shareCode, Date expires) {
return createToken(reportCode, shareCode, null, expires);
}
public static String createToken(String reportCode, String shareCode, String password, Date expires) {
String token = JWT.create().withIssuedAt(new Date()).withExpiresAt(expires).withClaim("reportCode", reportCode)
.withClaim("shareCode", shareCode).sign(Algorithm.HMAC256(JWT_SECRET));
.withClaim("shareCode", shareCode).withClaim("sharePassword", password)
.sign(Algorithm.HMAC256(JWT_SECRET));
return token;
}
@@ -51,4 +57,15 @@ public class JwtUtil {
return claim.asString();
}
public static String getPassword(String token) {
Claim claim = getClaim(token).get("sharePassword");
if (null == claim) {
return null;
}
if (StringUtils.isNotBlank(claim.asString())) {
return claim.asString();
}
return null;
}
}
@@ -1,5 +1,6 @@
package com.anjiplus.template.gaea.business.util;
import java.security.SecureRandom;
import java.util.UUID;
/**
@@ -28,14 +29,34 @@ public class UuidUtil {
}
/**
* 获取随机小写密码
* @param num
* @return
*/
public static String getRandomPwd(int num) {
StringBuilder builder = new StringBuilder();
// 因为已经把 4 种字符放进list了,所以 i 取值从 4开始
// 产生随机数用于随机调用生成字符的函数
for (int i = 0; i < num; i++) {
SecureRandom random = new SecureRandom();
int funNum = random.nextInt(chars.length);
builder.append(chars[funNum]);
}
return builder.toString().toLowerCase();
}
public static String generateUuid() {
return UUID.randomUUID().toString().replace("-", "");
}
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(generateShortUuid());
// System.out.println(generateShortUuid());
System.out.println(getRandomPwd(4));
}
}
}
@@ -38,7 +38,6 @@ spring:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
call-setters-on-nulls: true
mapperLocations:
- classpath*:/mapper/**/*.xml
@@ -46,7 +45,6 @@ mybatis-plus:
# 本应用自定义参数
customer:
# 开发测试用本地文件,如果是生产,请考虑使用对象存储
file:
#上传对应本地全路径
dist-path: /Users/lengleng/Downloads/file/
@@ -1,36 +0,0 @@
<ehcache>
<!--
磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
path:指定在硬盘上存储对象的路径
path可以配置的目录有:
user.home(用户的家目录)
user.dir(用户当前的工作目录)
java.io.tmpdir(默认的临时目录)
ehcache.disk.store.dir(ehcache的配置目录)
绝对路径(如:d:\\ehcache)
查看路径方法:String tmpDir = System.getProperty("java.io.tmpdir");
-->
<diskStore path="./cache" />
<!--
defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
eternal:代表对象是否永不过期 (指定true则下面两项配置需为0无限期)
timeToIdleSeconds:最大的发呆时间 /秒
timeToLiveSeconds:最大的存活时间 /秒
overflowToDisk:是否允许对象被写入到磁盘
说明:下列配置自缓存建立起600秒(10分钟)有效 。
在有效的600秒(10分钟)内,如果连续120秒(2分钟)未访问缓存,则缓存失效。
就算有访问,也只会存活600秒。
-->
<!--<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="600" timeToLiveSeconds="600" overflowToDisk="true" />
-->
<cache name="reportCache" maxElementsInMemory="10000" eternal="true"
maxElementsOnDisk="0" diskPersistent="true"
timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="true" />
<!--<cache name="persistentCacheCfg" maxElementsInMemory="1" eternal="true"
diskPersistent="true" maxElementsOnDisk="0"
timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="true" />-->
</ehcache>
@@ -0,0 +1,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.anjiplus.template.gaea.business.modules.data.reportexcel.dao.ReportExcelMapper">
<resultMap type="com.anjiplus.template.gaea.business.modules.reportexcel.dao.entity.ReportExcel" id="ReportMap">
<!--jdbcType="{column.columnType}"-->
<result property="id" column="id" />
<result property="reportCode" column="report_code" />
<result property="setCodes" column="set_codes" />
<result property="setParam" column="set_param" />
<result property="jsonStr" column="json_str" />
<result property="enableFlag" column="enable_flag" />
<result property="deleteFlag" column="delete_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="version" column="version" />
</resultMap>
</mapper>
@@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>PIGX大屏设计器</title><link rel="shortcut icon" href=/favicon.ico><link href=/static/css/chunk-elementUI.a3ca8dd4.css rel=stylesheet><link href=/static/css/chunk-libs.29401a75.css rel=stylesheet><link href=/static/css/app.83593ab3.css rel=stylesheet></head><body><div id=app></div><script>!function(e){function c(c){for(var f,d,r=c[0],u=c[1],o=c[2],h=0,b=[];h<r.length;h++)d=r[h],t[d]&&b.push(t[d][0]),t[d]=0;for(f in u)Object.prototype.hasOwnProperty.call(u,f)&&(e[f]=u[f]);for(i&&i(c);b.length;)b.shift()();return a.push.apply(a,o||[]),n()}function n(){for(var e,c=0;c<a.length;c++){for(var n=a[c],f=!0,d=1;d<n.length;d++){var u=n[d];0!==t[u]&&(f=!1)}f&&(a.splice(c--,1),e=r(r.s=n[0]))}return e}var f={},d={runtime:0},t={runtime:0},a=[];function r(c){if(f[c])return f[c].exports;var n=f[c]={i:c,l:!1,exports:{}};return e[c].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var c=[];d[e]?c.push(d[e]):0!==d[e]&&{"chunk-04db":1,"chunk-1592":1,"chunk-16ef":1,"chunk-2fb1":1,"chunk-78ef":1,"chunk-9c87":1,"chunk-1ca3":1,"chunk-1db0":1,"chunk-2205":1,"chunk-91a5":1,"chunk-4317":1,"chunk-5063":1,"chunk-9456":1}[e]&&c.push(d[e]=new Promise(function(c,n){for(var f="static/css/"+({}[e]||e)+"."+{MiWS:"31d6cfe0","chunk-04db":"e21eca33","chunk-1592":"f05c2388","chunk-2f12":"31d6cfe0","chunk-9edb":"31d6cfe0","chunk-16ef":"bf85ad45","chunk-2fb1":"98521280","chunk-78ef":"3b93179a","chunk-9c87":"345c52cb","chunk-1ca3":"439ee9f9","chunk-1db0":"579a4e2d","chunk-2205":"86a7b8b1","chunk-91a5":"ce8b1a46","chunk-4317":"9214be97","chunk-5063":"11a48fed","chunk-9456":"579a4e2d","chunk-be10":"31d6cfe0",gJ75:"31d6cfe0","/0xJ":"31d6cfe0","/Om3":"31d6cfe0","05+/":"31d6cfe0","2ZXa":"31d6cfe0","3MdH":"31d6cfe0","3VBA":"31d6cfe0","4yiN":"31d6cfe0","6Xso":"31d6cfe0","7s2V":"31d6cfe0","87dK":"31d6cfe0","8ahN":"31d6cfe0","8m5U":"31d6cfe0",AoeA:"31d6cfe0","BjZ/":"31d6cfe0",Csoz:"31d6cfe0",Czvm:"31d6cfe0",DTUS:"31d6cfe0",Dsrv:"31d6cfe0",EaLm:"31d6cfe0",Eg73:"31d6cfe0",Fzfo:"31d6cfe0",HGU1:"31d6cfe0","I+Au":"31d6cfe0",KpXS:"31d6cfe0",LdT9:"31d6cfe0",NlLO:"31d6cfe0",O3xE:"31d6cfe0",OfHX:"31d6cfe0","On+f":"31d6cfe0",PhST:"31d6cfe0",QJnQ:"31d6cfe0",QKwv:"31d6cfe0",Qx4d:"31d6cfe0",W1QP:"31d6cfe0",YdqL:"31d6cfe0",aA7r:"31d6cfe0",aH2L:"31d6cfe0",cOMg:"31d6cfe0","chunk-2dec":"31d6cfe0","chunk-3af7":"31d6cfe0","chunk-43f4":"31d6cfe0","chunk-790b":"31d6cfe0",eXtt:"31d6cfe0","fB/Z":"31d6cfe0",fYNN:"31d6cfe0",fhwZ:"31d6cfe0",j6Xs:"31d6cfe0","l/4i":"31d6cfe0",lHAa:"31d6cfe0",lXEz:"31d6cfe0",meXB:"31d6cfe0",nNVF:"31d6cfe0","p+q7":"31d6cfe0",ppMK:"31d6cfe0",rMIR:"31d6cfe0",tGOS:"31d6cfe0",tpLM:"31d6cfe0",v7Iz:"31d6cfe0","xT+r":"31d6cfe0",y0OK:"31d6cfe0",yUwd:"31d6cfe0",ynbn:"31d6cfe0",yswY:"31d6cfe0",ywQP:"31d6cfe0"}[e]+".css",d=r.p+f,t=document.getElementsByTagName("link"),a=0;a<t.length;a++){var u=(h=t[a]).getAttribute("data-href")||h.getAttribute("href");if("stylesheet"===h.rel&&(u===f||u===d))return c()}var o=document.getElementsByTagName("style");for(a=0;a<o.length;a++){var h;if((u=(h=o[a]).getAttribute("data-href"))===f||u===d)return c()}var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onload=c,i.onerror=function(c){var f=c&&c.target&&c.target.src||d,t=new Error("Loading CSS chunk "+e+" failed.\n("+f+")");t.request=f,n(t)},i.href=d,document.getElementsByTagName("head")[0].appendChild(i)}).then(function(){d[e]=0}));var n=t[e];if(0!==n)if(n)c.push(n[2]);else{var f=new Promise(function(c,f){n=t[e]=[c,f]});c.push(n[2]=f);var a,u=document.getElementsByTagName("head")[0],o=document.createElement("script");o.charset="utf-8",o.timeout=120,r.nc&&o.setAttribute("nonce",r.nc),o.src=function(e){return r.p+"static/js/"+({}[e]||e)+"."+{MiWS:"1726e915","chunk-04db":"44727613","chunk-1592":"194478ca","chunk-2f12":"45e13631","chunk-9edb":"be6ab3e8","chunk-16ef":"6218f7d5","chunk-2fb1":"7bd4e435","chunk-78ef":"c8f86872","chunk-9c87":"00f45191","chunk-1ca3":"7147b7ae","chunk-1db0":"b7a6d98a","chunk-2205":"65e3fbb7","chunk-91a5":"4b307747","chunk-4317":"7a6fa66e","chunk-5063":"1e115001","chunk-9456":"e3287f0b","chunk-be10":"ceba46a9",gJ75:"29fa7596","/0xJ":"775335fd","/Om3":"a727239e","05+/":"bdbd972b","2ZXa":"86ab9186","3MdH":"69c00252","3VBA":"f6ea0cec","4yiN":"430d71f3","6Xso":"0a089fc0","7s2V":"148ed813","87dK":"50dd8482","8ahN":"d3dd96a0","8m5U":"4fb6bd0f",AoeA:"2efe2260","BjZ/":"917c6db2",Csoz:"a87d6930",Czvm:"114f5c30",DTUS:"9ddf9990",Dsrv:"7412ad35",EaLm:"4219954c",Eg73:"ccf0276c",Fzfo:"1aa2ab01",HGU1:"3751617a","I+Au":"0fa4c332",KpXS:"1f121764",LdT9:"6ad88d84",NlLO:"2b50329d",O3xE:"882c55e5",OfHX:"d3423176","On+f":"0e2a8b74",PhST:"92d411aa",QJnQ:"05b2d528",QKwv:"a2265d70",Qx4d:"3a2c3ae8",W1QP:"54c1632c",YdqL:"23ad3c22",aA7r:"6aa84ace",aH2L:"b9b50593",cOMg:"aa82816e","chunk-2dec":"d407564c","chunk-3af7":"6ba39743","chunk-43f4":"94280166","chunk-790b":"aa80f664",eXtt:"336558ab","fB/Z":"47f8d83a",fYNN:"25c2bbe1",fhwLine truncated
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>AJ-Report</title><link rel=stylesheet href=./static/luckysheet/plugins/css/pluginsCss.css><link rel=stylesheet href=./static/luckysheet/plugins/plugins.css><link rel=stylesheet href=./static/luckysheet/css/luckysheet.css><script src=./static/luckysheet/plugins/js/plugin.js></script><script src=./static/luckysheet/luckysheet.umd.js></script><link rel="shortcut icon" href=/favicon.ico><link href=/static/css/chunk-libs.f55db1b8.css rel=stylesheet><link href=/static/css/app.b23d5b69.css rel=stylesheet></head><body><div id=app></div><script>!function(e){function c(c){for(var f,d,r=c[0],u=c[1],o=c[2],h=0,i=[];h<r.length;h++)d=r[h],t[d]&&i.push(t[d][0]),t[d]=0;for(f in u)Object.prototype.hasOwnProperty.call(u,f)&&(e[f]=u[f]);for(b&&b(c);i.length;)i.shift()();return a.push.apply(a,o||[]),n()}function n(){for(var e,c=0;c<a.length;c++){for(var n=a[c],f=!0,d=1;d<n.length;d++){var u=n[d];0!==t[u]&&(f=!1)}f&&(a.splice(c--,1),e=r(r.s=n[0]))}return e}var f={},d={runtime:0},t={runtime:0},a=[];function r(c){if(f[c])return f[c].exports;var n=f[c]={i:c,l:!1,exports:{}};return e[c].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var c=[];d[e]?c.push(d[e]):0!==d[e]&&{"chunk-05a1":1,"chunk-15e5":1,"chunk-4779":1,"chunk-531e":1,"chunk-5663":1,"chunk-5ea7":1,"chunk-437b":1,"chunk-44c5":1,"chunk-cf59":1,"chunk-61cf":1,"chunk-73da":1,"chunk-6e86":1,"chunk-a4f3":1,"chunk-146e":1,"chunk-fd33":1}[e]&&c.push(d[e]=new Promise(function(c,n){for(var f="static/css/"+({}[e]||e)+"."+{4171:"31d6cfe0",MiWS:"31d6cfe0","chunk-05a1":"0aac3caa","chunk-15e5":"fdcfb4cf","chunk-4779":"1e3a2b05","chunk-531e":"c76384b3","chunk-5663":"1b2c3f70","chunk-5ea7":"d92a89eb","chunk-437b":"48d84ec8","chunk-44c5":"ef94e2a1","chunk-f079":"31d6cfe0","chunk-6b46":"31d6cfe0","chunk-5219":"31d6cfe0","chunk-cf59":"3faded2c","chunk-61cf":"282e6865","chunk-73da":"f54d2fee","chunk-6e86":"c76384b3","chunk-a4f3":"349d043d","chunk-be10":"31d6cfe0","chunk-146e":"66040666","chunk-fd33":"ad50b7f7",gJ75:"31d6cfe0","/5I7":"31d6cfe0","1kog":"31d6cfe0","4o0w":"31d6cfe0","6trW":"31d6cfe0",Bmdt:"31d6cfe0",Cag9:"31d6cfe0",CbXN:"31d6cfe0",Dxy8:"31d6cfe0",EQUq:"31d6cfe0","FJ/h":"31d6cfe0",IWwd:"31d6cfe0",IuD6:"31d6cfe0",LqO4:"31d6cfe0",MQtB:"31d6cfe0",Npd3:"31d6cfe0",PFFx:"31d6cfe0",Qit9:"31d6cfe0",S7HC:"31d6cfe0",VxcK:"31d6cfe0",X3yt:"31d6cfe0",X66W:"31d6cfe0",XfA5:"31d6cfe0",Y8uL:"31d6cfe0",YTGY:"31d6cfe0",YinO:"31d6cfe0",Ywaa:"31d6cfe0",ZGv0:"31d6cfe0",ZcQk:"31d6cfe0",ZvTB:"31d6cfe0",aME4:"31d6cfe0",axYn:"31d6cfe0",buUZ:"31d6cfe0",bzgp:"31d6cfe0","chunk-1911":"31d6cfe0","chunk-2afc":"31d6cfe0","chunk-63e1":"31d6cfe0","chunk-8f85":"31d6cfe0",dUiO:"31d6cfe0",eFaw:"31d6cfe0",eyLi:"31d6cfe0","g/9i":"31d6cfe0",i7BE:"31d6cfe0",kBTG:"31d6cfe0",l1w1:"31d6cfe0",lcj6:"31d6cfe0",mzqm:"31d6cfe0",n60k:"31d6cfe0",nXTE:"31d6cfe0",o8L2:"31d6cfe0",pHlb:"31d6cfe0",qngS:"31d6cfe0",r5mX:"31d6cfe0",rbDI:"31d6cfe0",rj1P:"31d6cfe0",rkyD:"31d6cfe0",swx7:"31d6cfe0",t0vp:"31d6cfe0",t3Iv:"31d6cfe0",vi59:"31d6cfe0","wXL/":"31d6cfe0",whva:"31d6cfe0",z260:"31d6cfe0",zO9b:"31d6cfe0"}[e]+".css",d=r.p+f,t=document.getElementsByTagName("link"),a=0;a<t.length;a++){var u=(h=t[a]).getAttribute("data-href")||h.getAttribute("href");if("stylesheet"===h.rel&&(u===f||u===d))return c()}var o=document.getElementsByTagName("style");for(a=0;a<o.length;a++){var h;if((u=(h=o[a]).getAttribute("data-href"))===f||u===d)return c()}var b=document.createElement("link");b.rel="stylesheet",b.type="text/css",b.onload=c,b.onerror=function(c){var f=c&&c.target&&c.target.src||d,t=new Error("Loading CSS chunk "+e+" failed.\n("+f+")");t.request=f,n(t)},b.href=d,document.getElementsByTagName("head")[0].appendChild(b)}).then(function(){d[e]=0}));var n=t[e];if(0!==n)if(n)c.push(n[2]);else{var f=new Promise(function(c,f){n=t[e]=[c,f]});c.push(n[2]=f);var a,u=document.getElementsByTagName("head")[0],o=document.createElement("script");o.charset="utf-8",o.timeout=120,r.nc&&o.setAttribute("nonce",r.nc),o.src=function(e){return r.p+"static/js/"+({}[e]||e)+"."+{4171:"3273b2a2",MiWS:"86bc960d","chunk-05a1":"af799b5c","chunk-15e5":"318eb98e","chunk-4779":"2ec96ac3","chunk-531e":"a809d452","chunk-5663":"0055f4f7","chunk-5ea7":"99d11dab","chunk-437b":"382a3771","chunk-44c5":"3ec04e46","chunk-f079":"86ef3b0d","chunk-6b46":"a883c7f7","chunk-5219":"fd028a87","chunk-cf59":"dbf1da30","chunk-61cf":"aa1302de","chunk-73da":"bd8a5ee8","chunk-6e86":"428bb788","chunk-a4f3":"307f23d6","chunk-be10":"72b9403e","chunk-146e":"96093853","chunk-fd33":"faeb3042",gJ75:"c1af439e","/5I7":"d3dc27e3","1kog":"eca4caaa","4o0w":"57c1bba1","6trW":"2905fae9",Bmdt:"2a3fecff",Cag9:"1d7d4b21",CbXN:"0bf66c62",Dxy8:"4b37b8c5",EQUq:"3fcd0eb1","FJ/h":"dc91252a",IWwd:"dd8d6c48",IuD6:"14b51d2c",LqO4:"b9fee23e",MQtB:"0632f930",Npd3:"952bed4f",PFFx:"772b7adb",Qit9:"5eced9a7",S7HC:"4afe44ae",VxcK:"80929451",X3yt:"c109bd78",X66W:"280403ab",XfA5:"1c7fb094",Y8uL:"5091fLine truncated
@@ -1 +1 @@
::-webkit-scrollbar-track-piece{background:#f7f7f7;-webkit-border-radius:7px}::-webkit-scrollbar-thumb:horizontal,::-webkit-scrollbar-thumb:vertical{background-color:#dcdfe6;-webkit-border-radius:7px}a:focus,button:focus,input:focus,textarea:focus{outline:none}input:-webkit-autofill{box-shadow:inset 0 0 0 1000px #e5e9ee!important;-webkit-box-shadow:0 0 0 1000px #000 inset!important;border:0 solid #ccc!important;-webkit-text-fill-color:#fff}::-ms-clear,::-ms-reveal{display:none}.on-focus:focus{border:1px solid #5bc0de}.clearfix:after{content:"";width:100%}.mt10{margin-top:10px}.fr{float:right}.fl{float:left}.el-table td{padding:8px 0}.anji-card{margin-bottom:5px;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;background:#fff;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.anji-card,.anji-card .card-head{-webkit-box-sizing:border-box;box-sizing:border-box}.anji-card .card-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:35px;padding:0 24px;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0;zoom:1}.anji-card .card-head .main-card-header-button{position:absolute;right:20px}.anji-card .card-body{padding:24px;zoom:1}.el-form-item .el-form-item__label,.el-form-item__content,.el-input__icon{line-height:28px}.el-input--suffix .el-input__inner,.el-input .el-input__inner{height:28px;line-height:28px}.el-button{padding:7px 15px;font-size:12px;border-radius:3px}.el-dropdown-menu__item{min-width:80px;max-width:110px}.el-dropdown-menu__item .el-button--text{margin-left:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background:none!important}.el-table td{padding:6px 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-upload input[type=file]{display:none!important}.el-upload__input{display:none}.el-table--border th.gutter:last-of-type{display:block!important;width:17px!important}.el-dialog{-webkit-transform:none;transform:none;left:0;position:relative;margin:0 auto}.el-dialog .el-dialog__header{background-color:#304da7;color:#fff}.el-dialog .el-dialog__header .el-dialog__headerbtn i,.el-dialog .el-dialog__header .el-dialog__title{color:#fff}.el-tooltip__popper{max-width:80%}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.el-input-group{display:inline-table!important}.input-with-select .el-input-group__prepend .el-select{width:105px}.el-form--inline .el-form-item{width:45%;margin-right:25px}.el-form--inline .el-form-item .el-form-item__label{font-size:12px;line-height:17px;padding:0 0 5px}.el-form--inline .el-form-item .el-form-item__content .el-input .el-input__prefix{left:0;background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;border:1px solid #dcdfe6;border-radius:4px;width:40px;height:98%;white-space:nowrap;border-top-right-radius:0;border-bottom-right-radius:0}#app .main-container{min-height:100%;-webkit-transition:margin-left .28s;transition:margin-left .28s;margin-left:180px;position:relative}#app .sidebar-container{-webkit-transition:width .28s;transition:width .28s;width:180px!important;height:100%;position:fixed;font-size:0;top:0;bottom:0;left:0;z-index:1001;overflow:hidden;-webkit-box-shadow:1px 1px 4px #e7eeff;box-shadow:1px 1px 4px #e7eeff}#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 .el-scrollbar__bar.is-vertical{right:0}#app .sidebar-container .scrollbar-wrapper{overflow-x:hidden!important}#app .sidebar-container .scrollbar-wrapper .el-scrollbar__view{height:calc(100vh - 70px)}#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 .is-activLine truncated
::-webkit-scrollbar-track-piece{background:#f7f7f7;-webkit-border-radius:7px}::-webkit-scrollbar-thumb:horizontal,::-webkit-scrollbar-thumb:vertical{background-color:#dcdfe6;-webkit-border-radius:7px}a:focus,button:focus,input:focus,textarea:focus{outline:none}input:-webkit-autofill{box-shadow:inset 0 0 0 1000px #e5e9ee!important;-webkit-box-shadow:0 0 0 1000px #000 inset!important;border:0 solid #ccc!important;-webkit-text-fill-color:#fff}::-ms-clear,::-ms-reveal{display:none}.on-focus:focus{border:1px solid #5bc0de}.clearfix:after{content:"";width:100%}.mt10{margin-top:10px}.fr{float:right}.fl{float:left}.el-table td{padding:8px 0}.anji-card{margin-bottom:5px;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";position:relative;background:#fff;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.anji-card,.anji-card .card-head{-webkit-box-sizing:border-box;box-sizing:border-box}.anji-card .card-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:35px;padding:0 24px;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;background:transparent;border-bottom:1px solid #e8e8e8;border-radius:2px 2px 0 0;zoom:1}.anji-card .card-head .main-card-header-button{position:absolute;right:20px}.anji-card .card-body{padding:24px;zoom:1}.el-form-item .el-form-item__label,.el-form-item__content,.el-input__icon{line-height:28px}.el-input--suffix .el-input__inner,.el-input .el-input__inner{height:28px;line-height:28px}.el-button{padding:7px 15px;font-size:12px;border-radius:3px}.el-dropdown-menu__item{min-width:80px;max-width:110px}.el-dropdown-menu__item .el-button--text{margin-left:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background:none!important}.el-table td{padding:6px 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-upload input[type=file]{display:none!important}.el-upload__input{display:none}.el-table--border th.gutter:last-of-type{display:block!important;width:17px!important}.el-dialog{-webkit-transform:none;transform:none;left:0;position:relative;margin:0 auto}.el-dialog .el-dialog__header{background-color:#304da7;color:#fff}.el-dialog .el-dialog__header .el-dialog__headerbtn i,.el-dialog .el-dialog__header .el-dialog__title{color:#fff}.el-tooltip__popper{max-width:80%}.upload-container .el-upload{width:100%}.upload-container .el-upload .el-upload-dragger{width:100%;height:200px}.el-input-group{display:inline-table!important}.input-with-select .el-input-group__prepend .el-select{width:105px}.el-form--inline .el-form-item{width:45%;margin-right:25px}.el-form--inline .el-form-item .el-form-item__label{font-size:12px;line-height:17px;padding:0 0 5px}.el-form--inline .el-form-item .el-form-item__content .el-input .el-input__prefix{left:0;background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;border:1px solid #dcdfe6;border-radius:4px;width:40px;height:98%;white-space:nowrap;border-top-right-radius:0;border-bottom-right-radius:0}#app .main-container{min-height:100%;-webkit-transition:margin-left .28s;transition:margin-left .28s;margin-left:180px;position:relative}#app .sidebar-container{-webkit-transition:width .28s;transition:width .28s;width:180px!important;height:100%;position:fixed;font-size:0;top:0;bottom:0;left:0;z-index:1001;overflow:hidden;-webkit-box-shadow:1px 1px 4px #e7eeff;box-shadow:1px 1px 4px #e7eeff}#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 .el-scrollbar__bar.is-vertical{right:0}#app .sidebar-container .scrollbar-wrapper{overflow-x:hidden!important}#app .sidebar-container .scrollbar-wrapper .el-scrollbar__view{height:calc(100vh - 70px)}#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 .is-activLine truncated
@@ -0,0 +1 @@
.el-upload[data-v-11051c14]{display:inline-block}
@@ -0,0 +1 @@
[data-v-577511ef] .el-color-picker--mini,[data-v-577511ef] .el-color-picker--mini .el-color-picker__trigger{width:23px;height:23px}@font-face{font-family:iconfont;src:url(/static/fonts/iconfont.ba04816.eot);src:url(/static/fonts/iconfont.ba04816.eot#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAACJQAAsAAAAAVKgAACH9AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCObgqBghDoEwE2AiQDgygLgVYABCAFhG0HimMbCkZ1hhxsHACQvM8iooIUIPv/vyU3hoisQDP7oxQspFSOEhyEI964SGdpHgbZQdChvkX9Xd97nQ+VaIq7d5noG8yfVj6tSWbtWNLPqLzFBpnESCbt5xn252+nSxLNW5sNpeTh+f39/481976wz7uPRtUHGDrbrw4ZrEQ+o9sQS7AOLVwR9wAYHufsX4sltIw2UGCOWN/DZAYtWnRGXhjMYFsLlBOm6ZgkU7ixOUVm3hSYSZmdcy3Ttndf4ESBU8/fv9PPcyR7254j2T+y/RCTRQgUIXDBiWYbMHXqvsls3dZt8yP9Sr8UeI/jYBECy2DQpVnHImNkw4UQi/rrnSeKbo3ABwpVbnt7MIAxZW53t9DyQ2dMry7DVAd+ALjBeSGPOIh9Xfq3yXEPE8N0ZWvf3u79xy5A2HKIRLDVxEQAD/zfm+lMLBjA+E0Di+KU9uanlEK1W7V0DFgDrXU7yJ4lXCBcov15demKDpPSOimby7C0sjnTlu3++0jcl/hgIbgcAnwn3BBuFBeEGwh8Vjk7ve+1wbkBaZxrn1Lq5im1jRnWZJnalH2IbiaZdvxjNFLYNjjuGFPLYXaXebSkr0ZxoxJ0Q5TYn78moVKvgrRuw7Z9FDmzmGDZtcsXT1M8rfKIsqS8oZTyYT6c9itRHs+EAy+Rv59+NScRhJKM+eKuC+vPAT8+K8geLvKTY47JsOvG/iMyFJATC6ijaZbsa6IgU/laM085SuVr48fXBUURyyJFWuHz/9qJHr369BswaMiwEaPGjJswaUpBkxmmzTTLbHPMNc98Cyy0yGJLLLXMciustAqEYARlstgcLo8vEIrEEqlMrlCqyA5ptDq9wWiiOkVz2mojOedguOBye+g6Dn+yRq069Ro0atKsRas27SqVq1KtQolSZUIm8j+eVMpcWg0li2DyBubHB6OHH1/08uOHPn780a+QhKGVCLQRhXZi0EEcOklAF0noJgU9pKGXDPSRhX5yMEAeShRgkCIMUYJhyjBCBYxSCWNUwTjVMEENTFILU9TBNPUwQwPM0ghzNME8zbBACyzSCku0wTLtsKIDVnXCmi5Y1w0bemBTL2zpg239sGMAdg3CniHYNwwHRuDQKBwZg2PjcGICTk3CmSk4Nw0XZuDSLFyZg2vzEGMBbizCrSW4swz3VuDBKjxagyfr8GwDsmzCiy3IsQ2vduDNLrzbgyj78OEAPh1CA0fw5Ri+ncCPU/h1BvWcQy0XUMclZLhKi1S3hrQYdRuAPLdQ4A6K3EOJByjzCBWeoIpnqOYFaniFJG8Q5x1SfECaT0jwBRG+IcoPxPiFIH8Q4h/CBNnZNvqzb/2Hgm+XX6shAPDIDn2nEKAqnKGBUOivZA4KW0gZvafr3BQtvdGQKGOXK+jxMuHo+RqAUxEBRoTkYwZwmLuk6nyIpr4UPapkojiXpKlDRMhw0F0ARQPDTMn9UPjbkHEt+m4NOCLsVWbo7ZitUp6Nl3YnrJ8iAvij7nsIRSkYT2AfwVuji87qVBm1Q5gVmYuFsYgqpu1Vy0P4b7e3HTaoWtKXAeiIq9rtbDfJnFEJ3yZ5C9vMFqQ4rUyz9jyEsVO+bind+meT82iX3uh7WLtf/mNHA48h7jF5ypzTlCQcv5ubeehZSly2XeCJ32vWw0QsABZSz1MRvFzCulXrUUotFpgPLHGctww3N2IaitXjWLBtPW/2mW0J9wozblPnTXu/syRwarVqYG2kKhiLdIG7JvyWsZA0S5cPgxEReXFY0nvhZ941sR0MJUHkFQ7CcX3kV73dn/vD9HnX4zD1iwl79nujL6+lfhIthTEg9FMWn8HG31mJYxBFRLi2SxRsAwoSjCwtLT6/QJHjxcxpyU90trhORYQlNEVoAbGpu2GbosgBG5OkOGMFEfxEaXYgF207EO8w4/rRVbtzcBw43CthsjtfCmL0OBzGXkRcHeMaT59lMFjZVw728rXpog0WMNByJpe9kcvkvWrDIJPwkHN5yI1nKJtnLIbJvJ8CpC0DZRiQThkg5CyOqcHwGnJsLMnghmXYs53/HpcMFoqT/eerkoBVBRRvYxNPHyNNQeQAMCbForbAXiTgZZUEjueAtXnoH7H9zuDi/f636fbH3VdPrdw7eOuDvyN3Drx9st7snrvX+5YNXiGOS91Vux7s+nvhzs3tVjXr8khMzBjJllUMimyapCU9KmwhxrSFdmeVw/5mgCsEvEiy8ZkC1iTTAU42MpStqBEbthqWYkhbLgMBaFuGFwUJmsImfqFKWJCxL1r8hd02vNVOgzRus/VWrCjy4oKdpn6SKxVsiIkZw6rhBYfJ0ioZ2Yyr7KrxWsTdUMmVwKlGtwrS1ultYU0lJS1djQX9BLXJhOoliVrLa2MGmSNLpp8EEYQaEbKMOzWImr1XRLBD/hlFJXG5xhnaCoujC6vDbSYgxnlndOSqiujC2Qxl22EM0UsdJhFI0OZT0U9VILjQS2YtDWPPEV0vq8QfBoKrSKAHyyJalTzpy92Iwf5WDXQ3S/2q3vzeMmwXM+YKRAR/h9PxHVkIvwFsEtzcp+DwLBJ4+XCgqUvB6/4bz4T/Pc73+xR8db87+loFX5KsNIk0O+CSUDQjKiH6L+5+++17E/2rKYc7xznuge8C/0LnW2+dDjxMwe4J6lXQf4PD6zuA0X/0TxRc2riGZNwIx/9/llacjXLVM+x//fV0X5b0Rg803Tl6ZlCLGA4ElEGzGAlFrfbrXd/hJgPp8rNuV+c1+a1er/vwe7Xu7jetCgFvHT04vKLIQFoyXtkoqm5Vf/VgZW/mmwgdUXO134d5bvrXE1+a/NVUpZ53p2sTjcnqVPtlUiRo7hHBzVpuzpDaVDNCmVqWW25HVLJeSgtSp3EcOaIllJZKSBcICf+RFv75kffh00vkrXbCrXV/bTPYWNHBp6fg1kF4dBb9z0c6O8Bb2Qg21xD9vXmtro0S8MjcP2KMGNpoenQ72E1bWkjTZVjZvmRt7mLW37vKQOMyw4vZDtO3GVuded3LdjpJXAzjlahVT9a3OoXav3vXV2/d/cOl/f7YnwY6uvl2oD7xP35241LkqBHnj92H97tjh/3xPw9eGF/Va1d0utVZdao7gzf6EvWmvRYH5rLnK+YqfX2EgUYrd2AoN80Jtw9ZarlGYyE1x52d4/fqIPUEru+NHhlOvi8J6agxKY/J4glz+UkpF7jsMZnv/i7HCrHXkhldR60gA2NqEQBm0U7RAJic1QK4pFWF9GUBqGRNBQJ8CNrihUe0miylfnEoCRxHOMClR93J2HOqhI00VPNASU9MpGFcaFgm58huxFU7jJuGt3PZ3tpDk8P1taRoP1P7aUlYIlwOG6QmCpuboJumMlQsukPbI2cFN+egEZ0/61w+XF2hXLC2Lmej40W+LYdoKBKfSVtT0swQMvpJseQMBxjI1KBqVyywFVhYMyxzwcmtM1CLYbGwWFElDpCgiiqMKEXPBlIPSwaVjUKzllM/IVLiJIlZj+jsgDuXL25S0BWnKLJORTFz2coISy7LOIkSFzhN1z68pJA0g1KqkGlkBBAUREHAtGEin+IneJbKmjRrpB/LAgto2GDJRzPoJg1fEUpAPpsztNSLYWdVoew0be76e8sCijlqVCgZ5PMKhFDDoyYb4+0bLAEVjahP/nmqqrOcsTFjGX++lJObZLTOHDQpSTQZU1S1o1/eiiYbVAELF8jkebSh/cISZioQkoInrF2ENKuGiibeiQ32kSLQjTJWs5YFMgsAFQEzw038skAXWVcEJVHAO7VZVZTUykJGxVtZ0Tl9W/opzIh4uUzZqVExcuaNHOSbxrI2Eg4uthqa52oFfWWW2Q4heSUpiH52C642GsGGhbsRFkecw7h2mgbYSvmpSEY1nXPsZg1+aV7KBf/+4iwlzyex258/q9mj2QIvHBd26NZn7uaVRmqL4OrxYcGbauMtOztwKOj3/cGAez3ZTR+lv9Hc7bQqtBMqbMacn7IsEMBh5YURAn2N5Rk7h07xS7obDn5diqFxQh6rCDk8xkjjTYkF+bAS8poqltS3pJYMhNWhBrUstOcnaBMgHJmVemgECca+aasAoYupWuHBignS9J4SwxIAP0341LMF4jSz5vc/7xPUziYygdfZwjnK5DHnAt/tfrNfpTkSEYau5xDqt9ZFyuB+v52hLC1sqE0AMwt2kkapL5b4qUpGJZ1z7CqGpv3Cz15svDXnOfox3+6FB4Mf/eNT77PwC//z+kusDbwCLURGGwlyqJxNTa0nZfoJ0bRzWMET6jFryDx0AnJCmX64NG/Quj4xeW1qYmh6anhSA7PHAwuXrgvl0bY5Q7MW2r8kWMbi9V8hsBZsCtA4rsnxRwjm4hTqYaWHBFMjXZSAtcQEAQ+eTUuG3QhyeHFzrujQftvWxv6x1eNeDPth7aUUwlIqbDO9d/L2ofCjkoiAwhlKXN9jUGNnpS3QEUNa4WYl1OeEFEDI9eEacreOypDOYV4Ny/oY9qoY6AEI8zOzwIORYbwvlvQ/HQdHIgOmYl9YT1nhKVmRLmMsR5UkjTam5TIel1Line truncated
@@ -0,0 +1 @@
.app-breadcrumb.el-breadcrumb[data-v-23d4be90]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-23d4be90]{color:#97a8be;cursor:text}.main-layout[data-v-d86dc16a]{padding:20px;position:relative;height:auto;background:#fff}.main-layout header[data-v-d86dc16a]{font-size:24px;text-align:center;line-height:80px}.main-layout .bg[data-v-d86dc16a]{width:100%;height:200px;position:relative;overflow:hidden;margin:10px 0;border:12px solid #fff}.main-layout .bg .bg-img[data-v-d86dc16a]{position:absolute;width:100%;height:100%;-webkit-filter:blur(6px);filter:blur(6px);z-index:2}.main-layout .content[data-v-d86dc16a]{width:100%;height:100%;position:absolute;color:#fff;left:0;top:0;z-index:3}.main-layout footer[data-v-d86dc16a]{width:100%;font-size:14px;padding:16px;line-height:30px;position:absolute;z-index:3;bottom:0}.main-layout footer .operation[data-v-d86dc16a]{float:right}.main-layout footer .operation .edit[data-v-d86dc16a],.main-layout footer .operation .view[data-v-d86dc16a]{color:#fff;font-size:14px}
@@ -1 +0,0 @@
.app-breadcrumb.el-breadcrumb[data-v-72fca284]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-72fca284]{color:#97a8be;cursor:text}
@@ -1 +0,0 @@
.el-upload[data-v-7d37f4b2]{display:inline-block}
@@ -1 +0,0 @@
.vue-draggalbe[data-v-40c6ecfe]{position:absolute}.widget-active[data-v-40c6ecfe]{cursor:move;border:1px dashed #09f;background-color:rgba(115,170,229,.5)}.avue-draggable[data-v-40c6ecfe]{padding:0!important}[data-v-13862a2c] .el-color-picker--mini,[data-v-13862a2c] .el-color-picker--mini .el-color-picker__trigger{width:23px;height:23px}.app-breadcrumb.el-breadcrumb[data-v-72fca284]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-72fca284]{color:#97a8be;cursor:text}.color-box .title[data-v-0fc68780]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}[data-v-0fc68780] .el-table,[data-v-0fc68780] .el-table__expanded-cell,[data-v-0fc68780] .el-table th,[data-v-0fc68780] .el-table tr{background-color:transparent!important;color:#859094!important}[data-v-0fc68780] .el-table td,[data-v-0fc68780] .el-table th.is-leaf{border-bottom:none;line-height:26px}[data-v-0fc68780] .el-table tbody tr:hover>td{background-color:#263445!important}[data-v-0fc68780] .el-table:before{height:0}[data-v-0fc68780] .el-color-picker--mini,[data-v-0fc68780] .el-color-picker--mini .el-color-picker__trigger{width:23px;height:23px}[data-v-0fc68780] .el-dialog{background:#1b1e25}[data-v-0fc68780] .el-dialog .el-dialog__title{color:#fff}.color-box[data-v-0fc68780]{display:inline-block;width:20px;height:20px;border-radius:5px}.editor[data-v-0fc68780]{color:#409eff;cursor:pointer}[data-v-6be31ba0] ::-webkit-scrollbar-track-piece{background-color:transparent}[data-v-6be31ba0] .el-table__body-wrapper::-webkit-scrollbar{width:0;height:8px}[data-v-6be31ba0] .el-table__body-wrapper::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(144,146,152,.3)}[data-v-6be31ba0] .el-table,[data-v-6be31ba0] .el-table__expanded-cell,[data-v-6be31ba0] .el-table th,[data-v-6be31ba0] .el-table tr{background-color:transparent!important;color:#859094!important;font-size:12px!important}[data-v-6be31ba0] .el-table td,[data-v-6be31ba0] .el-table th.is-leaf{border-bottom:none;line-height:26px}[data-v-6be31ba0] .el-table tbody tr:hover,[data-v-6be31ba0] .el-table tbody tr:hover>td{background-color:#263445!important}[data-v-6be31ba0] .el-table:before{height:0}.button-group .el-button[data-v-6be31ba0]{padding:0}.file[data-v-536742be]{position:absolute;width:100%;padding:100%;right:0;top:0;opacity:0}[data-v-536742be] .el-input-group__append,[data-v-536742be] .el-input-group__prepend{padding:0 10px!important;overflow:hidden}.iconfont[data-v-536742be]{font-size:12px}[data-v-40bbac30] .el-form-item{margin-bottom:5px}[data-v-40bbac30] .el-form-item__label{font-size:12px;color:#fff}.code-mirror[data-v-40bbac30]{width:100%;height:100%!important}.el-collapse[data-v-40bbac30]{border-top:none;border-bottom:none}[data-v-40bbac30] .el-collapse-item__header{height:40px;line-height:40px;background:transparent;color:#bcc9d4;font-weight:300;font-size:12px;border-color:#282e3a}[data-v-40bbac30] .el-collapse-item__wrap{background:transparent;border:none}[data-v-40bbac30] .el-collapse-item__content{padding-bottom:0}.contentmenu[data-v-ba7a773c]{width:160px;position:fixed;z-index:99999;list-style:none;-webkit-box-shadow:0 2px 6px rgba(0,0,0,.1);box-shadow:0 2px 6px rgba(0,0,0,.1);padding:0;background:#27343e;color:#bcc9d4}.contentmenu .contentmenu__item[data-v-ba7a773c]{z-index:10000;list-style:none;padding:8px 12px;cursor:pointer;position:relative;font-size:12px}.contentmenu .iconfont[data-v-ba7a773c]{font-size:12px}.mr10[data-v-2184f2f6]{margin-right:10px}.ml20[data-v-2184f2f6]{margin-left:20px}.border-right[data-v-2184f2f6]{border-right:1px solid #273b4d}.border-left[data-v-2184f2f6]{border-left:1px solid #273b4d}.el-icon-arrow-down[data-v-2184f2f6]{font-size:10px}.is-active[data-v-2184f2f6]{background:#31455d!important;color:#bfcbd9!important}.layout[data-v-2184f2f6]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;overflow:hidden}.layout .layout-left[data-v-2184f2f6],.layout[data-v-2184f2f6]{height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.layout .layout-left[data-v-2184f2f6]{display:inline-block;border:0;background-color:#263445}.layout .layout-left .tools-item[data-v-2184f2f6]{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;width:100%;height:48px;-ms-flex-align:center;align-items:center;-webkit-box-align:center;padding:0 6px;cursor:pointer;font-size:12px;margin-bottom:1px}.layout .layout-left .tools-item .tools-item-icon[data-v-2184f2f6]{color:#409eff;margin-right:10px;width:53px;height:30px;line-height:30px;text-align:center;display:block;border:1px solid #3a4659;background:#282a30}.layout .layout-left-fold[data-v-2184f2f6]{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;font-size:12px;overflow:hidden;background-color:#242a30;cursor:pointer;padding-top:26%}.layout .layout-left-fold i[data-v-2184f2f6]{font-size:18px;width:18px;height:2Line truncated
@@ -0,0 +1 @@
.app-breadcrumb.el-breadcrumb[data-v-23d4be90]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-23d4be90]{color:#97a8be;cursor:text}.main[data-v-d2955d34] .view-lines *{font-family:Consolas,Courier New,monospace!important}.code-mirror-form[data-v-6255511d] .el-form-item__content{height:200px;overflow:hidden}.my-editor[data-v-6255511d]{height:400px}.my-editor div.jsoneditor[data-v-6255511d]{height:400px!important}.title[data-v-6255511d]{width:100%;display:inline-block;text-align:left}.addSwitch ul[data-v-6255511d]{list-style:none;margin:0}.addSwitch ul li[data-v-6255511d]{width:200px;height:60px;padding:10px;border:1px solid #aaa;float:left;margin-right:10px;text-align:center;line-height:40px;cursor:pointer}.addSwitch ul li.add[data-v-6255511d],.addSwitch ul li[data-v-6255511d]:hover{border:1px solid #3385ff;color:#3385ff}.filterWrapper[data-v-6255511d]{position:relative}.filterTable[data-v-6255511d]{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;border:1px solid #dcdfe6;border-radius:4px;padding:5px 15px 25px}.filterWrapper .addFilter[data-v-6255511d]{cursor:pointer;width:150px;height:50px;border-radius:3px;border:1px solid #67c23a;margin-top:20px;background:#e4f7da;padding-left:24px}.filterWrapper .addFilter i[data-v-6255511d]{font-size:20px;color:#67c23a;margin-top:16px;margin-left:16px}.filterWrapper .addFilter span[data-v-6255511d]{color:#67c23a;margin-left:5px;font-size:18px}.filterBox[data-v-6255511d]{width:182px;position:relative;margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.filterBox .box[data-v-6255511d]{width:150px;height:50px;text-align:center;position:relative;background:#e0e8ff;border-radius:3px;border:1px solid #b8caff;float:left;padding:5px 20px}.filterBox .box .reduceFilter[data-v-6255511d]{width:10px;height:10px;position:absolute;right:4px;top:4px;cursor:pointer}.filterBox .box .editor[data-v-6255511d]{width:12px;height:13px;position:absolute;left:-5px;top:5px;cursor:pointer}.filterBox .rightIcon[data-v-6255511d]{width:45px;height:19px;position:absolute;right:10px;top:15px}.filterTextarea[data-v-6255511d] .el-textarea__inner{min-height:300px!important}.filterBox .code-selected[data-v-6255511d]{width:70%;margin-top:4px}.filterBox[data-v-6255511d] .el-input--suffix .el-input__inner{background:#f4f7ff;border-radius:3px;border:1px solid #b8caff;color:#89a3ee}.font-icon-right[data-v-6255511d]{line-height:35px;font-size:30px}.popover-box[data-v-6255511d]{width:100%;height:220px;overflow-y:auto;padding:10px}
@@ -0,0 +1 @@
@font-face{font-family:iconfont;src:url(/static/fonts/iconfont.ba04816.eot);src:url(/static/fonts/iconfont.ba04816.eot#iefix) format("embedded-opentype"),url("data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAACJQAAsAAAAAVKgAACH9AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCObgqBghDoEwE2AiQDgygLgVYABCAFhG0HimMbCkZ1hhxsHACQvM8iooIUIPv/vyU3hoisQDP7oxQspFSOEhyEI964SGdpHgbZQdChvkX9Xd97nQ+VaIq7d5noG8yfVj6tSWbtWNLPqLzFBpnESCbt5xn252+nSxLNW5sNpeTh+f39/481976wz7uPRtUHGDrbrw4ZrEQ+o9sQS7AOLVwR9wAYHufsX4sltIw2UGCOWN/DZAYtWnRGXhjMYFsLlBOm6ZgkU7ixOUVm3hSYSZmdcy3Ttndf4ESBU8/fv9PPcyR7254j2T+y/RCTRQgUIXDBiWYbMHXqvsls3dZt8yP9Sr8UeI/jYBECy2DQpVnHImNkw4UQi/rrnSeKbo3ABwpVbnt7MIAxZW53t9DyQ2dMry7DVAd+ALjBeSGPOIh9Xfq3yXEPE8N0ZWvf3u79xy5A2HKIRLDVxEQAD/zfm+lMLBjA+E0Di+KU9uanlEK1W7V0DFgDrXU7yJ4lXCBcov15demKDpPSOimby7C0sjnTlu3++0jcl/hgIbgcAnwn3BBuFBeEGwh8Vjk7ve+1wbkBaZxrn1Lq5im1jRnWZJnalH2IbiaZdvxjNFLYNjjuGFPLYXaXebSkr0ZxoxJ0Q5TYn78moVKvgrRuw7Z9FDmzmGDZtcsXT1M8rfKIsqS8oZTyYT6c9itRHs+EAy+Rv59+NScRhJKM+eKuC+vPAT8+K8geLvKTY47JsOvG/iMyFJATC6ijaZbsa6IgU/laM085SuVr48fXBUURyyJFWuHz/9qJHr369BswaMiwEaPGjJswaUpBkxmmzTTLbHPMNc98Cyy0yGJLLLXMciustAqEYARlstgcLo8vEIrEEqlMrlCqyA5ptDq9wWiiOkVz2mojOedguOBye+g6Dn+yRq069Ro0atKsRas27SqVq1KtQolSZUIm8j+eVMpcWg0li2DyBubHB6OHH1/08uOHPn780a+QhKGVCLQRhXZi0EEcOklAF0noJgU9pKGXDPSRhX5yMEAeShRgkCIMUYJhyjBCBYxSCWNUwTjVMEENTFILU9TBNPUwQwPM0ghzNME8zbBACyzSCku0wTLtsKIDVnXCmi5Y1w0bemBTL2zpg239sGMAdg3CniHYNwwHRuDQKBwZg2PjcGICTk3CmSk4Nw0XZuDSLFyZg2vzEGMBbizCrSW4swz3VuDBKjxagyfr8GwDsmzCiy3IsQ2vduDNLrzbgyj78OEAPh1CA0fw5Ri+ncCPU/h1BvWcQy0XUMclZLhKi1S3hrQYdRuAPLdQ4A6K3EOJByjzCBWeoIpnqOYFaniFJG8Q5x1SfECaT0jwBRG+IcoPxPiFIH8Q4h/CBNnZNvqzb/2Hgm+XX6shAPDIDn2nEKAqnKGBUOivZA4KW0gZvafr3BQtvdGQKGOXK+jxMuHo+RqAUxEBRoTkYwZwmLuk6nyIpr4UPapkojiXpKlDRMhw0F0ARQPDTMn9UPjbkHEt+m4NOCLsVWbo7ZitUp6Nl3YnrJ8iAvij7nsIRSkYT2AfwVuji87qVBm1Q5gVmYuFsYgqpu1Vy0P4b7e3HTaoWtKXAeiIq9rtbDfJnFEJ3yZ5C9vMFqQ4rUyz9jyEsVO+bind+meT82iX3uh7WLtf/mNHA48h7jF5ypzTlCQcv5ubeehZSly2XeCJ32vWw0QsABZSz1MRvFzCulXrUUotFpgPLHGctww3N2IaitXjWLBtPW/2mW0J9wozblPnTXu/syRwarVqYG2kKhiLdIG7JvyWsZA0S5cPgxEReXFY0nvhZ941sR0MJUHkFQ7CcX3kV73dn/vD9HnX4zD1iwl79nujL6+lfhIthTEg9FMWn8HG31mJYxBFRLi2SxRsAwoSjCwtLT6/QJHjxcxpyU90trhORYQlNEVoAbGpu2GbosgBG5OkOGMFEfxEaXYgF207EO8w4/rRVbtzcBw43CthsjtfCmL0OBzGXkRcHeMaT59lMFjZVw728rXpog0WMNByJpe9kcvkvWrDIJPwkHN5yI1nKJtnLIbJvJ8CpC0DZRiQThkg5CyOqcHwGnJsLMnghmXYs53/HpcMFoqT/eerkoBVBRRvYxNPHyNNQeQAMCbForbAXiTgZZUEjueAtXnoH7H9zuDi/f636fbH3VdPrdw7eOuDvyN3Drx9st7snrvX+5YNXiGOS91Vux7s+nvhzs3tVjXr8khMzBjJllUMimyapCU9KmwhxrSFdmeVw/5mgCsEvEiy8ZkC1iTTAU42MpStqBEbthqWYkhbLgMBaFuGFwUJmsImfqFKWJCxL1r8hd02vNVOgzRus/VWrCjy4oKdpn6SKxVsiIkZw6rhBYfJ0ioZ2Yyr7KrxWsTdUMmVwKlGtwrS1ultYU0lJS1djQX9BLXJhOoliVrLa2MGmSNLpp8EEYQaEbKMOzWImr1XRLBD/hlFJXG5xhnaCoujC6vDbSYgxnlndOSqiujC2Qxl22EM0UsdJhFI0OZT0U9VILjQS2YtDWPPEV0vq8QfBoKrSKAHyyJalTzpy92Iwf5WDXQ3S/2q3vzeMmwXM+YKRAR/h9PxHVkIvwFsEtzcp+DwLBJ4+XCgqUvB6/4bz4T/Pc73+xR8db87+loFX5KsNIk0O+CSUDQjKiH6L+5+++17E/2rKYc7xznuge8C/0LnW2+dDjxMwe4J6lXQf4PD6zuA0X/0TxRc2riGZNwIx/9/llacjXLVM+x//fV0X5b0Rg803Tl6ZlCLGA4ElEGzGAlFrfbrXd/hJgPp8rNuV+c1+a1er/vwe7Xu7jetCgFvHT04vKLIQFoyXtkoqm5Vf/VgZW/mmwgdUXO134d5bvrXE1+a/NVUpZ53p2sTjcnqVPtlUiRo7hHBzVpuzpDaVDNCmVqWW25HVLJeSgtSp3EcOaIllJZKSBcICf+RFv75kffh00vkrXbCrXV/bTPYWNHBp6fg1kF4dBb9z0c6O8Bb2Qg21xD9vXmtro0S8MjcP2KMGNpoenQ72E1bWkjTZVjZvmRt7mLW37vKQOMyw4vZDtO3GVuded3LdjpJXAzjlahVT9a3OoXav3vXV2/d/cOl/f7YnwY6uvl2oD7xP35241LkqBHnj92H97tjh/3xPw9eGF/Va1d0utVZdao7gzf6EvWmvRYH5rLnK+YqfX2EgUYrd2AoN80Jtw9ZarlGYyE1x52d4/fqIPUEru+NHhlOvi8J6agxKY/J4glz+UkpF7jsMZnv/i7HCrHXkhldR60gA2NqEQBm0U7RAJic1QK4pFWF9GUBqGRNBQJ8CNrihUe0miylfnEoCRxHOMClR93J2HOqhI00VPNASU9MpGFcaFgm58huxFU7jJuGt3PZ3tpDk8P1taRoP1P7aUlYIlwOG6QmCpuboJumMlQsukPbI2cFN+egEZ0/61w+XF2hXLC2Lmej40W+LYdoKBKfSVtT0swQMvpJseQMBxjI1KBqVyywFVhYMyxzwcmtM1CLYbGwWFElDpCgiiqMKEXPBlIPSwaVjUKzllM/IVLiJIlZj+jsgDuXL25S0BWnKLJORTFz2coISy7LOIkSFzhN1z68pJA0g1KqkGlkBBAUREHAtGEin+IneJbKmjRrpB/LAgto2GDJRzPoJg1fEUpAPpsztNSLYWdVoew0be76e8sCijlqVCgZ5PMKhFDDoyYb4+0bLAEVjahP/nmqqrOcsTFjGX++lJObZLTOHDQpSTQZU1S1o1/eiiYbVAELF8jkebSh/cISZioQkoInrF2ENKuGiibeiQ32kSLQjTJWs5YFMgsAFQEzw038skAXWVcEJVHAO7VZVZTUykJGxVtZ0Tl9W/opzIh4uUzZqVExcuaNHOSbxrI2Eg4uthqa52oFfWWW2Q4heSUpiH52C642GsGGhbsRFkecw7h2mgbYSvmpSEY1nXPsZg1+aV7KBf/+4iwlzyex258/q9mj2QIvHBd26NZn7uaVRmqL4OrxYcGbauMtOztwKOj3/cGAez3ZTR+lv9Hc7bQqtBMqbMacn7IsEMBh5YURAn2N5Rk7h07xS7obDn5diqFxQh6rCDk8xkjjTYkF+bAS8poqltS3pJYMhNWhBrUstOcnaBMgHJmVemgECca+aasAoYupWuHBignS9J4SwxIAP0341LMF4jSz5vc/7xPUziYygdfZwjnK5DHnAt/tfrNfpTkSEYau5xDqt9ZFyuB+v52hLC1sqE0AMwt2kkapL5b4qUpGJZ1z7CqGpv3Cz15svDXnOfox3+6FB4Mf/eNT77PwC//z+kusDbwCLURGGwlyqJxNTa0nZfoJ0bRzWMET6jFryDx0AnJCmX64NG/Quj4xeW1qYmh6anhSA7PHAwuXrgvl0bY5Q7MW2r8kWMbi9V8hsBZsCtA4rsnxRwjm4hTqYaWHBFMjXZSAtcQEAQ+eTUuG3QhyeHFzrujQftvWxv6x1eNeDPth7aUUwlIqbDO9d/L2ofCjkoiAwhlKXN9jUGNnpS3QEUNa4WYl1OeEFEDI9eEacreOypDOYV4Ny/oY9qoY6AEI8zOzwIORYbwvlvQ/HQdHIgOmYl9YT1nhKVmRLmMsR5UkjTam5TIel1mMOUGExd5CbDSTcRZ67+rFhgwIn9LsRk4bWNNK1F9nRCGOJXWqiAnRilfl2mAVHTsoWU4vApNEqosFOOBsz9+sTdTt6lRjbmYF/AU3vJ1wz98NtuV1ss5Bc8xY3bnMoJdOqLine truncated
@@ -1 +0,0 @@
.app-breadcrumb.el-breadcrumb[data-v-72fca284]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-72fca284]{color:#97a8be;cursor:text}.main-layout[data-v-855dc780]{padding:20px;position:relative;height:auto;background:#fff}.main-layout header[data-v-855dc780]{font-size:24px;text-align:center;line-height:80px}.main-layout .bg[data-v-855dc780]{width:100%;height:200px;position:relative;overflow:hidden;margin:10px 0;border:12px solid #fff}.main-layout .bg .bg-img[data-v-855dc780]{position:absolute;width:100%;height:100%;-webkit-filter:blur(6px);filter:blur(6px);z-index:2}.main-layout .content[data-v-855dc780]{width:100%;height:100%;position:absolute;color:#fff;left:0;top:0;z-index:3}.main-layout footer[data-v-855dc780]{width:100%;font-size:14px;padding:16px;line-height:30px;position:absolute;z-index:3;bottom:0}.main-layout footer .operation[data-v-855dc780]{float:right}.main-layout footer .operation .edit[data-v-855dc780],.main-layout footer .operation .view[data-v-855dc780]{color:#fff;font-size:14px}
@@ -0,0 +1 @@
.app-breadcrumb.el-breadcrumb[data-v-23d4be90]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-23d4be90]{color:#97a8be;cursor:text}
@@ -1 +1 @@
.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;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{Line truncated
.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;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{Line truncated
@@ -0,0 +1 @@
.app-breadcrumb.el-breadcrumb[data-v-23d4be90]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-23d4be90]{color:#97a8be;cursor:text}.main-layout[data-v-13eccaac]{padding:20px;position:relative;height:auto;background:#fff}.main-layout header[data-v-13eccaac]{font-size:24px;text-align:center;line-height:80px}.main-layout .bg[data-v-13eccaac]{width:100%;height:200px;position:relative;overflow:hidden;margin:10px 0;border:12px solid #fff}.main-layout .bg .bg-img[data-v-13eccaac]{position:absolute;width:100%;height:100%;-webkit-filter:blur(6px);filter:blur(6px);z-index:2}.main-layout .content[data-v-13eccaac]{width:100%;height:100%;position:absolute;color:#fff;left:0;top:0;z-index:3}.main-layout footer[data-v-13eccaac]{width:100%;font-size:14px;padding:16px;line-height:30px;position:absolute;z-index:3;bottom:0}.main-layout footer .operation[data-v-13eccaac]{float:right}.main-layout footer .operation .edit[data-v-13eccaac],.main-layout footer .operation .view[data-v-13eccaac]{color:#fff;font-size:14px}
@@ -0,0 +1 @@
.app-breadcrumb.el-breadcrumb[data-v-23d4be90]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-23d4be90]{color:#97a8be;cursor:text}
@@ -1 +1 @@
.imagebox[data-v-888c1542],.text[data-v-6e740432],.text[data-v-940ccd2a],.text[data-v-79310a83],a[data-v-a773e3d0]{width:100%;height:100%;overflow:hidden}.imagebox img[data-v-888c1542]{width:100%;height:100%}.startImg[data-v-888c1542]{-webkit-animation:turn-data-v-888c1542 1s linear infinite;animation:turn-data-v-888c1542 1s linear infinite}@-webkit-keyframes turn-data-v-888c1542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(1turn)}}@keyframes turn-data-v-888c1542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(1turn)}}.slideBox[data-v-84d93a7c]{width:450px;height:230px;overflow:hidden;position:relative}.slideBox .hd[data-v-84d93a7c]{height:15px;overflow:hidden;position:absolute;right:5px;bottom:5px;z-index:1}.slideBox .hd ul[data-v-84d93a7c]{overflow:hidden;zoom:1;float:left}.slideBox .hd ul li[data-v-84d93a7c]{float:left;margin-right:2px;width:15px;height:15px;line-height:14px;text-align:center;background:#fff;cursor:pointer}.slideBox .hd ul li.on[data-v-84d93a7c]{background:red;color:#fff}.slideBox .bd[data-v-84d93a7c]{position:relative;height:100%;z-index:0}.slideBox .bd li[data-v-84d93a7c]{zoom:1;vertical-align:middle}.slideBox .bd img[data-v-84d93a7c]{width:450px;height:230px;display:block}.slideBox .next[data-v-84d93a7c],.slideBox .prev[data-v-84d93a7c]{position:absolute;left:3%;top:50%;margin-top:-25px;display:block;width:32px;height:40px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOsAAAAgCAMAAADE+3+QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkYyNjE4RUVDRjgxMTFFMjk1ODhDQkIzNDg3MjdGNUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkYyNjE4RUZDRjgxMTFFMjk1ODhDQkIzNDg3MjdGNUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjI2MThFQ0NGODExMUUyOTU4OENCQjM0ODcyN0Y1QSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjI2MThFRENGODExMUUyOTU4OENCQjM0ODcyN0Y1QSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmLDzTcAAAAJUExURcHBwf///////wCiYf4AAAADdFJOU///ANfKDUEAAACjSURBVHja5JnRDUQhDMNM9h/6STfCgeKPsIBjhGgpnHPy7wLyYLUicC5IPJGtJfi5ngsSL1Q7AYgsW8QTV7YJJ6psFU1M2S6YiLJlLPFk21CiydaRaOT+7mKxhYOERDcuCBy+cheiJHBqHEYGqZzPug6d4aG7aajmDPUSQz3iUO8/9KYbeqsPzWCGZmtDM9OhWfjSH8fY31UuSMkT2UqET4ABAHo9NyVXKF5RAAAAAElFTkSuQmCC) -110px 5px no-repeat;filter:alpha(opacity=50);opacity:.5}.slideBox .next[data-v-84d93a7c]{left:auto;right:3%;background-position:8px 5px}.slideBox .next[data-v-84d93a7c]:hover,.slideBox .prev[data-v-84d93a7c]:hover{filter:alpha(opacity=100);opacity:1}.slideBox .nextStop[data-v-84d93a7c],.slideBox .prevStop[data-v-84d93a7c]{display:none}.container[data-v-da7c4b8c]{width:100%;height:100%}video[data-v-da7c4b8c]{width:100%;height:100%;display:block}iframe[data-v-8c8b39ae]{width:100%;height:100%;border:none}.echarts[data-v-3a5788c9],.echarts[data-v-5ee6ebbc],.echarts[data-v-6b9b6c9c],.echarts[data-v-98aeadd0],.echarts[data-v-3842fb50],.echarts[data-v-44285d3c],.echarts[data-v-68827ec0],.echarts[data-v-b13b14fe]{width:100%;height:100%;overflow:hidden}.txtScroll-top[data-v-7306eee7]{overflow:hidden;position:relative}.title[data-v-7306eee7]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.title>div[data-v-7306eee7]{height:50px;line-height:50px;width:100%}.txtScroll-top .bd[data-v-7306eee7]{width:100%}.txtScroll-top .infoList li[data-v-7306eee7]{height:50px;line-height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.txtScroll-top .infoList li>div[data-v-7306eee7]{width:100%}.txtScroll-top .infoList li[data-v-7306eee7]:nth-child(n){background:#003b51}.txtScroll-top .infoList li[data-v-7306eee7]:nth-child(2n){background:#0a2732}.echartMap[data-v-39ab510e]{width:100%;height:100%}.echarts[data-v-39ab510e],.echarts[data-v-66f6cf10]{width:100%;height:100%;overflow:hidden}.echartMap[data-v-acc3c164]{width:100%;height:100%}.echarts[data-v-06f7c47e],.echarts[data-v-56c8f1da],.echarts[data-v-21970a08],.echarts[data-v-acc3c164]{Line truncated
.imagebox[data-v-888c1542],.text[data-v-00cb103e],.text[data-v-6e740432],.text[data-v-79310a83],a[data-v-a773e3d0]{width:100%;height:100%;overflow:hidden}.imagebox img[data-v-888c1542]{width:100%;height:100%}.startImg[data-v-888c1542]{-webkit-animation:turn-data-v-888c1542 1s linear infinite;animation:turn-data-v-888c1542 1s linear infinite}@-webkit-keyframes turn-data-v-888c1542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(1turn)}}@keyframes turn-data-v-888c1542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(1turn)}}.slideBox[data-v-84d93a7c]{width:450px;height:230px;overflow:hidden;position:relative}.slideBox .hd[data-v-84d93a7c]{height:15px;overflow:hidden;position:absolute;right:5px;bottom:5px;z-index:1}.slideBox .hd ul[data-v-84d93a7c]{overflow:hidden;zoom:1;float:left}.slideBox .hd ul li[data-v-84d93a7c]{float:left;margin-right:2px;width:15px;height:15px;line-height:14px;text-align:center;background:#fff;cursor:pointer}.slideBox .hd ul li.on[data-v-84d93a7c]{background:red;color:#fff}.slideBox .bd[data-v-84d93a7c]{position:relative;height:100%;z-index:0}.slideBox .bd li[data-v-84d93a7c]{zoom:1;vertical-align:middle}.slideBox .bd img[data-v-84d93a7c]{width:450px;height:230px;display:block}.slideBox .next[data-v-84d93a7c],.slideBox .prev[data-v-84d93a7c]{position:absolute;left:3%;top:50%;margin-top:-25px;display:block;width:32px;height:40px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOsAAAAgCAMAAADE+3+QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkYyNjE4RUVDRjgxMTFFMjk1ODhDQkIzNDg3MjdGNUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkYyNjE4RUZDRjgxMTFFMjk1ODhDQkIzNDg3MjdGNUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjI2MThFQ0NGODExMUUyOTU4OENCQjM0ODcyN0Y1QSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjI2MThFRENGODExMUUyOTU4OENCQjM0ODcyN0Y1QSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmLDzTcAAAAJUExURcHBwf///////wCiYf4AAAADdFJOU///ANfKDUEAAACjSURBVHja5JnRDUQhDMNM9h/6STfCgeKPsIBjhGgpnHPy7wLyYLUicC5IPJGtJfi5ngsSL1Q7AYgsW8QTV7YJJ6psFU1M2S6YiLJlLPFk21CiydaRaOT+7mKxhYOERDcuCBy+cheiJHBqHEYGqZzPug6d4aG7aajmDPUSQz3iUO8/9KYbeqsPzWCGZmtDM9OhWfjSH8fY31UuSMkT2UqET4ABAHo9NyVXKF5RAAAAAElFTkSuQmCC) -110px 5px no-repeat;filter:alpha(opacity=50);opacity:.5}.slideBox .next[data-v-84d93a7c]{left:auto;right:3%;background-position:8px 5px}.slideBox .next[data-v-84d93a7c]:hover,.slideBox .prev[data-v-84d93a7c]:hover{filter:alpha(opacity=100);opacity:1}.slideBox .nextStop[data-v-84d93a7c],.slideBox .prevStop[data-v-84d93a7c]{display:none}.container[data-v-da7c4b8c]{width:100%;height:100%}video[data-v-da7c4b8c]{width:100%;height:100%;display:block}iframe[data-v-8c8b39ae]{width:100%;height:100%;border:none}.echarts[data-v-5ee6ebbc],.echarts[data-v-6b9b6c9c],.echarts[data-v-35da035e],.echarts[data-v-465faf20],.echarts[data-v-3834f4d1],.echarts[data-v-68827ec0],.echarts[data-v-ef0739da],.echarts[data-v-f2853482]{width:100%;height:100%;overflow:hidden}.txtScroll-top[data-v-3815924e]{overflow:hidden;position:relative}.title[data-v-3815924e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.title>div[data-v-3815924e]{height:50px;line-height:50px;width:100%}.txtScroll-top .bd[data-v-3815924e]{width:100%}.txtScroll-top .infoList li[data-v-3815924e]{height:50px;line-height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.txtScroll-top .infoList li>div[data-v-3815924e]{width:100%}.echartMap[data-v-39ab510e]{width:100%;height:100%}.echarts[data-v-39ab510e],.echarts[data-v-e84341ee]{width:100%;height:100%;overflow:hidden}.echartMap[data-v-4cafc378]{width:100%;height:100%}.echarts[data-v-4a974840],.echarts[data-v-4cafc378],.echarts[data-v-21970a08],.echarts[data-v-55782a24],.echarts[data-v-dc85d65a]{width:100%;height:100%;overflow:hidden}.layout[data-v-1b319e8c]{width:100%;height:100%;text-align:center}.bottom-text[data-v-1b31Line truncated
@@ -1 +0,0 @@
.layout[data-v-1b319e8c]{width:100%;height:100%;text-align:center}.bottom-text[data-v-1b319e8c]{width:100%;color:#a0a0a0;position:fixed;bottom:16px;z-index:9999}
@@ -1 +0,0 @@
.app-breadcrumb.el-breadcrumb[data-v-72fca284]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-72fca284]{color:#97a8be;cursor:text}
@@ -1 +0,0 @@
.app-breadcrumb.el-breadcrumb[data-v-72fca284]{display:inline-block;font-size:14px;line-height:50px;margin-left:8px}.app-breadcrumb.el-breadcrumb .no-redirect[data-v-72fca284]{color:#97a8be;cursor:text}.main[data-v-d2955d34] .view-lines *{font-family:Consolas,Courier New,monospace!important}.code-mirror-form[data-v-21f8d1dc] .el-form-item__content{height:200px;overflow:hidden}.my-editor[data-v-21f8d1dc]{height:400px}.my-editor div.jsoneditor[data-v-21f8d1dc]{height:400px!important}.title[data-v-21f8d1dc]{width:100%;display:inline-block;text-align:left}.addSwitch ul[data-v-21f8d1dc]{list-style:none;margin:0}.addSwitch ul li[data-v-21f8d1dc]{width:200px;height:60px;padding:10px;border:1px solid #aaa;float:left;margin-right:10px;text-align:center;line-height:40px;cursor:pointer}.addSwitch ul li.add[data-v-21f8d1dc],.addSwitch ul li[data-v-21f8d1dc]:hover{border:1px solid #3385ff;color:#3385ff}.filterWrapper[data-v-21f8d1dc]{position:relative}.filterTable[data-v-21f8d1dc]{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;border:1px solid #dcdfe6;border-radius:4px;padding:5px 15px 25px}.filterWrapper .addFilter[data-v-21f8d1dc]{cursor:pointer;width:150px;height:50px;border-radius:3px;border:1px solid #67c23a;margin-top:20px;background:#e4f7da;padding-left:24px}.filterWrapper .addFilter i[data-v-21f8d1dc]{font-size:20px;color:#67c23a;margin-top:16px;margin-left:16px}.filterWrapper .addFilter span[data-v-21f8d1dc]{color:#67c23a;margin-left:5px;font-size:18px}.filterBox[data-v-21f8d1dc]{width:182px;position:relative;margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.filterBox .box[data-v-21f8d1dc]{width:150px;height:50px;text-align:center;position:relative;background:#e0e8ff;border-radius:3px;border:1px solid #b8caff;float:left;padding:5px 20px}.filterBox .box .reduceFilter[data-v-21f8d1dc]{width:10px;height:10px;position:absolute;right:4px;top:4px;cursor:pointer}.filterBox .box .editor[data-v-21f8d1dc]{width:12px;height:13px;position:absolute;left:-5px;top:5px;cursor:pointer}.filterBox .rightIcon[data-v-21f8d1dc]{width:45px;height:19px;position:absolute;right:10px;top:15px}.filterTextarea[data-v-21f8d1dc] .el-textarea__inner{min-height:300px!important}.filterBox .code-selected[data-v-21f8d1dc]{width:70%;margin-top:4px}.filterBox[data-v-21f8d1dc] .el-input--suffix .el-input__inner{background:#f4f7ff;border-radius:3px;border:1px solid #b8caff;color:#89a3ee}.font-icon-right[data-v-21f8d1dc]{line-height:35px;font-size:30px}.popover-box[data-v-21f8d1dc]{width:100%;height:220px;overflow-y:auto;padding:10px}
@@ -0,0 +1 @@
.imagebox[data-v-888c1542],.text[data-v-00cb103e],.text[data-v-6e740432],.text[data-v-79310a83],a[data-v-a773e3d0]{width:100%;height:100%;overflow:hidden}.imagebox img[data-v-888c1542]{width:100%;height:100%}.startImg[data-v-888c1542]{-webkit-animation:turn-data-v-888c1542 1s linear infinite;animation:turn-data-v-888c1542 1s linear infinite}@-webkit-keyframes turn-data-v-888c1542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(1turn)}}@keyframes turn-data-v-888c1542{0%{-webkit-transform:rotate(0deg)}25%{-webkit-transform:rotate(90deg)}50%{-webkit-transform:rotate(180deg)}75%{-webkit-transform:rotate(270deg)}to{-webkit-transform:rotate(1turn)}}.slideBox[data-v-84d93a7c]{width:450px;height:230px;overflow:hidden;position:relative}.slideBox .hd[data-v-84d93a7c]{height:15px;overflow:hidden;position:absolute;right:5px;bottom:5px;z-index:1}.slideBox .hd ul[data-v-84d93a7c]{overflow:hidden;zoom:1;float:left}.slideBox .hd ul li[data-v-84d93a7c]{float:left;margin-right:2px;width:15px;height:15px;line-height:14px;text-align:center;background:#fff;cursor:pointer}.slideBox .hd ul li.on[data-v-84d93a7c]{background:red;color:#fff}.slideBox .bd[data-v-84d93a7c]{position:relative;height:100%;z-index:0}.slideBox .bd li[data-v-84d93a7c]{zoom:1;vertical-align:middle}.slideBox .bd img[data-v-84d93a7c]{width:450px;height:230px;display:block}.slideBox .next[data-v-84d93a7c],.slideBox .prev[data-v-84d93a7c]{position:absolute;left:3%;top:50%;margin-top:-25px;display:block;width:32px;height:40px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOsAAAAgCAMAAADE+3+QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkYyNjE4RUVDRjgxMTFFMjk1ODhDQkIzNDg3MjdGNUEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkYyNjE4RUZDRjgxMTFFMjk1ODhDQkIzNDg3MjdGNUEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRjI2MThFQ0NGODExMUUyOTU4OENCQjM0ODcyN0Y1QSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRjI2MThFRENGODExMUUyOTU4OENCQjM0ODcyN0Y1QSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmLDzTcAAAAJUExURcHBwf///////wCiYf4AAAADdFJOU///ANfKDUEAAACjSURBVHja5JnRDUQhDMNM9h/6STfCgeKPsIBjhGgpnHPy7wLyYLUicC5IPJGtJfi5ngsSL1Q7AYgsW8QTV7YJJ6psFU1M2S6YiLJlLPFk21CiydaRaOT+7mKxhYOERDcuCBy+cheiJHBqHEYGqZzPug6d4aG7aajmDPUSQz3iUO8/9KYbeqsPzWCGZmtDM9OhWfjSH8fY31UuSMkT2UqET4ABAHo9NyVXKF5RAAAAAElFTkSuQmCC) -110px 5px no-repeat;filter:alpha(opacity=50);opacity:.5}.slideBox .next[data-v-84d93a7c]{left:auto;right:3%;background-position:8px 5px}.slideBox .next[data-v-84d93a7c]:hover,.slideBox .prev[data-v-84d93a7c]:hover{filter:alpha(opacity=100);opacity:1}.slideBox .nextStop[data-v-84d93a7c],.slideBox .prevStop[data-v-84d93a7c]{display:none}.container[data-v-da7c4b8c]{width:100%;height:100%}video[data-v-da7c4b8c]{width:100%;height:100%;display:block}iframe[data-v-8c8b39ae]{width:100%;height:100%;border:none}.echarts[data-v-5ee6ebbc],.echarts[data-v-6b9b6c9c],.echarts[data-v-35da035e],.echarts[data-v-465faf20],.echarts[data-v-3834f4d1],.echarts[data-v-68827ec0],.echarts[data-v-ef0739da],.echarts[data-v-f2853482]{width:100%;height:100%;overflow:hidden}.txtScroll-top[data-v-3815924e]{overflow:hidden;position:relative}.title[data-v-3815924e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%}.title>div[data-v-3815924e]{height:50px;line-height:50px;width:100%}.txtScroll-top .bd[data-v-3815924e]{width:100%}.txtScroll-top .infoList li[data-v-3815924e]{height:50px;line-height:50px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.txtScroll-top .infoList li>div[data-v-3815924e]{width:100%}.echartMap[data-v-39ab510e]{width:100%;height:100%}.echarts[data-v-39ab510e],.echarts[data-v-e84341ee]{width:100%;height:100%;overflow:hidden}.echartMap[data-v-4cafc378]{width:100%;height:100%}.echarts[data-v-4a974840],.echarts[data-v-4cafc378],.echarts[data-v-21970a08],.echarts[data-v-55782a24],.echarts[data-v-dc85d65a]{width:100%;height:100%;overflow:hidden}.vue-draggalbe[data-v-a8ab2760]{position:absolute}.widget-active[data-v-a8ab2760]{cursor:mLine truncated
@@ -1 +0,0 @@
.el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .el-table__cell.is-hidden>*,.el-table .hidden-columns{visibility:hidden}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}@font-face{font-family:element-icons;src:url(/static/fonts/element-icons.535877f.woff) format("woff"),url(/static/fonts/element-icons.732389d.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:"\Line truncated
@@ -1,3 +0,0 @@
@charset "UTF-8";
/*! 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}.echarts{width:600px;height:400px}.avue-affix{position:fixed;z-index:10}.avue-sign{padding:5px}.avue-sign__canvas{border:1px solid #ccc}.avue-carousel--fullscreen{height:100%}.avue-carousel--fullscreen .el-carousel,.avue-carousel--fullscreen .el-carousel__container{height:90%}.avue-carousel__item{position:relative;width:100%;height:100%}.avue-carousel__item a{width:100%;height:100%;display:block}.avue-carousel__img{height:100%;background-size:cover;background-position:50%}.avue-carousel__title{z-index:1024;position:absolute;left:0;bottom:0;width:100%;height:50px;line-height:50px;font-size:16px;text-align:center;color:#fff;background-color:rgba(0,0,0,.6)}.avue-article__title{margin-bottom:15px;font-size:32px;line-height:32px;font-weight:400}.avue-article__meta{display:block;margin-bottom:20px;font-size:12px;color:#999}.avue-article__lead{color:#666;font-size:14px;line-height:22px;border:1px solid #dedede;border-radius:2px;background:#f9f9f9;padding:10px}.avue-article__body,.avue-comment__body{background:#fff;font-family:Segoe UI,Lucida Grande,Helvetica,Arial,Microsoft YaHei,FreeSans,Arimo,Droid Sans,wenquanyi micro hei,Hiragino Sans GB,Hiragino Sans GB W3,FontAwesome,sans-serif}.avue-article__body{padding-top:10px;color:#333;font-size:14px}.avue-article blockquote{margin:0;font-family:Georgia,Times New Roman,Times,Kai,Kaiti SC,KaiTi,BiauKai,FontAwesome,serif;padding:1px 0 1px 15px;border-left:4px solid #ddd}.avue-avatar{font-size:14px;font-variant:tabular-nums;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;list-style:none;display:inline-block;text-align:center;background:#ccc;color:#fff;white-space:nowrap;position:relative;overflow:hidden;vertical-align:middle;width:32px;height:32px;line-height:32px;border-radius:50%}.avue-avatar__images{width:100%;height:100%}.avue-avatar__icon{font-size:18px}.avue-avatar__string{position:absolute;left:50%;-webkit-transform-origin:0 center;transform-origin:0 center}.avue-avatar--lg{width:40px;height:40px;line-height:40px;border-radius:50%;font-size:24px}.avue-avatar--sm{width:24px;height:24px;line-height:24px;border-radius:50%;font-size:14px}.avue-avatar--square{border-radius:4px}.avue-skeleton__avatar{width:40px;height:40px;line-height:40px;display:inline-block;border-radius:50%;background:#f2f2f2}.avue-skeleton__header{display:table-cell;vertical-align:top;padding-right:16px}.avue-skeleton__content{display:table-cell;vertical-align:top;width:100%}.avue-skeleton__title{margin-top:16px;height:16px;width:40%;background:#f2f2f2}.avue-skeleton__item{padding-top:16px;padding-bottom:16px;border-bottom:1px solid #e8Line truncated
@@ -0,0 +1,2 @@
@charset "UTF-8";.el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .el-table__cell.is-hidden>*,.el-table .hidden-columns{visibility:hidden}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}@font-face{font-family:element-icons;src:url(/static/fonts/element-icons.535877f.woff) format("woff"),url(/static/fonts/element-icons.732389d.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:Line truncated
/*! 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}.echarts{width:600px;height:400px}.avue-affix{position:fixed;z-index:10}.avue-sign{padding:5px}.avue-sign__canvas{border:1px solid #ccc}.avue-carousel--fullscreen{height:100%}.avue-carousel--fullscreen .el-carousel,.avue-carousel--fullscreen .el-carousel__container{height:90%}.avue-carousel__item{position:relative;width:100%;height:100%}.avue-carousel__item a{width:100%;height:100%;display:block}.avue-carousel__img{height:100%;background-size:cover;background-position:50%}.avue-carousel__title{z-index:1024;position:absolute;left:0;bottom:0;width:100%;height:50px;line-height:50px;font-size:16px;text-align:center;color:#fff;background-color:rgba(0,0,0,.6)}.avue-article__title{margin-bottom:15px;font-size:32px;line-height:32px;font-weight:400}.avue-article__meta{display:block;margin-bottom:20px;font-size:12px;color:#999}.avue-article__lead{color:#666;font-size:14px;line-height:22px;border:1px solid #dedede;border-radius:2px;background:#f9f9f9;padding:10px}.avue-article__body,.avue-comment__body{background:#fff;font-family:Segoe UI,Lucida Grande,Helvetica,Arial,Microsoft YaHei,FreeSans,Arimo,Droid Sans,wenquanyi micro hei,Hiragino Sans GB,Hiragino Sans GB W3,FontAwesome,sans-serif}.avue-article__body{padding-top:10px;color:#333;font-size:14px}.avue-article blockquote{margin:0;font-family:Georgia,Times New Roman,Times,Kai,Kaiti SC,KaiTi,BiauKai,FontAwesome,serif;padding:1px 0 1px 15px;border-left:4px solid #ddd}.avue-avatar{font-size:14px;font-variant:tabular-nums;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;list-style:none;display:inline-block;text-align:center;background:#ccc;color:#fff;white-space:nowrap;position:relative;overflow:hidden;vertical-align:middle;width:32px;height:32px;line-height:32px;border-radius:50%}.avue-avatar__images{width:100%;height:100%}.avue-avatar__icon{font-size:18px}.avue-avatar__string{position:absolute;left:50%;-webkit-transform-origin:0 center;transform-origin:0 center}.avue-avatar--lg{width:40px;height:40px;line-height:40px;border-radius:50%;font-size:24px}.avue-avatar--sm{width:24px;height:24px;line-height:24px;border-radius:50%;font-size:14px}.avue-avatar--square{border-radius:4px}.avue-skeleton__avatar{width:40px;height:40px;line-height:40px;display:inline-block;border-radius:50%;background:#f2f2f2}.avue-skeleton__header{display:table-cell;vertical-align:top;padding-right:16px}.avue-skeleton__content{display:table-cell;vertical-align:top;width:100%}.avue-skeleton__title{margin-top:16px;height:16px;width:40%;background:#f2f2f2}.avue-skeleton__item{padding-top:16px;padding-bottom:16px;border-bottom:1px solid #e8Line truncated
@@ -0,0 +1,356 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="lianjie" unicode="&#59384;" d="M771.584 644.266667c-49.066667 51.2-132.266667 51.2-181.333333 0l-74.666667-76.8c-8.533333-8.533333-8.533333-23.466667 0-32 8.533333-8.533333 21.333333-8.533333 29.866667 0l74.666666 76.8c34.133333 34.133333 87.466667 34.133333 121.6 0 34.133333-34.133333 34.133333-89.6 0-123.733334l-121.6-123.733333c-34.133333-34.133333-87.466667-34.133333-121.6 0-8.533333 8.533333-21.333333 8.533333-29.866666 0-8.533333-8.533333-8.533333-23.466667 0-32 49.066667-51.2 132.266667-51.2 181.333333 0l121.6 123.733333c51.2 53.333333 51.2 136.533333 0 187.733334zM477.184 232.533333l-74.666667-76.8c-34.133333-34.133333-87.466667-34.133333-121.6 0-34.133333 34.133333-34.133333 89.6 0 123.733334l121.6 123.733333c34.133333 34.133333 87.466667 34.133333 121.6 0 8.533333-8.533333 21.333333-8.533333 29.866667 0 8.533333 8.533333 8.533333 23.466667 0 32-49.066667 51.2-132.266667 51.2-181.333333 0l-121.6-123.733333c-51.2-51.2-49.066667-134.4 0-185.6 49.066667-51.2 132.266667-51.2 181.333333 0l74.666667 76.8c8.533333 8.533333 8.533333 23.466667 0 32-8.533333 6.4-21.333333 6.4-29.866667-2.133334z" horiz-adv-x="1024" />
<glyph glyph-name="dayinquyu" unicode="&#59381;" d="M727.04 189.781333a11.946667 11.946667 0 0 0 8.704-3.754666 13.312 13.312 0 0 0 3.626667-9.130667V85.333333H583.253333v91.52c0 3.413333 1.28 6.741333 3.626667 9.173334a11.946667 11.946667 0 0 0 8.661333 3.754666zM362.666667 170.666667v-42.666667h-128v42.666667h128z m128 0v-42.666667h-42.666667v42.666667h42.666667z m301.696 143.957333a18.773333 18.773333 0 0 0 18.304-19.2v-117.205333c0-10.581333-8.277333-19.2-18.346667-19.2h-28.458667v11.434666c-0.128 21.333333-16.554667 38.570667-36.778666 38.570667h-131.498667c-20.224 0-36.693333-17.237333-36.778667-38.570667v-11.477333h-28.458666a18.858667 18.858667 0 0 0-18.346667 19.2v117.248c0 10.581333 8.277333 19.2 18.346667 19.2zM256 362.666667v-128H213.333333v128h42.666667z m411.477333-85.845334H567.04a12.586667 12.586667 0 0 1-12.245333-12.8c0.042667-7.125333 5.546667-12.885333 12.245333-12.842666h100.394667a12.586667 12.586667 0 0 1 12.202666 12.8c0 7.082667-5.504 12.8-12.202666 12.8zM723.072 384a14.506667 14.506667 0 0 0 14.165333-14.805333v-35.84H585.386667v35.84a14.506667 14.506667 0 0 0 14.165333 14.805333zM768 533.333333v-128h-42.666667v128h42.666667z m-512 42.666667v-128H213.333333v128h42.666667zM768 682.666667v-64h-42.666667V640h-64V682.666667H768zM362.666667 682.666667v-42.666667H256v-21.333333H213.333333V682.666667h149.333334z m213.333333 0v-42.666667h-128V682.666667h128z" horiz-adv-x="1024" />
<glyph glyph-name="dayinyemianpeizhi" unicode="&#59382;" d="M635.477333 682.666667H388.522667c-15.530667 0-28.16-13.226667-28.288-29.610667v-71.68h303.530666v71.68c0 16.298667-12.586667 29.568-28.288 29.568V682.666667z m7.978667-388.48H380.586667a23.893333 23.893333 0 0 1-17.365334-7.509334 26.581333 26.581333 0 0 1-7.253333-18.261333V85.333333h312.149333v183.125334a26.581333 26.581333 0 0 1-7.253333 18.218666 23.893333 23.893333 0 0 1-17.365333 7.509334z m130.602667 249.728H250.069333c-20.224 0-36.736-17.28-36.736-38.4v-234.410667c0-21.162667 16.512-38.442667 36.693334-38.442667h56.96v22.912c0.213333 42.666667 33.109333 77.184 73.557333 77.098667h262.912c40.448 0.085333 73.386667-34.389333 73.557333-77.098667v-22.912h56.917334c20.224 0 36.736 17.28 36.736 38.4V505.514667c-0.042667 21.290667-16.426667 38.485333-36.608 38.442666z m-249.813334-126.933334H323.498667c-13.44 0-24.405333 11.434667-24.490667 25.642667a25.173333 25.173333 0 0 0 24.490667 25.685333h200.746666c13.44 0 24.490667-11.52 24.490667-25.685333 0-14.08-11.050667-25.6-24.490667-25.6v-0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="dayinbiaoti" unicode="&#59383;" d="M727.04 189.781333a11.946667 11.946667 0 0 0 8.704-3.754666 13.312 13.312 0 0 0 3.626667-9.130667V85.333333H583.253333v91.52c0 3.413333 1.28 6.741333 3.626667 9.173334a11.946667 11.946667 0 0 0 8.661333 3.754666zM768 682.666667v-277.333334h-42.666667V640H256v-469.333333h234.666667v-42.666667H213.333333V682.666667h554.666667z m24.362667-368.042667a18.773333 18.773333 0 0 0 18.304-19.2v-117.205333c0-10.581333-8.277333-19.2-18.346667-19.2h-28.458667v11.434666c-0.128 21.333333-16.554667 38.570667-36.778666 38.570667h-131.498667c-20.224 0-36.693333-17.237333-36.778667-38.570667v-11.477333h-28.458666a18.858667 18.858667 0 0 0-18.346667 19.2v117.248c0 10.581333 8.277333 19.2 18.346667 19.2z m-124.885334-37.802667H567.04a12.586667 12.586667 0 0 1-12.245333-12.8c0.042667-7.125333 5.546667-12.885333 12.245333-12.842666h100.394667a12.586667 12.586667 0 0 1 12.202666 12.8c0 7.082667-5.504 12.8-12.202666 12.8zM723.072 384a14.506667 14.506667 0 0 0 14.165333-14.805333v-35.84H585.386667v35.84a14.506667 14.506667 0 0 0 14.165333 14.805333zM341.333333 554.666667h298.666667v-42.666667H341.333333zM341.333333 469.333333h170.666667v-42.666666H341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="fenyeyulan" unicode="&#59378;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM256 384h256v-42.666667H256zM554.666667 640v-298.666667h-42.666667V640zM405.333333 640v-298.666667h-42.666666V640z" horiz-adv-x="1024" />
<glyph glyph-name="putong" unicode="&#59379;" d="M256 640h554.666667v-42.666667H256zM298.666667 640v-554.666667H256V640zM810.666667 640v-554.666667h-42.666667V640zM469.333333 640v-554.666667h-42.666666V640zM640 640v-554.666667h-42.666667V640zM256 469.333333h554.666667v-42.666666H256zM256 298.666667h554.666667v-42.666667H256zM256 128h554.666667v-42.666667H256z" horiz-adv-x="1024" />
<glyph glyph-name="yemianbuju" unicode="&#59380;" d="M810.666667 682.666667v-42.666667h-170.709334L640 128h170.666667v-42.666667h-213.333334V682.666667h213.333334z m-384 0l-0.042667-554.666667H426.666667v-42.666667H213.333333v42.666667h170.624L384 640H213.333333V682.666667h213.333334z m106.666666-512v-85.333334h-42.666666v85.333334h42.666666z m0 170.666666v-85.333333h-42.666666v85.333333h42.666666z m0 170.666667v-85.333333h-42.666666V512h42.666666z m0 170.666667v-85.333334h-42.666666V682.666667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="biaogesuoding" unicode="&#59374;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334zM341.333333 512.128H256V128h85.333333V512.128z m426.666667 0H383.872V128H768V512.128z m-149.333333-21.461333a64 64 0 0 0 63.701333-57.856L682.666667 426.666667v-64h42.666666v-213.333334h-298.666666v213.333334h42.666666V426.666667a64 64 0 0 0 57.856 63.701333L533.333333 490.666667h85.333334z m64-170.666667h-213.333334v-128h213.333334v128z m-106.666667-21.333333a21.333333 21.333333 0 0 0 21.333333-21.333334v-42.666666a21.333333 21.333333 0 1 0-42.666666 0v42.666666a21.333333 21.333333 0 0 0 21.333333 21.333334z m42.666667 149.333333h-85.333334a21.333333 21.333333 0 0 1-20.992-17.493333L512 426.666667v-64h128V426.666667a21.333333 21.333333 0 0 1-13.909333 20.010666l-3.584 0.981334-3.84 0.341333zM768 640H383.872v-85.290667L768 554.666667V640zM341.333333 640H256v-85.333333l85.333333 0.042666V640z" horiz-adv-x="1024" />
<glyph glyph-name="zhuandao1" unicode="&#59377;" d="M804.992 201.941333l-84.650667 84.224c-7.552 7.509333-21.930667 8.448-26.026666-1.365333-1.066667-2.602667-1.365333-10.026667-1.365334-10.026667v-56.874666H406.442667a69.034667 69.034667 0 0 0-69.205334 68.778666 69.034667 69.034667 0 0 0 69.205334 68.821334h259.84a128.341333 128.341333 0 0 1 128.597333 127.829333 128.384 128.384 0 0 1-128.554667 127.914667H411.946667A101.632 101.632 0 0 1 213.333333 581.674667a101.632 101.632 0 1 1 198.613334-29.525334h254.378666a69.034667 69.034667 0 0 0 69.162667-68.821333 69.034667 69.034667 0 0 0-69.162667-68.778667H406.442667a128.341333 128.341333 0 0 1-128.597334-127.872 128.341333 128.341333 0 0 1 128.597334-127.872h286.506666v-54.016s0-8.277333 1.408-11.52c4.053333-9.813333 18.432-10.24 25.984-2.730666l84.650667 84.181333a19.2 19.2 0 0 1 0 27.221333zM314.88 539.776a42.069333 42.069333 0 0 0-42.112 41.898667c0 23.082667 18.858667 41.856 42.112 41.856 23.210667 0 42.112-18.773333 42.112-41.856a42.069333 42.069333 0 0 0-42.112-41.898667z" horiz-adv-x="1024" />
<glyph glyph-name="youjiantou" unicode="&#59373;" d="M682.666667 384l-341.333334-341.333333V725.333333z" horiz-adv-x="1024" />
<glyph glyph-name="caidan2" unicode="&#59375;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333zM213.333333 682.666667h597.333334v-85.333334H213.333333zM213.333333 170.666667h597.333334v-85.333334H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="tihuan" unicode="&#59376;" d="M768 465.066667H280.405333l-4.394666 0.554666c-5.461333 0.853333-6.570667 1.749333-12.885334 6.528l-2.986666 5.376c-6.4 11.946667-5.376 13.738667 2.986666 28.885334L440.618667 682.666667l34.218666-34.048-136.362666-135.424H768v-48.170667z m-7.594667-163.242667L585.472 128l-34.261333 34.048 136.362666 135.424H258.048v48.170667h484.096c10.453333 0 19.882667-6.272 23.893333-15.872a25.6 25.6 0 0 0-5.632-27.989334z" horiz-adv-x="1024" />
<glyph glyph-name="dongjie1" unicode="&#59361;" d="M809.557333 682.069333v-595.626666H213.930667V682.069333h595.626666zM256.426667 322.389333v-193.408l193.365333 0.042667-193.365333 193.365333z m510.549333 40.618667h-234.026667v-234.026667h234.026667v234.026667z m-276.565333 0H276.053333l214.357334-214.4v214.4z m276.565333 276.522667h-234.026667v-233.984h234.026667V639.530667zM256.426667 609.450667v-203.946667l203.904 0.042667-203.946667 203.946666z m233.984 30.08H286.592l203.861333-203.861334V639.573333z" horiz-adv-x="1024" />
<glyph glyph-name="jian1" unicode="&#59362;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="jia1" unicode="&#59363;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333zM554.666667 682.666667v-597.333334h-85.333334V682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="yichu1" unicode="&#59364;" d="M300.288 85.333333H213.333333V682.666667h86.954667v-279.978667h441.898667l-91.306667 85.845333 26.624 26.112L810.666667 384l-133.162667-130.688-26.624 26.154667 91.306667 85.845333-441.898667 0.042667zM530.688 682.666667h42.666667v-242.688h-42.666667V682.666667z m0-354.688h42.666667V85.333333h-42.666667v242.688z" horiz-adv-x="1024" />
<glyph glyph-name="shengxu1" unicode="&#59365;" d="M684.757333 482.944v-290.645333a20.650667 20.650667 0 0 0-6.4-15.274667 23.04 23.04 0 0 0-16-6.357333 22.229333 22.229333 0 0 0-22.4 21.632V482.944L550.4 398.08a22.528 22.528 0 0 0-15.872-6.442667 22.613333 22.613333 0 0 0-15.914667 6.442667 20.650667 20.650667 0 0 0-6.613333 15.061333c0 5.674667 2.389333 11.093333 6.613333 15.061334l126.72 120.064a22.485333 22.485333 0 0 0 15.658667 6.4 23.594667 23.594667 0 0 0 16.128-5.546667l126.72-120.064c4.309333-3.84 6.826667-9.301333 6.826667-15.061333a20.266667 20.266667 0 0 0-6.826667-15.061334 23.04 23.04 0 0 0-15.914667-6.272 23.04 23.04 0 0 0-15.872 6.272l-87.296 84.010667zM229.930667 213.333333h265.472c9.173333 0 16.597333-9.472 16.597333-21.12s-7.424-21.12-16.597333-21.12H229.930667c-9.173333 0-16.597333 9.472-16.597334 21.12 0 11.690667 7.424 21.12 16.597334 21.12z m1.152 170.666667h177.792c9.813333 0 17.792-9.429333 17.792-21.12s-7.936-21.12-17.792-21.12H231.168c-9.813333 0-17.792 9.429333-17.792 21.12 0 11.648 7.978667 21.12 17.792 21.12z m264.362666 170.666667H229.845333C220.757333 554.666667 213.333333 545.194667 213.333333 533.546667s7.424-21.12 16.597334-21.12h265.472c9.173333 0 16.597333 9.472 16.597333 21.12S504.576 554.666667 495.402667 554.666667z" horiz-adv-x="1024" />
<glyph glyph-name="neikuangxian" unicode="&#59366;" d="M213.333333 384h554.666667v-42.666667H213.333333zM512 640v-554.666667h-42.666667V640zM213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM725.333333 640h42.666667v-42.666667h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM213.333333 640h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM384 640h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM554.666667 640h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM298.666667 640h42.666666v-42.666667H298.666667zM640 128h42.666667v-42.666667h-42.666667zM640 640h42.666667v-42.666667h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="qingchushaixuan" unicode="&#59367;" d="M214.016 173.568h593.92v-42.410667H214.016v42.410667z m578.048 312.106667l-180.693333 181.077333A53.376 53.376 0 0 1 573.738667 682.666667a45.653333 45.653333 0 0 1-32.64-13.226667l-313.941334-314.965333c-18.56-18.602667-17.322667-50.261333 2.688-70.4l68.010667-68.096h298.24l198.698667 199.338666c18.56 18.602667 17.322667 50.261333-2.730667 70.357334z m-213.546667-227.242667H315.434667L259.84 314.112c-3.968 4.010667-4.053333 9.088-2.730667 10.453333L430.08 497.92l193.92-193.92-45.44-45.568z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenxiangshang" unicode="&#59368;" d="M192 400.213333l213.333333 77.653334v0.64l1.621334-0.042667L554.666667 532.224v-45.354667l-106.666667-38.826666v-152.405334l106.666667-38.826666v-45.354667l-147.498667 53.674667-1.834667 0.042666v0.64l-213.333333 77.610667V400.213333z m46.634667-28.416L405.333333 311.125333v121.386667l-166.698666-60.714667zM597.333333 559.829333l90.496 90.538667 90.538667-90.538667-30.165333-30.165333-37.802667 37.76V106.666667h-42.666667V569.898667l-40.234666-40.234667L597.333333 559.829333z" horiz-adv-x="1024" />
<glyph glyph-name="jiangxu1" unicode="&#59369;" d="M684.757333 242.389333V533.034667a20.650667 20.650667 0 0 1-6.4 15.274666 23.04 23.04 0 0 1-16 6.357334 22.229333 22.229333 0 0 1-22.4-21.632v-290.645334L550.4 327.253333a22.528 22.528 0 0 1-15.872 6.442667 22.613333 22.613333 0 0 1-15.914667-6.442667 20.650667 20.650667 0 0 1-6.613333-15.061333c0-5.674667 2.389333-11.093333 6.613333-15.061333l126.72-120.064a22.485333 22.485333 0 0 1 15.658667-6.4 23.594667 23.594667 0 0 1 16.128 5.546666l126.72 120.064c4.309333 3.84 6.826667 9.301333 6.826667 15.061334a20.266667 20.266667 0 0 1-6.826667 15.061333 23.04 23.04 0 0 1-15.914667 6.272 23.04 23.04 0 0 1-15.872-6.272l-87.296-84.010667zM229.930667 213.333333h265.472c9.173333 0 16.597333-9.472 16.597333-21.12s-7.424-21.12-16.597333-21.12H229.930667c-9.173333 0-16.597333 9.472-16.597334 21.12 0 11.690667 7.424 21.12 16.597334 21.12z m1.152 170.666667h177.792c9.813333 0 17.792-9.429333 17.792-21.12s-7.936-21.12-17.792-21.12H231.168c-9.813333 0-17.792 9.429333-17.792 21.12 0 11.648 7.978667 21.12 17.792 21.12z m264.362666 170.666667H229.845333C220.757333 554.666667 213.333333 545.237333 213.333333 533.546667c0-11.648 7.424-21.12 16.597334-21.12h265.472c9.173333 0 16.597333 9.472 16.597333 21.12S504.576 554.666667 495.402667 554.666667z" horiz-adv-x="1024" />
<glyph glyph-name="neikuanghengxian" unicode="&#59370;" d="M213.333333 384h554.666667v-42.666667H213.333333zM213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM469.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM469.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM469.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM469.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM725.333333 640h42.666667v-42.666667h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM213.333333 640h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM384 640h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM554.666667 640h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM298.666667 640h42.666666v-42.666667H298.666667zM469.333333 128h42.666667v-42.666667h-42.666667zM469.333333 640h42.666667v-42.666667h-42.666667zM640 128h42.666667v-42.666667h-42.666667zM640 640h42.666667v-42.666667h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="neikuangshuxian" unicode="&#59371;" d="M213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM725.333333 640h42.666667v-42.666667h-42.666667zM725.333333 384h42.666667v-42.666667h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM213.333333 640h42.666667v-42.666667H213.333333zM213.333333 384h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM384 640h42.666667v-42.666667H384zM384 384h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM554.666667 640h42.666666v-42.666667h-42.666666zM554.666667 384h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM298.666667 640h42.666666v-42.666667H298.666667zM298.666667 384h42.666666v-42.666667H298.666667zM469.333333 128h42.666667v-42.666667h-42.666667zM469.333333 640h42.666667v-42.666667h-42.666667zM469.333333 384h42.666667v-42.666667h-42.666667zM640 128h42.666667v-42.666667h-42.666667zM640 640h42.666667v-42.666667h-42.666667zM640 384h42.666667v-42.666667h-42.666667zM512 640v-554.666667h-42.666667V640z" horiz-adv-x="1024" />
<glyph glyph-name="zidingyipaixu" unicode="&#59372;" d="M704 640a21.333333 21.333333 0 0 0 21.333333-21.333333v-469.333334a21.333333 21.333333 0 1 0-42.666666 0v469.333334c0 11.776 9.472 21.333333 21.333333 21.333333zM512 512c11.776 0 21.333333-7.68 21.333333-17.194667v-221.610666c0-9.514667-9.472-17.194667-21.333333-17.194667-11.776 0-21.333333 7.68-21.333333 17.194667V494.805333c0 4.565333 2.218667 8.96 6.186666 12.16A24.32 24.32 0 0 0 512 512zM320 640a21.333333 21.333333 0 0 0 21.333333-21.333333v-469.333334a21.333333 21.333333 0 1 0-42.666666 0v469.333334c0 11.776 9.472 21.333333 21.333333 21.333333z m283.562667-368.896a21.333333 21.333333 0 0 0 30.165333-30.165333l-106.666667-106.666667a21.333333 21.333333 0 0 0-30.165333 0l-106.666667 106.666667a21.333333 21.333333 0 0 0 30.165334 30.165333L512 179.498667l91.605333 91.562666z m0.298666 225.834667a21.333333 21.333333 0 0 1 30.165334 30.165333l-106.666667 106.666667a21.333333 21.333333 0 0 1-30.165333 0l-106.666667-106.666667a21.333333 21.333333 0 0 1 30.165333-30.165333l91.562667 91.562666 91.605333-91.562666z" horiz-adv-x="1024" />
<glyph glyph-name="logo2" unicode="&#59359;" d="M1023.168 764.64c0-234.4-190.016-424.416-424.416-424.416 0 234.4 190.016 424.416 424.416 424.416zM131.36-127.168c0 234.4 190.016 424.416 424.416 424.416 0-234.4-190.016-424.416-424.416-424.416zM929.696-33.696c-182.784 0-330.944 148.16-330.944 330.944 182.752 0 330.944-148.16 330.944-330.944zM494.848 896H0v-494.848h494.848zM558.016 814.624H81.376v-476.64h476.64zM558.304 731.584H164.384v-393.92h393.92z" horiz-adv-x="1024" />
<glyph glyph-name="logo" unicode="&#59360;" d="M1023.168 764.64c0-234.4-190.016-424.416-424.416-424.416 0 234.4 190.016 424.416 424.416 424.416zM131.36-127.168c0 234.4 190.016 424.416 424.416 424.416 0-234.4-190.016-424.416-424.416-424.416zM929.696-33.696c-182.784 0-330.944 148.16-330.944 330.944 182.752 0 330.944-148.16 330.944-330.944zM494.848 896H0v-494.848h494.848zM558.016 814.624H81.376v-476.64h476.64zM558.304 731.584H164.384v-393.92h393.92zM1678.08 160v64h-247.04V616.96H1356.8V160h321.28z m177.568-8.96c40.96 0 75.52 17.28 103.68 51.84V160h72.96V490.88h-72.96v-202.24c-6.4-23.68-17.28-42.24-32-56.32-14.72-13.44-30.08-20.48-46.08-20.48-25.6 0-43.52 6.4-55.04 18.56-11.52 12.8-16.64 32-16.64 58.88v201.6h-72.96v-206.08c0-88.96 39.68-133.76 119.04-133.76z m407.936 0c42.88 0 77.44 10.88 103.04 32 26.24 21.76 43.52 55.04 51.2 99.84h-72.32c-5.76-48-32.64-72.32-81.28-72.32-28.16 0-49.28 10.24-63.36 30.08-15.36 20.48-22.4 49.28-22.4 85.76 0 35.84 7.68 64 23.04 83.84 15.36 20.48 36.48 30.08 63.36 30.08 21.76 0 39.68-5.12 53.12-15.36 12.8-10.24 21.76-25.6 26.24-46.72h72.32c-6.4 41.6-23.04 72.32-49.28 92.8-25.6 19.2-59.52 28.8-102.4 28.8-51.84 0-92.16-17.28-120.96-51.84-26.88-31.36-40.32-72.32-40.32-122.24 0-51.2 13.44-92.8 40.96-124.8 28.16-33.28 67.84-49.92 119.04-49.92z m292.128 8.96v115.84l33.28 31.36 115.84-147.2h93.44l-159.36 193.92 146.56 136.96h-94.08l-135.68-131.2V625.92h-72.96V160h72.96z m404.096-126.72l179.2 457.6h-79.36l-83.84-235.52-87.68 235.52h-79.36l131.2-323.2-58.24-134.4h78.08z m357.408 117.76c99.2 0 149.12 35.2 149.12 105.6 0 29.44-13.44 53.12-39.68 69.76-17.92 12.16-46.08 22.4-83.2 31.36-33.28 8.32-55.04 14.72-65.92 19.2-17.92 7.68-26.24 17.28-26.24 27.52 0 12.8 5.12 21.76 16.64 27.52 9.6 5.76 24.32 8.32 43.52 8.32 22.4 0 39.04-3.2 49.92-10.24 10.24-6.4 17.92-18.56 23.04-35.2h71.04c-7.68 70.4-55.68 104.96-142.72 104.96-40.96 0-73.6-8.32-98.56-26.24-25.6-16.64-37.76-40.32-37.76-71.04 0-28.8 12.8-51.2 38.4-67.2 16-10.24 43.52-19.84 82.56-28.8 33.28-7.68 55.04-13.44 65.28-18.56 19.2-8.96 28.8-21.12 28.8-36.48 0-26.88-25.6-40.96-76.8-40.96-24.32 0-41.6 4.48-52.48 12.16-10.88 8.96-18.56 23.68-22.4 44.8h-71.04c7.04-77.44 56.32-116.48 148.48-116.48z m286.976 8.96v184.96c0 28.16 6.4 50.56 19.84 68.48 12.8 17.92 30.72 26.88 53.76 26.88 24.96 0 43.52-7.68 56.32-23.68 10.88-14.72 16.64-36.48 16.64-64.64v-192h72.96v204.8c0 44.16-9.6 77.44-28.16 99.84-19.84 23.68-49.92 35.2-90.24 35.2-21.12 0-39.68-3.84-55.68-12.16-17.92-8.96-33.28-22.4-45.44-40.96v179.2h-72.96V160h72.96z m447.648-8.96c44.16 0 80.64 12.8 110.08 37.76 23.04 20.48 38.4 46.72 46.08 77.44h-72.96c-8.96-18.56-18.56-32-29.44-40.32-14.08-10.24-32-15.36-54.4-15.36-26.24 0-46.72 8.32-60.8 24.32-14.08 16-22.4 39.68-24.96 70.4h247.68c0 59.52-13.44 106.24-39.68 139.52-28.8 37.12-70.4 55.04-124.8 55.04-49.28 0-88.32-16.64-116.48-50.56-29.44-33.28-43.52-74.24-43.52-123.52 0-55.04 15.36-97.92 46.08-129.28 28.8-30.08 67.84-45.44 117.12-45.44z m85.12 209.28h-170.24c4.48 26.24 13.44 46.08 26.88 59.52 14.08 14.08 32.64 20.48 56.96 20.48 51.2 0 80-26.24 86.4-80z m285.088-209.28c44.16 0 80.64 12.8 110.08 37.76 23.04 20.48 38.4 46.72 46.08 77.44h-72.96c-8.96-18.56-18.56-32-29.44-40.32-14.08-10.24-32-15.36-54.4-15.36-26.24 0-46.72 8.32-60.8 24.32-14.08 16-22.4 39.68-24.96 70.4h247.68c0 59.52-13.44 106.24-39.68 139.52-28.8 37.12-70.4 55.04-124.8 55.04-49.28 0-88.32-16.64-116.48-50.56-29.44-33.28-43.52-74.24-43.52-123.52 0-55.04 15.36-97.92 46.08-129.28 28.8-30.08 67.84-45.44 117.12-45.44z m85.12 209.28h-170.24c4.48 26.24 13.44 46.08 26.88 59.52 14.08 14.08 32.64 20.48 56.96 20.48 51.2 0 80-26.24 86.4-80z m310.016-200.32v60.16h-43.52c-7.68 0-12.8 1.92-16.64 5.76-3.84 4.48-5.12 10.24-5.12 17.92v186.88h73.6v60.16h-73.6V597.76l-72.96-30.08v-76.8h-59.52v-60.16h59.52v-186.88c0-26.88 6.4-46.72 19.2-60.8 13.44-15.36 34.56-23.04 63.36-23.04h55.68z" horiz-adv-x="4864" />
<glyph glyph-name="wenbenqingxie1" unicode="&#59358;" d="M469.333333 640h170.666667v-42.666667h-170.666667zM573.738667 611.413333l-81.493334-462.208-41.984 7.381334 81.493334 462.208zM384 170.666667h170.666667v-42.666667H384z" horiz-adv-x="1024" />
<glyph glyph-name="jiacu" unicode="&#59353;" d="M298.666667 682.666667h224a174.208 174.208 0 0 0 141.952-275.242667A174.208 174.208 0 0 0 572.458667 85.333333H298.666667V682.666667z m273.792-348.458667l-174.250667 0.042667v-149.333334h174.250667a74.666667 74.666667 0 0 1 6.101333 149.077334l-6.101333 0.213333zM398.208 583.125333v-149.333333h124.458667a74.666667 74.666667 0 0 1 6.144 149.077333l-6.144 0.256H398.208z" horiz-adv-x="1024" />
<glyph glyph-name="sousuo" unicode="&#59274;" d="M664.832 261.376l128.554667-128.597333a21.333333 21.333333 0 1 0-30.165334-30.165334l-128.597333 128.597334a256 256 0 1 0 30.165333 30.165333zM469.333333 213.333333a213.333333 213.333333 0 1 1 0 426.666667 213.333333 213.333333 0 0 1 0-426.666667z" horiz-adv-x="1024" />
<glyph glyph-name="guanbi" unicode="&#59275;" d="M119.808 715.946667l60.330667 60.245333 724.053333-724.053333-60.330667-60.330667zM843.946667 776.192l60.245333-60.330667-724.053333-724.053333-60.330667 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="xiayige" unicode="&#59276;" d="M512 213.333333L170.666667 554.666667h682.666666z" horiz-adv-x="1024" />
<glyph glyph-name="xiala" unicode="&#59277;" d="M149.930667 451.669333l60.330666 60.330667 362.069334-362.069333L512 89.6zM813.738667 512l60.330666-60.330667L512 89.6l-60.330667 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenyanse" unicode="&#59278;" d="M549.546667 640l194.133333-533.333333h-45.354667l-77.653333 213.333333H421.632l-77.653333-213.333333H298.666667L492.757333 640h56.789334z m-28.416-46.634667L437.162667 362.666667h167.978666l-84.010666 230.698666z" horiz-adv-x="1024" />
<glyph glyph-name="shangyige" unicode="&#59279;" d="M512 554.666667l341.333333-341.333334H170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="shujutoushi" unicode="&#59280;" d="M256 533.333333v-298.666666l256-149.333334 256 149.333334v298.666666L512 682.666667 256 533.333333zM725.333333 256l-213.333333-128-213.333333 128V512l213.333333 128 213.333333-128v-256z m-189.354666-40.021333a18.645333 18.645333 0 0 0-18.645334-18.645334 18.304 18.304 0 0 0-18.688 18.645334V360.533333l-130.645333 75.349334a18.645333 18.645333 0 0 0 4.565333 34.133333 18.304 18.304 0 0 0 14.08-2.005333l130.688-74.666667 129.578667 74.666667a18.304 18.304 0 0 0 25.386667-6.698667 18.645333 18.645333 0 0 0-6.784-25.386667l-129.536-74.666666v-145.237334z" horiz-adv-x="1024" />
<glyph glyph-name="tianchong" unicode="&#59281;" d="M730.24 333.824l-253.44-253.44-217.173333 217.258667 253.44 253.44 217.173333-217.258667z m-72.405333 0.042667L512.981333 478.72l-180.992-180.992 144.810667-144.853333 181.034667 181.034666zM520.533333 597.333333v-230.4H469.333333V546.176H392.533333v-179.626667H341.333333V597.333333zM699.733333 341.333333c48.768 0 88.32-37.802667 88.32-84.48 0-46.634667-39.552-84.48-88.32-84.48" horiz-adv-x="1024" />
<glyph glyph-name="zengjiaxiaoshuwei" unicode="&#59282;" d="M533.333333 106.666667m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM682.666667 341.333333a85.333333 85.333333 0 0 1-85.333334-85.333333v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V256a85.333333 85.333333 0 0 1-85.333333 85.333333z m0-42.666666a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 1 0-85.333333 0V256a42.666667 42.666667 0 0 0 42.666667 42.666667zM367.829333 96.298667l90.538667 90.538666L367.786667 277.333333l-30.165334-30.165333 37.76-37.802667H256v-42.666666h121.898667l-40.234667-40.234667 30.165333-30.165333zM490.666667 682.666667a85.333333 85.333333 0 0 1-85.333334-85.333334v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334z m0-42.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 1 0-85.333333 0V597.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM682.666667 682.666667a85.333333 85.333333 0 0 1-85.333334-85.333334v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334z m0-42.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0V597.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM341.333333 448m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="bianji2" unicode="&#59283;" d="M810.581333 382.634667V128a42.666667 42.666667 0 0 0-42.666666-42.666667H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667h234.624v-42.666667H320a21.333333 21.333333 0 0 1-21.333333-21.333333v-469.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h426.581333a21.333333 21.333333 0 0 1 21.333334 21.333333V384h0.042666a21.333333 21.333333 0 1 0 42.581334-1.365333z m-285.056 2.432l241.365334 241.365333a21.333333 21.333333 0 0 0 30.165333-30.165333l-241.365333-241.365334a21.333333 21.333333 0 0 0-30.165334 30.165334zM533.290667 640V682.666667a21.333333 21.333333 0 0 0 21.333333-21.333334c0-11.776-10.069333-21.333333-21.333333-21.333333z" horiz-adv-x="1024" />
<glyph glyph-name="jieping" unicode="&#59284;" d="M590.848 328.96l-265.386667 306.645333a28.245333 28.245333 0 0 0 3.2 40.149334 29.141333 29.141333 0 0 0 40.789334-3.242667l267.946666-309.674667a124.885333 124.885333 0 0 0 144.213334-34.474666 125.141333 125.141333 0 0 0-16.042667-176.256 125.141333 125.141333 0 0 0-176.341333 14.805333 125.013333 125.013333 0 0 0 1.621333 162.048z m40.149333-18.133333c-18.602667-15.701333-29.312-38.826667-29.312-63.189334 0-45.909333 37.461333-83.157333 83.754667-83.157333a83.413333 83.413333 0 0 1 83.712 83.157333 83.413333 83.413333 0 0 1-83.712 83.114667c-15.189333 0-29.44-4.010667-41.685333-11.008a28.458667 28.458667 0 0 0-12.757334-8.96v0.042667z m-150.698666 52.565333l-38.229334-44.16a29.653333 29.653333 0 0 0-0.768-0.810667 124.885333 124.885333 0 0 0-6.528-151.509333 125.141333 125.141333 0 0 0-176.341333-14.805333C205.226667 196.693333 198.101333 275.626667 242.346667 328.362667a124.928 124.928 0 0 0 156.416 28.544l38.528 44.501333c9.514667-17.237333 24.746667-30.634667 43.008-37.973333z m105.6 122.026667a85.632 85.632 0 0 1-43.818667 37.12l129.749333 150.016a29.141333 29.141333 0 0 0 40.789334 3.242666 28.245333 28.245333 0 0 0 3.2-40.149333l-129.92-150.186667z m-300.8-301.44c35.413333-29.738667 88.064-25.301333 117.546666 9.813333a83.413333 83.413333 0 0 1-10.666666 117.546667 83.456 83.456 0 0 1-117.589334-9.856 83.456 83.456 0 0 1 10.709334-117.504z" horiz-adv-x="1024" />
<glyph glyph-name="jianxiaoxiaoshuwei" unicode="&#59286;" d="M533.333333 448m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM341.333333 106.666667m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM346.496 501.632L256 592.213333 346.496 682.666667l30.165333-30.165334-37.717333-37.802666h119.424v-42.666667H336.469333l40.192-40.234667-30.165333-30.165333zM682.666667 682.666667a85.333333 85.333333 0 0 1-85.333334-85.333334v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334z m0-42.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0V597.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM490.666667 341.333333a85.333333 85.333333 0 0 1-85.333334-85.333333v-85.333333a85.333333 85.333333 0 1 1 170.666667 0v85.333333a85.333333 85.333333 0 0 1-85.333333 85.333333z m0-42.666666a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM682.666667 341.333333a85.333333 85.333333 0 0 1-85.333334-85.333333v-85.333333a85.333333 85.333333 0 1 1 170.666667 0v85.333333a85.333333 85.333333 0 0 1-85.333333 85.333333z m0-42.666666a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="caidan" unicode="&#59287;" d="M256 682.666667h192a42.666667 42.666667 0 0 0 42.666667-42.666667v-192a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333V469.333333a21.333333 21.333333 0 0 1 21.333333-21.333333H426.666667a21.333333 21.333333 0 0 1 21.333333 21.333333V618.666667A21.333333 21.333333 0 0 1 426.666667 640H277.333333z m298.666667 42.666667H768a42.666667 42.666667 0 0 0 42.666667-42.666667v-192a42.666667 42.666667 0 0 0-42.666667-42.666667h-192a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333V469.333333a21.333333 21.333333 0 0 1 21.333333-21.333333h149.333334a21.333333 21.333333 0 0 1 21.333333 21.333333V618.666667a21.333333 21.333333 0 0 1-21.333333 21.333333H597.333333z m-21.333333-277.333333H768a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-42.666667-42.666667h-192a42.666667 42.666667 0 0 0-42.666667 42.666667v192a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-149.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h149.333334a21.333333 21.333333 0 0 1 21.333333 21.333333V298.666667a21.333333 21.333333 0 0 1-21.333333 21.333333H597.333333z m-341.333333 42.666667h192a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v192a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-149.333334a21.333333 21.333333 0 0 1 21.333333-21.333333H426.666667a21.333333 21.333333 0 0 1 21.333333 21.333333V298.666667a21.333333 21.333333 0 0 1-21.333333 21.333333H277.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shujuku" unicode="&#59288;" d="M256 682.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-469.333334zM256 490.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-469.333334z m405.333334-21.333333h21.333333a21.333333 21.333333 0 1 0 0-42.666667H682.666667a21.333333 21.333333 0 1 0 0 42.666667zM256 298.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-469.333334z m405.333334-21.333333h21.333333a21.333333 21.333333 0 1 0 0-42.666667H682.666667a21.333333 21.333333 0 1 0 0 42.666667z m0 384h21.333333a21.333333 21.333333 0 1 0 0-42.666667H682.666667a21.333333 21.333333 0 1 0 0 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="wubiankuang" unicode="&#59289;" d="M384 85.333333v42.666667h42.666667v-42.666667zM554.666667 85.333333v42.666667h42.666666v-42.666667zM298.666667 85.333333v42.666667h42.666666v-42.666667zM469.333333 85.333333v42.666667h42.666667v-42.666667zM640 85.333333v42.666667h42.666667v-42.666667zM384 341.333333v42.666667h42.666667v-42.666667zM384 597.333333V640h42.666667v-42.666667zM554.666667 597.333333V640h42.666666v-42.666667zM298.666667 597.333333V640h42.666666v-42.666667zM469.333333 597.333333V640h42.666667v-42.666667zM640 597.333333V640h42.666667v-42.666667zM725.333333 597.333333V640h42.666667v-42.666667zM213.333333 597.333333V640h42.666667v-42.666667zM554.666667 341.333333v42.666667h42.666666v-42.666667zM298.666667 341.333333v42.666667h42.666666v-42.666667zM469.333333 341.333333v42.666667h42.666667v-42.666667zM640 341.333333v42.666667h42.666667v-42.666667zM725.333333 85.333333v42.666667h42.666667v-42.666667zM213.333333 85.333333v42.666667h42.666667v-42.666667zM725.333333 256v42.666667h42.666667v-42.666667zM213.333333 256v42.666667h42.666667v-42.666667zM725.333333 426.666667v42.666666h42.666667v-42.666666zM213.333333 426.666667v42.666666h42.666667v-42.666666zM725.333333 170.666667v42.666666h42.666667v-42.666666zM213.333333 170.666667v42.666666h42.666667v-42.666666zM725.333333 341.333333v42.666667h42.666667v-42.666667zM213.333333 341.333333v42.666667h42.666667v-42.666667zM725.333333 512V554.666667h42.666667v-42.666667zM213.333333 512V554.666667h42.666667v-42.666667zM469.333333 256v42.666667h42.666667v-42.666667zM469.333333 426.666667v42.666666h42.666667v-42.666666zM469.333333 170.666667v42.666666h42.666667v-42.666666zM469.333333 341.333333v42.666667h42.666667v-42.666667zM469.333333 512V554.666667h42.666667v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="bianji" unicode="&#59290;" d="M642.56 532.266667l-170.88-170.88 37.76-22.613334 22.613333-37.717333 170.88 170.88-60.373333 60.330667z m30.208 30.165333l60.330667-60.330667 15.104 15.061334a21.333333 21.333333 0 0 1 0 30.165333l-30.165334 30.165333a21.333333 21.333333 0 0 1-30.165333 0l-15.104-15.104v0.042667z m-231.253333-231.253333l-10.112-10.112v-60.330667h60.330666l10.112 10.112-22.613333 37.717333-37.717333 22.613334z m291.584 291.584l60.373333-60.330667a42.666667 42.666667 0 0 0 0-60.330667l-284.032-284.032H388.736V338.773333l284.032 283.989334a42.666667 42.666667 0 0 0 60.330667 0zM554.666667 661.333333a21.333333 21.333333 0 0 0-21.333334-21.333333h-256c-11.818667 0-21.333333-9.472-21.333333-21.162667v-469.674666c0-11.434667 9.557333-21.162667 21.333333-21.162667h469.333334c11.818667 0 21.333333 9.472 21.333333 21.162667V320a21.333333 21.333333 0 1 0 42.666667 0v-191.872c0-23.637333-19.2-42.794667-42.453334-42.794667H255.786667A42.624 42.624 0 0 0 213.333333 128.085333V639.872C213.333333 663.509333 232.533333 682.666667 255.829333 682.666667H533.333333a21.333333 21.333333 0 0 0 21.333334-21.333334z" horiz-adv-x="1024" />
<glyph glyph-name="qingchuyangshi" unicode="&#59291;" d="M214.016 173.568h593.92v-42.410667H214.016v42.410667z m578.048 312.106667l-180.693333 181.077333A53.376 53.376 0 0 1 573.738667 682.666667a45.653333 45.653333 0 0 1-32.64-13.226667l-313.941334-314.965333c-18.56-18.602667-17.322667-50.261333 2.688-70.4l68.010667-68.096h298.24l198.698667 199.338666c18.56 18.602667 17.322667 50.261333-2.730667 70.357334z m-213.546667-227.242667H315.434667L259.84 314.112c-3.968 4.010667-4.053333 9.088-2.730667 10.453333L430.08 497.92l193.92-193.92-45.44-45.568z" horiz-adv-x="1024" />
<glyph glyph-name="shanchu" unicode="&#59292;" d="M320 554.666667v-426.581334A42.666667 42.666667 0 0 1 362.581333 85.333333h298.88a42.666667 42.666667 0 0 1 42.538667 42.794667V554.666667h42.666667a21.333333 21.333333 0 1 1 0 42.666666h-469.333334a21.333333 21.333333 0 0 1 0-42.666666h42.666667zM426.666667 661.333333c0 11.776 9.642667 21.333333 21.248 21.333334h128.170666c11.690667 0 21.248-9.472 21.248-21.333334 0-11.776-9.642667-21.333333-21.248-21.333333h-128.170666A21.248 21.248 0 0 0 426.666667 661.333333zM362.666667 533.504A21.333333 21.333333 0 0 0 384.128 554.666667h255.701333c11.904 0 21.504-9.728 21.504-21.162667v-384.341333a21.333333 21.333333 0 0 0-21.504-21.162667H384.128c-11.733333 0-21.290667 9.386667-21.461333 21.162667V533.504z m42.666666-42.837333a21.290667 21.290667 0 1 0 42.666667 0v-298.666667a21.290667 21.290667 0 1 0-42.666667 0v298.666667z m85.333334 0a21.290667 21.290667 0 1 0 42.666666 0v-298.666667a21.290667 21.290667 0 1 0-42.666666 0v298.666667z m85.333333 0a21.290667 21.290667 0 1 0 42.666667 0v-298.666667a21.290667 21.290667 0 1 0-42.666667 0v298.666667z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenjuzhongduiqi" unicode="&#59293;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666zM341.333333 469.333333h341.333334a21.333333 21.333333 0 1 0 0-42.666666H341.333333a21.333333 21.333333 0 0 0 0 42.666666z m-106.666666-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666zM341.333333 213.333333h341.333334a21.333333 21.333333 0 1 0 0-42.666666H341.333333a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="dayin" unicode="&#59294;" d="M743.125333 554.666667c35.669333 0 64.384-28.885333 67.285334-65.024l0.256-6.101334V213.333333h-149.76v42.666667H768V483.541333c0 14.592-9.514667 26.154667-21.333333 28.16L743.168 512H280.874667c-12.16 0-22.784-10.24-24.576-24.149333l-0.298667-4.266667V256h127.36v-42.666667H213.333333V483.541333c0 36.906667 26.794667 67.712 61.653334 70.826667L280.874667 554.666667h462.250666zM682.666667 682.666667H341.333333v-170.666667h341.333334V682.666667z m-42.666667-42.666667v-85.333333H384V640h256zM682.666667 341.333333v-256H341.333333v256h341.333334z m-42.666667-42.666666H384v-170.666667h256v170.666667zM341.333333 469.333333h128v-42.666666H341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenfenge" unicode="&#59295;" d="M544.896 506.282667h110.762667v-46.933334c6.698667-6.613333 15.658667-6.613333 22.357333 0l84.949333 55.125334c6.698667 4.437333 6.698667 13.226667 0 19.84l-84.906666 57.386666c-6.741333 6.613333-15.701333 6.613333-22.4 0v-41.258666h-133.12l-89.429334-154.453334H343.722667v-0.128h-22.698667c-11.178667 0-22.357333-11.050667-22.357333-22.058666 0-11.050667 11.178667-22.058667 22.357333-22.058667h134.101333l-0.085333 0.128h0.426667l89.386666 154.453333h0.042667z m133.12-198.954667a15.061333 15.061333 0 0 1-22.314667 0v-43.690667h-66.133333l-67.029333 110.293334-22.357334-44.117334s62.592-103.68 67.072-110.293333h88.448V174.933333a15.061333 15.061333 0 0 1 22.314667 0l84.949333 55.168c6.698667 4.437333 6.698667 13.226667 0 19.84l-84.906666 57.386667h-0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="hanshu" unicode="&#59296;" d="M771.072 504.746667a6.698667 6.698667 0 0 1-0.512 9.514666 6.997333 6.997333 0 0 1-4.48 1.749334h-61.354667c-1.962667 0-3.84-0.853333-5.12-2.346667l-103.893333-122.709333a6.698667 6.698667 0 0 0-11.392 1.621333l-53.674667 119.381333a6.656 6.656 0 0 1-6.144 4.010667H381.866667l0.853333 3.968 6.741333 35.712c8.874667 46.933333 32.085333 68.864 72.533334 68.864 15.658667 0 29.994667-1.450667 41.258666-4.010667l11.861334 56.490667a197.888 197.888 0 0 1-46.464 5.12c-87.296 0-132.224-37.418667-148.650667-124.458667l-7.978667-41.813333H229.632a6.698667 6.698667 0 0 1-6.613333-5.376l-9.130667-43.818667a6.826667 6.826667 0 0 1 6.570667-8.106666h79.786666l-75.264-363.52a6.826667 6.826667 0 0 1 6.570667-8.234667H287.573333c3.242667 0 5.973333 2.346667 6.570667 5.418667l75.861333 366.165333h114.773334l57.685333-117.546667a6.570667 6.570667 0 0 0-1.024-7.381333l-152.746667-171.690667a6.826667 6.826667 0 0 1 5.12-11.264h61.44c2.005333 0 3.882667 0.853333 5.162667 2.389334l104.576 123.989333a6.826667 6.826667 0 0 0 11.392-1.493333l55.594667-120.661334a6.741333 6.741333 0 0 1 6.186666-3.968h54.613334a6.784 6.784 0 0 1 6.101333 9.770667L618.325333 328.533333a6.698667 6.698667 0 0 0 1.066667 7.466667l151.722667 168.661333-0.042667 0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="jiangxu" unicode="&#59297;" d="M430.848 229.802667H366.592V659.925333a6.656 6.656 0 0 1-6.741333 6.528h-47.36a6.656 6.656 0 0 1-6.741334-6.528v-430.122666H241.493333c-5.674667 0-8.874667-6.314667-5.333333-10.538667l94.72-115.2a6.912 6.912 0 0 1 10.624 0l94.72 115.2c3.413333 4.224 0.298667 10.538667-5.376 10.538667zM582.442667 89.301333l20.992 61.098667h103.68l21.205333-61.098667h43.690667L672.64 362.666667h-34.688l-99.370667-273.365334h43.861334z m112.896 97.877334h-79.872l39.552 119.424h0.768l39.552-119.466667zM742.570667 409.301333v39.168h-124.288l124.288 203.093334V682.666667h-169.685334v-36.949334h119.04l-123.904-201.941333v-34.474667z" horiz-adv-x="1024" />
<glyph glyph-name="dingbuduiqi" unicode="&#59298;" d="M298.666667 512h426.666666v-42.666667H298.666667zM416 368.170667l90.496 90.496 90.538667-90.496-30.165334-30.165334-37.802666 37.717334v-290.090667h-42.666667v292.565333l-40.234667-40.192-30.165333 30.165334z" horiz-adv-x="1024" />
<glyph glyph-name="tupian" unicode="&#59299;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-263.381334l-233.984-190.890666-118.613333 98.218666L256 191.36V128h512v291.285333zM768 640H256v-392.704l159.146667 134.954667 119.04-98.602667L768 474.325333V640zM384 554.666667a42.666667 42.666667 0 1 0 0-85.333334 42.666667 42.666667 0 0 0 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="xiangxia90" unicode="&#59300;" d="M789.333333 367.786667l-213.333333-77.653334v-0.64l-1.621333 0.042667L426.666667 235.776v45.354667l106.666666 38.826666V472.362667l-106.666666 38.826666V556.544l147.498666-53.674667 1.834667-0.042666v-0.64l213.333333-77.610667v-56.789333z m-46.634666 28.416L576 456.874667v-121.386667l166.698667 60.714667zM384 208.170667l-90.496-90.538667-90.538667 90.538667 30.165334 30.165333 37.802666-37.76V661.333333h42.666667v-463.232l40.234667 40.234667 30.165333-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="shupaiwenzi" unicode="&#59301;" d="M636.757333 597.333333l77.653334-213.333333h0.64l-0.042667-1.621333 53.76-147.712h-45.354667l-38.826666 106.666666h-152.405334l-38.826666-106.666666H448l53.674667 147.498666 0.042666 1.834667h0.64l77.610667 213.333333h56.789333z m-28.416-46.634666L547.669333 384h121.386667l-60.714667 166.698667zM394.368 197.504L303.786667 106.965333 213.333333 197.546667l30.165334 30.165333 37.802666-37.76V650.666667h42.666667v-463.232l40.234667 40.234666 30.165333-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="quanjiabiankuang" unicode="&#59302;" d="M213.333333 85.333333V640h42.666667v-554.666667zM725.333333 85.333333V640h42.666667v-554.666667zM469.333333 85.333333V640h42.666667v-554.666667zM213.333333 640h554.666667v-42.666667H213.333333zM213.333333 384h554.666667v-42.666667H213.333333zM213.333333 128h554.666667v-42.666667H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shengxu" unicode="&#59303;" d="M430.848 538.24H366.592v-430.165333a6.656 6.656 0 0 0-6.741333-6.485334h-47.36a6.656 6.656 0 0 0-6.741334 6.485334V538.24H241.493333c-5.674667 0-8.874667 6.314667-5.333333 10.538667l94.72 115.2a6.912 6.912 0 0 0 10.624 0l94.72-115.2c3.413333-4.224 0.298667-10.538667-5.376-10.538667zM582.442667 409.301333l20.992 61.098667h103.68l21.205333-61.098667h43.690667L672.64 682.666667h-34.688l-99.370667-273.365334h43.861334z m112.896 97.877334h-79.872l39.552 119.424h0.768l39.552-119.466667zM742.570667 89.301333v39.168h-124.288l124.288 203.093334V362.666667h-169.685334v-36.949334h119.04l-123.904-201.941333v-34.474667z" horiz-adv-x="1024" />
<glyph glyph-name="caijian" unicode="&#59304;" d="M341.333333 682.666667h42.666667v-469.333334H341.333333zM810.666667 256v-42.666667H341.333333v42.666667zM682.666667 85.333333h-42.666667V554.666667h42.666667zM213.333333 512V554.666667h469.333334v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="jine" unicode="&#59305;" d="M658.816 640l34.986667-24.490667-124.629334-177.92h119.04v-42.666666h-149.333333v-85.333334h149.333333v-42.666666h-149.333333v-128h-42.666667v128h-149.333333v42.666666h149.333333v85.333334h-149.333333v42.666666h119.04L341.333333 615.509333 376.32 640l141.226667-201.728L658.816 640z" horiz-adv-x="1024" />
<glyph glyph-name="caidan1" unicode="&#59306;" d="M256 256h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667zM682.666667 682.666667h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667h-85.333333a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667zM469.333333 256h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666666-42.666667h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z m21.333334-42.666667a21.333333 21.333333 0 0 1-21.333334-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333334-21.333333h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333334 21.333333h-42.666666zM469.333333 682.666667h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666666-42.666667h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666667V640a42.666667 42.666667 0 0 0 42.666666 42.666667z m21.333334-42.666667a21.333333 21.333333 0 0 1-21.333334-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333334-21.333333h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333334 21.333333h-42.666666z m192-384h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667h-85.333333a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667zM469.333333 469.333333h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666666v-85.333334a42.666667 42.666667 0 0 0-42.666666-42.666666h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666666v85.333334a42.666667 42.666667 0 0 0 42.666666 42.666666z m21.333334-42.666666a21.333333 21.333333 0 0 1-21.333334-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333334-21.333334h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333334 21.333334h-42.666666zM256 469.333333h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666666v-85.333334a42.666667 42.666667 0 0 0-42.666667-42.666666H256a42.666667 42.666667 0 0 0-42.666667 42.666666v85.333334a42.666667 42.666667 0 0 0 42.666667 42.666666z m426.666667 0h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666666v-85.333334a42.666667 42.666667 0 0 0-42.666667-42.666666h-85.333333a42.666667 42.666667 0 0 0-42.666667 42.666666v85.333334a42.666667 42.666667 0 0 0 42.666667 42.666666z m21.333333-42.666666a21.333333 21.333333 0 0 1-21.333333-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333333-21.333334h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333333 21.333334h-42.666667z m-426.666667 0a21.333333 21.333333 0 0 1-21.333333-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333333-21.333334h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333333 21.333334h-42.666667zM256 682.666667h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="quxiaohebing" unicode="&#59307;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM533.333333 682.666667v-170.666667h-42.666666V682.666667zM405.333333 469.333333v-213.333333h-42.666666v213.333333zM533.333333 490.666667v-213.333334h-42.666666v213.333334zM661.333333 490.666667v-213.333334h-42.666666v213.333334zM533.333333 298.666667v-170.666667h-42.666666v170.666667zM810.666667 512v-256H213.333333V512h597.333334z m-42.666667-42.666667H256v-170.666666h512v170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenxiahuaxian" unicode="&#59308;" d="M362.666667 640v-298.666667a149.333333 149.333333 0 0 1 298.453333-8.192L661.333333 341.333333V640h42.666667v-298.666667a192 192 0 0 0-383.786667-9.045333L320 341.333333V640h42.666667zM256 128m21.333333 0l469.333334 0q21.333333 0 21.333333-21.333333l0 0q0-21.333333-21.333333-21.333334l-469.333334 0q-21.333333 0-21.333333 21.333334l0 0q0 21.333333 21.333333 21.333333ZM256 640m21.333333 0l128 0q21.333333 0 21.333334-21.333333l0 0q0-21.333333-21.333334-21.333334l-128 0q-21.333333 0-21.333333 21.333334l0 0q0 21.333333 21.333333 21.333333ZM597.333333 640m21.333334 0l128 0q21.333333 0 21.333333-21.333333l0 0q0-21.333333-21.333333-21.333334l-128 0q-21.333333 0-21.333334 21.333334l0 0q0 21.333333 21.333334 21.333333Z" horiz-adv-x="1024" />
<glyph glyph-name="shangbiankuang" unicode="&#59309;" d="M213.333333 640h554.666667v-42.666667H213.333333zM213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 384h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM469.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 384h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM469.333333 298.666667h42.666667v-42.666667h-42.666667zM469.333333 554.666667h42.666667v-42.666667h-42.666667zM469.333333 384h42.666667v-42.666667h-42.666667zM469.333333 213.333333h42.666667v-42.666666h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM469.333333 128h42.666667v-42.666667h-42.666667zM640 128h42.666667v-42.666667h-42.666667zM384 384h42.666667v-42.666667H384zM554.666667 384h42.666666v-42.666667h-42.666666zM298.666667 384h42.666666v-42.666667H298.666667zM469.333333 384h42.666667v-42.666667h-42.666667zM640 384h42.666667v-42.666667h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="dingwei" unicode="&#59310;" d="M618.666667 172.416V234.666667a21.333333 21.333333 0 1 0 42.666666 0v-62.250667a128.128 128.128 0 0 1 104.917334 104.917333H704a21.333333 21.333333 0 1 0 0 42.666667h62.250667a128.128 128.128 0 0 1-104.917334 104.874667V362.666667a21.333333 21.333333 0 1 0-42.666666 0v62.208a128.085333 128.085333 0 0 1-104.874667-104.874667H576a21.333333 21.333333 0 0 0 0-42.666667h-62.208a128.128 128.128 0 0 1 104.874667-104.917333z m149.333333 296.96a213.12 213.12 0 0 1-42.666667 24.874667V618.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-426.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-341.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h153.6c2.986667-14.848 7.594667-29.098667 13.482667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667h469.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-170.666667zM640 128a170.666667 170.666667 0 1 0 0 341.333333 170.666667 170.666667 0 0 0 0-341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="sizhoujiabiankuang" unicode="&#59311;" d="M213.333333 85.333333V640h42.666667v-554.666667zM725.333333 85.333333V640h42.666667v-554.666667zM213.333333 640h554.666667v-42.666667H213.333333zM213.333333 128h554.666667v-42.666667H213.333333zM384 341.333333v42.666667h42.666667v-42.666667zM554.666667 341.333333v42.666667h42.666666v-42.666667zM298.666667 341.333333v42.666667h42.666666v-42.666667zM469.333333 341.333333v42.666667h42.666667v-42.666667zM640 341.333333v42.666667h42.666667v-42.666667zM469.333333 256v42.666667h42.666667v-42.666667zM469.333333 426.666667v42.666666h42.666667v-42.666666zM469.333333 170.666667v42.666666h42.666667v-42.666666zM469.333333 341.333333v42.666667h42.666667v-42.666667zM469.333333 512V554.666667h42.666667v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="cebianlanshouqi" unicode="&#59312;" d="M256 576a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333zM256 384c0 11.776 9.6 21.333333 21.461333 21.333333h277.077334a21.333333 21.333333 0 1 0 0-42.666666H277.504A21.333333 21.333333 0 0 0 256 384z m0-192a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333z m368.896 283.562667a21.333333 21.333333 0 0 0 30.165333 30.165333l106.666667-106.666667a21.333333 21.333333 0 0 0 0-30.165333l-106.666667-106.666667a21.333333 21.333333 0 0 0-30.165333 30.165334L716.501333 384l-91.562666 91.605333z" horiz-adv-x="1024" />
<glyph glyph-name="hebing" unicode="&#59313;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM389.162667 469.333333l90.538666-90.496-90.538666-90.538666-30.165334 30.165333 37.802667 37.845333-119.466667-0.042666v42.666666l121.856 0.042667-40.192 40.192 30.165334 30.165333zM645.162667 469.333333L554.666667 378.837333l90.496-90.538666 30.165333 30.165333-37.76 37.845333 119.466667-0.042666v42.666666l-121.856 0.042667 40.149333 40.192-30.165333 30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xiangshangqingxie" unicode="&#59314;" d="M290.944 606.634667l205.738667-95.914667 0.469333 0.426667 1.109333-1.152 142.506667-66.432-32.128-32.085334-102.826667 47.957334-107.818666-107.733334 48-102.912-32.085334-32.042666-66.346666 142.250666-1.28 1.28 0.469333 0.512-96 205.696 40.192 40.149334z m12.885333-53.034667l74.965334-160.810667 85.845333 85.845334L303.786667 553.6zM690.432 432.896h128v-128h-42.666667v53.418667l-325.845333-325.802667-30.165333 30.165333 327.552 327.552h-56.874667v42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="shuipingduiqi" unicode="&#59315;" d="M725.333333 362.666667H298.666667v42.666666h426.666666zM426.666667 261.504l90.496 90.496 90.538666-90.496-30.165333-30.165333-39.936 39.850666v-121.557333h-42.666667v119.765333l-38.101333-38.058666-30.165333 30.165333zM426.666667 506.837333l90.496-90.538666 90.538666 90.538666-30.165333 30.165334-39.936-39.893334V618.666667h-42.666667v-119.765334l-38.101333 38.101334-30.165333-30.165334z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenshanchuxian" unicode="&#59316;" d="M298.666667 640h426.666666v-42.666667H298.666667zM533.290667 341.333333l0.042666-192h-42.666666l-0.042667 192h42.666667z m0.042666 277.333334l-0.042666-234.666667h-42.666667l0.042667 234.666667h42.666666zM320 640v-85.333333h-42.666667V640zM746.666667 640v-85.333333h-42.666667V640zM256 426.666667h512v-42.666667H256zM426.666667 170.666667h170.666666v-42.666667h-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenyouduiqi" unicode="&#59317;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666z m213.333333-128h341.333333a21.333333 21.333333 0 1 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z m-213.333333-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m213.333333-128h341.333333a21.333333 21.333333 0 1 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="qianjin" unicode="&#59318;" d="M287.018667 476.672h310.997333v-42.666667H286.72l84.48-84.437333a21.333333 21.333333 0 1 0-30.208-30.165333l-120.746667 120.704a21.248 21.248 0 0 0 0 30.165333l120.746667 120.661333a21.333333 21.333333 0 0 0 30.165333-30.165333L287.018667 476.672z m524.330666-213.333333a213.333333 213.333333 0 0 1-213.333333 213.333333v-42.666667a170.666667 170.666667 0 0 0 170.666667-170.666666h42.666666z m0 0h-42.666666v-64a21.333333 21.333333 0 1 1 42.666666 0v64z" horiz-adv-x="1024" />
<glyph glyph-name="tubiao" unicode="&#59319;" d="M256 682.666667H213.333333v-597.333334h597.333334v42.666667H256zM490.666667 552.533333V341.333333h185.6c-19.2-72.533333-85.333333-128-164.266667-128-93.866667 0-170.666667 76.8-170.666667 170.666667 0 87.466667 66.133333 157.866667 149.333334 168.533333M512 597.333333c-117.333333 0-213.333333-96-213.333333-213.333333s96-213.333333 213.333333-213.333333 213.333333 96 213.333333 213.333333h-192V597.333333H512zM618.666667 635.733333c83.2-14.933333 134.4-74.666667 147.2-166.4H618.666667V635.733333m-42.666667 46.933334v-256H810.666667c0 149.333333-85.333333 256-234.666667 256z" horiz-adv-x="1024" />
<glyph glyph-name="youbiankuang" unicode="&#59320;" d="M768 640v-554.666667h-42.666667V640zM597.333333 640v-42.666667h-42.666666V640zM426.666667 640v-42.666667H384V640zM682.666667 640v-42.666667h-42.666667V640zM512 640v-42.666667h-42.666667V640zM341.333333 640v-42.666667H298.666667V640zM597.333333 384v-42.666667h-42.666666v42.666667zM597.333333 128v-42.666667h-42.666666v42.666667zM426.666667 128v-42.666667H384v42.666667zM682.666667 128v-42.666667h-42.666667v42.666667zM512 128v-42.666667h-42.666667v42.666667zM341.333333 128v-42.666667H298.666667v42.666667zM256 128v-42.666667H213.333333v42.666667zM426.666667 384v-42.666667H384v42.666667zM682.666667 384v-42.666667h-42.666667v42.666667zM512 384v-42.666667h-42.666667v42.666667zM341.333333 384v-42.666667H298.666667v42.666667zM256 640v-42.666667H213.333333V640zM256 469.333333v-42.666666H213.333333v42.666666zM256 298.666667v-42.666667H213.333333v42.666667zM256 554.666667v-42.666667H213.333333V554.666667zM256 384v-42.666667H213.333333v42.666667zM256 213.333333v-42.666666H213.333333v42.666666zM512 469.333333v-42.666666h-42.666667v42.666666zM512 298.666667v-42.666667h-42.666667v42.666667zM512 554.666667v-42.666667h-42.666667V554.666667zM512 384v-42.666667h-42.666667v42.666667zM512 213.333333v-42.666666h-42.666667v42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="baifenhao" unicode="&#59321;" d="M653.525333 682.666667l36.949334-21.333334-320-554.24-36.949334 21.333334L653.525333 682.666667zM682.666667 426.666667c71.68 0 128-67.626667 128-149.333334S754.346667 128 682.666667 128s-128 67.626667-128 149.333333 56.32 149.333333 128 149.333334z m0-42.666667c-46.165333 0-85.333333-46.976-85.333334-106.666667s39.168-106.666667 85.333334-106.666666c46.165333 0 85.333333 46.976 85.333333 106.666666s-39.168 106.666667-85.333333 106.666667zM341.333333 661.333333c71.68 0 128-67.626667 128-149.333333s-56.32-149.333333-128-149.333333S213.333333 430.293333 213.333333 512s56.32 149.333333 128 149.333333z m0-42.666666C295.168 618.666667 256 571.690667 256 512s39.168-106.666667 85.333333-106.666667c46.165333 0 85.333333 46.976 85.333334 106.666667s-39.168 106.666667-85.333334 106.666667z" horiz-adv-x="1024" />
<glyph glyph-name="geshishua" unicode="&#59322;" d="M725.333333 682.666667v-85.333334h85.333334v-234.666666h-298.666667V298.666667h21.333333v-213.333334h-85.333333v213.333334h21.333333v106.666666h298.666667V554.666667h-42.666667v-85.333334H213.333333V682.666667h512z m-42.666666-42.666667H256v-128h426.666667V640z" horiz-adv-x="1024" />
<glyph glyph-name="baocun" unicode="&#59323;" d="M341.333333 640H277.333333a21.333333 21.333333 0 0 1-21.333333-21.333333v-469.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v469.333334a21.333333 21.333333 0 0 1-21.333333 21.333333H682.666667v-213.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H384a42.666667 42.666667 0 0 0-42.666667 42.666667V640zM256 682.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-512a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m128-42.666667v-192a21.333333 21.333333 0 0 1 21.333333-21.333333h213.333334a21.333333 21.333333 0 0 1 21.333333 21.333333V640H384z m192-42.666667a21.333333 21.333333 0 0 0 21.333333-21.333333v-85.333333a21.333333 21.333333 0 0 0-42.666666 0v85.333333a21.333333 21.333333 0 0 0 21.333333 21.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shujuyanzheng" unicode="&#59324;" d="M764.330667 303.829333l30.165333-30.165333L734.165333 213.333333l60.330667-60.330666-30.165333-30.165334-60.330667 60.330667-60.330667-60.330667-30.165333 30.165334L673.834667 213.333333l-60.330667 60.330667 30.165333 30.165333 60.330667-60.330666 60.330667 60.330666zM725.333333 384v-42.666667H256v-128h256v-42.666666H213.333333v213.333333h512z m47.829334 209.664l30.165333-30.165333L682.666667 442.88l-30.165334-30.165333-90.496 90.453333 30.165334 30.208 60.330666-60.330667 120.661334 120.661334zM725.333333 640v-42.666667H256v-128h256v-42.666666H213.333333V640h512z" horiz-adv-x="1024" />
<glyph glyph-name="jieduan" unicode="&#59325;" d="M767.829333 682.666667h42.496v-597.333334h-42.496zM767.146667 342.784h-384v42.496h384v-42.496zM213.333333 682.666667h84.992v-597.333334H213.333333V682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="geshitiaojian" unicode="&#59326;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-320h-106.666667V128H768v234.666667z m-405.376 0h-106.666667V128h106.666667v234.666667z m256.042667-86.784L445.482667 128H618.666667v147.882667z m0 162.346666l-213.376-179.968v-108.885333l213.376 179.072v109.781333z m0 163.669334l-213.333334-179.029334v-108.885333l213.333334 179.072V601.898667zM768 640h-103.936l-2.730667-2.304V405.333333H768V640zM362.666667 640H256v-234.666667h106.666667V640z m235.008 0H405.333333v-161.408L597.674667 640z" horiz-adv-x="1024" />
<glyph glyph-name="zidonghuanhang" unicode="&#59327;" d="M213.333333 682.666667h85.12v-597.333334H213.333333V682.666667z m225.450667-477.44l25.557333 21.333333-72.362666 63.786667 72.362666 63.872-25.557333 21.248-93.610667-80.853334h4.266667-4.266667l93.610667-89.386666zM768 682.666667h42.581333v-597.333334H768zM540.928 528.725333H391.978667v-42.581333h148.949333c59.605333 0 106.410667-38.314667 106.410667-85.12s-46.805333-85.12-106.410667-85.12H391.978667v-42.581333h148.949333c85.12 0 157.482667 55.338667 157.482667 127.701333s-72.362667 127.701333-157.44 127.701333z" horiz-adv-x="1024" />
<glyph glyph-name="cebianlanzhankai" unicode="&#59328;" d="M256 576a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333z m192-192c0 11.776 9.557333 21.333333 21.461333 21.333333h277.034667a21.333333 21.333333 0 1 0 0-42.666666h-277.034667a21.333333 21.333333 0 0 0-21.461333 21.333333zM256 192a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333z m143.061333 283.562667L307.541333 384l91.605334-91.562667a21.333333 21.333333 0 0 0-30.165334-30.165333l-106.666666 106.666667a21.333333 21.333333 0 0 0 0 30.165333l106.666666 106.666667a21.333333 21.333333 0 0 0 30.165334-30.165334z" horiz-adv-x="1024" />
<glyph glyph-name="shaixuan2" unicode="&#59329;" d="M736 682.666667H328.533333C288 682.666667 256 650.666667 256 610.133333c0-17.066667 6.4-34.133333 17.066667-46.933333 0-2.133333 2.133333-2.133333 2.133333-4.266667l160-160v-168.533333c0-6.4 2.133333-10.666667 6.4-14.933333l145.066667-123.733334c4.266667-2.133333 8.533333-4.266667 12.8-4.266666 6.4 0 10.666667 2.133333 14.933333 6.4 4.266667 4.266667 4.266667 10.666667 4.266667 14.933333V392.533333l170.666666 166.4 2.133334 2.133334c10.666667 12.8 17.066667 29.866667 17.066666 46.933333 0 42.666667-32 74.666667-72.533333 74.666667z m23.466667-93.866667s-2.133333-2.133333 0 0l-172.8-172.8c-4.266667-4.266667-6.4-8.533333-6.4-14.933333v-251.733334l-104.533334 87.466667V405.333333c0 6.4-2.133333 10.666667-6.4 14.933334l-162.133333 166.4-2.133333 2.133333c-6.4 6.4-8.533333 12.8-8.533334 21.333333 0 17.066667 14.933333 32 32 32h407.466667c17.066667 0 32-14.933333 32-32 0-8.533333-4.266667-14.933333-8.533333-21.333333z" horiz-adv-x="1024" />
<glyph glyph-name="xiangxiaqingxie" unicode="&#59330;" d="M755.968 583.722667l-95.914667-205.738667 0.426667-0.469333-1.152-1.109334-66.432-142.506666-32.085333 32.128 47.957333 102.826666-107.733333 107.818667-102.912-48-32.042667 32.085333 142.250667 66.346667 1.28 1.28 0.512-0.469333 205.696 96 40.149333-40.192z m-53.034667-12.885334l-160.810666-74.965333 85.845333-85.845333 74.965333 160.810666zM582.229333 184.234667v-128h-128v42.666666h53.418667l-325.802667 325.845334 30.165334 30.165333 327.552-327.552v56.874667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="yichu" unicode="&#59331;" d="M256 682.666667h85.333333v-597.333334H256zM711.466667 253.312l-26.154667 26.154667 89.6 85.845333H256v37.376h518.954667l-89.6 85.845333 26.112 26.112L842.154667 384zM573.354667 682.666667h42.666666v-242.688h-42.666666V682.666667z m0-354.688h42.666666V85.333333h-42.666666v242.688z" horiz-adv-x="1024" />
<glyph glyph-name="chuizhihebing" unicode="&#59332;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM640 682.666667v-597.333334h-42.666667V682.666667zM426.666667 682.666667v-597.333334H384V682.666667zM597.034667 304.170667l-90.538667-90.538667L416 304.213333l30.165333 30.165334 37.802667-37.76V544h42.666667v-249.898667l40.234666 40.234667 30.165334-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenfensanduiqi" unicode="&#59333;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="zuobiankuang" unicode="&#59334;" d="M213.333333 85.333333V640h42.666667v-554.666667zM384 85.333333v42.666667h42.666667v-42.666667zM554.666667 85.333333v42.666667h42.666666v-42.666667zM298.666667 85.333333v42.666667h42.666666v-42.666667zM469.333333 85.333333v42.666667h42.666667v-42.666667zM640 85.333333v42.666667h42.666667v-42.666667zM384 341.333333v42.666667h42.666667v-42.666667zM554.666667 341.333333v42.666667h42.666666v-42.666667zM298.666667 341.333333v42.666667h42.666666v-42.666667zM469.333333 341.333333v42.666667h42.666667v-42.666667zM640 341.333333v42.666667h42.666667v-42.666667zM469.333333 256v42.666667h42.666667v-42.666667zM469.333333 426.666667v42.666666h42.666667v-42.666666zM469.333333 170.666667v42.666666h42.666667v-42.666666zM469.333333 341.333333v42.666667h42.666667v-42.666667zM469.333333 512V554.666667h42.666667v-42.666667zM384 597.333333V640h42.666667v-42.666667zM554.666667 597.333333V640h42.666666v-42.666667zM298.666667 597.333333V640h42.666666v-42.666667zM469.333333 597.333333V640h42.666667v-42.666667zM640 597.333333V640h42.666667v-42.666667zM725.333333 597.333333V640h42.666667v-42.666667zM725.333333 85.333333v42.666667h42.666667v-42.666667zM725.333333 256v42.666667h42.666667v-42.666667zM725.333333 426.666667v42.666666h42.666667v-42.666666zM725.333333 170.666667v42.666666h42.666667v-42.666666zM725.333333 341.333333v42.666667h42.666667v-42.666667zM725.333333 512V554.666667h42.666667v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="fenyechakan" unicode="&#59335;" d="M810.666667 682.666667v-42.666667h-170.709334L640 128h170.666667v-42.666667h-213.333334V682.666667h213.333334z m-384 0l-0.042667-554.666667H426.666667v-42.666667H213.333333v42.666667h170.624L384 640H213.333333V682.666667h213.333334z m106.666666-512v-85.333334h-42.666666v85.333334h42.666666z m0 170.666666v-85.333333h-42.666666v85.333333h42.666666z m0 170.666667v-85.333333h-42.666666V512h42.666666z m0 170.666667v-85.333334h-42.666666V682.666667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="yunhang" unicode="&#59336;" d="M268.032 372.565333l60.373333 60.330667 211.2-211.2-60.373333-60.330667zM780.928 583.765333l60.373333-60.330666-331.904-331.861334-60.330666 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="lie" unicode="&#59337;" d="M234.666667 64v597.333333h42.666666v-597.333333zM405.333333 64v597.333333h42.666667v-597.333333zM576 64v597.333333h42.666667v-597.333333zM746.666667 64v597.333333h42.666666v-597.333333z" horiz-adv-x="1024" />
<glyph glyph-name="quanping" unicode="&#59338;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM341.333333 298.666667v-85.376L426.666667 213.333333v-42.666666H298.666667v128h42.666666z m384 0v-128h-128v42.666666h85.376L682.666667 298.666667h42.666666z m-298.666666 298.666666v-42.666666l-85.333334 0.042666V469.333333H298.666667V597.333333h128z m298.666666 0v-128h-42.666666l0.042666 85.333334H597.333333V597.333333h128z" horiz-adv-x="1024" />
<glyph glyph-name="shaixuan" unicode="&#59339;" d="M736 682.666667H328.533333C288 682.666667 256 650.666667 256 610.133333c0-17.066667 6.4-34.133333 17.066667-46.933333 0-2.133333 2.133333-2.133333 2.133333-4.266667l160-160v-168.533333c0-6.4 2.133333-10.666667 6.4-14.933333l145.066667-123.733334c4.266667-2.133333 8.533333-4.266667 12.8-4.266666 6.4 0 10.666667 2.133333 14.933333 6.4 4.266667 4.266667 4.266667 10.666667 4.266667 14.933333V392.533333l170.666666 166.4 2.133334 2.133334c10.666667 12.8 17.066667 29.866667 17.066666 46.933333 0 42.666667-32 74.666667-72.533333 74.666667z m23.466667-93.866667s-2.133333-2.133333 0 0l-172.8-172.8c-4.266667-4.266667-6.4-8.533333-6.4-14.933333v-251.733334l-104.533334 87.466667V405.333333c0 6.4-2.133333 10.666667-6.4 14.933334l-162.133333 166.4-2.133333 2.133333c-6.4 6.4-8.533333 12.8-8.533334 21.333333 0 17.066667 14.933333 32 32 32h407.466667c17.066667 0 32-14.933333 32-32 0-8.533333-4.266667-14.933333-8.533333-21.333333zM688.213333 517.589333l-101.546666-101.589333c-4.266667-4.266667-6.4-8.533333-6.4-14.933333v-251.733334l-104.533334 87.466667V405.333333c0 6.4-2.133333 10.666667-6.4 14.933334L403.626667 487.68l284.586666 29.909333z" horiz-adv-x="1024" />
<glyph glyph-name="gengxin" unicode="&#59340;" d="M358.101333 640A298.666667 298.666667 0 0 1 512 85.333333a21.333333 21.333333 0 1 1 0 42.666667A256 256 0 0 0 405.333333 616.789333V532.906667A21.333333 21.333333 0 0 1 426.666667 512c11.776 0 21.333333 9.130667 21.333333 20.906667V661.76a20.565333 20.565333 0 0 1-6.229333 14.634667l0.042666 0.128A20.650667 20.650667 0 0 1 427.050667 682.666667H298.24a21.333333 21.333333 0 0 1-20.906667-21.333334c0-11.776 9.173333-21.333333 20.906667-21.333333h59.818667z m307.797334-512A298.666667 298.666667 0 0 1 512 682.666667a21.333333 21.333333 0 0 1 0-42.666667 256 256 0 0 0 106.666667-488.789333V235.093333A21.333333 21.333333 0 0 1 597.333333 256c-11.776 0-21.333333-9.130667-21.333333-20.906667v-128.810666a20.48 20.48 0 0 1 6.229333-14.634667l-0.042666-0.170667a20.650667 20.650667 0 0 1 14.762666-6.144h128.768a21.333333 21.333333 0 0 1 20.949334 21.333334c0 11.776-9.173333 21.333333-20.906667 21.333333h-59.861333z" horiz-adv-x="1024" />
<glyph glyph-name="qingchu" unicode="&#59341;" d="M330.965333 625.365333l422.4-422.4-60.330666-60.330666-422.4 422.4zM753.365333 565.034667l-422.4-422.4-60.330666 60.330666 422.4 422.4z" horiz-adv-x="1024" />
<glyph glyph-name="hang" unicode="&#59342;" d="M213.333333 640h597.333334v-42.666667H213.333333zM213.333333 469.333333h597.333334v-42.666666H213.333333zM213.333333 298.666667h597.333334v-42.666667H213.333333zM213.333333 128h597.333334v-42.666667H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="zhushi" unicode="&#59343;" d="M352 405.333333a32 32 0 1 1 64 0 32 32 0 0 1-64 0z m128 0a32 32 0 1 1 64 0 32 32 0 0 1-64 0z m128 0a32 32 0 1 1 64 0 32 32 0 0 1-64 0zM768 597.333333H256c-23.466667 0-42.666667-19.2-42.666667-42.666666v-298.666667c0-23.466667 19.2-42.666667 42.666667-42.666667h106.666667v-128l128 128H768c23.466667 0 42.666667 19.2 42.666667 42.666667V554.666667c0 23.466667-19.2 42.666667-42.666667 42.666666z m0-320c0-12.8-8.533333-21.333333-21.333333-21.333333H469.333333l-64-64V256h-128c-12.8 0-21.333333 8.533333-21.333333 21.333333v256c0 12.8 8.533333 21.333333 21.333333 21.333334h469.333334c12.8 0 21.333333-8.533333 21.333333-21.333334v-256z" horiz-adv-x="1024" />
<glyph glyph-name="jian" unicode="&#59344;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="jisuan" unicode="&#59345;" d="M774.058667 682.666667v-42.666667H310.784l236.288-256-236.330667-256h463.317334v-42.666667H213.333333l275.669334 298.666667L213.333333 682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="jia" unicode="&#59346;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333zM554.666667 682.666667v-597.333334h-85.333334V682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="dibuduiqi" unicode="&#59347;" d="M725.333333 170.666667H298.666667v42.666666h426.666666zM608 314.496l-90.496-90.496-90.538667 90.496 30.165334 30.165333 37.802666-37.717333V597.034667h42.666667v-292.565334l40.234667 40.192 30.165333-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xiangshang90" unicode="&#59348;" d="M789.333333 400.213333l-213.333333 77.653334v0.64l-1.621333-0.042667L426.666667 532.224v-45.354667l106.666666-38.826666v-152.405334l-106.666666-38.826666v-45.354667l147.498666 53.674667 1.834667 0.042666v0.64l213.333333 77.610667V400.213333z m-46.634666-28.416L576 311.125333v121.386667l166.698667-60.714667zM384 559.829333L293.504 650.368 202.965333 559.786667l30.165334-30.165334 37.802666 37.76V106.666667h42.666667V569.898667l40.234667-40.234667L384 559.829333z" horiz-adv-x="1024" />
<glyph glyph-name="wuxuanzhuang" unicode="&#59349;" d="M549.546667 682.666667l77.653333-213.333334h0.64l-0.042667-1.621333 53.76-147.712h-45.354666l-38.826667 106.666667h-152.405333l-38.826667-106.666667H360.789333l53.674667 147.498667 0.042667 1.834666h0.64l77.610666 213.333334h56.789334z m-28.416-46.634667L460.458667 469.333333h121.386666l-60.714666 166.698667zM709.162667 277.333333l90.538666-90.496-90.538666-90.538666-30.165334 30.165333 37.76 37.802667H256v42.666666h463.232l-40.234667 40.234667 30.165334 30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xianshiyincangwangge" unicode="&#59350;" d="M256 640h554.666667v-42.666667H256zM298.666667 640v-554.666667H256V640zM810.666667 640v-554.666667h-42.666667V640zM469.333333 640v-554.666667h-42.666666V640zM640 640v-554.666667h-42.666667V640zM256 469.333333h554.666667v-42.666666H256zM256 298.666667h554.666667v-42.666667H256zM256 128h554.666667v-42.666667H256z" horiz-adv-x="1024" />
<glyph glyph-name="dongjie" unicode="&#59351;" d="M256.426667 639.573333h255.317333v-553.130666H256.426667zM809.557333 682.069333v-595.626666H213.930667V682.069333h595.626666z m-42.538666-42.538666H256.426667v-510.549334h510.549333V639.573333zM490.453333 639.573333h42.538667v-510.592h-42.538667zM256.426667 363.008v42.538667h510.592v-42.538667zM256.384 669.738667l264.192-264.192-30.122667-30.08-264.192 264.192 30.122667 30.08z m-30.122667-317.184l30.122667 30.122666 264.192-264.192-30.122667-30.08-264.192 264.149334z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenzuoduiqi" unicode="&#59352;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666z m0-128h341.333333a21.333333 21.333333 0 0 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m0-128h341.333333a21.333333 21.333333 0 0 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="houtui" unicode="&#59354;" d="M737.664 476.672H426.666667v-42.666667h311.296l-84.48-84.437333a21.333333 21.333333 0 0 1 30.208-30.165333l120.746666 120.704a21.290667 21.290667 0 0 1 0 30.165333l-120.746666 120.661333a21.333333 21.333333 0 0 1-30.165334-30.165333l84.138667-84.096zM213.333333 263.338667a213.333333 213.333333 0 0 0 213.333334 213.333333v-42.666667a170.666667 170.666667 0 0 1-170.666667-170.666666H213.333333z m0 0h42.666667v-64a21.333333 21.333333 0 0 0-42.666667 0v64z" horiz-adv-x="1024" />
<glyph glyph-name="shuipinghebing" unicode="&#59355;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM810.666667 512v-256H213.333333V512h597.333334z m-42.666667-42.666667H256v-170.666666h512v170.666666zM581.162667 469.333333l90.538666-90.496-90.538666-90.538666-30.165334 30.165333 37.76 37.802667H341.333333v42.666666h249.898667l-40.234667 40.234667 30.165334 30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xiabiankuang" unicode="&#59356;" d="M768 85.333333H213.333333v42.666667h554.666667zM768 256h-42.666667v42.666667h42.666667zM768 426.666667h-42.666667v42.666666h42.666667zM768 170.666667h-42.666667v42.666666h42.666667zM768 341.333333h-42.666667v42.666667h42.666667zM768 512h-42.666667V554.666667h42.666667zM512 256h-42.666667v42.666667h42.666667zM256 256H213.333333v42.666667h42.666667zM256 426.666667H213.333333v42.666666h42.666667zM256 170.666667H213.333333v42.666666h42.666667zM256 341.333333H213.333333v42.666667h42.666667zM256 512H213.333333V554.666667h42.666667zM256 597.333333H213.333333V640h42.666667zM512 426.666667h-42.666667v42.666666h42.666667zM512 170.666667h-42.666667v42.666666h42.666667zM512 341.333333h-42.666667v42.666667h42.666667zM512 512h-42.666667V554.666667h42.666667zM768 597.333333h-42.666667V640h42.666667zM597.333333 597.333333h-42.666666V640h42.666666zM426.666667 597.333333H384V640h42.666667zM682.666667 597.333333h-42.666667V640h42.666667zM512 597.333333h-42.666667V640h42.666667zM341.333333 597.333333H298.666667V640h42.666666zM597.333333 341.333333h-42.666666v42.666667h42.666666zM426.666667 341.333333H384v42.666667h42.666667zM682.666667 341.333333h-42.666667v42.666667h42.666667zM512 341.333333h-42.666667v42.666667h42.666667zM341.333333 341.333333H298.666667v42.666667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="shezhi" unicode="&#59357;" d="M794.496 470.314667a112.341333 112.341333 0 0 0-72.917333 53.034666 108.074667 108.074667 0 0 0-9.941334 88.234667 13.781333 13.781333 0 0 1-4.394666 14.592 299.392 299.392 0 0 1-95.616 55.424 14.421333 14.421333 0 0 1-15.146667-3.584 113.578667 113.578667 0 0 0-84.48-35.968 113.578667 113.578667 0 0 0-82.858667 35.157333 14.421333 14.421333 0 0 1-16.768 4.394667 298.154667 298.154667 0 0 1-95.573333-55.808 13.781333 13.781333 0 0 1-4.394667-14.634667c9.344-29.354667 5.717333-61.269333-9.984-87.808a112.341333 112.341333 0 0 0-72.96-53.034666 13.909333 13.909333 0 0 1-10.752-11.050667 281.856 281.856 0 0 1 0-109.610667c1.024-5.504 5.290667-9.813333 10.752-11.008a112.341333 112.341333 0 0 0 72.96-52.650666c15.786667-26.666667 19.413333-58.709333 9.941334-88.192a13.781333 13.781333 0 0 1 4.352-14.634667 299.392 299.392 0 0 1 95.658666-55.424h4.778667c3.882667 0 7.637333 1.578667 10.325333 4.394667a114.773333 114.773333 0 0 0 166.229334 0c4.096-5.546667 11.648-7.424 17.92-4.394667a298.666667 298.666667 0 0 1 97.194666 55.04c4.266667 3.541333 6.016 9.301333 4.394667 14.592a108.074667 108.074667 0 0 0 8.362667 88.618667 112.341333 112.341333 0 0 0 72.96 52.650666 13.909333 13.909333 0 0 1 10.709333 11.008 280.32 280.32 0 0 1 0 109.653334 14.336 14.336 0 0 1-10.752 11.008z m-26.709333-105.173334a136.106667 136.106667 0 0 1-79.658667-60.928 131.285333 131.285333 0 0 1-13.568-97.322666 259.114667 259.114667 0 0 0-69.717333-39.552A135.552 135.552 0 0 1 512 206.890667a137.941333 137.941333 0 0 1-92.842667-39.552 258.304 258.304 0 0 0-69.717333 39.552 129.664 129.664 0 0 1-14.762667 96.938666 136.106667 136.106667 0 0 1-78.506666 61.312 239.189333 239.189333 0 0 0 0 79.061334A136.106667 136.106667 0 0 1 335.872 505.173333c16.896 29.525333 21.76 64.426667 13.525333 97.365334a258.730667 258.730667 0 0 0 69.717334 39.552c25.386667-23.125333 58.453333-35.968 92.842666-36.010667a136.064 136.064 0 0 1 92.842667 36.010667c25.173333-9.472 48.682667-22.826667 69.717333-39.594667a131.285333 131.285333 0 0 1 14.336-96.896 136.106667 136.106667 0 0 1 79.701334-60.928c4.394667-26.197333 4.394667-52.906667 0-79.104l-0.810667-0.426667h0.042667zM513.706667 525.653333a119.466667 119.466667 0 1 1 0-238.933333 119.466667 119.466667 0 0 1 0 238.933333z m0-199.125333a79.658667 79.658667 0 1 0 0 159.36 79.658667 79.658667 0 0 0 0-159.36z" horiz-adv-x="1024" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["/0xJ"],{"/0xJ":function(e,t,o){"use strict";o.r(t),o.d(t,"conf",function(){return n}),o.d(t,"language",function(){return s});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},s={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","box","break","const","continue","crate","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'\S'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}}}}]);
@@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["1kog"],{"1kog":function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return o}),n.d(t,"language",function(){return r});var o={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},r={defaultToken:"",tokenPostfix:".css",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}}}]);
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["2ZXa"],{"2ZXa":function(e,n,r){"use strict";r.r(n),r.d(n,"conf",function(){return t}),r.d(n,"language",function(){return s});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=><!~?&%|+\-*\/\^\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@[a-zA-Z_]\w*/,"variable.predefined"],[/[a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/###/,"comment","@comment"],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\()(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\=)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\[)(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\!)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\&)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\|)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\?)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\{)(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\;)(\s*)(@regEx)/,["","","regexp"]],[/}/,{cases:{"$S2==interpolatedstring":{token:"string",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/###/,"comment","@pop"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}}}}]);
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["3MdH"],{"3MdH":function(e,n,t){"use strict";t.r(n),t.d(n,"conf",function(){return r}),t.d(n,"language",function(){return o});var r={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},o={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=><!~?:&|+\-*\/\^%\.]+/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\d(_?\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\s\n\r]/,heredelim:/(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\s*)([a-z_]\w*[!?=]?)/,["white",{cases:{"for|until|while":{token:"keyword.$2",next:"@dodecl.$2"},"@declarations":{token:"keyword.$2",next:"@root.$2"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}]],[/[a-z_]\w*[!?=]?/,{cases:{"if|unless|while|until":{token:"keyword.$0x",next:"@modifier.$0x"},for:{token:"keyword.$2",next:"@dodecl.$2"},"@linedecls":{token:"keyword.$0",next:"@root.$0"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/[A-Z][\w]*[!?=]?/,"constructor.identifier"],[/\$[\w]*/,"global.constant"],[/@[\w]*/,"namespace.instance.identifier"],[/@@[\w]*/,"namespace.class.identifier"],[/<<[-~](@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/[ \t\r\n]+<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/^<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],{include:"@whitespace"},[/"/,{token:"string.d.delim",next:'@dstring.d."'}],[/'/,{token:"string.sq.delim",next:"@sstring.sq"}],[/%([rsqxwW]|Q?)/,{token:"@rematch",next:"pstring"}],[/`/,{token:"string.x.delim",next:"@dstring.x.`"}],[/:(\w|[$@])\w*[!?=]?/,"string.s"],[/:"/,{token:"string.s.delim",next:'@dstring.s."'}],[/:'/,{token:"string.s.delim",next:"@sstring.s"}],[/\/(?=(\\\/|[^\/\n])+\/)/,{token:"regexp.delim",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywordops":"keyword","@operators":"operator","@default":""}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/0[dD]@decpart/,"number"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,{cases:{$1:"number.float","@default":"number"}}]],dodecl:[[/^/,{token:"",switchTo:"@root.$S2"}],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},do:{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],modifier:[[/^/,"","@pop"],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},"then|else|elsif|do":{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],sstring:[[/[^\\']+/,"string.$S2"],[/\\\\|\\'|\\$/,"string.$S2.escape"],[/\\./,"string.$S2.invalid"],[/'/,{token:"string.$S2.delim",next:"@pop"}]],dstring:[[/[^\\`"#]+/,"string.$S2"],[/#/,"string.$S2.escape","@interpolated"],[/Line truncated
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["3VBA"],{"3VBA":function(e,n,t){"use strict";t.r(n),t.d(n,"conf",function(){return o}),t.d(n,"language",function(){return s});var o={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","begin","Bytes","Crypto","Current","else","end","failwith","false","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","Set","set","sender","source","String","then","true","type","with"],typeKeywords:["int","unit","string","tz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]);
@@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["Qx4d"],{Qx4d:function(e,o,r){"use strict";r.r(o),r.d(o,"conf",function(){return t}),r.d(o,"language",function(){return n});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},n={defaultToken:"",tokenPostfix:".r",roxygen:["@param","@return","@name","@rdname","@examples","@include","@docType","@S3method","@TODO","@aliases","@alias","@assignee","@author","@callGraphDepth","@callGraph","@callGraphPrimitives","@concept","@exportClass","@exportMethod","@exportPattern","@export","@formals","@format","@importClassesFrom","@importFrom","@importMethodsFrom","@import","@keywords","@method","@nord","@note","@references","@seealso","@setClass","@slot","@source","@title","@usage"],constants:["NULL","FALSE","TRUE","NA","Inf","NaN ","NA_integer_","NA_real_","NA_complex_","NA_character_ ","T","F","LETTERS","letters","month.abb","month.name","pi","R.version.string"],keywords:["break","next","return","if","else","for","in","repeat","while","array","category","character","complex","double","function","integer","list","logical","matrix","numeric","vector","data.frame","factor","library","require","attach","detach","source"],special:["\\n","\\r","\\t","\\b","\\a","\\f","\\v","\\'",'\\"',"\\\\"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@numbers"},{include:"@strings"},[/[{}\[\]()]/,"@brackets"],{include:"@operators"},[/#'/,"comment.doc","@roxygen"],[/(^#.*$)/,"comment"],[/\s+/,"white"],[/[,:;]/,"delimiter"],[/@[a-zA-Z]\w*/,"tag"],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@constants":"constant","@default":"identifier"}}]],roxygen:[[/@\w+/,{cases:{"@roxygen":"tag","@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/\s+/,{cases:{"@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/.*/,{token:"comment.doc",next:"@pop"}]],numbers:[[/0[xX][0-9a-fA-F]+/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/,"number"]],operators:[[/<{1,2}-/,"operator"],[/->{1,2}/,"operator"],[/%[^%\s]+%/,"operator"],[/\*\*/,"operator"],[/%%/,"operator"],[/&&/,"operator"],[/\|\|/,"operator"],[/<</,"operator"],[/>>/,"operator"],[/[-+=&|!<>^~*/:$]/,"operator"]],strings:[[/'/,"string.escape","@stringBody"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/'/,"string.escape","@popall"],[/./,"string"]],dblStringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/"/,"string.escape","@popall"],[/./,"string"]]}}}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([["4171"],{4171:function(e,o,r){"use strict";r.r(o),r.d(o,"conf",function(){return t}),r.d(o,"language",function(){return n});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},n={defaultToken:"",tokenPostfix:".r",roxygen:["@param","@return","@name","@rdname","@examples","@include","@docType","@S3method","@TODO","@aliases","@alias","@assignee","@author","@callGraphDepth","@callGraph","@callGraphPrimitives","@concept","@exportClass","@exportMethod","@exportPattern","@export","@formals","@format","@importClassesFrom","@importFrom","@importMethodsFrom","@import","@keywords","@method","@nord","@note","@references","@seealso","@setClass","@slot","@source","@title","@usage"],constants:["NULL","FALSE","TRUE","NA","Inf","NaN ","NA_integer_","NA_real_","NA_complex_","NA_character_ ","T","F","LETTERS","letters","month.abb","month.name","pi","R.version.string"],keywords:["break","next","return","if","else","for","in","repeat","while","array","category","character","complex","double","function","integer","list","logical","matrix","numeric","vector","data.frame","factor","library","require","attach","detach","source"],special:["\\n","\\r","\\t","\\b","\\a","\\f","\\v","\\'",'\\"',"\\\\"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@numbers"},{include:"@strings"},[/[{}\[\]()]/,"@brackets"],{include:"@operators"},[/#'/,"comment.doc","@roxygen"],[/(^#.*$)/,"comment"],[/\s+/,"white"],[/[,:;]/,"delimiter"],[/@[a-zA-Z]\w*/,"tag"],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@constants":"constant","@default":"identifier"}}]],roxygen:[[/@\w+/,{cases:{"@roxygen":"tag","@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/\s+/,{cases:{"@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/.*/,{token:"comment.doc",next:"@pop"}]],numbers:[[/0[xX][0-9a-fA-F]+/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/,"number"]],operators:[[/<{1,2}-/,"operator"],[/->{1,2}/,"operator"],[/%[^%\s]+%/,"operator"],[/\*\*/,"operator"],[/%%/,"operator"],[/&&/,"operator"],[/\|\|/,"operator"],[/<</,"operator"],[/>>/,"operator"],[/[-+=&|!<>^~*/:$]/,"operator"]],strings:[[/'/,"string.escape","@stringBody"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/'/,"string.escape","@popall"],[/./,"string"]],dblStringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/"/,"string.escape","@popall"],[/./,"string"]]}}}}]);
@@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["/Om3"],{"/Om3":function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return o}),n.d(t,"language",function(){return s});var o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","property","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([["4o0w"],{"4o0w":function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return o}),n.d(t,"language",function(){return s});var o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","property","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]);
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["4yiN"],{"4yiN":function(e,t,n){"use strict";n.r(t);var r,o=function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){e.done?o(e.value):function(e){return e instanceof n?e:new n(function(t){t(e)})}(e.value).then(a,s)}u((r=r.apply(e,t||[])).next())})},i=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},a=function(){function e(e,t){var n=this;this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(function(){return n._stopWorker()}),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(function(){return n._updateExtraLibs()})}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()},e.prototype._updateExtraLibs=function(){return o(this,void 0,void 0,function(){var e,t;return i(this,function(n){switch(n.label){case 0:return this._worker?(e=++this._updateExtraLibsToken,[4,this._worker.getProxy()]):[2];case 1:return t=n.sent(),this._updateExtraLibsToken!==e?[2]:(t.updateExtraLibs(this._defaults.getExtraLibs()),[2])}})})},e.prototype._getClient=function(){var e=this;if(!this._client){this._worker=monaco.editor.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs()}});var t=this._worker.getProxy();this._defaults.getEagerModelSync()&&(t=t.then(function(t){return e._worker?e._worker.withSyncedResources(monaco.editor.getModels().filter(function(t){return t.getModeId()===e._modeId}).map(function(e){return e.uri})):t})),this._client=t}return this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];return this._getClient().then(function(t){e=t}).then(function(e){if(t._worker)return t._worker.withSyncedResources(n)}).then(function(t){return e})},e}(),s=function(){var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(t,n)};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),u=function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){e.done?o(e.value):function(e){return e instanceof n?e:new n(function(t){t(e)})}(e.value).then(a,s)}u((r=r.apply(e,t||[])).next())})},c=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}},l=monaco.Uri,p=monaco.Range;function f(e,t,n){if(void 0=Line truncated
@@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["/5I7"],{"/5I7":function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return i}),n.d(t,"language",function(){return o});var i={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},o={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*\/\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/\.@symbolic+/,action:{token:"identifier.sym"}},{regex:/\.@digit*@fexponent@FLOATSLine truncated
@@ -1 +0,0 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["6Xso"],{"6Xso":function(e,n,t){"use strict";t.r(n),t.d(n,"conf",function(){return o}),t.d(n,"language",function(){return s});var o={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},s={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abstract","add","add-corresponding","adjacent","alias","aliases","all","append","appending","ascending","as","assert","assign","assigned","assigning","association","authority-check","back","begin","binary","block","bound","break-point","by","byte","class","call","cast","changing","check","class-data","class-method","class-methods","clear","close","cnt","collect","commit","cond","character","corresponding","communication","component","compute","concatenate","condense","constants","conv","count","controls","convert","create","currency","data","descending","default","define","deferred","delete","describe","detail","display","divide","divide-corresponding","display-mode","duplicates","deleting","editor-call","end","endexec","endfunction","ending","endmodule","end-of-definition","end-of-page","end-of-selection","end-test-injection","end-test-seam","exit-command","endclass","endmethod","endform","endinterface","endprovide","endselect","endtry","endwhile","enum","event","events","exec","exit","export","exporting","extract","exception","exceptions","field-symbols","field-groups","field","first","fetch","fields","format","frame","free","from","function","find","for","found","function-pool","generate","get","handle","hide","hashed","include","import","importing","index","infotypes","initial","initialization","id","is","in","interface","interfaces","init","input","insert","instance","into","key","left-justified","leave","like","line","line-count","line-size","load","local","log-point","length","left","leading","lower","matchcode","method","mesh","message","message-id","methods","modify","module","move","move-corresponding","multiply","multiply-corresponding","match","new","new-line","new-page","new-section","next","no","no-gap","no-gaps","no-sign","no-zero","non-unique","number","occurrence","object","obligatory","of","output","overlay","optional","others","occurrences","occurs","offset","options","pack","parameters","perform","places","position","print-control","private","program","protected","provide","public","put","radiobutton","raising","ranges","receive","receiving","redefinition","reduce","reference","refresh","regex","reject","results","requested","ref","replace","report","reserve","restore","result","return","returning","right-justified","rollback","read","read-only","rp-provide-from-last","run","scan","screen","scroll","search","select","select-options","selection-screen","stamp","source","subkey","separated","set","shift","single","skip","sort","sorted","split","standard","stamp","starting","start-of-selection","sum","subtract-corresponding","statics","step","stop","structure","submatches","submit","subtract","summary","supplied","suppress","section","syntax-check","syntax-trace","system-call","switch","tables","table","task","testing","test-seam","test-injection","then","time","times","title","titlebar","to","top-of-page","trailing","transfer","transformation","translate","transporting","types","type","type-pool","type-pools","unassign","unique","uline","unpack","update","upper","using","value","when","while","window","write","where","with","work","at","case","catch","continue","do","elseif","else","endat","endcase","enddo","endif","endloop","endon","if","loop","on","raise","try","abs","sign","ceil","floor","trunc","frac","acos","asin","atan","cos","sin","tan","cosh","sinh","tanh","exp","log","log10","sqrt","strlen","xstrlen","charlen","lines","numofchar","dbmaxlen","round","rescale","nmax","nmin","cmax","cmin","boolc","boolx","xsdbool","contains","contains_any_of","contains_any_not_of","matches","line_exists","ipow","char_off","count","count_any_of","count_any_not_of","distance","condense","concat_lines_of","escape","find","find_end","find_any_of","find_any_not_of","insert","match","repeat","replace","reverse","segment","shift_left","shift_right","substring","substring_after","substring_from","substring_before","substring_to","to_upper","to_lower","to_mixed","from_mixed","translate","bit-set","line_index","definition","implementation","public","inheriting","final"],typeKeywords:["abap_bool","string","xstring","any","clike","csequence","numeric","xsequence","c","n","i","p","f","d","t","x"],operators:["+","-","/","*","=","<",">","<=",">=","<>","><","=<","=>","EQ","NE","GE","LE","CS","CN","CA","CO","CP","NS","NA","NP"],symbols:/[=><!~?&+\-*\/\^%]+/,tokenizer:{root:[[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"keyword","@keywords":"keyword","@default":"identifier"}}],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/\|/,{token:"string",bracket:"@open",next:"Line truncated
@@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([["6trW"],{"6trW":function(e,t,n){"use strict";n.r(t),n.d(t,"conf",function(){return a}),n.d(t,"language",function(){return o});var a={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},o={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}}}}]);
Loaded 100 of 278 files, more files were not shown because too many files have changed in this diff. Show more