自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学海无涯,行者无疆

专注于架构、设计、开发,侧重于综合运用与实战,所有内容均动手验证确认,不以讹传讹,欢迎评论、转发和私信。 每周更新一篇高质量原创文章,你的支持是创作的动力,记得添加关注~。 一起努力,遇见更好的自己。

  • 博客(219)
  • 收藏
  • 关注

原创 面向个人的时间管理系统——时光助手——记录点滴,见证成长

系统由来当下有众多的以时间管理为主题的手机APP和系统,侧重点大多在计划制定与日程安排。计划很重要,比计划更重要是行动,以及行动之后的复盘也不可忽视,而这一切的基础,就是计划的执行过程记录。在当今市场上,尽管众多时间管理工具和系统层出不穷,但在我尝试了众多产品之后,发现它们普遍存在一些不足之处,主要可以归纳为以下三个核心问题:1.执行跟踪的不足:现有的管理工具大多集中于任务的设定,而忽视了执行过程的记录与跟踪。这导致用户难以进行有效的复盘和总结。

2024-07-11 16:47:35 942

原创 一二三应用开发平台——代码生成(1)——整体介绍

当下,低代码与无代码的概念正炙手可热,市面上涌现了众多相关平台。客观而言,低代码开发平台确实通过配置化的方式显著提升了开发效率,降低了成本,并缩短了项目周期。同时,这种开发方式也降低了对开发人员的技能要求,所生成的代码更为标准化,有效减少了低级错误,间接提升了软件质量。然而,低代码开发并非是一个全新的概念,其历史可追溯至较早时期。在一个软件系统中,许多功能具有共性,这些功能可以通过抽象建模和标准化来简化开发流程。例如,单实体(如计量单位)对应单张数据表,展示和操作方式相对简单;

2025-03-31 08:00:00 474

原创 前端组件间接依赖版本升级后导致版本不兼容引发的血案——ERR_PACKAGE_PATH_NOT_EXPORTED No “exports” main defined in

先前分享了一篇因为前端组件版本使用^指定引发的不兼容问题博客,本以为问题已彻底解决,结果遇到了新的挑战。有小伙伴反馈一二三应用开发平台搭建开发环境的时候,按照操作手册,进行了最后一步,启动的时候会报错:我拿本地的开发环境测试正常,然后从Gitee上重新拉取搭建开发环境,复现了问题。

2025-03-25 10:41:10 558 7

原创 《吃掉那只青蛙》读书总结

提高个人生产力与效能的21条实用性方法,时间管理为主,兼顾其他各方面要素。作者形象地将处理工作中的难题,重要事项比喻成青蛙,优先处理重要的、高价值、高回报、难度高、复杂的任务,即“青蛙”。

2025-03-17 08:00:00 1191

原创 一二三应用开发平台——能力扩展:多数据源支持

随着项目规模的扩大,单一数据源已无法满足复杂业务需求,多数据源应运而生。MyBatis-Plus 的官网提供了两种多数据源扩展插件:开源生态的 dynamic-datasource 和 企业级生态的 mybatis-mate。这里遵循开源免费的原则,选择前者dynamic-datasource,集成到平台中来。首先需要考虑的把依赖加到哪个模块下。数据源属于底层实现,平台的核心模块如system、support、entity-config,以及能力扩展模块,如mail、notification等,还有基于平

2025-03-10 10:13:16 814

原创 《拆掉思维的墙》读书总结

中国知名职业规划师古典老师的三本书可以组成一个系列,也可以称之为三部曲。第一部是《拆掉思维里的墙》,说的是认知的心法。第二部是《你的生命有什么可能》,承接第一部,说的是方法论。第三部是《跃迁》,则是系统论,站在更高的维度来看问题。从认知到方法论再到系统论看问题,这是人类认识事物、层层展开的认知过程。我是先看了最后一部《跃迁》,受益良多,掉头回来阅读这本《拆掉思维的墙》。开篇就提出了一个核心问题:人和人之间,为什么差距和差异会那么大,而且越来越大?

2025-03-07 11:33:03 362

原创 使用Jenkins实现Windows服务器下C#应用程序发布

在现代化的软件开发流程中,持续集成和持续部署(CI/CD)已经成为不可或缺的一部分。Jenkins作为一款开源的自动化运维工具,能够帮助我们实现这一目标。本文将详细介绍如何在Windows服务器下使用Jenkins来自动化发布C#应用程序。

2025-02-24 08:42:58 1230

原创 一二三应用开发平台业务支撑功能——内容模板功能设计与实现

在一些业务场景下,我们需要生成一些格式化的内容,典型应用场景是通知类消息,通知形式可能是短信、邮件、微信等。定义一些固化文本并设置格式,同时附加占位符,在系统运行期内,使用业务数据替换占位符,生成最终的内容。以服务器CPU使用率超限报警信息为例,内容模板如下:输入业务数据,替换掉占位符后,生成的最终消息示例如下:模板不仅仅需要支持纯文本,在一些业务场景下,如邮件通知,可以使用富文本,因此内容模板也需要支持富文本。下图中使用红色字体将CPU使用率进行显著标识。使用开发平台的实体配置功能,建立实体“内容模板

2025-02-17 08:05:24 662

原创 一二三应用开发平台业务支撑功能——自定义桌面功能方案、设计与实现

用户登录业务系统后,通常会进入一个系统首页,该页面通常被设计为用户的“桌面”或工作台。不同岗位角色关注的业务和信息各不相同。如果平台能够提供自定义配置功能,允许用户自行设置桌面展示的信息和布局,将显著提升办公效率和用户体验。该功能本质上是常见的Portal(门户)功能,其核心概念是通过模块化的组件(通常称为portlet,中文可译为组件)来构建个性化的用户界面。具体实现上,平台提供Portal功能的技术支持,通过以下步骤实现:1. 建立组件容器:提供一个可灵活配置布局的容器框架。2. 构建组件库:开发

2025-02-10 08:00:00 918

原创 Vue项目中组件版本号使用^宽泛设置引发的兼容性问题及解决方案

在Vue项目中,package.json中使用^符号指定版本号虽然方便,但也可能引发版本不兼容的问题。通过使用固定版本号、将pnpm-lock.yaml纳入Git管理、使用npm shrinkwrap这几种方式,可以有效管理项目依赖,避免构建失败和运行时错误。希望这些方法能帮助你在项目开发中更加顺利地管理依赖,提高开发效率。

2025-02-03 08:00:00 1309

原创 net web项目多环境配置的正确姿势

一套老的系统,基于.net技术栈的web系统,配置文件web.config中配置了包括数据库连接在内的诸多键值对,高达几十项。原先并没有对配置文件进行规范管理,源码中的配置仅对应开发测试环境。开发测试完成后,编译,将需要更新的文件手工复制到生产环境覆盖,如添加了新的配置项,同样需要手工修改生产服务器上的web.config文件。这种方式效率低下且容易出错。为了提高运维效率,使用Jenkins搭建了自动发布,这时候先前手工处理配置文件的模式也形成了制约。分析这是一个典型的多环境下配置文件的管理问题。

2025-01-27 10:06:09 854

原创 20年磨一剑:我的职业生涯回顾与经验教训分享

有幸入围了优快云的2024年度博客之星评选,这不仅是对我过去一年写作努力的认可,也是一个绝佳的机会,让我可以停下来,回顾和总结过去的职业生涯。一方面,从工作历程来看,我的职业生涯始于2005年,那一年我从大学毕业,怀揣着对软件行业的憧憬和热情,踏入了职场。最初,我在一家软件公司负责软件系统的实施、开发、设计以及产品研发。在那家公司,我度过了近十年的时光,从一个初出茅庐的新人,逐渐成长为团队负责人。这十年间,我参与了多个大型项目的开发,积累了丰富的实践经验,也见证了软件行业的快速发展和变革。

2025-01-20 15:13:52 1198

原创 一二三应用开发平台——能力扩展:内部通知、站内信后端实现

首先,出于职责单一的考虑,为内部通知单设了一个模块,命名为platform-boot-starter-notification,依赖于通用模块,在整体架构图中位置如下:模块内部结构如下:除了常规的mvc架构目录外,server目录存放了基于netty实现的websocket服务端。

2025-01-20 08:00:16 984

原创 一二三应用开发平台——能力扩展:内部通知、站内信整体设计及前端实现

作为平台,有个常用的功能是系统内部通知,或称为站内信,即系统内部生成并发送给用户的通知消息。这些通知消息是由系统的各个业务功能自动触发的。以订单发货为例,当一个订单完成发货后,系统会自动生成一条消息,并立即通知到下单的用户。这一通知的过程是通过消息推送机制实现的,确保了用户能够实时接收到相关信息。被通知的用户在其浏览器界面右下角,会弹出一个消息提醒,告知他们有新的消息待查看。同时,浏览器右上角的消息图标也会显示未读消息的数量,这样用户可以一目了然地知道有多少新消息等待他们查看及处理。技术方案。

2025-01-13 08:03:15 946

原创 模板方法设计模式应用案例

模板方法设计模式(Template Method Pattern)是一种行为设计模式,它在父类中定义一个算法的框架,允许子类在不改变算法结构的情况下重写算法的某些特定步骤。这种模式非常适合于那些有一定流程固定,但某些步骤可以变化的场景。// 模板方法,定义制作咖啡的流程// 钩子方法,子类可以覆盖这些方法来定义特定行为。

2025-01-06 08:03:10 538

原创 一二三应用开发平台——能力扩展:集成Quartz实现任务调度功能

软件系统中,往往存在一些周期性任务需要反复执行,以下是一些常见的业务需求:1. 单据流水号按日/月/年重置:单据流水号往往出于业务含义考虑,会包含一部分日期+若干位流水号,需要在新的一天、新的一个月、新的一年起始的时候,将初始值重置为1,如HZ202500001。2. 定时邮件通知:设定周期性任务,发送定期更新、提醒或营销邮件。3. 库存管理:定期检查库存水平,并触发补货或促销活动。4. 定期生成统计图表:通过调度任务,定期收集数据并生成所需的统计图表,包括日报、周报、月报等5. 自动解锁用户:出

2024-12-30 08:00:00 918

原创 适配器设计模式应用案例

将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。类结构型模式对象结构型模式两种模式最大的区别在于适配器和适配者之间的关系不同,类适配器模式中适配器和适配者是继承关系,对象适配器模式中适配器和适配者之间是关联关系。由于Java、C#等语言不支持多重类继承,因此类适配器的使用受到很多限制,例如如果目标抽象类Target不是接口,而是一个类,就无法使用类适配器;此外,如果适配者Adapter为最终(Final)类,也无法使用类适配器。在Java等面向对象编程语言中,大部分情况下我们使用的是

2024-12-23 08:00:00 908

原创 简单工厂到工厂模式的演进

定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式。

2024-12-16 08:00:00 571

原创 一二三应用开发平台——能力扩展:发送邮件

开发平台具备最简内核能力后,需要集成一些第三方功能组件进行能力扩展,例如邮件发送、任务调度等。邮件通知功能在业务系统中扮演着至关重要的角色,其用途广泛,不仅提高了工作效率,还增强了通信的便捷性和及时性。以下是邮件通知功能的几种常见用途:1. 提醒和警报: ○ 系统可以通过邮件提醒用户即将到期或变更的任务、会议、账单支付等。 ○ 向客户提供订单确认、发货通知、退货状态更新等信息。 ○ 提供客户反馈和投诉的自动回复,提升客户满意度。 ○ 在出现紧急情况或系统异常时,自动发送警报邮件给管理员或

2024-12-09 08:00:00 599

原创 uni-app打包为安卓APP的权限配置问题探索

基于uni-app开发移动端应用,发布为安卓应用安装包,上传到华为应用市场,自动检测存在诸多权限,需要说明使用场景才能通过审核上架。在权限配置与调整方面,遇到了不少问题与挑战,最终得以解决,花费了不少时间和精力,分享出来,让后来者少走一些弯路。

2024-12-02 08:26:58 2280 1

原创 一二三应用开发平台——集成Spring Security组件实现功能权限控制

选择Spring Security还是Apache Shiro取决于项目需求、团队熟悉度以及对性能的要求。如果你的项目已经在使用Spring框架,并且需要一个功能丰富且与Spring生态系统紧密集成的安全解决方案,Spring Security可能是更好的选择。如果你需要一个轻量级、易于配置且性能优异的安全框架,Apache Shiro可能更适合你的需求。简单来说,Apache Shiro更轻量级,配置简单,而Spring Security功能更强大,配置也相对更复杂一些,门槛较高。考虑到平台的扩展

2024-11-25 12:11:14 1039 1

原创 Logback实战指南:基础知识、实战应用及最佳实践全攻略

在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战:如何在有限的时间和精力下,高效地掌握并使用这些组件的核心功能,以实现投入产出最大化?针对这一问题,我基于二八原则,整理编写本文。首先,我会聚焦于组件的常见和核心功能,这些功能通常是我们在日常开发中频繁使用到的,也是构建稳定、高效系统的基石。通过深入了解这些核心功能的使用方法和最佳实践,我们可以确保在关键

2024-11-18 08:00:00 1127

原创 个人站点实现微信认证、扫码登录秘籍分享

近期,我开发了一款面向个人的时间管理系统,该系统成功覆盖了PC端与微信小程序端,为用户提供全方位的时间管理解决方案。为了简化用户操作,我设计了一个极简的注册流程,仅需账号密码即可完成注册。然而,即便如此,仍有部分用户因注册步骤而选择放弃使用。为进一步提升用户体验,避免注册环节成为用户流失的痛点,期望借助微信认证实现自动注册与登录。针对个人开发者或因其他原因无法顺利申请官方微信登录功能的系统,我摸索出一种“曲线救国”的实现方案。该方案可以帮助这类系统克服障碍,实现在PC端扫码登录,自动注册,从而全面提升用户

2024-11-11 08:00:00 805

原创 一二三应用开发平台自定义查询设计与实现系列3——通用化重构

前面我们以一个实体为目标对象,完成了功能开发与调试。在此基础上,我们对功能进行重构,使其成为平台的标准化、通用化的功能。

2024-11-04 08:46:41 963

原创 一二三应用开发平台自定义查询设计与实现系列2——查询方案功能实现

上面实现了自定义查询功能框架,从用户角度出发,有些条件组合可以形成特定的查询方案,对应着业务查询场景。诸多查询条件的组合,不能每次都让用户来设置,而是应该保存下来,下次可以直接使用或者在其基础上按需调整,也就是将查询方案持久化。

2024-10-28 08:00:05 1409

原创 Druid实战指南:基础知识、实战应用及最佳实践全攻略

在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战:如何在有限的时间和精力下,高效地掌握并使用这些组件的核心功能,以实现投入产出最大化?针对这一问题,我基于二八原则,整理编写本文。首先,我会聚焦于组件的常见和核心功能,这些功能通常是我们在日常开发中频繁使用到的,也是构建稳定、高效系统的基石。通过深入了解这些核心功能的使用方法和最佳实践,我们可以确保在关键

2024-10-24 13:36:11 1298

原创 一二三应用开发平台自定义查询设计与实现系列1——整体设计及框架实现

业务系统中的各菜单对应的实体列表,通常会预置部分关键的属性作为查询条件,来满足数据查询的需求,例如,通过姓名、账号、状态等查询用户信息,如下图:这种方式一般来说也够用,不过对于一些属性数量较多的实体,往往存在进一步需求。用户需要更多的查询条件以及更灵活的条件组合,来进行复杂的数据查询。该类需求往往来源于两方面,一是岗位不同,关注点不同,比如财务、采购、销售对于产品清单的查询维度是不同的;二是场景不同,同一岗位人员需要不同的查询条件组合来获取数据。同时,还需要将用户的查询条件组合保存下来形成查询方案,以

2024-10-21 08:00:00 1114

原创 数据权限的设计与实现系列13——前端筛选器组件Everright-filter集成多控制维度实现

至此,我们完成了一二三开发平台的数据权限的设计与实现,通过配置,可以灵活的进行多维度的数据权限控制,包括用户、组织机构、用户组以及业务实体属性,控制对象为各个业务实体,无耦合,无侵入。

2024-10-17 10:06:16 1164

原创 数据权限的设计与实现系列12——前端筛选器组件Everright-filter集成功能完善3

接下来重点攻坚数据字典。从数据权限规则配置角度,同样我们不使用多选,有需要时转换成多个条件就好了。官方文档中这块说得很少,除了上面常规属性外,增加了两个属性,multiple是否可以多选,multipleLimit,限制多选的最大数量,如下图:但是下拉的数据源哪来的,如何赋值呢?仔细观察上面例子,原先的操作符里放了Gender,看上去像是数据字典类型的编码。然后在API Conditions部分,就放了一个select的示例,啥也没说……

2024-10-14 08:06:32 975

原创 Nginx实战指南:基础知识、配置详解及最佳实践全攻略

在Java系统实现过程中,我们不可避免地会借助大量开源功能组件。然而,这些组件往往功能丰富且体系庞大,官方文档常常详尽至数百页。而在实际项目中,我们可能仅需使用其中的一小部分功能,这就造成了一个挑战:如何在有限的时间和精力下,高效地掌握并使用这些组件的核心功能,以实现投入产出最大化?针对这一问题,我基于二八原则,整理编写本文。首先,我会聚焦于组件的常见和核心功能,这些功能通常是我们在日常开发中频繁使用到的,也是构建稳定、高效系统的基石。通过深入了解这些核心功能的使用方法和最佳实践,我们可以确保在关键

2024-10-08 07:01:37 1521

原创 数据权限的设计与实现系列11——前端筛选器组件Everright-filter集成功能完善2

如何获取完整SQL片段此处遇到了一个棘手的问题。我们需要获取到完整的SQL片段,类似这种:((param_value = '10' and param_name like '%用户%' ) or (param_key like '%password%') )。但是MybatisPlus组件的条件构造器QueryWrapper拿不到这种完整的sql片段,而是将sql语句参数和值分开保存的,通过getSqlSegment可以获取到参数化的sql语句,通过getParamNameValuePairs可以获取

2024-09-30 07:59:04 859

原创 数据权限的设计与实现系列10——前端筛选器组件Everright-filter集成功能完善1

在框架开发阶段,我们实现了最简单的单组单条件的转换逻辑。接下来我们一步步来完善,先来进行结构性完善,让转换逻辑可以支持多组多条件的复杂场景。首先是单组两条件,通过循环遍历来实现条件拼接,实际也适用于两个以上条件,需要考虑组内各条件关系是或还是且。转换后规则如下:(param_value = ‘10’ and param_name like ‘% 用户 %’ )符合预期。

2024-09-23 08:00:00 1217

原创 数据权限的设计与实现系列9——前端筛选器组件Everright-filter集成框架开发2

至此,已完成了数据权限的整体框架开发,但也只是框架,各环节还有大量的工作需要完善,主要包括以下几点:1. 配置规则时需要增加用户、部门、角色等维度2. 将数据筛选器生成的各种场景下的复杂规则转换为 SQL 片段3. 读取平台运行时变量,替换掉预置的用户、部门等占位符

2024-09-18 08:00:00 1330

原创 通用接口开放平台设计与实现——(31)API服务线程安全问题确认与修复

在本系列的前面一篇博客评论中,有小伙伴指出,API服务存在线程安全问题:https://blog.youkuaiyun.com/seawaving/article/details/122905199今天来确认下,线程是否安全?如不安全,如何修复?

2024-09-16 14:45:41 489 2

原创 数据权限的设计与实现系列8——前端筛选器组件Everright-filter集成框架开发1

前面我们对筛选器组件进行了功能探索和技术验证,接下来就开始着手集成工作,融入一二三开发平台,打通前后端,最终让数据权限控制功能落地。整体集成工作比较复杂,我们遵循由易到难的原则,先搭建出完整框架,再具体完善各组成部分。‍。

2024-09-11 08:00:00 806

原创 数据权限的设计与实现系列7——前端筛选器组件Everright-filter用法说明

官方给了全局性的介绍和示例,不过到了具体使用环节,介绍就不是那么清楚明确了,往往是直接放 demo,需要去推测和揣测,然后动手验证。去百度了下,也没找到现成的对该组件的使用说明,得以开荒的方式探索了。‍。

2024-09-09 08:00:00 1240

原创 数据权限的设计与实现系列6——前端筛选器组件Everright-filter使用探索

1.API options该接口用于获取触发器和操作符的数据,通过调用该接口,获取可用的触发器和操作符。例如,获取可用的触发器选项,如文本、数字、日期等,以及每个触发器支持的操作符,如等于、不等于、大于、小于等。2.API conditions该接口用于获取字段值(如下拉、级联)的数据。通过调用该接口,可以获取下拉列表、级联选择器等字段值的数据。这些数据可以是静态的,事先定义好的选项列表,也可以是动态的,根据特定条件生成的选项列表。获取字段值的数据可以为筛选器的条件设置提供可选的值。

2024-09-04 10:02:11 1531

原创 数据权限的设计与实现系列5——前端筛选器组件Everright-filter介绍

Everright-filter 是一个通过用户界面轻松生成任何类型的查询语句,使得筛选和过滤数据变得轻而易举。提供多种 UI 界面,赋能不同的业务场景。‍注:官方文档中不少demo地址打不开或报错了。‍。

2024-09-02 08:11:00 863

原创 数据权限的设计与实现系列4——数据权限控制整体设计

在前面介绍的若依开发平台和基于MybatisPlus数据权限插件实现的的数据权限控制方案中,都预置了5种数据权限范围。先前分析过这种设计思路存在的一些问题,即对于数据权限的控制维度和实现思路基于部门维度,控制点放在角色上,会造成角色爆炸问题和权限扩大。

2024-08-28 10:39:15 1316 1

原创 FullCalendar日历组件集成系列11——颜色区分及解决新增事件重复问题

FullCalendar是一款备受欢迎的开源日历组件,以其强大的功能而著称。其基础功能不仅免费且开源,为开发者提供了极大的便利,仅有少量高级功能需要收费。然而,尽管该组件功能卓越,其文档却相对简洁,导致在集成过程中需要开发者自行摸索与探索,这无疑增加了不少学习和验证的时间成本。为此,本文通过日程管理系统的真实案例,手把手带你了解该组件的属性和功能,通过需求导向的方式,详细阐述FullCalendar组件的集成思路和实用解决方案。在介绍过程中,我们将重点关注集成要点和注意事项,力求帮助开发者在集成过程中少

2024-08-26 08:00:00 2081 6

日程管理时间管理任务管理FullCalendar集成实战Vue+FullCalendar简明版合订版

效果预览:https://meet.popsoft.tech/ 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件,则需要做大量的二次开发。 FullCalendar是一款备受欢迎的开源日历组件,以其强大的功能而著称。其基础功能不仅免费且开源,为开发者提供了极大的便利,仅有少量高级功能需要收费。然而,尽管该组件功能卓越,其文档却相对简洁,导致在集成过程中需要开发者自行摸索与探索,这无疑增加了不少学习和验证的时间成本。 为此,本文通过日程管理系统的真实案例,手把手带你了解该组件的属性和功能,通过需求导向的方式,详细阐述FullCalendar组件的集成思路和实用解决方案。 在介绍过程中,我们将重点关注集成要点和注意事项,力求帮助开发者在集成过程中少走弯路,提供有效的避坑指南,从而提升开发效率,更好地利用这款优秀的日历组件。 在过程版基础上进行二次整理和创作,使其更有条理性,去除摸索过程中的思路和方案,使其更简明

2024-07-17

日程管理时间管理任务管理FullCalendar集成实战Vue+FullCalendar过程版

效果预览:https://meet.popsoft.tech/ 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件,则需要做大量的二次开发。 FullCalendar是一款备受欢迎的开源日历组件,以其强大的功能而著称。其基础功能不仅免费且开源,为开发者提供了极大的便利,仅有少量高级功能需要收费。然而,尽管该组件功能卓越,其文档却相对简洁,导致在集成过程中需要开发者自行摸索与探索,这无疑增加了不少学习和验证的时间成本。 为此,本文通过日程管理系统的真实案例,手把手带你了解该组件的属性和功能,通过需求导向的方式,详细阐述FullCalendar组件的集成思路和实用解决方案。 在介绍过程中,我们将重点关注集成要点和注意事项,力求帮助开发者在集成过程中少走弯路,提供有效的避坑指南,从而提升开发效率,更好地利用这款优秀的日历组件。 环境Vue3+Element Plus+FullCalendar 6.1.11。

2024-07-06

一二三应用开发平台-企业级通用低代码开发平台V1.0,前后端分离架构,vue3+elementplus+SSM

平台名称:一二三开发平台 简介: 企业级通用开发平台,前后端分离架构,单工程,多模块,部署形态为单体应用。 前端基于vue3.2.47,element-plus 2.1.0,前端框架vue-element-plus-admin深度整合改造。后端SSM+MybatisPlus,使用SpringBoot 2.3.0。 重度使用MybatisPlus,包括主键策略、逻辑删除、乐观锁、自动填充、数据分页、CURD接口、条件构造器等。 当前版本完成了系统内核部分:组织机构、人员、角色、权限、数据字典、日志;低代码配置模块:模块、实体、模型、视图,可快速配置实体元数据,基于元数据生成entity、dao、service、controller、vo及前端vue页面。基于该平台可快速构建企业应用。 内含数据库初始化脚本;平台整体架构图;平台整体研发计划;系统开发环境搭建说明。 1.实现系统内核,打通前后端,系统能运转起来 2.实现低代码配置功能,这是后续开发的孵化器 3.基于低代码配置+高代码辅助实现系统管理模块 4.整合SpringSecurity框架,实现身份认证与权限控制

2023-04-28

使用vuedraggable实现拖拽式操作实战

Element UI 提供了大部分UI控件,但对于拖拽,确实是个短板,于是就需要额外的控件来补充了,即本文档的主角vuedraggable。 从实战角度,以低代码配置功能为例,说明vuedraggable的属性、方法、用法,以及使用过程中遇到的一些坑点及解决方案。 要点如下: group属性的要点 update和sort事件的差别 add事件如何获取数据 如何处理属性重复添加问题 不同列表间拖动group属性无效 实例: 某个业务实体,如用户管理,常见的菜单对应一个列表页面,顶部为页面级功能按钮,如新增、删除、导出等,中间为查询区域,可以放几个常用的查询条件,最下面则是查询结果,以表格形式展现行列数据。查询结果表格的行记录,最后一列放一些针对于该行数据的快捷按钮,如删除、编辑等。 这个配置功能,一方面涉及到元素的排序,如按钮的次序、查询条件的次序、查询结果中列的次序;另一方面涉及到列表间元素的移动,如将实体属性添加到查询列表或查询结果中。如采用传统模式,需要选中某个元素,点击左移、右移等按钮,既不直观,操作也繁琐。而采用拖拽式操作,所见即所得,用户体验大幅提升。

2023-03-08

java诊断与调优常用命令jmap、jstack、jstat使用实战.pdf

java应用运行过程中难免会出现问题,特别是在生产环境,发生异常或宕机情况,需要诊断与分析,定位原因,进行优化,避免下次再次出现问题。 虽然现在有很多可视化工具,使用起来比命令行更方便,但我们仍需要对基本的命令进行必要的了解。实际上,可视化工具,往往是基于这些基本命令,拿到数据后进行综合处理后输出的最终结果。 本文档从实战角度出发,介绍jps、jmap、jstack和jstat这四个命令的常用方式。 jps 作用:获取java进程号,是后续命令的基础。 当一台服务器运行多个java进程时,该命令默认只输出进程号和应用名,可能无法区分哪个是自己需要分析的对象,这时候可以附加参数 -l,显示完整路径。此外,附加参数-v,可显示jvm参数。 问题:windows环境下java进程存在,但执行jps无结果 原因:windows权限问题,在 Windows系统中,每个 java 进程启动之后都在 %TMP%/hsperfdata_${user} (${user}为当前登录用户名) 目录下建立一个以该 java 进程 pid 为文件名的文件,用以记录该 java 进程的一些信息。

2023-03-07

使用VUE自定义组件封装数据字典实战

软件系统中,会有一些成组的常量值,来描述业务实体的属性,如性别、证件类型、审批状态等。我们通常称之为数据字典,作为系统后台管理的一个独立功能,来维护字典类型以及对应的字典值。后端功能和实现都比较简单,没什么好说的,本文档重点要说的是前端的封装。 对于数据字典,前端展现往往有三种常用的形式,下拉列表、单选按钮组和复选框组,其中,最常用是下拉列表,这里就以下拉列表的实现为例来说明,其他两种类似,不重复描述。 直接使用select组件,是不是可以呢?答案是可以用,但用起来比较繁琐,需要在页面加载的时候,调用后端API接口拿数据,在data中定义存放字典数据的变量,并且一个实体编辑页面,使用到字典属性往往不止一个,三五个也比较常见,这时候,需要定义多个变量来存放字典项以及加载数据,开发工作量变大且容易出错。 那有没有办法让使用变得更方便呢?答案也简单,就是自定义封装一个组件来实现。我们的目标是传入一个数据字典的类型编码,组件内部调用后端API,完成数据的加载与存储,在选择项变化时,自动更新绑定的对应的业务实体的属性值。同时,在业务实体的编辑页面,也能自动绑定和显示已选择的字典项。

2023-03-07

扩展MyBatisPlus代码生成器实现自定义源码生成,可生成前端页面、vo对象、dto对象等代码

MyBatisPlus自带了一个代码生成器mybatis-plus-generator,可基于数据库库表,结合模板技术,自动生成程序源码,不过默认情况下,只支持Entity、Mapper、Service、Controller这些层次。如果想生成未预置的代码,如vo对象、前端vue页面以及其他自定义代码等,需要做一些定制和扩展来实现。 从使用角度而言,官方资料介绍得比较简要,要实际使用,仍然需要进行具体的尝试和摸索,包括必要时看下源码怎么处理的,才能发现一些限制和约束,最终理顺。 本文档提供了整体实现思路,具体过程,包括模板的定义、数据的注入、代码的生成,以及遇到的问题和解决方案。 原代码生成组件,默认会在最终生成文件名前,默认附加实体名前缀,例如实体名是User,VO.java.ftl会自动生成UserVO.java,这样没问题。但是对于前端页面,如list.vue,edit.vue,因为是分目录放实体,希望最终文件名不变,而不要附加前缀变成UserList.vue、UserEdit.vue。 需要自定义类,继承于官方,重写outputCustomFile方法,实现上述目的。

2023-03-07

软件系统规模估算方法论介绍-功能点分析法

本文不是泛泛的理论介绍,而是从实际应用角度出发,对功能点估算法进行介绍,加入了较多的评论和观点,具备实用价值。 章节目录如下:背景、概述、简介、基本概念、计算方法、延伸计算、优缺点、总结。 应用场景 1.作为软件公司,要研发一个新的产品,功能需求大概明确了,需要确定下研发成本、资源需求等。 2.作为企业,实施软件系统,需要与软件厂商商谈具体的工期与费用等。 3.作为软件公司或企业的管理方,需要对多个软件系统进行横向对比、衡量与评价等。 以上几个问题,实际都指向一个核心问题,即如何客观估算与衡量一个软件系统的规模。只有具备了软件规模的基本数据,与之相关的工作量(人天)、工期、报价、项目成本才能计算。 目前评估软件规模的方法主要分为两种:基于技术视角和基于业务视角。 基于技术视角的方法是从开发者角度出发,如:基于软件源代码行、数据库表、函数数量等。 基于业务视角的方法是从用户角度出发,与软件开发技术无关,如:功能点、故事点、用例点、对象点等。 基于技术视角的评估方法更多地局限于软件开发团队内部,由经验丰富的技术人员估算,经常也被称之为专家估算法。这种估算法标准很难量化和达成一致,不同

2023-02-24

基于uniapp技术框架的微信小程序汇率换算完整源码

【说明】 这是使用uniapp技术框架实现的一个微信小程序,同时对头条小程序做了适配,通过了微信和头条审核并上架。业务功能相对简单,但整体框架完整,包括布局、页签、本地存储、常量、权限、自动更新、分享等。可直接基于本框架开发新的小程序,也可以将其作为学习资料,可减少大量框架方面的实现和调试工作。实现效果可使用微信搜索“小易汇率查询”(后端服务已停运,因此页面未加载数据正常)。 注:汇率数据是后端服务调用了阿里api服务市场的汇率接口,生成json数据,未包含在本源码内。 【业务功能】 本应用提供汇率查询与货币兑换功能,汇率数据准实时更新,主要包含四个页签: 【常用】:精选人民币、美元、欧元、日元、港币、新台币,韩元,英镑,加元,印度卢比等二十多个国家和地区主要货币,进行双向兑换及自定义汇率,可将关注的货币加入收藏。 【收藏】:快速浏览收藏的多种货币组合,实时掌握最新汇率。 【大全】:提供全球一百三十余种货币之间汇率查询,支持智能匹配搜索功能,可将支持的货币加入收藏,同时支持金、银、钯、铂贵金属与货币之间汇率查询。 【分享】:将本应用分享给微信好友、微信朋友圈、QQ好友、QQ空间。

2023-02-21

word、excel文档内容自动化更新技术方案

生产、研发业务上往往使用大量word和excel文档来作为资料载体,如操作规程、控制手册、卡片……,这些文档会反复使用到一些设备、工艺等参数数据。参数属性主要是名称、编码、正常范围、报警上下限、单位等,这些参数对应的属性值,是会发生变化的。 文档中使用参数的地方,中文的表达方式多种多样,人来阅读文档没啥问题。但是引用参数的文档,实际没有存在“物理”上的关联关系。当参数属性值调整时,需要更新相应的文档,这时候就出现问题了。因为没有关联关系,没有技术手段自动识别,只能人工一点点改文档,这工作量是相当大,找到需要修改的地方就不容易,并且很容易发生漏改、误改问题,从而导致不一致的问题。 解决该问题,常见的方案是通过软件系统来实现,软件系统实现,这是一个模板技术的应用场景。建立基础数据,整理文档模板,自动化替换,并引入全文搜索技术。 通过软件系统解决有诸多优点,比如使用简单、管理规范、可扩展性高。但不得不说,软件系统也有一些缺点,比如成本高,交付周期比较长。上面提到,软件系统是常见方案,但放到特定的背景下未必是最优方案。这里说一种轻量级的解决方案,即通过office自身功能来实现。

2023-02-21

空空如也

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

TA关注的人

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