0


【二开】JeecgBoot-vue3二次开发 前端 扩展online表单js增强等

【二开】JeecgBoot-vue3二次开发 前端 扩展online表单js增强等

前因

由于jeecgBoot官方事件只支持这两个, 但是实际场景需要用到其它事件(比如列表加载之前 或 之后), 所以进行二开

二开可以参考官方相关文档

JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue3、TypeScript 等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。 是采用Vben实现的 JeecgBoot低代码平台的全新vue3版本。

表格 Table - Ant Design Vue (antdv.com)

最后有几个案例

步骤目录

第一步 从node_modules找到对应的jeecg online的包

第二步 二开代码 修改online目录下的js

第三步 清理缓存

第四步 启动 完成

注意: 每次重新install之后 记得重新走一遍流程

二开的代码 记得保存备份

对应这个

二开Online表单

打开对应的目录 RC_lkd7ynimmei5e2cdarb3gqjtui 是随机的

\node_modules.pnpm\registry.npmmirror.com+@jeecg+online@3.4.4-RC_lkd7ynimmei5e2cdarb3gqjtui\node_modules@jeecg\online

也可以在控制台找对应的目录

useListButton.js

可以修改Online列表每页条数默认值信息等

改完之后 清理一下缓存 clean:cache

pnpm.cmd run clean:cache

然后再重新启动

有些用 Unicode编码(\u开头) 所以可以通过转码工具转换 然后全局搜索

比如

查询 转码后是 \u67e5\u8be2

或者f12 找到元素特定的属性 ant-design:search-outlined 去全局搜索也可以

演示效果 改成 查询询

改完之后的效果

整理二开的方法

js增强扩展

增加事件


列表数据加载完成之后执行

js增强代码

  1. /**
  2. *列表数据加载完成之后 执行
  3. *
  4. */
  5. afterLoadData(that, list){
  6. console.info('afterLoadData 数据加载完成', that, list)
  7. }

js增强执行效果

如何二开

1 通过console定位到该文件

2 打开本地对应的这个文件进行二开

根据已知的事件找到对应的方法

全局搜 beforeEdit

举一反三 同理复制一个出来 改名 afterLoadData 定义方法

第二步 在哪个位置调用该方法

考虑在loadData成功之后进行调用

这里根据个人实际情况来决定

第三步 进行js增强


字段扩展参数增强

同理

1 定义方法 js增强

  1. /**
  2. * 字段扩展参数增强
  3. * js增强
  4. * @param tableColumns
  5. * @returns {Promise<void>|*}
  6. */
  7. onlineTableContext["tableColumnsExtend"] = (tableColumns) => {
  8. const onlEnhanceJS = onlineTableContext["EnhanceJS"];
  9. if (onlEnhanceJS && onlEnhanceJS["tableColumnsExtend"]) {
  10. return onlEnhanceJS["tableColumnsExtend"](onlineTableContext, tableColumns);
  11. } else {
  12. return Promise.resolve();
  13. }
  14. };

2 寻找切入点 (重要)

通过页面定位 通过接口拿到字段参数之后的处理方法

然后在合适的时机调用新定义的方法

3 清理缓存 重新启动项目 让代码生效

切记需要保存代码到其他地方 比如git

4 进行js增强

注: 方法间用逗号隔开

  1. /**
  2. *列表数据加载完成之后 执行
  3. *
  4. */
  5. afterLoadData(that, list){
  6. console.info('afterLoadData 数据加载完成', that, list)
  7. //list.records[0].code = 'AAAAAAAAAAAAAAAA'
  8. },
  9. /**
  10. * 列表字段扩展
  11. tableColumns 属性参考 https://3x.antdv.com/components/table-cn#Column
  12. *
  13. */
  14. tableColumnsExtend(that, tableColumns){
  15. console.info('tableColumnsExtend 列表字段扩展', that, tableColumns)
  16. tableColumns.forEach((item) => {
  17. switch (item.dataIndex){
  18. case 'name':
  19. //修改列宽度
  20. item.width = 400
  21. item.title = '动态修改字段标题'
  22. break
  23. default:
  24. item.width = 50
  25. break;
  26. }
  27. })
  28. }

5 查看效果



表单增强

将列表的上下文传到表单增强里

  1. //将 onlineTableContext 挂载到 全局window下
  2. window.onlineTableContext = onlineTableContext
  3. console.log("window.onlineTableContext", window.onlineTableContext);

表单js增强调用onlineTableContext 获取查询参数 并赋值给表单

  1. loaded(){
  2. console.info(window.onlineTableContext)
  3. console.info(window.onlineTableContext.queryParam)
  4. this.$nextTick(()=>{
  5. let text = '测试js增强设置默认值';
  6. if(this.isUpdate.value === true){
  7. text = '测试js增强修改表单值';
  8. }
  9. this.setFieldsValue({
  10. name: window.onlineTableContext.queryParam.name
  11. })
  12. })
  13. }

打印出来 在这里Target可以看到对应的属性 进行调用

标签: 前端 二开 jeecgboot

本文转载自: https://blog.csdn.net/G971005287W/article/details/131853437
版权归原作者 我是Superman丶 所有, 如有侵权,请联系我们删除。

“【二开】JeecgBoot-vue3二次开发 前端 扩展online表单js增强等”的评论:

还没有评论