diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..64f11d7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.js linguist-language=C# diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4dd982 --- /dev/null +++ b/.gitignore @@ -0,0 +1,72 @@ +/Vol.Vue/node_modules +/Vue.Net/VOL.Web/bin +/Vue.Net/VOL.WebApi/bin +/Vue.Net/VOL.WebApi/Download/ExcelExport +/Vue.Net/VOL.WebApi/Download/Logger +/Vue.Net/VOL.WebApi/Download/SqlLog +/Vue.Net/VOL.WebApi/obj +/Vue.Net/.vs +/Vue.Net/VOL.Entity/bin +/Vue.Net/VOL.Entity/obj +/Vue.Net/VOL.AppManager/bin +/Vue.Net/VOL.AppManager/obj +/Vue.Net/VOL.Builder/obj +/Vue.Net/VOL.Builder/bin +/Vue.Net/VOL.Core/obj +/Vue.Net/VOL.Core/bin +/Vue.Net/VOL.Order/obj +/Vue.Net/VOL.Order/bin +/Vue.Net/VOL.System/obj +/Vue.Net/VOL.System/bin +/Vue.Net/VOL.Web/obj +/Vue.Net/VOL.WebApi/Download/* +/Vol.Vue/dist +/Vue.Net/VOL.WebApi/wwwroot/Upload/ +/Vue.Net/VOL.Web +/开发版dev/Vue.NetCore/Vol.Vue/node_modules +/开发版dev/Vue.NetCore/Vue.Net/VOL.System/bin +/开发版dev/Vue.NetCore/Vue.Net/VOL.WebApi/bin +/开发版dev/Vue.NetCore/Vue.Net/VOL.Entity/bin +/开发版dev/Vue.NetCore/Vue.Net/VOL.Builder/bin +/开发版dev/Vue.NetCore/Vue.Net/VOL.Core/obj +/开发版dev/Vue.NetCore/Vue.Net/VOL.Builder/obj +/开发版dev/Vue.NetCore/Vue.Net/VOL.Entity/obj +/开发版dev/Vue.NetCore/Vue.Net/VOL.System/obj +/开发版dev/Vue.NetCore/Vue.Net/VOL.WebApi/obj +/开发版dev/Vue.NetCore/Vue.Net/VOL.Core/bin +/_ReSharper.Caches/* +/.vs/* +/开发版dev/Vue.NetCore/Vue.Net/_ReSharper.Caches/* +/开发版dev/Vue.NetCore/Vue.Net/.vs/* +/Vue.Net/_ReSharper.Caches/ReSharperPlatformVs16192_607b9a31.VOL.00 +/开发版dev/Vue.NetCore/Vue.Net/VOL.WebApi/Download/Logger/Queue/WriteError +/开发版dev/Vue.NetCore/Vue.Net/.vs +/.Net6版本/.vs +/.Net6版本/VOL.AppManager/obj +/.Net6版本/VOL.AppManager/bin +/.Net6版本/VOL.Builder/obj +/.Net6版本/VOL.Builder/bin +/.Net6版本/VOL.Core/obj +/.Net6版本/VOL.Core/bin +/.Net6版本/VOL.Entity/obj +/.Net6版本/VOL.Entity/bin +/.Net6版本/VOL.Order/obj +/.Net6版本/VOL.Order/bin +/.Net6版本/VOL.System/obj +/.Net6版本/VOL.System/bin +/.Net6版本/VOL.WebApi/obj +/.Net6版本/VOL.WebApi/bin +/.Net6版本/VOL.WebApi/Properties/PublishProfiles +/开发版dev/Net6开发版/VOL.WebApi/obj +/开发版dev/Net6开发版/VOL.WebApi/bin +/开发版dev/Net6开发版/VOL.System/obj +/开发版dev/Net6开发版/VOL.System/bin +/开发版dev/Net6开发版/VOL.Entity/obj +/开发版dev/Net6开发版/VOL.Entity/bin +/开发版dev/Net6开发版/VOL.Core/obj +/开发版dev/Net6开发版/VOL.Core/bin +/开发版dev/Net6开发版/VOL.Builder/obj +/开发版dev/Net6开发版/VOL.Builder/bin +/开发版dev/Net6开发版/.vs +/Vue.Net/VOL.WebApi/Properties +/.Net6版本/VOL.WebApi/Properties diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6f404d6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 283591387@qq.com jxx + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..53c17e7 --- /dev/null +++ b/README.md @@ -0,0 +1,138 @@ +## Vue + .NetCore前后端分离,不一样的快速发开框架(提供Vue2/Vue3版本) + +## 框架核心 + - 快速开发(基础功能全部由代码生成器生成) + - 支持前端、后台自定义业务代码扩展,后台提供了大量常用扩展与通用类 + - 前端、后台提供了近300个扩展方法与属性,开发人员可在此功能上编写扩展自定义业务代码 + - 代码生成(代码生成器可直接生成主/从表前后端业务代码,有30多种属性可在线配置生成的代码) + - 前端table自动转换key/value + - 前端表单select/checkbox自动绑定数据源,不需要写任何代码 + - 支持(主从表)一对一前后端代码全自动生成、并支持数据源自动绑定与业务代码扩展,不需要写任何代码 + - 支持一对多从表自定义扩展(不限从表类型与从表数量) , 一对多从表使用扩展可轻松实现 + - 如果能上手框架,可以体会到不用996,更不用掉头发的感觉^_^ + +## 框架适用范围 + - 前后端分离项目 + - 编写各种后台restful api接口。后台基础代码由代码生成器完成,在生成的代码上继续编写业务即可 + - 前端表单开发(直接上手看demo即可) + - 配合app做H5或全h5开发 + - 移动端开发、app、微信小程序(uniapp),见下面介绍 + - 在现有的代码生成器功能上,继续定制开发代码生成器功能,解决重复性工作 +## 框架开发依赖环境 + - 后台:VS2019、vs2022 、.NetCore3.1 、.Net6、EFCore3.1/6.0、JWT、Dapper、SignalR、Quartz.Net、Autofac、SqlServer/MySql/PGSql/Oracle、Redis + - 前端:VsCode、Vue2/vue3(需要安装nodejs)、vuex、axios、promise、element ui、element plus +## 链接 + +## [vol框架视频](https://www.cctalk.com/m/group/90268531) +## [vol框架企业版](http://pro.volcore.xyz/) +## [NET视频教程(微软MVP-ACE录制)](https://space.bilibili.com/525836469) +## [元讯趣编程交流社区](https://www.qubcedu.com/) + +## 项目启动与上手 + - http://v2.volcore.xyz/document/guide +## vue2版本 + - http://v2.volcore.xyz +## vue3版本 + - http://www.volcore.xyz +## 演示地址2 + - http://120.48.115.252:9990/ +## App/H5开发 + - http://v2.volcore.xyz/app/guide + +## 2023.05.13增加审批流程分支、条件功能 +![Home](/imgs/flow.png) +![Home](/imgs/flow2.png) +![Home](/imgs/flow3.png) + + +## 框架移动端(uniapp)已发布,同样全自动生成代码,扫描小程序二维码即可查看 + +![Home](/imgs/qrcode.png) + +![Home](/imgs/app-01.png) +![Home](/imgs/app-02.png) +![Home](/imgs/m001.png) +![Home](/imgs/m002.png) +## 框架已支持Vue3版本 +![Home](/imgs/v3.png) +## 框架已增加低代码设计器 +![Home](/imgs/fd01.png) +![Home](/imgs/fd02.png) +## 框架2.0已更新(部分新增功能截图) +增加切换皮肤功能 +![Home](/imgs/h.png) +![Home](/imgs/home_them.png) +增加可复用的后台请求参数校验 +![Home](/imgs/validator.png) +增加树形菜单与代码生成页面使用 +![Home](/imgs/x7tree.png) +增加文本编辑器直接发布静态页面功能 +![Home](/imgs/editor.png) +一对一多从表显示(只需要少量代码就可完成成,其他都由代码生成器生成) +![Home](/imgs/m1.png) +表合并显示 (只需要几行代码完成代码生成器生成的页面实现扩展) +![Home](/imgs/span.png) +从图上传图片 (只需要几行代码完成代码生成器生成的页面实现扩展) +![Home](/imgs/p1.png) +一对多从表(不限从表数量)扩展 +![Home](/imgs/multi.png) +图表 +![Home](/imgs/charts.png) + + + +## 1、只读基础表单 +整个只读的基础表单的所有前后端代码,全部由代码生成器生成,代码生成器中几乎不需要配置,并支持并后端业务代码扩展,直接生成代码后,配置菜单权限即可 +![Home](/imgs/table1.png) + +## 2、自动绑定下拉框数据表单 +整个自动绑定下拉框数据表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,在代码生成器中只需要指定数据源编号,页面加载时会根据编号自动加载数据源并绑定 +![Home](/imgs/table2.png) + +## 3、启用图片支持、审核表单 +整个启用图片支持、审核表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,审核功能需要在菜单配置权限、代码生成器中勾选启用图片支持 +![Home](/imgs/table3.png) + +## 4、高级查询 +整个表单的所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,查询字段、类型(下拉框、日期、TextArea等)、所在行与列都由代码生成器完成,不需要写任何代码 + ![Home](/imgs/tablesearch4.png) + +## 5、主从表新建、编辑 +主从表新建、编辑所有前后端代码,全部由代码生成器生成,并支持并后端业务代码扩展,新建、编辑从表配置、字段、类型(下拉框、日期、TextArea等)、所在行与列、字段是否只读、标签显示的长度等都由代码生成器完成,不需要写任何代码 +![Home](/imgs/editTbale2.png) + + +## 6、excel导入 +excel导入整个页面都由代码生成器生成,导入的字段、字段是否必填,下载模板也由代码生成器上配置(自己根据实际需要决定是否采用此方法),导入时会验证是否为空与数据的合法性,逻辑校验自己实现扩展方法即可 +![Home](/imgs/importTable1.png) + + +## 7、H5开发 +![Home](/imgs/h5.jpg) + +## 8、权限分配 +目前只实现了对用户的角色的Action进行权限分配 +![Home](/imgs/auth.png) + +## 9、代码生成器 +代码生成器提供了20多种可配置的属性,可灵活配置显示、查询、编辑、导入、导出、主从关系等功能点击看代码生成器文档 +![Home](/imgs/coder.png) + +其他功能。。。。。 + +## 框架预览 + - 框架内置了大量的通用组件可直接使用,并内置了基于本框架定制开发的代码生成器,尽量避免重复性代码编写。 + - 框架不仅仅是快速开发,更多的是倾向于业务代码扩展的编写与代码规范。 + - 如果有什么问题或建议,提issue或加QQ:283591387 + + - QQ2群:913189178 + - QQ3群:743852316 + - + - vue3地址:http://www.volcore.xyz + - vue2地址:http://v2.volcore.xyz + - 帐号:admin666密码:123456(本地超级管理员帐号:admin密码123456) + - github地址:https://github.com/cq-panda/vue.netcore + - gitee码云:https://gitee.com/x_discoverer/Vue.NetCore + - 框架文档:http://v2.volcore.xyz/document/guide + - 框架更新日志:http://v2.volcore.xyz/document/log + diff --git a/db/mysql/mysql批量日志写入失败.txt b/db/mysql/mysql批量日志写入失败.txt new file mode 100644 index 0000000..5b62f27 --- /dev/null +++ b/db/mysql/mysql批量日志写入失败.txt @@ -0,0 +1,7 @@ +1mysql־дʧʾ:The used command is not allowed with this MySQL version + 취ݿִ:set global local_infile = 'ON'; + + +2־дʱ:To use MySq1Bu1kLoader. Loca1=true, set AllowLoadLocalInfile =true in the connection string. + 취ں̨Ŀappsettings.jsonҵmysqlݿӣAllowLoadLocalInfile =true + diff --git a/db/mysql/mysql表结构与表数据.sql b/db/mysql/mysql表结构与表数据.sql new file mode 100644 index 0000000..7686ce6 --- /dev/null +++ b/db/mysql/mysql表结构与表数据.sql @@ -0,0 +1,2204 @@ +/* + Navicat Premium Data Transfer + + Source Server : 82 + Source Server Type : MySQL + Source Server Version : 80026 + Source Host : 82.156.178.48:3306 + Source Schema : netcoredev + + Target Server Type : MySQL + Target Server Version : 80026 + File Encoding : 65001 + + Date: 13/05/2023 21:21:10 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for App_Appointment +-- ---------------------------- +DROP TABLE IF EXISTS `App_Appointment`; +CREATE TABLE `App_Appointment` ( + `Id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `CreateDate` datetime(0) NULL DEFAULT NULL, + `CreateID` int NULL DEFAULT NULL, + `Creator` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Describe` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `Modifier` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ModifyDate` datetime(0) NULL DEFAULT NULL, + `ModifyID` int NULL DEFAULT NULL, + `Name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `PhoneNo` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + PRIMARY KEY (`Id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of App_Appointment +-- ---------------------------- +INSERT INTO `App_Appointment` VALUES ('08D9FCBC-B5E9-4833-8BFB-3B3CE77BC704', '2022-03-03 10:22:48', 1, '超级管理员', '古埃及第十九王朝法老第三位法老,杰出的政治家、军事家、文学家、诗人、建筑家,其执政时期是埃及新王国最后的强盛年', '超级管理员', '2022-03-03 10:24:14', 1, '拉美西斯', '138888887692'); +INSERT INTO `App_Appointment` VALUES ('08D9FCBC-B5EB-4C1F-80BC-3C5029D935E7', '2022-03-03 10:22:48', 1, '超级管理员', '奈菲尔塔利(Nefertari )是古埃及著名法老,拉美西斯二世八位王后中唯一一个拥有神庙的王后', '超级管理员', '2022-03-03 10:24:16', 1, '奈菲尔塔利', '138888887691'); +INSERT INTO `App_Appointment` VALUES ('08DA0E85-17DB-4DA5-85ED-1400A5FCE2C5', '2022-03-26 01:30:02', 1, '超级管理员', '人中吕布,马中赤兔,方天画戟,专杀义父', '超级管理员', '2022-03-26 01:32:55', 1, '人中吕布', '138888887698'); +INSERT INTO `App_Appointment` VALUES ('08DA0E85-17DB-4E08-8B4E-450A5F98F8BA', '2022-03-26 01:30:02', 1, '超级管理员', '非礼啊!非礼啊!非礼啊!', '超级管理员', '2022-03-26 01:32:57', 1, '貂蝉西施', '138888887693'); + +-- ---------------------------- +-- Table structure for App_Expert +-- ---------------------------- +DROP TABLE IF EXISTS `App_Expert`; +CREATE TABLE `App_Expert` ( + `ExpertId` int NOT NULL AUTO_INCREMENT, + `AuditDate` datetime(0) NULL DEFAULT NULL, + `AuditId` int NULL DEFAULT NULL, + `AuditStatus` int NOT NULL, + `Auditor` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Certificate` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `City` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Company` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CreateDate` datetime(0) NULL DEFAULT NULL, + `CreateID` int NULL DEFAULT NULL, + `Creator` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Education` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Enable` tinyint NOT NULL, + `ExpertName` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `HeadImageUrl` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `IDNumber` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Modifier` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ModifyDate` datetime(0) NULL DEFAULT NULL, + `ModifyID` int NULL DEFAULT NULL, + `PhoneNo` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Professional` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ReallyName` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Resume` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `SpecialField` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `UserName` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `UserTrueName` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `User_Id` int NULL DEFAULT NULL, + PRIMARY KEY (`ExpertId`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of App_Expert +-- ---------------------------- +INSERT INTO `App_Expert` VALUES (1, '2018-09-07 10:58:17', 1, 1, '测试超级管理员', NULL, '上海市', '中国农业大学', '2018-09-04 15:49:44', 3344, 'User31110458', '博士', 1, '宫本七号', 'Upload/Tables/App_Expert/202103061750152777/head2.jpg', '150124199911110116', '超级管理员', '2021-03-07 21:55:31', 1, '1388886666', '教授', '拉美西斯', '二十九岁,对于一个人男人而言不算老,可是对于爱情来说已是风烛残年', 'Upload/Tables/App_Expert/201911271400081947/启用图片支持 (1).xlsx', '13381277739', 'User31110458', 3344); +INSERT INTO `App_Expert` VALUES (2, '2019-09-22 22:30:08', 3362, 1, 'zs', '', '天津市', '窦天宝传奇', '2018-09-18 17:45:54', 3358, '较瘦', '小学', 1, '干将莫邪', 'Upload/Tables/App_Expert/202304051526079577/gj.png', '250124123911110121', '超级管理员', '2023-04-05 15:26:08', 1, '1388887777', '演员', '木兰', '干将莫邪是一个高伤害、高收益的心流型远程狙击法师,完全依靠精准的技能施法仅仅是一个合格的干将的基础要求。当视野外或无视野的时候,沉浸在心流中的干将玩家,甩狙盲剑都会让干将使用者获得巨大的满足', 'Upload/Tables/App_Expert/201912111717154170/exceltest.xlsx', '17612519002', '较瘦', 3358); +INSERT INTO `App_Expert` VALUES (3, NULL, NULL, 0, NULL, NULL, '天津市', NULL, '2021-03-06 17:52:07', 1, '超级管理员', NULL, 1, '小鲁班', 'Upload/Tables/App_Expert/202304051203334519/nb.png', NULL, '超级管理员', '2023-04-05 12:03:34', 1, '1388888888', NULL, '女秘书', '别看小鲁班的腿很短,但是在对线上边基本上没有能与他一战的射手。', NULL, '17612519001', NULL, NULL); +INSERT INTO `App_Expert` VALUES (4, NULL, NULL, 0, NULL, NULL, '北京市', NULL, '2023-04-05 14:36:04', 1, '超级管理员', NULL, 0, 'vol-table', 'Upload/Tables/App_Expert/202304051436032612/wechart.png', NULL, '超级管理员', '2023-04-05 15:30:38', 1, NULL, NULL, NULL, 'vol-table增加自定义表格内容,内置了分页,高度自适应功能,需要自己写内容..', NULL, NULL, NULL, NULL); + +-- ---------------------------- +-- Table structure for App_News +-- ---------------------------- +DROP TABLE IF EXISTS `App_News`; +CREATE TABLE `App_News` ( + `Id` int NOT NULL AUTO_INCREMENT, + `Author` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `BigImageUrls` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `Content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `CreateDate` datetime(0) NULL DEFAULT NULL, + `CreateID` int NULL DEFAULT NULL, + `Creator` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DailyRecommend` smallint NOT NULL, + `DetailUrl` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `Enable` smallint NULL DEFAULT NULL, + `ImageUrl` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `Modifier` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ModifyDate` datetime(0) NULL DEFAULT NULL, + `ModifyID` int NULL DEFAULT NULL, + `NewsType` int NOT NULL, + `OrderNo` int NULL DEFAULT NULL, + `ReleaseDate` datetime(0) NULL DEFAULT NULL, + `Title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `ViewCount` int NULL DEFAULT NULL, + PRIMARY KEY (`Id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of App_News +-- ---------------------------- +INSERT INTO `App_News` VALUES (1, NULL, NULL, '
开发商Studio Wildcard宣布《方舟:终极幸存者版》将于2022年9月登录任天堂Switch,发售实体版和数字版,售价49.99美元,原版游戏所有者可以免费升级。
《方舟:终极幸存者版》包含了本体《方舟:生存进化》及其所有大型扩展包Scorched Earth、Aberration、Extinction 和 Genesis Parts 1&2,其中Scorched Earth扩展包将在游戏发售时发布,随后的扩展包将每隔两个月发布一次。
拥有原版《方舟:生存进化》的玩家可能会记得,这款游戏自Switch版上线以来一直处于很糟糕的状态。幸运的是,Studio Wildcard已经与第三方开发商合作,重新编写了Switch上的整体代码,并在最新版本的虚幻4上进行开发。计划对功能、图形和优化进行完整的修改。此外,所有现有的Switch进度和存档数据将被保留至新版。
不过最新新版游戏的质量如何,还是需要等发售之后实测才会知道,毕竟虚幻4引擎的游戏在switch上流畅运行,对于开发商来说真的是一个很大的挑战。
', '2022-04-20 01:49:23', 1, '超级管理员', 1, 'static/news/20220420/0949288120.html', 1, 'Upload/Tables/App_News/202204201140571762/20-05.png', '超级管理员', '2022-04-20 09:51:16', 1, 1, NULL, NULL, '重写代码可免费升级!《方舟终极版》9月登录Switch', NULL); +INSERT INTO `App_News` VALUES (2, NULL, NULL, '刚入门前端的先学会这些就够了
1.基础语法
v-model v-for v-if v-else-if v-show
@click slot ref class style\\n
2.子父组件传参
props、$emit、$refs
3、生命周期
created、mounted、destroyed、activated
4、创建Vue页面、Vue组件(页面)引用
', '2022-04-21 10:36:28', 1, '超级管理员', 1, 'static/news/20220421/1044487732.html', 1, 'Upload/Tables/App_News/202303050006488340/wechat.jpg', '超级管理员', '2022-09-15 11:17:36', 1, 1, NULL, NULL, '前端Vue与后台学习方式与一些基础语法问题', NULL); +INSERT INTO `App_News` VALUES (3, NULL, NULL, 'vue3版本集成signalR(消息推送),更新文件:
package.json、router/index.js、views/index.vue、views/Home.vue、views/index/index.less、Startup.cs、appsettings.json、
Hubs/HomePageMessageHub.cs、views/index文件夹、views/signalR/Index.vue1. \\n2023.02
2. \\n2023-02-21 22:46:25 重写移动端按钮布局
3. \\n2023-02-21 22:03:19 增加移动端表格自定义列、超链接与点击事件示例
4. \\n2023-02-21 15:43:44 回调移动端vol-table分页行数显示
5. \\n2023-02-20 18:08:19 增加vol-table与生成页面table自定义按钮组Dropdown示例
6. \\n2023-02-20 01:24:03 完善文档
7. \\n2023-02-20 01:13:31 修复vue3版本volform组件文件只读时样式缺失的问题
8. \\n2023-02-16 18:15:25 增加.net6版本定时任务配置
9. \\n2023-02-15 10:09:12 优化移动端vol-table组件加载提示
10. \\n2023-02-14 19:03:29 调整移动端生成页面按钮默认为显示状态
11. \\n2023-02-14 19:02:19 优化移动端vol-table刷新页面闪烁的问题
12. \\n2023-02-14 18:50:16 增加移动端vol-table列表显示时标签宽度属性width
13. \\n2023-02-14 18:49:18 优化vue2版本编辑、删除默认参数
14. \\n2023-02-13 11:00:19 增加移动端编辑框表单标签宽度属性labelWidth
15. \\n2023-02-08 13:42:20 Jwt解析时,不应传入Bearer 字符; 修复当更新带明细的主表时,如果主表下包含多个List属性,通过List则有可能无法正确获取明细的数据的问题(by @bulog)
16. \\n2023-02-03 18:58:53 增加or查询示例
17. \\n2023-02-03 17:25:20 增加vue3版本代码生成器volform表单生成评分rate组件(更新前端volform.vue、builderData.js文件)
18. \\n2023-02-03 17:24:24 集成vue3版本volform表单评分rate组件
19. \\n2023-02-03 17:14:15 优化代码生成器日期字段表格默认宽度
20. \\n2023-02-03 17:05:55 集成vue3版本voltable方法selectionchagned(by\\n@kevin100702)
21. \\n2023-02-03 17:00:40 Merge pull\\nrequest #305 from kevin100702/master
22. \\n2023-02-03 16:59:32 修复vue3版本白色主题菜单栏背景颜色没有变化的问题
23. \\n2023-02-03 16:50:06 增加vue3版本表格Tooltip显示提示示例
24. \\n2023-02-03 16:32:51 修复vue3版本volform动态切换表单为只读或label显示时表单校验不正确的问题
25. \\n2023-02-03 16:31:44 修复vue3版本编辑框打开时某些情况显示了表单校验的问题
26. \\n2023-02-03 14:14:53 优化vue3版本级联递归性能
27. \\n2023.01
28. \\n2023-01-17 15:01:55 修复vue3版本编辑器可能异常的问题
29. \\n2023-01-17 15:00:58 修改开发版SwaggerUI
30. \\n2023-01-17 09:58:51 Merge pull\\nrequest #2 from cq-panda/master
31. \\n2023-01-13 14:13:25 1
32. \\n2023-01-11 13:41:03 修复vue2版本编辑器某些情况不能重置内容的问题
33. \\n2023-01-08 21:10:57 Merge pull\\nrequest #1 from cq-panda/master
34. \\n2023-01-05 16:32:42 修复vue3版本volform组件select2数据源key没有转换的问题
35. \\n2023-01-05 16:32:00 优化vue3版本viewgrid组件数据源复用
36. \\n2023-01-05 16:30:19 优化vue3版本viewgrid组件数据源复用
37. \\n2023-01-04 17:47:01 暴露selectionchagned 和 selectable
38. \\n2023-01-04 14:39:46 修复sqldapper方法DelWithKey删除异常的问题
39. \\n2023-01-04 11:11:47 完善文档
40. \\n2023-01-04 11:00:37 增加vue3版本v
41. \\n2023-01-04 11:00:37 增加vue3版本volform编辑器只读时以标签显示(by @ying)
42. \\n2023-01-04 10:53:43 修复vue3版本volform下拉框搜索后不能还原的问题
43. \\n2023-01-04 10:33:10 优化vue3版本viewgrid明细表按钮颜色可能异常的问题
44. \\n2023-01-04 10:26:39 增加vue3版本voltable动态限定单元格只方法getDisabled
45. \\n2023-01-04 10:14:45 优化上传示例
46. \\n2023-01-04 10:14:17 增加vue3版本图片上传(jpg、jpeg格式)自动压缩功能
47. \\n2023-01-04 10:06:23 修复审批流程只有一个节点时审批异常的问题
48. \\n2022.12
49. \\n2022-12-27 21:17:16 vol-table 添加isdisabled,传入参数row, column ,返回true表示禁用
50. \\n2022-12-26 22:38:41 修复vue3版本voltable二级表头formatter与click无效的问题
51. \\n2022-12-26 03:29:39 修复vue3版本编辑类型为switch时会影响查询类型的问题
52. \\n2022-12-26 02:37:20 修复vue3版本volform密码输框异常的问题
53. \\n2022-12-26 02:36:01 增加数据源bigint类型的支持
54. \\n2022-12-26 02:33:25 增加vue3版本voltable组件数据源加载完成后的方法dicInited
55. \\n2022-12-26 02:32:59 增加vue3版本volform组件数据源加载完成后的方法dicInited
56. \\n2022-12-26 02:24:42 修复审批流程下一个审批人参数错误的问题
57. \\n2022-12-17 16:54:51 优化移动端首页
58. \\n2022-12-17 16:52:38 优化移动端vol-table组件自定义按钮
59. \\n2022-12-15 16:25:30 修复vue3版本vol-table time组件无效的问题
60. \\n2022-12-13 20:22:14 修改mysql批量写入可能异常的问题(by @bulog )
61. \\n2022-12-12 21:24:22\\nfix(Database): 修复MySQL批量插入只能插入一条数据的Bug(by @Ady)
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
62. \\n2022-12-02 00:09:36 修复vue3版本级联组件超过500个选项时value转换的问题
', '2023-03-05 00:04:22', 1, '超级管理员', 1, 'static/news/20230305/0004288287.html', 1, 'Upload/Tables/App_News/202303050006251509/wechat.jpg', '超级管理员', '2023-03-22 15:07:38', 1, 1, NULL, NULL, '2023.01-02月框架功能优化与问题修复及增强移动端功能', NULL); +INSERT INTO `App_News` VALUES (6, NULL, NULL, '开发商Studio Wildcard宣布《方舟:终极幸存者版》将于2022年9月登录任天堂Switch,发售实体版和数字版,售价49.99美元,原版游戏所有者可以免费升级。
《方舟:终极幸存者版》包含了本体《方舟:生存进化》及其所有大型扩展包Scorched Earth、Aberration、Extinction 和 Genesis Parts 1&2,其中Scorched Earth扩展包将在游戏发售时发布,随后的扩展包将每隔两个月发布一次。
拥有原版《方舟:生存进化》的玩家可能会记得,这款游戏自Switch版上线以来一直处于很糟糕的状态。幸运的是,Studio Wildcard已经与第三方开发商合作,重新编写了Switch上的整体代码,并在最新版本的虚幻4上进行开发。计划对功能、图形和优化进行完整的修改。此外,所有现有的Switch进度和存档数据将被保留至新版。
不过最新新版游戏的质量如何,还是需要等发售之后实测才会知道,毕竟虚幻4引擎的游戏在switch上流畅运行,对于开发商来说真的是一个很大的挑战。
', '2022-04-20 01:49:23', 1, '超级管理员', 1, 'static/news/20220420/0949288120.html', 1, 'Upload/Tables/App_News/202204201140571762/20-05.png', '超级管理员', '2022-04-20 09:51:16', 1, 1, NULL, NULL, '重写代码可免费升级!《方舟终极版》9月登录Switch', NULL); +INSERT INTO `App_News_copy1` VALUES (73800, NULL, NULL, '刚入门前端的先学会这些就够了
1.基础语法
v-model v-for v-if v-else-if v-show
@click slot ref class style\n
2.子父组件传参
props、$emit、$refs
3、生命周期
created、mounted、destroyed、activated
4、创建Vue页面、Vue组件(页面)引用
', '2022-04-21 10:36:28', 1, '超级管理员', 1, 'static/news/20220421/1044487732.html', 1, 'Upload/Tables/App_News/202303050006488340/wechat.jpg', '超级管理员', '2022-09-15 11:17:36', 1, 1, NULL, NULL, '前端Vue与后台学习方式与一些基础语法问题', NULL); +INSERT INTO `App_News_copy1` VALUES (73801, NULL, NULL, 'vue3版本集成signalR(消息推送),更新文件:
package.json、router/index.js、views/index.vue、views/Home.vue、views/index/index.less、Startup.cs、appsettings.json、
Hubs/HomePageMessageHub.cs、views/index文件夹、views/signalR/Index.vue1. \n2023.02
2. \n2023-02-21 22:46:25 重写移动端按钮布局
3. \n2023-02-21 22:03:19 增加移动端表格自定义列、超链接与点击事件示例
4. \n2023-02-21 15:43:44 回调移动端vol-table分页行数显示
5. \n2023-02-20 18:08:19 增加vol-table与生成页面table自定义按钮组Dropdown示例
6. \n2023-02-20 01:24:03 完善文档
7. \n2023-02-20 01:13:31 修复vue3版本volform组件文件只读时样式缺失的问题
8. \n2023-02-16 18:15:25 增加.net6版本定时任务配置
9. \n2023-02-15 10:09:12 优化移动端vol-table组件加载提示
10. \n2023-02-14 19:03:29 调整移动端生成页面按钮默认为显示状态
11. \n2023-02-14 19:02:19 优化移动端vol-table刷新页面闪烁的问题
12. \n2023-02-14 18:50:16 增加移动端vol-table列表显示时标签宽度属性width
13. \n2023-02-14 18:49:18 优化vue2版本编辑、删除默认参数
14. \n2023-02-13 11:00:19 增加移动端编辑框表单标签宽度属性labelWidth
15. \n2023-02-08 13:42:20 Jwt解析时,不应传入Bearer 字符; 修复当更新带明细的主表时,如果主表下包含多个List属性,通过List则有可能无法正确获取明细的数据的问题(by @bulog)
16. \n2023-02-03 18:58:53 增加or查询示例
17. \n2023-02-03 17:25:20 增加vue3版本代码生成器volform表单生成评分rate组件(更新前端volform.vue、builderData.js文件)
18. \n2023-02-03 17:24:24 集成vue3版本volform表单评分rate组件
19. \n2023-02-03 17:14:15 优化代码生成器日期字段表格默认宽度
20. \n2023-02-03 17:05:55 集成vue3版本voltable方法selectionchagned(by\n@kevin100702)
21. \n2023-02-03 17:00:40 Merge pull\nrequest #305 from kevin100702/master
22. \n2023-02-03 16:59:32 修复vue3版本白色主题菜单栏背景颜色没有变化的问题
23. \n2023-02-03 16:50:06 增加vue3版本表格Tooltip显示提示示例
24. \n2023-02-03 16:32:51 修复vue3版本volform动态切换表单为只读或label显示时表单校验不正确的问题
25. \n2023-02-03 16:31:44 修复vue3版本编辑框打开时某些情况显示了表单校验的问题
26. \n2023-02-03 14:14:53 优化vue3版本级联递归性能
27. \n2023.01
28. \n2023-01-17 15:01:55 修复vue3版本编辑器可能异常的问题
29. \n2023-01-17 15:00:58 修改开发版SwaggerUI
30. \n2023-01-17 09:58:51 Merge pull\nrequest #2 from cq-panda/master
31. \n2023-01-13 14:13:25 1
32. \n2023-01-11 13:41:03 修复vue2版本编辑器某些情况不能重置内容的问题
33. \n2023-01-08 21:10:57 Merge pull\nrequest #1 from cq-panda/master
34. \n2023-01-05 16:32:42 修复vue3版本volform组件select2数据源key没有转换的问题
35. \n2023-01-05 16:32:00 优化vue3版本viewgrid组件数据源复用
36. \n2023-01-05 16:30:19 优化vue3版本viewgrid组件数据源复用
37. \n2023-01-04 17:47:01 暴露selectionchagned 和 selectable
38. \n2023-01-04 14:39:46 修复sqldapper方法DelWithKey删除异常的问题
39. \n2023-01-04 11:11:47 完善文档
40. \n2023-01-04 11:00:37 增加vue3版本v
41. \n2023-01-04 11:00:37 增加vue3版本volform编辑器只读时以标签显示(by @ying)
42. \n2023-01-04 10:53:43 修复vue3版本volform下拉框搜索后不能还原的问题
43. \n2023-01-04 10:33:10 优化vue3版本viewgrid明细表按钮颜色可能异常的问题
44. \n2023-01-04 10:26:39 增加vue3版本voltable动态限定单元格只方法getDisabled
45. \n2023-01-04 10:14:45 优化上传示例
46. \n2023-01-04 10:14:17 增加vue3版本图片上传(jpg、jpeg格式)自动压缩功能
47. \n2023-01-04 10:06:23 修复审批流程只有一个节点时审批异常的问题
48. \n2022.12
49. \n2022-12-27 21:17:16 vol-table 添加isdisabled,传入参数row, column ,返回true表示禁用
50. \n2022-12-26 22:38:41 修复vue3版本voltable二级表头formatter与click无效的问题
51. \n2022-12-26 03:29:39 修复vue3版本编辑类型为switch时会影响查询类型的问题
52. \n2022-12-26 02:37:20 修复vue3版本volform密码输框异常的问题
53. \n2022-12-26 02:36:01 增加数据源bigint类型的支持
54. \n2022-12-26 02:33:25 增加vue3版本voltable组件数据源加载完成后的方法dicInited
55. \n2022-12-26 02:32:59 增加vue3版本volform组件数据源加载完成后的方法dicInited
56. \n2022-12-26 02:24:42 修复审批流程下一个审批人参数错误的问题
57. \n2022-12-17 16:54:51 优化移动端首页
58. \n2022-12-17 16:52:38 优化移动端vol-table组件自定义按钮
59. \n2022-12-15 16:25:30 修复vue3版本vol-table time组件无效的问题
60. \n2022-12-13 20:22:14 修改mysql批量写入可能异常的问题(by @bulog )
61. \n2022-12-12 21:24:22\nfix(Database): 修复MySQL批量插入只能插入一条数据的Bug(by @Ady)
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
62. \n2022-12-02 00:09:36 修复vue3版本级联组件超过500个选项时value转换的问题
', '2023-03-05 00:04:22', 1, '超级管理员', 1, 'static/news/20230305/0004288287.html', 1, 'Upload/Tables/App_News/202303050006251509/wechat.jpg', '超级管理员', '2023-03-22 15:07:38', 1, 1, NULL, NULL, '2023.01-02月框架功能优化与问题修复及增强移动端功能', NULL); +INSERT INTO `App_News_copy1` VALUES (73806, NULL, NULL, '开发商Studio Wildcard宣布《方舟:终极幸存者版》将于2022年9月登录任天堂Switch,发售实体版和数字版,售价49.99美元,原版游戏所有者可以免费升级。
《方舟:终极幸存者版》包含了本体《方舟:生存进化》及其所有大型扩展包Scorched Earth、Aberration、Extinction 和 Genesis Parts 1&2,其中Scorched Earth扩展包将在游戏发售时发布,随后的扩展包将每隔两个月发布一次。
拥有原版《方舟:生存进化》的玩家可能会记得,这款游戏自Switch版上线以来一直处于很糟糕的状态。幸运的是,Studio Wildcard已经与第三方开发商合作,重新编写了Switch上的整体代码,并在最新版本的虚幻4上进行开发。计划对功能、图形和优化进行完整的修改。此外,所有现有的Switch进度和存档数据将被保留至新版。
不过最新新版游戏的质量如何,还是需要等发售之后实测才会知道,毕竟虚幻4引擎的游戏在switch上流畅运行,对于开发商来说真的是一个很大的挑战。
', '2022-04-20 01:49:23', 1, '超级管理员', 1, 'static/news/20220420/0949288120.html', 1, 'Upload/Tables/App_News/202204201140571762/20-05.png', '超级管理员', '2022-04-20 09:51:16', 1, 1, NULL, NULL, '重写代码可免费升级!《方舟终极版》9月登录Switch', NULL); +INSERT INTO `App_News_copy2` VALUES (73800, NULL, NULL, '刚入门前端的先学会这些就够了
1.基础语法
v-model v-for v-if v-else-if v-show
@click slot ref class style\n
2.子父组件传参
props、$emit、$refs
3、生命周期
created、mounted、destroyed、activated
4、创建Vue页面、Vue组件(页面)引用
', '2022-04-21 10:36:28', 1, '超级管理员', 1, 'static/news/20220421/1044487732.html', 1, 'Upload/Tables/App_News/202303050006488340/wechat.jpg', '超级管理员', '2022-09-15 11:17:36', 1, 1, NULL, NULL, '前端Vue与后台学习方式与一些基础语法问题', NULL); +INSERT INTO `App_News_copy2` VALUES (73801, NULL, NULL, 'vue3版本集成signalR(消息推送),更新文件:
package.json、router/index.js、views/index.vue、views/Home.vue、views/index/index.less、Startup.cs、appsettings.json、
Hubs/HomePageMessageHub.cs、views/index文件夹、views/signalR/Index.vue1. \n2023.02
2. \n2023-02-21 22:46:25 重写移动端按钮布局
3. \n2023-02-21 22:03:19 增加移动端表格自定义列、超链接与点击事件示例
4. \n2023-02-21 15:43:44 回调移动端vol-table分页行数显示
5. \n2023-02-20 18:08:19 增加vol-table与生成页面table自定义按钮组Dropdown示例
6. \n2023-02-20 01:24:03 完善文档
7. \n2023-02-20 01:13:31 修复vue3版本volform组件文件只读时样式缺失的问题
8. \n2023-02-16 18:15:25 增加.net6版本定时任务配置
9. \n2023-02-15 10:09:12 优化移动端vol-table组件加载提示
10. \n2023-02-14 19:03:29 调整移动端生成页面按钮默认为显示状态
11. \n2023-02-14 19:02:19 优化移动端vol-table刷新页面闪烁的问题
12. \n2023-02-14 18:50:16 增加移动端vol-table列表显示时标签宽度属性width
13. \n2023-02-14 18:49:18 优化vue2版本编辑、删除默认参数
14. \n2023-02-13 11:00:19 增加移动端编辑框表单标签宽度属性labelWidth
15. \n2023-02-08 13:42:20 Jwt解析时,不应传入Bearer 字符; 修复当更新带明细的主表时,如果主表下包含多个List属性,通过List则有可能无法正确获取明细的数据的问题(by @bulog)
16. \n2023-02-03 18:58:53 增加or查询示例
17. \n2023-02-03 17:25:20 增加vue3版本代码生成器volform表单生成评分rate组件(更新前端volform.vue、builderData.js文件)
18. \n2023-02-03 17:24:24 集成vue3版本volform表单评分rate组件
19. \n2023-02-03 17:14:15 优化代码生成器日期字段表格默认宽度
20. \n2023-02-03 17:05:55 集成vue3版本voltable方法selectionchagned(by\n@kevin100702)
21. \n2023-02-03 17:00:40 Merge pull\nrequest #305 from kevin100702/master
22. \n2023-02-03 16:59:32 修复vue3版本白色主题菜单栏背景颜色没有变化的问题
23. \n2023-02-03 16:50:06 增加vue3版本表格Tooltip显示提示示例
24. \n2023-02-03 16:32:51 修复vue3版本volform动态切换表单为只读或label显示时表单校验不正确的问题
25. \n2023-02-03 16:31:44 修复vue3版本编辑框打开时某些情况显示了表单校验的问题
26. \n2023-02-03 14:14:53 优化vue3版本级联递归性能
27. \n2023.01
28. \n2023-01-17 15:01:55 修复vue3版本编辑器可能异常的问题
29. \n2023-01-17 15:00:58 修改开发版SwaggerUI
30. \n2023-01-17 09:58:51 Merge pull\nrequest #2 from cq-panda/master
31. \n2023-01-13 14:13:25 1
32. \n2023-01-11 13:41:03 修复vue2版本编辑器某些情况不能重置内容的问题
33. \n2023-01-08 21:10:57 Merge pull\nrequest #1 from cq-panda/master
34. \n2023-01-05 16:32:42 修复vue3版本volform组件select2数据源key没有转换的问题
35. \n2023-01-05 16:32:00 优化vue3版本viewgrid组件数据源复用
36. \n2023-01-05 16:30:19 优化vue3版本viewgrid组件数据源复用
37. \n2023-01-04 17:47:01 暴露selectionchagned 和 selectable
38. \n2023-01-04 14:39:46 修复sqldapper方法DelWithKey删除异常的问题
39. \n2023-01-04 11:11:47 完善文档
40. \n2023-01-04 11:00:37 增加vue3版本v
41. \n2023-01-04 11:00:37 增加vue3版本volform编辑器只读时以标签显示(by @ying)
42. \n2023-01-04 10:53:43 修复vue3版本volform下拉框搜索后不能还原的问题
43. \n2023-01-04 10:33:10 优化vue3版本viewgrid明细表按钮颜色可能异常的问题
44. \n2023-01-04 10:26:39 增加vue3版本voltable动态限定单元格只方法getDisabled
45. \n2023-01-04 10:14:45 优化上传示例
46. \n2023-01-04 10:14:17 增加vue3版本图片上传(jpg、jpeg格式)自动压缩功能
47. \n2023-01-04 10:06:23 修复审批流程只有一个节点时审批异常的问题
48. \n2022.12
49. \n2022-12-27 21:17:16 vol-table 添加isdisabled,传入参数row, column ,返回true表示禁用
50. \n2022-12-26 22:38:41 修复vue3版本voltable二级表头formatter与click无效的问题
51. \n2022-12-26 03:29:39 修复vue3版本编辑类型为switch时会影响查询类型的问题
52. \n2022-12-26 02:37:20 修复vue3版本volform密码输框异常的问题
53. \n2022-12-26 02:36:01 增加数据源bigint类型的支持
54. \n2022-12-26 02:33:25 增加vue3版本voltable组件数据源加载完成后的方法dicInited
55. \n2022-12-26 02:32:59 增加vue3版本volform组件数据源加载完成后的方法dicInited
56. \n2022-12-26 02:24:42 修复审批流程下一个审批人参数错误的问题
57. \n2022-12-17 16:54:51 优化移动端首页
58. \n2022-12-17 16:52:38 优化移动端vol-table组件自定义按钮
59. \n2022-12-15 16:25:30 修复vue3版本vol-table time组件无效的问题
60. \n2022-12-13 20:22:14 修改mysql批量写入可能异常的问题(by @bulog )
61. \n2022-12-12 21:24:22\nfix(Database): 修复MySQL批量插入只能插入一条数据的Bug(by @Ady)
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
62. \n2022-12-02 00:09:36 修复vue3版本级联组件超过500个选项时value转换的问题
', '2023-03-05 00:04:22', 1, '超级管理员', 1, 'static/news/20230305/0004288287.html', 1, 'Upload/Tables/App_News/202303050006251509/wechat.jpg', '超级管理员', '2023-03-22 15:07:38', 1, 1, NULL, NULL, '2023.01-02月框架功能优化与问题修复及增强移动端功能', NULL); +INSERT INTO `App_News_copy2` VALUES (73806, NULL, NULL, '开发商Studio Wildcard宣布《方舟:终极幸存者版》将于2022年9月登录任天堂Switch,发售实体版和数字版,售价49.99美元,原版游戏所有者可以免费升级。
《方舟:终极幸存者版》包含了本体《方舟:生存进化》及其所有大型扩展包Scorched Earth、Aberration、Extinction 和 Genesis Parts 1&2,其中Scorched Earth扩展包将在游戏发售时发布,随后的扩展包将每隔两个月发布一次。
拥有原版《方舟:生存进化》的玩家可能会记得,这款游戏自Switch版上线以来一直处于很糟糕的状态。幸运的是,Studio Wildcard已经与第三方开发商合作,重新编写了Switch上的整体代码,并在最新版本的虚幻4上进行开发。计划对功能、图形和优化进行完整的修改。此外,所有现有的Switch进度和存档数据将被保留至新版。
不过最新新版游戏的质量如何,还是需要等发售之后实测才会知道,毕竟虚幻4引擎的游戏在switch上流畅运行,对于开发商来说真的是一个很大的挑战。
', '2022-04-20 01:49:23', 1, '超级管理员', 1, 'static/news/20220420/0949288120.html', 1, 'Upload/Tables/App_News/202204201140571762/20-05.png', '超级管理员', '2022-04-20 09:51:16', 1, 1, NULL, NULL, '重写代码可免费升级!《方舟终极版》9月登录Switch', NULL); +INSERT INTO "public"."App_News" VALUES (2, NULL, NULL, '刚入门前端的先学会这些就够了
1.基础语法
v-model v-for v-if v-else-if v-show
@click slot ref class style\n
2.子父组件传参
props、$emit、$refs
3、生命周期
created、mounted、destroyed、activated
4、创建Vue页面、Vue组件(页面)引用
', '2022-04-21 10:36:28', 1, '超级管理员', 1, 'static/news/20220421/1044487732.html', 1, 'Upload/Tables/App_News/202303050006488340/wechat.jpg', '超级管理员', '2022-09-15 11:17:36', 1, 1, NULL, NULL, '前端Vue与后台学习方式与一些基础语法问题', NULL); +INSERT INTO "public"."App_News" VALUES (3, NULL, NULL, 'vue3版本集成signalR(消息推送),更新文件:
package.json、router/index.js、views/index.vue、views/Home.vue、views/index/index.less、Startup.cs、appsettings.json、
Hubs/HomePageMessageHub.cs、views/index文件夹、views/signalR/Index.vue1. \n2023.02
2. \n2023-02-21 22:46:25 重写移动端按钮布局
3. \n2023-02-21 22:03:19 增加移动端表格自定义列、超链接与点击事件示例
4. \n2023-02-21 15:43:44 回调移动端vol-table分页行数显示
5. \n2023-02-20 18:08:19 增加vol-table与生成页面table自定义按钮组Dropdown示例
6. \n2023-02-20 01:24:03 完善文档
7. \n2023-02-20 01:13:31 修复vue3版本volform组件文件只读时样式缺失的问题
8. \n2023-02-16 18:15:25 增加.net6版本定时任务配置
9. \n2023-02-15 10:09:12 优化移动端vol-table组件加载提示
10. \n2023-02-14 19:03:29 调整移动端生成页面按钮默认为显示状态
11. \n2023-02-14 19:02:19 优化移动端vol-table刷新页面闪烁的问题
12. \n2023-02-14 18:50:16 增加移动端vol-table列表显示时标签宽度属性width
13. \n2023-02-14 18:49:18 优化vue2版本编辑、删除默认参数
14. \n2023-02-13 11:00:19 增加移动端编辑框表单标签宽度属性labelWidth
15. \n2023-02-08 13:42:20 Jwt解析时,不应传入Bearer 字符; 修复当更新带明细的主表时,如果主表下包含多个List属性,通过List则有可能无法正确获取明细的数据的问题(by @bulog)
16. \n2023-02-03 18:58:53 增加or查询示例
17. \n2023-02-03 17:25:20 增加vue3版本代码生成器volform表单生成评分rate组件(更新前端volform.vue、builderData.js文件)
18. \n2023-02-03 17:24:24 集成vue3版本volform表单评分rate组件
19. \n2023-02-03 17:14:15 优化代码生成器日期字段表格默认宽度
20. \n2023-02-03 17:05:55 集成vue3版本voltable方法selectionchagned(by\n@kevin100702)
21. \n2023-02-03 17:00:40 Merge pull\nrequest #305 from kevin100702/master
22. \n2023-02-03 16:59:32 修复vue3版本白色主题菜单栏背景颜色没有变化的问题
23. \n2023-02-03 16:50:06 增加vue3版本表格Tooltip显示提示示例
24. \n2023-02-03 16:32:51 修复vue3版本volform动态切换表单为只读或label显示时表单校验不正确的问题
25. \n2023-02-03 16:31:44 修复vue3版本编辑框打开时某些情况显示了表单校验的问题
26. \n2023-02-03 14:14:53 优化vue3版本级联递归性能
27. \n2023.01
28. \n2023-01-17 15:01:55 修复vue3版本编辑器可能异常的问题
29. \n2023-01-17 15:00:58 修改开发版SwaggerUI
30. \n2023-01-17 09:58:51 Merge pull\nrequest #2 from cq-panda/master
31. \n2023-01-13 14:13:25 1
32. \n2023-01-11 13:41:03 修复vue2版本编辑器某些情况不能重置内容的问题
33. \n2023-01-08 21:10:57 Merge pull\nrequest #1 from cq-panda/master
34. \n2023-01-05 16:32:42 修复vue3版本volform组件select2数据源key没有转换的问题
35. \n2023-01-05 16:32:00 优化vue3版本viewgrid组件数据源复用
36. \n2023-01-05 16:30:19 优化vue3版本viewgrid组件数据源复用
37. \n2023-01-04 17:47:01 暴露selectionchagned 和 selectable
38. \n2023-01-04 14:39:46 修复sqldapper方法DelWithKey删除异常的问题
39. \n2023-01-04 11:11:47 完善文档
40. \n2023-01-04 11:00:37 增加vue3版本v
41. \n2023-01-04 11:00:37 增加vue3版本volform编辑器只读时以标签显示(by @ying)
42. \n2023-01-04 10:53:43 修复vue3版本volform下拉框搜索后不能还原的问题
43. \n2023-01-04 10:33:10 优化vue3版本viewgrid明细表按钮颜色可能异常的问题
44. \n2023-01-04 10:26:39 增加vue3版本voltable动态限定单元格只方法getDisabled
45. \n2023-01-04 10:14:45 优化上传示例
46. \n2023-01-04 10:14:17 增加vue3版本图片上传(jpg、jpeg格式)自动压缩功能
47. \n2023-01-04 10:06:23 修复审批流程只有一个节点时审批异常的问题
48. \n2022.12
49. \n2022-12-27 21:17:16 vol-table 添加isdisabled,传入参数row, column ,返回true表示禁用
50. \n2022-12-26 22:38:41 修复vue3版本voltable二级表头formatter与click无效的问题
51. \n2022-12-26 03:29:39 修复vue3版本编辑类型为switch时会影响查询类型的问题
52. \n2022-12-26 02:37:20 修复vue3版本volform密码输框异常的问题
53. \n2022-12-26 02:36:01 增加数据源bigint类型的支持
54. \n2022-12-26 02:33:25 增加vue3版本voltable组件数据源加载完成后的方法dicInited
55. \n2022-12-26 02:32:59 增加vue3版本volform组件数据源加载完成后的方法dicInited
56. \n2022-12-26 02:24:42 修复审批流程下一个审批人参数错误的问题
57. \n2022-12-17 16:54:51 优化移动端首页
58. \n2022-12-17 16:52:38 优化移动端vol-table组件自定义按钮
59. \n2022-12-15 16:25:30 修复vue3版本vol-table time组件无效的问题
60. \n2022-12-13 20:22:14 修改mysql批量写入可能异常的问题(by @bulog )
61. \n2022-12-12 21:24:22\nfix(Database): 修复MySQL批量插入只能插入一条数据的Bug(by @Ady)
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
62. \n2022-12-02 00:09:36 修复vue3版本级联组件超过500个选项时value转换的问题
', '2023-03-05 00:04:22', 1, '超级管理员', 1, 'static/news/20230305/0004288287.html', 1, 'Upload/Tables/App_News/202303050006251509/wechat.jpg', '超级管理员', '2023-03-22 15:07:38', 1, 1, NULL, NULL, '2023.01-02月框架功能优化与问题修复及增强移动端功能', NULL); +INSERT INTO "public"."App_News" VALUES (6, NULL, NULL, 'a&&(a=u),n.push(u)}for(var h=0;ha&&(a=d)}return r.y0=o,r.max=a,r}function Bm(t){var e=0;d(t.children,function(t){Bm(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function Vm(t,e,i){function n(){r.ignore=r.hoverIgnore}function o(){r.ignore=r.normalIgnore}tb.call(this);var a=new hM({z2:zP});a.seriesIndex=e.seriesIndex;var r=new rM({z2:BP,silent:t.getModel("label").get("silent")});this.add(a),this.add(r),this.updateData(!0,t,"normal",e,i),this.on("emphasis",n).on("normal",o).on("mouseover",n).on("mouseout",o)}function Gm(t,e,i){var n=t.getVisual("color"),o=t.getVisual("visualMeta");o&&0!==o.length||(n=null);var a=t.getModel("itemStyle").get("color");if(a)return a;if(n)return n;if(0===t.depth)return i.option.color[0];var r=i.option.color.length;return a=i.option.color[Fm(t)%r]}function Fm(t){for(var e=t;e.depth>1;)e=e.parentNode;return l(t.getAncestors()[0].children,e)}function Wm(t,e,i){return i!==RP.NONE&&(i===RP.SELF?t===e:i===RP.ANCESTOR?t===e||t.isAncestorOf(e):t===e||t.isDescendantOf(e))}function Hm(t,e,i){e.getData().setItemVisual(t.dataIndex,"color",i)}function Zm(t,e){var i=t.children||[];t.children=Um(i,e),i.length&&d(t.children,function(t){Zm(t,e)})}function Um(t,e){if("function"==typeof e)return t.sort(e);var i="asc"===e;return t.sort(function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n})}function Xm(t,e){return e=e||[0,0],f(["x","y"],function(i,n){var o=this.getAxis(i),a=e[n],r=t[n]/2;return"category"===o.type?o.getBandWidth():Math.abs(o.dataToCoord(a-r)-o.dataToCoord(a+r))},this)}function jm(t,e){return e=e||[0,0],f([0,1],function(i){var n=e[i],o=t[i]/2,a=[],r=[];return a[i]=n-o,r[i]=n+o,a[1-i]=r[1-i]=e[1-i],Math.abs(this.dataToPoint(a)[i]-this.dataToPoint(r)[i])},this)}function Ym(t,e){var i=this.getAxis(),n=e instanceof Array?e[0]:e,o=(t instanceof Array?t[0]:t)/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-o)-i.dataToCoord(n+o))}function qm(t,e){return f(["Radius","Angle"],function(i,n){var o=this["get"+i+"Axis"](),a=e[n],r=t[n]/2,s="dataTo"+i,l="category"===o.type?o.getBandWidth():Math.abs(o[s](a-r)-o[s](a+r));return"Angle"===i&&(l=l*Math.PI/180),l},this)}function Km(t){var e,i=t.type;if("path"===i){var n=t.shape,o=null!=n.width&&null!=n.height?{x:n.x||0,y:n.y||0,width:n.width,height:n.height}:null,a=lv(n);(e=Xn(a,null,o,n.layout||"center")).__customPathData=a}else"image"===i?(e=new fi({})).__customImagePath=t.style.image:"text"===i?(e=new rM({})).__customText=t.style.text:e=new(0,zM[i.charAt(0).toUpperCase()+i.slice(1)]);return e.__customGraphicType=i,e.name=t.name,e}function $m(t,e,n,o,a,r,s){var l={},u=n.style||{};if(n.shape&&(l.shape=i(n.shape)),n.position&&(l.position=n.position.slice()),n.scale&&(l.scale=n.scale.slice()),n.origin&&(l.origin=n.origin.slice()),n.rotation&&(l.rotation=n.rotation),"image"===t.type&&n.style){h=l.style={};d(["x","y","width","height"],function(e){Jm(e,h,u,t.style,r)})}if("text"===t.type&&n.style){var h=l.style={};d(["x","y"],function(e){Jm(e,h,u,t.style,r)}),!u.hasOwnProperty("textFill")&&u.fill&&(u.textFill=u.fill),!u.hasOwnProperty("textStroke")&&u.stroke&&(u.textStroke=u.stroke)}if("group"!==t.type&&(t.useStyle(u),r)){t.style.opacity=0;var c=u.opacity;null==c&&(c=1),To(t,{style:{opacity:c}},o,e)}r?t.attr(l):Io(t,l,o,e),n.hasOwnProperty("z2")&&t.attr("z2",n.z2||0),n.hasOwnProperty("silent")&&t.attr("silent",n.silent),n.hasOwnProperty("invisible")&&t.attr("invisible",n.invisible),n.hasOwnProperty("ignore")&&t.attr("ignore",n.ignore),n.hasOwnProperty("info")&&t.attr("info",n.info);var f=n.styleEmphasis,p=!1===f;t.__cusHasEmphStl&&null==f||!t.__cusHasEmphStl&&p||(ro(t,f),t.__cusHasEmphStl=!p),s&&po(t,!p)}function Jm(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function Qm(t,e,i,n){function o(t){null==t&&(t=h),v&&(c=e.getItemModel(t),d=c.getModel(UP),f=c.getModel(XP),p=e.getItemVisual(t,"color"),v=!1)}var s=t.get("renderItem"),l=t.coordinateSystem,u={};l&&(u=l.prepareCustoms?l.prepareCustoms():YP[l.type](l));var h,c,d,f,p,g=r({getWidth:n.getWidth,getHeight:n.getHeight,getZr:n.getZr,getDevicePixelRatio:n.getDevicePixelRatio,value:function(t,i){return null==i&&(i=h),e.get(e.getDimension(t||0),i)},style:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(HP).getItemStyle();null!=p&&(r.fill=p);var s=e.getItemVisual(n,"opacity");return null!=s&&(r.opacity=s),mo(r,d,null,{autoColor:p,isRectText:!0}),r.text=d.getShallow("show")?A(t.getFormattedLabel(n,"normal"),_u(e,n)):null,i&&a(r,i),r},styleEmphasis:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(ZP).getItemStyle();return mo(r,f,null,{isRectText:!0},!0),r.text=f.getShallow("show")?D(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),_u(e,n)):null,i&&a(r,i),r},visual:function(t,i){return null==i&&(i=h),e.getItemVisual(i,t)},barLayout:function(t){if(l.getBaseAxis)return Ll(r({axis:l.getBaseAxis()},t),n)},currentSeriesIndices:function(){return i.getCurrentSeriesIndices()},font:function(t){return So(t,i)}},u.api||{}),m={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:u.coordSys,dataInsideLength:e.count(),encode:tv(t.getData())},v=!0;return function(t,i){return h=t,v=!0,s&&s(r({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:i?i.type:null},m),g)}}function tv(t){var e={};return d(t.dimensions,function(i,n){var o=t.getDimensionInfo(i);if(!o.isExtraCoord){var a=o.coordDim;(e[a]=e[a]||[])[o.coordDimIndex]=n}}),e}function ev(t,e,i,n,o,a){return(t=iv(t,e,i,n,o,a,!0))&&a.setItemGraphicEl(e,t),t}function iv(t,e,i,n,o,a,r){var s=!i,l=(i=i||{}).type,u=i.shape,h=i.style;if(t&&(s||null!=l&&l!==t.__customGraphicType||"path"===l&&uv(u)&&lv(u)!==t.__customPathData||"image"===l&&hv(h,"image")&&h.image!==t.__customImagePath||"text"===l&&hv(u,"text")&&h.text!==t.__customText)&&(o.remove(t),t=null),!s){var c=!t;return!t&&(t=Km(i)),$m(t,e,i,n,a,c,r),"group"===l&&nv(t,e,i,n,a),o.add(t),t}}function nv(t,e,i,n,o){var a=i.children,r=a?a.length:0,s=i.$mergeChildren,l="byName"===s||i.diffChildrenByName,u=!1===s;if(r||l||u)if(l)ov({oldChildren:t.children()||[],newChildren:a||[],dataIndex:e,animatableModel:n,group:t,data:o});else{u&&t.removeAll();for(var h=0;h
":"",m=g+f.join(g||", ");return{renderMode:n,content:m,style:l}}(g):o(f?fr(h,t,c[0]):m?g[0]:g)).content,_=a.seriesIndex+"at"+u,b=aa({color:v,type:"item",renderMode:n,markerId:_});l[_]=v,++u;var S=h.getName(t),M=this.name;Oi(this)||(M=""),M=M?ia(M)+(e?": ":r):"";var I="string"==typeof b?b:b.content;return{html:e?I+M+x:M+I+(S?ia(S)+": "+x:x),markers:l}},isAnimationEnabled:function(){if(U_.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,o=dI.getColorFromPalette.call(this,t,e,i);return o||(o=n.getColorFromPalette(t,e,i)),o},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});h(YI,ZI),h(YI,dI);var qI=function(){this.group=new tb,this.uid=Ro("viewComponent")};qI.prototype={constructor:qI,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){},filterForExposedEvent:null};var KI=qI.prototype;KI.updateView=KI.updateLayout=KI.updateVisual=function(t,e,i,n){},ji(qI),$i(qI,{registerWhenExtend:!0});var $I=function(){var t=Bi();return function(e){var i=t(e),n=e.pipelineContext,o=i.large,a=i.progressiveRender,r=i.large=n.large,s=i.progressiveRender=n.progressiveRender;return!!(o^r||a^s)&&"reset"}},JI=Bi(),QI=$I();Ar.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){Cr(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Cr(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var tT=Ar.prototype;tT.updateView=tT.updateLayout=tT.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},ji(Ar),$i(Ar,{registerWhenExtend:!0}),Ar.markUpdateMethod=function(t,e){JI(t).updateMethod=e};var eT={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},iT="\0__throttleOriginMethod",nT="\0__throttleRate",oT="\0__throttleType",aT={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),o=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",o),!e.isSeriesFiltered(t)){"function"!=typeof o||o instanceof IM||i.each(function(e){i.setItemVisual(e,"color",o(t.getDataParams(e)))});return{dataEach:i.hasItemOption?function(t,e){var i=t.getItemModel(e).get(n,!0);null!=i&&t.setItemVisual(e,"color",i)}:null}}}},rT={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},sT=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return d(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=a.get(t);if(null==e){for(var i=t.split("."),n=rT.aria,o=0;oM[1]&&(M[1]=S)}if(!o.pure){var I=u[v];if(m&&null==I)if(null!=m.name)u[v]=I=m.name;else if(null!=i){var T=r[i],A=a[T][y];if(A){I=A[x];var D=l[T].ordinalMeta;D&&D.categories.length&&(I=D.categories[I])}}var C=null==m?null:m.id;null==C&&null!=I&&(d[I]=d[I]||0,C=I,d[I]>0&&(C+="__ec__"+d[I]),d[I]++),null!=C&&(h[v]=C)}}!o.persistent&&o.clean&&o.clean(),this._rawCount=this._count=e,this._extent={},el(this)}},yA.count=function(){return this._count},yA.getIndices=function(){var t=this._indices;if(t){var e=t.constructor,i=this._count;if(e===Array){n=new e(i);for(o=0;o=0&&e=0&&a<0)&&(o=u,a=l,n.length=0),n.push(r))}return n},yA.getRawIndex=nl,yA.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;ic[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=ol,o},yA.getItemModel=function(t){var e=this.hostModel;return new No(this.getRawDataItem(t),e,e&&e.ecModel)},yA.diff=function(t){var e=this;return new Xs(t?t.getIndices():[],this.getIndices(),function(e){return al(t,e)},function(t){return al(e,t)})},yA.getVisual=function(t){var e=this._visual;return e&&e[t]},yA.setVisual=function(t,e){if(lA(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},yA.setLayout=function(t,e){if(lA(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},yA.getLayout=function(t){return this._layout[t]},yA.getItemLayout=function(t){return this._itemLayouts[t]},yA.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?a(this._itemLayouts[t]||{},e):e},yA.clearItemLayouts=function(){this._itemLayouts.length=0},yA.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},yA.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,lA(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},yA.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var xA=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};yA.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(xA,e)),this._graphicEls[t]=e},yA.getItemGraphicEl=function(t){return this._graphicEls[t]},yA.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},yA.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new vA(e,this.hostModel)}if(t._storage=this._storage,Qs(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?ol:nl,t},yA.wrapMethod=function(t,e){var i=this[t];"function"==typeof i&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t].concat(C(arguments)))})},yA.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],yA.CHANGABLE_METHODS=["filterSelf","selectRange"];var _A=function(t,e){return e=e||{},hl(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};xl.prototype.parse=function(t){return t},xl.prototype.getSetting=function(t){return this._setting[t]},xl.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},xl.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},xl.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},xl.prototype.unionExtent=function(t){var e=this._extent;t[0]
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});Zs({type:"radar",render:function(t,e,n){function o(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=qh(t.getItemVisual(e,"symbolSize")),a=Jl(i,-1,-1,2,2,n);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2]}),a}}function a(e,i,n,a,r,s){n.removeAll();for(var l=0;l0){if(_n(l,u,(l+c)/2-(u-d)*o,(u+d)/2-(c-l)*o,c,d))return a}else if(yn(l,u,c,d))return a;a++}return-1}}),rP=bg.prototype;rP.isPersistent=function(){return!this._incremental},rP.updateData=function(t){this.group.removeAll();var e=new aP({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},rP.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new Zn({silent:!0})),this.group.add(this._incremental)):this._incremental=null},rP.incrementalUpdate=function(t,e){var i=new aP;i.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(i,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(i,!0):(i.rectHover=!0,i.cursor="default",i.__startIndex=t.start,this.group.add(i))},rP.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},rP._setCommon=function(t,e,i){var n=e.hostModel;t.setShape({polyline:n.get("polyline"),curveness:n.get("lineStyle.curveness")}),t.useStyle(n.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var o=e.getVisual("color");o&&t.setStyle("stroke",o),t.setStyle("fill"),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>0&&(t.dataIndex=i+t.__startIndex)}))},rP._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var sP={seriesType:"lines",plan:$I(),reset:function(t){var e=t.coordinateSystem,i=t.get("polyline"),n=t.pipelineContext.large;return{progress:function(o,a){var r=[];if(n){var s,l=o.end-o.start;if(i){for(var u=0,h=o.start;h
"):(n=new Lv(e),this._newLine="\n"),this._tooltipContent=n}},render:function(t,e,i){if(!U_.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel.get("triggerOn");um("itemTooltip",this._api,uN(function(e,i,n){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(i,n):"leave"===e&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!U_.node){var o=Pv(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var r=dN;r.position=[n.x,n.y],r.update(),r.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:r},o)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},o);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=xP(n,e),l=s.point[0],u=s.point[1];null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,position:n.position,target:s.el,event:{}},o)}else null!=n.x&&null!=n.y&&(i.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().findHover(n.x,n.y).target,event:{}},o))}},manuallyHideTip:function(t,e,i,n){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(Pv(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var o=n.seriesIndex,a=n.dataIndex,r=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=o&&null!=a&&null!=r){var s=e.getSeriesByIndex(o);if(s&&"axis"===(t=kv([s.getData().getItemModel(a),s,(s.coordinateSystem||{}).model,t])).get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:a,position:n.position}),!0}},_tryShow:function(t,e){var i=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var n=t.dataByCoordSys;n&&n.length?this._showAxisTooltip(n,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=m(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,o=this._tooltipModel,a=[e.offsetX,e.offsetY],r=[],s=[],l=kv([e.tooltipOption,o]),u=this._renderMode,h=this._newLine,c={};hN(t,function(t){hN(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),o=t.value,a=[];if(e&&null!=o){var l=Im(o,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);d(t.seriesDataIndices,function(r){var h=i.getSeriesByIndex(r.seriesIndex),d=r.dataIndexInside,f=h&&h.getDataParams(d);if(f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=Xl(e.axis,o),f.axisValueLabel=l,f){s.push(f);var p,g=h.formatTooltip(d,!0,null,u);if(w(g)){p=g.html;var m=g.markers;n(c,m)}else p=g;a.push(p)}});var f=l;"html"!==u?r.push(a.join(h)):r.push((f?ia(f)+h:"")+a.join(h))}})},this),r.reverse(),r=r.join(this._newLine+this._newLine);var f=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,f,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,r,s,Math.random(),a[0],a[1],f,void 0,c)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,o=e.seriesIndex,a=n.getSeriesByIndex(o),r=e.dataModel||a,s=e.dataIndex,l=e.dataType,u=r.getData(),h=kv([u.getItemModel(s),r,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=h.get("trigger");if(null==c||"item"===c){var d,f,p=r.getDataParams(s,l),g=r.formatTooltip(s,!1,l,this._renderMode);w(g)?(d=g.html,f=g.markers):(d=g,f=null);var m="item_"+r.name+"_"+s;this._showOrMove(h,function(){this._showTooltipContent(h,d,p,m,t.offsetX,t.offsetY,t.position,t.target,f)}),i({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:o,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var o=n;n={content:o,formatter:o}}var a=new No(n,this._tooltipModel,this._ecModel),r=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,r,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,o,a,r,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");r=r||t.get("position");var c=e;if(h&&"string"==typeof h)c=na(h,i,!0);else if("function"==typeof h){var d=uN(function(e,n){e===this._ticket&&(u.setContent(n,l,t),this._updatePosition(t,r,o,a,u,i,s))},this);this._ticket=n,c=h(i,n,d)}u.setContent(c,l,t),u.show(t),this._updatePosition(t,r,o,a,u,i,s)}},_updatePosition:function(t,e,i,n,o,a,r){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=o.getSize(),h=t.get("align"),c=t.get("verticalAlign"),d=r&&r.getBoundingRect().clone();if(r&&d.applyTransform(r.transform),"function"==typeof e&&(e=e([i,n],a,o.el,d,{viewSize:[s,l],contentSize:u.slice()})),y(e))i=cN(e[0],s),n=cN(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=ca(e,{width:s,height:l});i=f.x,n=f.y,h=null,c=null}else"string"==typeof e&&r?(i=(p=Ev(e,d,u))[0],n=p[1]):(i=(p=Nv(i,n,o,s,l,h?null:20,c?null:20))[0],n=p[1]);if(h&&(i-=Rv(h)?u[0]/2:"right"===h?u[0]:0),c&&(n-=Rv(c)?u[1]/2:"bottom"===c?u[1]:0),t.get("confine")){var p=Ov(i,n,o,s,l);i=p[0],n=p[1]}o.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&hN(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];(i&=o.length===a.length)&&hN(o,function(t,e){var n=a[e]||{},o=t.seriesDataIndices||[],r=n.seriesDataIndices||[];(i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&o.length===r.length)&&hN(o,function(t,e){var n=r[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){U_.node||(this._tooltipContent.hide(),gm("itemTooltip",e))}}),Es({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Es({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){}),Gv.prototype={constructor:Gv,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToRadius:aD.prototype.dataToCoord,radiusToData:aD.prototype.coordToData},u(Gv,aD);var fN=Bi();Fv.prototype={constructor:Fv,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:aD.prototype.dataToCoord,angleToData:aD.prototype.coordToData,calculateCategoryInterval:function(){var t=this,e=t.getLabelModel(),i=t.scale,n=i.getExtent(),o=i.count();if(n[1]-n[0]<1)return 0;var a=n[0],r=t.dataToCoord(a+1)-t.dataToCoord(a),s=Math.abs(r),l=ke(a,e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=fN(t.model),d=c.lastAutoInterval,f=c.lastTickCount;return null!=d&&null!=f&&Math.abs(d-h)<=1&&Math.abs(f-o)<=1&&d>h?h=d:(c.lastTickCount=o,c.lastAutoInterval=h),h}},u(Fv,aD);var pN=function(t){this.name=t||"",this.cx=0,this.cy=0,this._radiusAxis=new Gv,this._angleAxis=new Fv,this._radiusAxis.polar=this._angleAxis.polar=this};pN.prototype={type:"polar",axisPointerEnabled:!0,constructor:pN,dimensions:["radius","angle"],model:null,containPoint:function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},containData:function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},getAxis:function(t){return this["_"+t+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(t){var e=[],i=this._angleAxis,n=this._radiusAxis;return i.scale.type===t&&e.push(i),n.scale.type===t&&e.push(n),e},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},dataToPoint:function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},pointToData:function(t,e){var i=this.pointToCoord(t);return[this._radiusAxis.radiusToData(i[0],e),this._angleAxis.angleToData(i[1],e)]},pointToCoord:function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=this.getAngleAxis(),o=n.getExtent(),a=Math.min(o[0],o[1]),r=Math.max(o[0],o[1]);n.inverse?a=r-360:r=a+360;var s=Math.sqrt(e*e+i*i);e/=s,i/=s;for(var l=Math.atan2(-i,e)/Math.PI*180,u=lr;)l+=360*u;return[s,l]},coordToPoint:function(t){var e=t[0],i=t[1]/180*Math.PI;return[Math.cos(i)*e+this.cx,-Math.sin(i)*e+this.cy]}};var gN=lI.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});n(gN.prototype,UA);var mN={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};ED("angle",gN,Wv,mN.angle),ED("radius",gN,Wv,mN.radius),Fs({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});var vN={dimensions:pN.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new pN(n);o.update=Zv;var a=o.getRadiusAxis(),r=o.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");Uv(a,s),Uv(r,l),Hv(o,t,e),i.push(o),t.coordinateSystem=o,o.model=t}),t.eachSeries(function(e){if("polar"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"polar",index:e.get("polarIndex"),id:e.get("polarId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}};Fa.register("polar",vN);var yN=["axisLine","axisLabel","axisTick","splitLine","splitArea"];XD.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,o=n.polar,a=o.getRadiusAxis().getExtent(),r=n.getTicksCoords(),s=f(n.getViewLabels(),function(t){return(t=i(t)).coord=n.dataToCoord(t.tickValue),t});Yv(s),Yv(r),d(yN,function(e){!t.get(e+".show")||n.scale.isBlank()&&"axisLine"!==e||this["_"+e](t,o,r,a,s)},this)}},_axisLine:function(t,e,i,n){var o=t.getModel("axisLine.lineStyle"),a=new sM({shape:{cx:e.cx,cy:e.cy,r:n[jv(e)]},style:o.getLineStyle(),z2:1,silent:!0});a.style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n){var o=t.getModel("axisTick"),a=(o.get("inside")?-1:1)*o.get("length"),s=n[jv(e)],l=f(i,function(t){return new _M({shape:Xv(e,[s,s+a],t.coord)})});this.group.add(OM(l,{style:r(o.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_axisLabel:function(t,e,i,n,o){var a=t.getCategories(!0),r=t.getModel("axisLabel"),s=r.get("margin");d(o,function(i,o){var l=r,u=i.tickValue,h=n[jv(e)],c=e.coordToPoint([h+s,i.coord]),d=e.cx,f=e.cy,p=Math.abs(c[0]-d)/h<.3?"center":c[0]>d?"left":"right",g=Math.abs(c[1]-f)/h<.3?"middle":c[1]>f?"top":"bottom";a&&a[u]&&a[u].textStyle&&(l=new No(a[u].textStyle,r,r.ecModel));var m=new rM({silent:!0});this.group.add(m),mo(m.style,l,{x:c[0],y:c[1],textFill:l.getTextColor()||t.get("axisLine.lineStyle.color"),text:i.formattedLabel,textAlign:p,textVerticalAlign:g})},this)},_splitLine:function(t,e,i,n){var o=t.getModel("splitLine").getModel("lineStyle"),a=o.get("color"),s=0;a=a instanceof Array?a:[a];for(var l=[],u=0;u
"),o&&(a+=ZO(o),null!=i&&(a+=" : ")),null!=i&&(a+=ZO(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});h(UO,ZI),UO.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var XO=l,jO=v,YO={min:jO(dx,"min"),max:jO(dx,"max"),average:jO(dx,"average")},qO=Ws({type:"marker",init:function(){this.markerGroupMap=R()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var o=this.type+"Model";e.eachSeries(function(t){var n=t[o];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});qO.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(xx(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,r=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new Du),u=_x(o,t,e);e.setData(u),xx(e.getData(),t,n),u.each(function(t){var i=u.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),u.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||r.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),Ns(function(t){t.markPoint=t.markPoint||{}}),UO.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var KO=function(t,e,o,r){var s=t.getData(),l=r.type;if(!y(r)&&("min"===l||"max"===l||"average"===l||"median"===l||null!=r.xAxis||null!=r.yAxis)){var u,h;if(null!=r.yAxis||null!=r.xAxis)u=null!=r.yAxis?"y":"x",e.getAxis(u),h=T(r.yAxis,r.xAxis);else{var c=px(r,s,e,t);u=c.valueDataDim,c.valueAxis,h=yx(s,u,l)}var d="x"===u?0:1,f=1-d,p=i(r),g={};p.type=null,p.coord=[],g.coord=[],p.coord[f]=-1/0,g.coord[f]=1/0;var m=o.get("precision");m>=0&&"number"==typeof h&&(h=+h.toFixed(Math.min(m,20))),p.coord[d]=g.coord[d]=h,r=[p,g,{type:l,valueIndex:r.valueIndex,value:h}]}return r=[fx(t,r[0]),fx(t,r[1]),a({},r[2])],r[2].type=r[2].type||"",n(r[2],r[0]),n(r[2],r[1]),r};qO.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),o=e.__from,a=e.__to;o.each(function(e){Ix(o,e,!0,t,i),Ix(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[o.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function o(e,i,o){var a=e.getItemModel(i);Ix(e,i,o,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[o?0:1],symbol:a.get("symbol",!0)||p[o?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,r=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(r)||l.set(r,new sf);this.group.add(u.group);var h=Tx(a,t,e),c=h.from,d=h.to,f=h.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");y(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),h.from.each(function(t){o(c,t,!0),o(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),u.updateData(f),h.line.eachItemGraphicEl(function(t,i){t.traverse(function(t){t.dataModel=e})}),u.__keep=!0,u.group.silent=e.get("silent")||t.get("silent")}}),Ns(function(t){t.markLine=t.markLine||{}}),UO.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var $O=function(t,e,i,n){var a=fx(t,n[0]),r=fx(t,n[1]),s=T,l=a.coord,u=r.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),u[0]=s(u[0],1/0),u[1]=s(u[1],1/0);var h=o([{},a,r]);return h.coord=[a.coord,r.coord],h.x0=a.x,h.y0=a.y,h.x1=r.x,h.y1=r.y,h},JO=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];qO.extend({type:"markArea",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var o=f(JO,function(o){return Lx(n,e,o,t,i)});n.setItemLayout(e,o),n.getItemGraphicEl(e).setShape("points",o)})}},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(a)||l.set(a,{group:new tb});this.group.add(u.group),u.__keep=!0;var h=kx(o,t,e);e.setData(h),h.each(function(e){h.setItemLayout(e,f(JO,function(i){return Lx(h,e,i,t,n)})),h.setItemVisual(e,{color:s.getVisual("color")})}),h.diff(u.__data).add(function(t){var e=new pM({shape:{points:h.getItemLayout(t)}});h.setItemGraphicEl(t,e),u.group.add(e)}).update(function(t,i){var n=u.__data.getItemGraphicEl(i);Io(n,{shape:{points:h.getItemLayout(t)}},e,t),u.group.add(n),h.setItemGraphicEl(t,n)}).remove(function(t){var e=u.__data.getItemGraphicEl(t);u.group.remove(e)}).execute(),h.eachItemGraphicEl(function(t,i){var n=h.getItemModel(i),o=n.getModel("label"),a=n.getModel("emphasis.label"),s=h.getItemVisual(i,"color");t.useStyle(r(n.getModel("itemStyle").getItemStyle(),{fill:Yt(s,.4),stroke:s})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),go(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:s}),fo(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),Ns(function(t){t.markArea=t.markArea||{}});lI.registerSubTypeDefaulter("timeline",function(){return"slider"}),Es({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),r({currentIndex:i.option.currentIndex},t)}),Es({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var QO=lI.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){QO.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],n=t.axisType,o=this._names=[];if("category"===n){var a=[];d(e,function(t,e){var n,r=Li(t);w(t)?(n=i(t)).value=e:n=e,a.push(n),_(r)||null!=r&&!isNaN(r)||(r=""),o.push(r+"")}),e=a}var r={category:"ordinal",time:"time"}[n]||"number";(this._data=new vA([{name:"value",type:r}],this)).initData(e,o)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});h(QO.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}}),ZI);var tE=qI.extend({type:"timeline"}),eE=function(t,e,i,n){aD.call(this,t,e,i),this.type=n||"value",this.model=null};eE.prototype={constructor:eE,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(eE,aD);var iE=m,nE=d,oE=Math.PI;tE.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i,n){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var o=this._layout(t,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,t);t.formatTooltip=function(t){return ia(s.scale.getLabel(t))},nE(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](o,a,s,t)},this),this._renderAxisLabel(o,r,s,t),this._position(o,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),o=Ex(t,e);null==i||"auto"===i?i="horizontal"===n?o.y+o.height/2