自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (5)
  • 问答 (5)
  • 收藏
  • 关注

原创 java 百万千万级别excel数据导出问题(解决导出慢和OutOfMemoryError内存溢出的问题)

业务场景由于很多业务需要导出数据库里的数据,一般我们导出的数据都是要给业务部门看的,他们也会拿到做一些数据统计,所以一般都是给他们导出Excel格式的数据文件,但是当我导出五十万条数据时遇到了两个问题:导出时一般使用POI工具包,这时很容易导致内存溢出导出时间很慢,很容易导致超时下面是直接导出时内存占用. 原因分析由于Java对象是封装型对象,所以内存中对象大小是实际数据的好几倍,所以50W条的数据,最少要有50W个对象,再加上我们可能使用map对象挥着JsonObject对其进行一些数据操

2021-03-19 21:20:24 9829

原创 Mysql数据库保存emoji等表情符号的问题

这里写自定义目录标题事由兼容问题升级步骤合理的创建标题,有助于目录的生成第一步,检查mysql版本,需要升级mysql版本为5.5.3+第二步,修改database、table和column字符集。第四步,重启mysql服务,然后检查字符集设置是否生效第五步,如果你是java项目,一定要检查mysql开发包版本,5.1.13+第六步,检查您的数据库连接配置文件事由做了一个存原因的表单,偏偏有好多人喜欢输入表情符号,导致总是报错,报错信息如下:java.sql.SQLException: Inc

2020-06-28 17:30:29 438

原创 Java 内存指令分析和内存泄漏的定位

前言虽然Java有很好的的内存管理,但是在进行开发的过程中,还是难免遇到内存方面的问题,例如:内存无缘无故增长,不释放;突然出现java.lang.OutOfMemoryError: Java heap space 内存溢出错误等。今天讲一下怎么对内存进行简单的分析和排查。Windows环境下windows 环境下我们可以用JDK自带的两个工具jconsole 和jvisualvm进行简单的分析,这两个工具都在JDK的bin目录下下面简单介绍一下如何使用,双击打开程序,左面会显示已经运行的Java

2020-05-26 23:52:30 1354

原创 MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6秒的优化

这里写目录标题事故现场解决方案提到的“回表查询”InnoDB的索引什么是回表查询怎么优化回表查询事故现场数据库使用的MySQL,有一个日志表,需要进行分页查询,于是很容易就想到了limit [offset偏移量] [count数量]这个查询方式,当我们偏移量比较小时,似乎是没什么问题SELECT * FROM t_log WHERE type = 1 LIMIT 5, 50查询时间:0...

2020-04-06 01:21:29 4246 11

原创 Java异步线程中调用Spring容器中Service和Dao的 Bean,以进行数据库和业务的操作

项目中用到了多线程,但是线程异步操作时无法调用Service层和Dao层的函数,进行数据库的读取,然后就想办法如何往线程中注入Service和Dao层的bean。

2020-04-04 21:43:08 3718

原创 MySQL 快速导入数据指令load Data 详解

介绍mysql快速导入数据指令load data

2023-04-13 21:50:34 5799 1

原创 小程序和H5中canvas卡顿的性能优化方向和实践

绘制的图形的数量和大小会影响canvas的性能,减少绘图次数,减少canvas接口调用次数图形数量过多,但是只刷新部分 可以使用局部渲染逻辑层和背景图层分离 可以使用分层渲染某些长时间的逻辑影响主线程的, 可以使用离屏渲染 和webworker 来解决问题禁用页面和容器的滚动。

2022-11-06 18:21:22 2600

原创 小程序canvas画画板签字版,touchmove时卡顿的问题(根本原因是因为vue语法中page.data导致视图层和逻辑层的频繁通讯导致)

因为要做一个画画板的功能,所以使用了canvas组件,一开始好多人说小程序canvas性能特别差,也没太注意,做出来之后确实有点卡,而且每一笔touchmove时间越长越卡,最终导致页面卡到无法使用。

2022-11-06 17:04:21 2853

原创 核酸系统架构设计

假如我来设计核算检测系统的架构。。。。我会使用消息队列 + 分库分表来最大程度提升系统的吞吐量。我会在使用消息队列中间件的时候,重点关注如何不丢失消息,消息系统如何做到高可用。我会使用分库分表中间件时,重点关注冷热分离,如何将数据异构到数据仓库。我会在政务云部署监控系统,提供基础运维监控,应用系统监控,业务监控的能力,当系统出现问题时,团队可以以最快的速度发现问题,并解决问题。可是,核酸系统是一个多方协作的系统,我们不仅需要和政府沟通,也需要和众多三方厂商协作。

2022-10-13 22:34:29 1809

原创 【Js canvas实现是否透明,抠图等功能原理】

透明背景转jpg格式后变黑我们先看demo,您可以狠狠地点击这里:png图片是否含有透明像素JS检测demo如果是不含透明色的PNG图片,则会提示不含透明;如果是,则提示含透明,如下截图:是否背景透明的检测检测原理是借助canvas的getImageData()方法,关于此方法具体API和使用,可以参见““像素点信息获取”这里的详细介绍。

2022-09-25 10:35:03 2767

原创 Linux服务器上tomcat进程突然终止(进程莫名消失)问题排查

Linux有一个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续运转,内核会挑选一个进程,将其杀掉,以释放内存,缓解内存不足情况,不过这种保护是有限的,不能完全的保护进程的运行。由于使用./catalina.sh start启动tomcat,启动后tomcat的父PID为1,因此不会由于shell断开而终止。由于运行tomcat的是个人的服务器,配置较低,因此出现内存不足的情况。方案2. 增加swap内存。

2022-09-16 15:39:49 3391

原创 raft(一致性算法)原理动画演示网站

raft作为分布式一致性算法中较为简单的实现,但是只是通过文字来学习还是非常的枯燥难懂,这里分享一个动画演示raft的网站,可以帮助我们来理解raft.

2022-07-17 13:02:07 621

原创 记录一个IDEA中使用GIT的严重BUG,导致测试分支合并到主分支,以及代码恢复解决方案

在做项目时遇到了一个问题,就是不知道什么时候把test分支合并到了master,导致花了好长时间去恢复master分支的代码,所以研究了一下,到底是什么原因导致的这个问题当我们在test分支时,通过pull拉取更新代码,这时候会有一个进度条进度条走完之前,我们想要去另一个分支看东西,点了checkout分支master,这时候我们切换到master分支pull动作走完,这时候会提示合并代码,这时候有两种情况这时候可能有的同学把代码提交到远程这将是一个很严重的问题下面是分支版本示意图

2022-06-25 11:38:36 4355 8

原创 使用Echarts将Excel数据转换成色彩地图HTML小工具

朋友有个需求想要把excel数据转换成地图分布图,而且想要动态修改数据生成不同时间段的数据,于是我就想办法给他做了个工具,下面是所有代码逻辑,很简单代码,结尾附带源码文件,只有一个html文件,很方便色彩地图 效果图1. 引入js组件<!-- 引入 echarts.js --> <script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script> <s

2022-03-25 23:25:48 1051

原创 conflunce设置浮动导航方法,提高效率

我们文档很长时,即使添加了目录,每次想要找到对应内容时,也需要回到文章的开头去找目录,而且目录很长,找起来就很麻烦,于是我就想起来,把目录变成浮动的,这样就不需要哦把页面翻来翻去,不用浪费时间在回到文章开头,提高读取文档的效率。

2022-03-17 15:14:44 2489

原创 mysql order by 在索引项存在varchar且被where限定常量时出现filesort分析

1.背景由于一个业务表越来越大,大概有550万。突然某天出现了慢查询13s+,排查下来,发现是因为order by 没有走索引,为什么,以及如何处理,请看接下来的分析1.1 表结构CREATE TABLE `test` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'row id',`content_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'content

2022-03-15 18:35:55 147

原创 如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数_JAVA

如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数_JAVA这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如【面试现场】如何判断一个数是否在40亿个整数中?【算法技巧】位运算装逼指南对于算法题还是有点信心的,,,,于是,发现了如下对话。20亿级别面试官:如果我给你 2GB 的内存,并且给你 20 亿个 int 型整数,让你来找出次数出现最多的数,你会怎么做?小秋:(嗯?怎么感觉和之前的那道判断一个数是否出现在这 40 亿个整数中有点一样?可是,如果还是采用 bitmap 算

2021-12-29 14:42:35 334

原创 转:【高并发、高性能、高可用】系统设计经验

软件开发通常会提到一个名词 “三高”,即高并发、高性能、高可用。具体的指标定义,如:高并发方面要求QPS 大于 10万;高性能方面要求请求延迟小于 100 ms;高可用方面要高于 99.99%。接下来,我们重点来介绍这 三高高并发我们使用 QPS(Queries Per Second,每秒查询率)来衡量系统承载能力。架构策略有哪些?1、负载均衡正所谓双拳难敌四手,高并发撑场面的首选方案就是集群化部署,一台服务器承载的QPS有限,多台服务器叠加效果就不一样了。如何将流量转发到服务器集群,这里面就

2021-12-19 11:19:50 423

原创 两次java线上服务器问题排查经历梳理

这里只是进行回忆和梳理了一下,因为很久之前的,所以没有截图,具体截图可以参考我之前写的《线上故障排查思路》那个文章1.GC问题排查频繁GC导致系统卡顿(1)现象: 服务器更新后,每到上班高峰期就出现卡顿情况(2)通过jinfo查看服务器jvm配置,jvm内存为4G,新生代和老年代都是2G,edgn 为1.6G s0 为0.2G(3)通过jstat查看gc情况,发现有频繁的fgc,大概半个小时一次(4)通过监控平台查看,发现35分钟一次,每次挥手500M左右(5)Jmap查看堆状态,最大的对象是

2021-12-12 23:12:00 609 1

原创 MYSQL 性能优化和sql调优----(3-1)基础概念理解图文理解

MYSQL调优之基础概念数据库索引介绍索引是什么索引有什么用,为什么要用?索引可能带来什么问题索引分类数据库索引关系模型数据库索引介绍索引是什么MySQL官方对索引的定义为:索引(Index) 是帮助MySQL高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。你可以简单理解为“排好序的数据结构”,以便能够快速查找。我们可以这么类比理解:数据库就是学校的图书馆,数据库里几十万条数据就是图书馆里几十万本书,索引就是图书管理员手上的分类目录手册,这个手册上只写了图书特征和这个特征的

2021-11-05 15:59:15 305

原创 Java底层实现逻辑AQS源代码流程图

主要演示一下根据源代码梳理的操作流程图,核心东西都在图里了就不再过多文字描述。获取锁过程下一步开始acquireQueued操作,这个方法中用了一个CAS去无线循环获取锁,其中用了LockSupport.park()进行等待唤醒。其中有两个操作的方法细节如下tryAcquire :执行不公平的 tryLock。 tryAcquire 在子类中实现,但两者都需要对 trylock 方法进行非公平尝试shouldParkAfterFailedAcquire() 检查和更新未能获取的节点的状

2021-10-30 17:39:43 284

原创 java方法上的synchronized到底锁的什么资源

synchronized锁的什么资源前言声明一个加synchronized的类执行代码测试结论前言我们都用过synchronized这个关键字,常见的使用方式是这样synchronized(资源){代码},这是显示的声明锁资源,很明显知道要竞争锁资源是什么。我们也知道在两个不通方法上架synchrinized关键字,这两个方法在不同线程中会互相等待,他们好像获取的是同一个资源,那这个锁资源是什么呢?是方法的引用obj::method?下面我们来验证一下声明一个加synchronized的类publ

2021-10-29 19:49:38 563

原创 推荐:大文件查找,快速扫描,图像分析并清理硬盘垃圾文件的绝佳好工具!

目录标题WizTree介绍——快速找出磁盘分区中大文件的免费工具演示使用方法大文件还有一些小文件,聚在一起的占用比例大的文件类型我们的电脑用的时间久了,就会出现磁盘越来越满,但是又很难找不到什么文件占得这么多的磁盘,安装的软件越来越多就很难排查垃圾文件和无用的文件。于是我找到这个软件,用了一下感觉还不错,有很多功能,多维度分析和发现垃圾文件。可以快速查看文件分类占用大小,目录占用大小,最主要的是扫描速度快,100G硬盘10S扫完。此软件是免费的,下面是下载链接官网链接 https://wiztree

2021-10-27 20:38:00 9172

原创 JAVA 线上故障排查思路,从 CPU、磁盘、内存、网络到GC

服务器问题排查步骤一 、cpu使用情况1. top查看总体的系统硬件使用情况2. vmstat 查看cpu3. jstat分析频繁gc二、 内存使用情况1. free 查看内存使用情况2 .使用JMAP定位代码内存泄漏三、 硬盘空间使用情况1. df -lh 查看磁盘的使用情况2. du -h --max-depth=1 查看当前目录中文件和文件夹的大小3.iostat 查看磁盘io情况4. lsof -p pid查看文件读取情况四、网络使用情况1. netstat 查看tcp等连接情况2. teln

2021-10-27 19:10:30 4822 3

原创 记一次线上tomcat服务器运行正常但是无响应问题排查

事故现象最近一段时间,请假系统每隔几天就会出现服务器无响应情况,访问URL后转半天,然后就显示请求失败。出现大量NGINX请求超时。重启服务器后业务又恢复正常。问题排查首先查看了下Tomcat是否宕机查看进程ps指令查看进程存在,说明Tomcat并没有挂掉查看Tomcat日志cat和location日志定格,新的请求并没有产生日志查看CPU和内存top指令查看dump 堆快照 堆内存显示正常,线程未出现死锁分析NGINX网页显示NGINX超时,说明NGINX是通的,可以正常访问,但是

2021-10-25 14:27:43 3799

原创 Java 可重入锁和不可重入锁理解

什么是可重入锁和不可重入锁?首先我们从字面意思理解** 不可重入锁**,要理解可重入锁,我就想是不是有不可重入锁,果然还真有,从字面上理解就是:不可以重新进入锁,资料上的解释释就是同一个线程不能够重新获取同一个锁,这似乎也符合我们初步学习锁时的理解,lock()后只有unlock()后其他地方才能调用lock()成功。按照我们对锁的理解,第n行代码处调用了lock.lock() 方法,其他地方尝试调用lock.lock()都会被阻塞,等待第n行代码的锁被释放出现的问题就像下面的代码,如果使用不

2021-10-19 10:54:53 394

原创 使用Java实现给绳子或线段描颜色的算法,基于时间轴的考勤计算算法

场景 要实现一个绳子染色的功能的算法如图:一开始是一个红色线段,两端坐标分别为0和100,画上一个蓝色线段后,红色线段被截断,变成红蓝红三个线段,可以重复染色,后来者覆盖,有多种颜色可以染色线段集合是List ,要求尽可能用Java stream实现画新颜色的draw函数这里我直接用时间线段进行演示,画图逻辑类似实现方式如下声明一个存储时间线段的类,并声明时间的类型public class TeacherAttUnit { //考勤类型 enum AttType{ WEI_CH

2021-10-11 17:49:54 365

原创 docker容器使用--net=host获取容器IP,报错VM-XX:Name or Service not known

目录标题1. 背景和问题背景问题问题查找1. 背景和问题背景项目使用了Nacos微服务架构,由于项目运行需要启动注册中心、网关、认证中心、分布式事务中心等多个微服务,非常占用物理机内存和CPU,所以部署了一个开发服务器,把这些服务运行在服务器上,我只需要运行自己正在开发的的服务模块就可以,这样开发用的物理机一下就释放了很多内存,开发起来更顺畅。问题但是问题来了,docker容器自动分配的ip为172.17.0.0/24网段的ip,开发用的物理机和这个容器不在一个网段,根本没法访问到,这时候网上查到

2021-06-01 20:40:07 5734

原创 Java注解实现数据脱敏-与主业务解耦且权限管控关联

最近业务需求,为了防止用户手机号等敏感信息泄漏,需要把手机号进行密文处理,考虑到以下两个问题业务多逻辑复杂,挨个找代码改,太费劲,而且无法保证能全部找到并改完不同用户需求不通,部分用户需要查看手机号,部分用户不需要查看手机号脱敏跟主业务相关度低,不想代码侵入太严重想到这个逻辑跟转json日期格式化逻辑比较相似,于是上网查找实现方案,上网查询自定义注解和json处理自定义注解的相关信息,因为Spring MVC中默认使用的是Jackson工具包,这里查找Jackson相关资料,找到如下几个Jacks

2021-05-15 12:03:40 1108 2

原创 百度网盘 自定义分享密码 提取码

第一步: 打开对应文件页面在浏览器中打开百度云盘,看到需要分享的文件第二步 执行代码然后按 F12 打开开发者工具,切换至控制台(Console),将以下代码复制粘贴到控制台,然后回车;$("body").append('<script src="https://pannss.bdstatic.com/m-static/function-widget-1/pkg/share-all_c824560.js" ></script>');require("function-

2021-01-27 20:31:40 10214 2

原创 C# 学习笔记:RabbitMQ队列使用多线程提高消费吞吐率

一、引言使用工作队列的一个好处就是它能够并行的处理队列。如果堆积了很多任务,我们只需要添加更多的工作者(workers)就可以了,扩展很简单。本例使用多线程来创建多信道并绑定队列,达到多workers的目的。二、示例2.1、环境准备在NuGet上安装RabbitMQ.Client。2.2、工厂类添加一个工厂类RabbitMQFactory: /// <summary> /// 多路复用技术(Multiplexing)目的:为了避免创建多个TCP而造成系统资源的浪费和超

2021-01-08 16:41:57 1167

原创 C#队列学习笔记:RabbitMQ使用多线程提高消费吞吐率

一、引言 使用工作队列的一个好处就是它能够并行的处理队列。如果堆积了很多任务,我们只需要添加更多的工作者(workers)就可以了,扩展很简单。本例使用多线程来创建多信道并绑定队列,达到多workers的目的。 二、示例 2.1、环境准备 在NuGet上安装RabbitMQ.Client。 2.2、工厂类 添加一个工厂类RabbitMQFactory:/// <summary> /// 多路复用技术(Mu...

2021-01-08 16:35:40 992

原创 企业开发六大系统--MIS/MRP/ERP/OA/BPM/CMS

MIS(管理信息系统——Management Information System)系统 ,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。一个完整的MIS应包括:辅助决策系统(DSS)、工业控制系统(IPC)、办公自动化系统(OA)以及数据库、模型库、方法库、知识库和与上级机关及外界交换信息的接口。MRP(物料需求计划——Material Requirement Planning)是被设计并用于制造业库存管理信息处理的系统,它解决了如何实现制造业库存管理

2021-01-07 14:45:18 2458

原创 jacob调用中控考勤机事件监听实现

其他接口都可以正常调用,就事件监听一直没能成功,今天试了下成功坚挺到打卡机的事件消息,可以实现实时打卡,以下是几个关键的代码事件类SensorEvents .javapublic class SensorEvents { public void OnConnected(Variant[] arge){ System.out.println("当成功连接机器时触发该事件,无返回值===="); } public void OnDisConnected(Variant[] arge){ S

2021-01-03 15:17:36 945 7

原创 java项目没有挂但是所有线程停止运行,jstack和jmap等分析工具也无法使用

java项目使用jacob调用本地接口跟设备通讯项目没有挂但是所有线程停止运行,jconsole、jstack和jmap等分析工具也无法使用,只能通过jstack -F 指令强制打印线程信息,下面是打印的现成信息,目前没找到问题,后面找到后进行更新Microsoft Windows [版本 10.0.14393](c) 2016 Microsoft Corporation。保留所有权利。C:\Users\Administrator>jstack -F 10148Attaching to p

2020-12-25 14:00:06 770 1

原创 一次Jeesite升级JDK导致的错误:The absolute uri: http://java.sun.com/jsp/jstl/core

这里写目录标题场景升级步骤三级目录场景有个项目用的jeesite 1.0进行的开发,由于服务器要求JDK使用1.8的,而jeesite是JDK 1.7的,所以进行一下升级,但是升级过程中遇到了一些问题,今天记录一下升级步骤1.找到Eclipse的项目,在项目上右键三级目录...

2020-04-09 22:45:01 471

原创 SpringMVC中的RootWebApplicationContext与ServletWebApplicationContext区别

这里写目录标题官网解释代码中获取两个容器RootWebApplicationContext 以下简称RootContextServletWebApplicationContext 以下简称ServletContext官网解释我们在Spring MVC官方文档上可以看到两个容器有父子的关系,SpringMVC中两个WebApplicationContext的继承关系。RootContext会...

2020-04-04 23:44:06 825

原创 Spring集成RabbitMQ消息队列

准备工作:需要有一个RabbitMQ服务,如果是本地电脑,自行上官网下载并安装RabbitMQ软件,在rabbitmq安装之前,童鞋们需要安装erlang,因为rabbitmq是用erlang写的。1. maven配置除了spring常用的基础包外,我们还需要下面这个包<!--rabbitmq依赖 --><dependency> <groupId>or...

2019-11-13 18:38:44 286

原创 Spring框架 Task超简单实现定时器任务的步骤

项目中使用到了定时器,这里就写一下定时器的使用和配置方法,这里介绍的是Spring自带的task功能。 我的项目中一开始使用的是Quartz定时器,但是因为我感觉配置起来太麻烦,而且还需要quartz-*.*.*.jar开发包,不同的Spring框架版本还得找对应版本的quartz-*.*.*.jar,而且不同版本Quartz配置方式略有不同,这我就不再介绍了。下面直接介绍Spring Tas...

2019-10-17 16:14:34 528

原创 Elasticsearch 7.4(Windows 系统) 指定单独JDK版本

我用的最新版本Elasticsearch 7.4,下图是官网的介绍,说解压包里已经有最合适的jdk包了,我们只需要修改指向,让它启动时用这个包就行了,网上搜出了好多文章是修改"bin/elasticsearch",可能是因为他们是linux系统,我是用的windows系统,没生效,看了下修改了另一个文件"bin/elasticsearch-env.bat"文件,成功启动。修改bin/ela...

2019-09-12 12:02:15 9416 5

(亲测可用)本资源是mac 版12.0.22,有rpk文

本资源是mac 版12.0.22,有rpk文,可用于mac安装后使用 https://www.jianshu.com/p/527c59277406 https://www.likecs.com/show-914792.html https://blog.csdn.net/qq_35624642/article/details/83658050

2023-06-27

中控考勤机Java部分关键操作代码

自己总结的一套相对靠谱的中控考勤机二次开发控制代码,运行还算比较稳定,解决中控考勤机二次开发中遇到的内存问题,如果还是有问题,找厂家技术人员要最新的开发包,2.2.5.60之前的开发包都有点内存问题,代码是从项目中摘录的,所以需要你们自己整理一下

2022-06-18

Excel表格数据转echarts统计图-色彩地图疫情分布图

使用纯html绘制统计图,地图统计图,excel数据读取,前端页面, 朋友有个需求想要把excel数据转换成地图分布图,而且想要动态修改数据生成不同时间段的数据,于是我就想办法给他做了个工具

2022-03-25

AQS流程图.html

java锁AQS基础逻辑

2021-11-25

Java 所有字符串转UTF-8 万能工具类-GetEncode.java

不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

2020-04-04

多tab页面后台管理界面

多个tab页面,多窗口管理,可随意调整,整齐简洁的管理页面,简约风格,多种控件,集成时间选择,页面切换等多种插件

2017-09-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除