- 博客(37)
- 收藏
- 关注
原创 踩坑mybaits plus @Param(Constants.WRAPPER) QueryWrapper 的${ew.customSqlSegment}衔接and 查询条件错误
摘要:在使用MyBatis-Plus时,因在Service层添加orderByDesc排序导致查询报错。排查发现mapper.xml中同时使用了${ew.customSqlSegment}和额外的手写条件拼接,当QueryWrapper包含排序时会引发语法错误。解决方案是将所有查询条件统一移到QueryWrapper中,删除mapper.xml中的手动拼接部分,并移除@Param参数。最终在ServiceImpl中通过queryWrapper.in()添加条件,问题解决。关键点:避免混合使用${ew.cus
2026-01-23 17:00:59
218
原创 jeecg boot 3.2.0 用户token刷新在线用户显示问题
摘要:分析Jeecg框架中在线用户管理中"admin(我)"标识消失的问题。原因是前端通过token判断当前用户,而后端在身份认证时会刷新token值导致前后端token不一致。文章提出三种解决方案:1)通过响应头返回新token;2)使用WebSocket推送新token;3)在接口中返回redis键名进行比较。最终采用第三种方案,修改在线用户列表接口返回tokenKey,前端通过拼接前缀比较键名而非token值,解决了标识消失问题。该方案实现简单且有效保证了用户标识的稳定性。
2026-01-19 17:21:27
424
原创 mysql 5.6.50,5.7 版本 索引碎片化导致服务器cpu骤增问题
摘要:作者在修改200万数据表的字段类型和名称后,遭遇服务器CPU骤增问题。通过调整MySQL配置参数(如增大缓存池大小)、优化Job处理逻辑(分批处理数据、增加延时)、设置合理的消费者并发数,并处理索引碎片问题(使用OPTIMIZE TABLE和ANALYZE TABLE命令)。尽管采取了这些措施,修改后CPU占用仍从4.6%升至99%,目前正在等待观察优化后的定时任务执行效果。
2026-01-15 17:54:16
514
原创 ant-design-vue 2.0 a-table 中实现特殊行样式,选中样式,鼠标悬浮样式不一样
摘要:本文介绍了两种在a-table中实现行样式自定义的方法。第一种方法通过rowClassName属性根据数据状态返回不同class,配合less样式实现选中和悬浮效果,需使用/deep/穿透样式。第二种方法针对多级表格的特殊情况,直接定义行hover样式。两种方法都强调了样式穿透的必要性,并展示了如何通过条件判断和CSS实现不同状态行的视觉区分。
2026-01-13 13:10:53
301
原创 Mybaits plus 使用QueryWrapper在ne判断的时候字段包含null查询不准确
【代码】Mybaits plus 使用QueryWrapper在ne判断的时候字段包含null查询不准确。
2026-01-13 11:05:50
80
原创 jeecg boot 路由缓存失效问题
本文针对JEECG框架中首页非缓存页面导致其他缓存页面失效的问题,提出了两种解决方案。通过分析TableLayout.vue组件,发现路由监听中对首页强制刷新是问题根源。第一种方案是将首页改为缓存页面;第二种方案采用事件总线机制,通过$bus事件通知首页刷新而非强制刷新,从而避免影响其他缓存页面。文中详细展示了修改后的关键代码,包括事件监听和销毁处理,既保持了首页的非缓存特性,又解决了缓存页面失效问题。该方法有效解决了特定场景下的路由缓存问题,为类似问题提供了参考思路。
2026-01-07 11:11:50
871
原创 vue2 实现数字滚动特效
本文介绍了如何在Vue组件中实现数字滚动动画效果。通过封装MoneyCard组件,使用setInterval定时器实现平滑递增的数字动画,步长根据目标值动态计算以保证动画速度均匀。组件包含国际化支持、单位自动转换(万/W/triệu)和内存管理(组件销毁时清理定时器)。使用示例展示了多种数据卡片的应用场景,包括日/月支付次数、金额、用水量等统计数据的动态展示。该方案适用于JeecgBoot3.2.0前端项目,结合j-ellipsis实现数字缩略显示。
2026-01-06 16:58:31
365
原创 JEECG BOOT 3.2.0版本路由失效问题
文章摘要:路由失效问题分析及解决方案。第一种失效原因是页面名称与菜单路由名称不一致,需修改页面中的export name保持一致;第二种失效发生在点击非缓存页面首页时,缓存页面会失效,而其他非缓存页面不受影响。寻求技术解决方案。(150字)
2026-01-06 16:40:51
198
原创 ant-design-vue 1.x版本自定义可拖拽弹框
本文介绍了为Ant Design Vue模态框添加拖拽功能的实现方案。通过自定义指令v-dialog-drag,解决了原生组件不支持拖拽的问题。方案分为PC端和移动端适配:PC端使用mousedown/mousemove事件实现拖拽,移动端则基于touch事件处理。核心代码包括位置计算、边界检测和事件监听管理,确保弹窗不会超出视口范围。实现中还考虑了全屏模式禁用拖拽、百分比/像素单位转换等细节。该方案通过Vue指令方式封装,可便捷地在项目中复用,提升了用户交互体验。
2025-12-30 12:03:31
317
原创 ant-design-vue 1.x版本 自定义的拖拽a-modal,在打开时候告警
摘要:本文讨论了一个关于aria-hidden属性的无障碍访问警告问题。当模态框(ant-modal)中包含带有aria-hidden="true"但可聚焦的div元素时,会导致辅助技术用户无法感知焦点。虽然通过CSS设置visibility:hidden或display:none可以消除警告,但这会破坏模态框的焦点管理功能。作者寻求既能解决警告问题,又能保留模态框焦点功能的两全方案。建议的解决方向包括:使用inert属性替代aria-hidden、调整焦点管理策略或探索其他无障碍兼容方
2025-12-30 11:46:50
288
原创 ant desgin vue2.0 a-textarea实现回车不换行
文章摘要:本文解决了a-textarea组件默认回车触发查询的问题。通过在组件中添加@pressEnter="$event.preventDefault()"事件监听,成功阻止了回车键的默认查询行为。同时指出该文本域不需要手动换行功能,内容会自动换行。示例代码展示了如何在一个响应式布局的表单项中实现这一功能,并设置了自动调整大小的属性(minRows:2,maxRows:3)以及清除按钮。该解决方案适用于需要批量输入但需禁用回车查询的场景。
2025-12-26 10:46:06
216
原创 Mybaits 使用过程中mapper.xml foreach List<String[]>的时候报错
摘要:本文分析了MyBatis中#{}和${}的核心区别,解释了为何在动态SQL中使用#{}会报错。#{}采用预编译参数占位符,安全但只能替换参数值;${}直接拼接SQL,存在注入风险但支持动态语法。针对rangeItem参数未找到的问题,给出两种解决方案:1)使用${}直接拼接(需注意注入风险);2)将列表元素封装为对象后使用#{}安全调用。最后强调应根据场景选择合适方式,动态语法用${}需手动过滤,普通参数优先使用#{}。
2025-12-26 10:03:52
935
原创 JEECG BOOT 3.2.0版本大批量导出研究
本文提出了一种优化Jeecg框架大批量多字段Excel导出的解决方案。通过扩展原有的ExcelBatchExportServer功能,新增CustomBigDataExcelView视图类,实现多线程并行处理数据导出。核心改进包括:1) 采用线程池并发查询数据,提升查询效率;2) 使用阻塞队列实现生产者和消费者模式,确保数据安全传输;3) 支持自定义导出字段,优化内存管理。该方案显著提高了大数据量(数千至数万条记录)的导出性能,同时保持了系统的稳定性和可靠性。代码实现包含线程调度、队列管理、异常处理等关键逻
2025-11-18 09:37:42
108
原创 jeecg boot vue2 实现国际化 vue-i18n注意事项
vue2 使用ant-desgin-vue中的国际语言化组件实现它内置组件的默认国际语言化,然后使用vue-i18n实现页面其他数据的语言国际化
2025-04-22 16:45:28
583
原创 ant desgin vue a-table 嵌入子表格,子表格实现分页功能,以及只能展示一个展开项
ant desgin vue a-table 嵌入子表格,子表格实现分页功能,以及只能展示一个展开项
2025-04-15 14:26:10
458
原创 记一个使用ant desgin vue 2.0 a-table slots失效bug
在使用slots 去自定义标题的时候,发现slots里面的内容一直失效,后来发现是因为。columns中的这一列的title没有去掉,去掉就正常了。
2025-04-15 14:17:18
296
原创 ant desgin vue2 使用 a-select a-tree-select 实现根据字母和汉字筛选
主要增加show-search 开启搜索功能,然后增加filter-option 传入筛选的方法,返回一个筛选后的数组。主要增加show-search 开启搜索功能,然后增加filter-option 传入筛选的方法,返回一个筛选后的数组。这个是筛选逻辑首先输入汉字匹配包含的,然后是输入字母就判断是拼音首字母的任意组合。我这个写的是公共方法,调用的时候使用import导入,然后再method中添加方法。首先我们需要引入一个js库,来实现汉字与字母的匹配。然后可以做出优化将公共部分移出来。
2025-04-14 17:41:18
550
原创 解决jeecg boot vue2 token过期后多次刷新页面问题
最近在使用jeecg boot vue2的时候遇到了一个问题就是我token过期后页面会刷新两次,打开控制台发现是因为调用了两次logout方法。找到jeecg boot的logout的实现类中的logout,在user.js中定义一个全局变量用来报错是否退出。
2025-04-09 11:19:35
315
原创 jeecg boot vue2版本表单中使用a-silder后报错 Invalid prop: type check failed for prop “value“. Expected Number
问题排查首先在每一个用到a-silder中的值的代码中去添加打印语句,发现是因为postAction提交请求后将请求数据体中的数值类型转化为了字符串类型,源码如下。点击getSign跳转到对应的实现方法,中的mergeObject将请求参数中的数值类型转化为了字符串类型。
2025-04-08 13:38:17
292
原创 积木报表使用时候发布到linux环境部署nginx代理后静态资源访问失效?痛苦半天终于找到原因
因为nginx配置了默认的静态资源路径所以在访问的时候不会被正确的代理,注释掉就好了。
2025-03-03 14:16:03
551
原创 jeecg boot在优化前端打包以及js加载时间的时候遇到chunk.js文件过多导致浏览器在加载的时候报错net::ERR_HTTP2_SERVER_REFUSED_STREAM
jeecg boot在优化前端打包以及js加载时间的时候遇到chunk.js文件过多导致浏览器在加载的时候报错net::ERR_HTTP2_SERVER_REFUSED_STREAM
2024-04-23 17:39:30
757
1
原创 在使用mysqlbinlog指令的时候报错mysqlbinlog: [ERROR] unknown variable ‘default-character-set=utf8mb4‘
mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4'
2024-04-16 14:56:01
2052
原创 ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘
linux mysql终端连接报错ERROR 2002 (HY000)解决
2024-04-16 14:51:11
359
1
原创 解决一个使用QueryWrapper.apply使用FIND_IN_SET的列名是字符串无法查询到结果的问题
解决一个使用QueryWrapper.apply使用FIND_IN_SET的列名是字符串无法查询到结果的问题
2024-03-27 11:16:13
1149
2
原创 QueryWrapper 同一个QueryWrapper对象重复给一个字段赋值,不会覆盖只会在sql后面增加and条件
本意是想查询最新的一条is_min_guarantee为1和is_min_guarantee为0的数据,其实在测试运行中发现生成的sql语句第一个是正常的,1.在重新创建一个QueryWrapper,当然这样使用的话,会导致对象创建多了一个的情况,这里的代码我就忽略,直接上第二种方法的代码。发现第二个就有问题了,出现了is_min_guarantee = 1 and is_min_guarantee = 0的情况。方法,将之前的条件清空,然后输入新的查询条件。要想解决这个问题有两种方法。
2024-03-12 11:28:08
1473
原创 VUE WEB端如何防止用户打开调试模式(F12)
摘要:本文介绍了两种防止网页调试的方法。第一种通过比较屏幕与窗口宽高差检测调试工具,使用setTimeout延时200ms获取准确值,当差值超过200时跳转空白页。第二种通过禁用右键菜单和拦截F12按键事件阻止调试,触发时弹出警告提示。文中分析了两个bug:1.快速打开调试工具时初始宽高相同;2.网址加载前打开调试工具可能导致获取值不准确。解决方案是延时检测并改用screen宽高属性,同时处理了CSS对内部尺寸的影响。
2024-03-11 10:09:16
3182
1
原创 vue viser g2 v-chart 环状图文档未提到的点
在文档中根本找不到对应的点击事件方法,起初我用@click,后来我使用,原生js,document去监听canvas里面的div,两种方法都无效。后来我也是在git中找到了对应的issue。抱着试一试的心态发现有用!今天在ant desgin vue项目中使用v-chart做环形图的时候遇到了好多问题,viser 官方文档里面根本找不到想要的答案。我进入他的git网址之后才在issue里面找到了修改的方法。文档实例中color一栏使用的就是item,默认的颜色变化。问题1:我想修改环形图的颜色。
2024-01-18 11:35:29
680
原创 线上websocket连接failed问题
本地连接websocket都可以连接成功,但是发布到线上就一直报错连接失败,先从服务器安全组检查起,看安全组是否添加。如果以上都有了,那么再看nginx部署你关于wss,websocket的接口转发里面有没有添加请求头。使用sudo netstat -tuln | grep 443 查看是否含有443。#http升级会websocket需要添加的请求头。使用 sudo iptables -L -n命令查看防火墙配置。,然后检查服务器防火墙是否添加443端口。查看防火墙有443配置后。
2023-11-20 18:18:43
1791
原创 ant desgin vue 在使用a-table组件的时候rowSelection中selectedRowKeys和selectedRows在翻页后出现的问题
问题:selectedRowKeys的值不会受到翻页的影响,selectedRows只记录当前页面所选中的记录。然后再onChange中可以这样使用。
2023-11-17 11:45:43
1511
原创 uniapp cream使用cover-image在开发者工具看的到,真机调试看不到问题
在网上找了半天说是将cover-image的样式设置visibility: visible!important;运行之后还是没有效果。cream 中使用cover-image时如果src用的是矢量图(svg格式的话)运行到真机就会看不到图片。我开发自定一扫一扫功能的时候遇到这样一个问题,在这里记录一下。后来我将图片格式换位png就完美解决了这个问题。
2023-07-26 10:00:41
686
原创 linux定时任务执行脚本后没有效果, 日志报错ORPHAN (no passwd entry)
然后再你的crontab -e 中将定时任务命令前面添加 . /etc/profile;/bin/sh 使环境变量生效。使用cat /var/log/cron 发现日志报错ORPHAN (no passwd entry)我的shell脚本遇到了一些问题,直接执行shell命令是没有问题的但是用定时任务却始终没有效果。然后使用 service crond restart 重新启动crontab服务即可。1.需要所有命令都使用绝对路径,不能使用相对路径,可能相对路径识别不到。2.需要再你的sh文件中添加。
2023-05-05 10:00:46
1555
原创 uniapp微信小程序端如何实现在元素可视化的时候开启动画
uniapp做微信小程序出现Cannot use 'in' operator to search for 'requestAnimationFrame' in undefined的问题解决(可视化元素动画播放)
2023-03-29 08:42:02
1416
3
原创 uniapp canvas 画图失败
绘制海报过程中微信开发工具报错所canvas最好使用2d,然后我使用2d后一直画图失败,error也监听不到报错,这个为题一直折磨了我好久。
2022-11-18 09:13:47
2164
1
原创 uni-popup快速点击卡死现象
问题:快速点击运行了多个setTimeout,导致页面卡死!解决办法:找到uni-popup.vue 文件将里面的代码。
2022-08-02 17:47:38
1227
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅