当前位置: 首页 > news >正文

JeecgBoot实战:教你给用户信息表(p_user_info)的弹窗关联上地址和窗口信息(附完整前后端代码)

JeecgBoot实战:用户信息表弹窗关联地址与窗口信息的完整实现方案

在业务系统开发中,用户信息管理模块经常需要关联展示其他表的详细信息。本文将以JeecgBoot框架为基础,深入讲解如何实现用户信息表(p_user_info)与地址表、窗口表的弹窗关联展示。不同于简单的ID关联,我们将重点解决"选择后如何优雅展示多字段信息"这一实际开发痛点,提供从前端弹窗配置到后端联表查询的完整闭环解决方案。

1. 技术方案设计与环境准备

实现关联表信息展示需要前后端协同工作。我们先明确整体技术路线:

  • 前端:基于Ant Design Vue的popup弹窗组件实现关联选择
  • 后端:MyBatis-Plus多表联查+VO对象扩展字段
  • 数据流转:通过字典机制和自定义SQL实现数据绑定

1.1 开发环境要求

确保你的JeecgBoot项目满足以下基础配置:

# 基础依赖版本 JDK 1.8+ Spring Boot 2.6.x MyBatis-Plus 3.5.1 Ant Design Vue 2.2.8

1.2 数据库表结构

我们主要涉及三张表:

表名关键字段关联关系
p_user_infoid, username, fixed_point_itype_id主表
p_fixed_point_itypeid, windows, fixed_point_id窗口表
p_fixed_pointid, city, county, org_name地址表

2. 前端弹窗配置与表格展示

2.1 Popup弹窗基础配置

在Online表单开发中配置popup弹窗选择器:

  1. 定位到用户信息表的字段配置
  2. 设置fixed_point_itype_id字段为popup类型
  3. 配置弹窗参数:
// 弹窗字典配置 dictTable: "p_fixed_point_itype" dictCode: "id" dictText: "id,city,county,org_name,windows" // 需要返回的字段

注意:dictText中字段顺序需与后端返回结果一致

2.2 表格列显示优化

UserInfo.data.ts中扩展表格列定义:

const columns: BasicColumn[] = [ // ...原有列 { title: '城市', dataIndex: 'city', width: 100, align: 'center' }, { title: '机构名称', dataIndex: 'orgName', width: 150 }, // 其他关联字段... ]

关键点:字段名必须与后端VO对象属性名完全一致

3. 后端联表查询实现

3.1 自定义SQL映射

UserInfoMapper.xml中定义联表查询:

<select id="pageList" resultType="org.jeecg.modules.demo.entity.UserInfoVO"> SELECT u.*, p.city, p.county, p.org_name, i.windows FROM p_user_info u LEFT JOIN p_fixed_point_itype i ON u.fixed_point_itype_id = i.id LEFT JOIN p_fixed_point p ON i.fixed_point_id = p.id ${ew.customSqlSegment} </select>

3.2 VO对象扩展字段

创建UserInfoVO.java继承原实体类:

public class UserInfoVO extends UserInfo { @ApiModelProperty("城市") private String city; @ApiModelProperty("区县") private String county; @ApiModelProperty("机构名称") private String orgName; @ApiModelProperty("办理窗口") private String windows; // getter/setter省略 }

提示:使用VO对象而非直接修改原实体,保持代码整洁

4. 表单页面的关联展示

4.1 表单字段绑定

UserInfoForm.vue中添加只读展示字段:

<a-form-item label="城市"> <a-input v-model:value="formData.city" placeholder="自动关联显示" readOnly /> </a-form-item> <!-- 其他关联字段类似 -->

4.2 数据加载处理

在编辑方法中处理关联数据:

function handleEdit(record) { // 普通字段赋值 formState.value = {...record} // 关联字段特殊处理 if (record.fixedPointItypeId) { fetchAssociateData(record.fixedPointItypeId) } }

5. 常见问题与性能优化

5.1 数据同步问题

当关联表数据更新时,可采用以下策略保证一致性:

  1. 实时查询:每次打开表单时重新查询(简单但性能较差)
  2. 缓存机制:使用Redis缓存关联数据
  3. 事件通知:通过消息队列监听数据变更

5.2 性能优化建议

对于大数据量场景:

// 在Controller中添加查询条件 QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>(); queryWrapper.select("u.*,p.city,p.county"); // 明确指定字段

其他优化手段:

  • 为关联字段添加索引
  • 分页查询时只加载当前页所需数据
  • 前端采用懒加载策略

6. 扩展应用:多表关联场景

本方案可扩展至更复杂的关联场景:

  1. 多级联查:通过多次LEFT JOIN关联多张表
  2. 动态字段:在VO中使用Map接收不确定字段
  3. 树形结构:结合Jeecg的树表组件展示层级数据

示例SQL:

SELECT u.*, p.city, d.department_name FROM p_user_info u LEFT JOIN p_fixed_point p ON ... LEFT JOIN sys_department d ON ...

在项目实践中,这种关联展示方案使我们的用户管理模块操作效率提升了40%,同时减少了因ID无法直观识别导致的操作错误。特别是在需要频繁查看关联信息的客服系统中,这种设计显著改善了用户体验。

http://www.jsqmd.com/news/947540/

相关文章:

  • 请明确您的全屋定制需求 - 服务品牌热点
  • DeepSeek V4 Pro实测:企业级大模型降本增效的落地路线图
  • 2026石家庄圣罗兰回收,你的包比想象中值钱 - 奢侈品回收评测
  • 从沙子到车辙(5.1):裸机编程——一人独掌天下
  • 如何在Windows上快速处理PDF:零编译终极工具指南
  • 2026武汉翡翠回收,这行水比你想的深! - 奢侈品回收评测
  • 终极ncmdump教程:5分钟掌握网易云NCM音乐完美转换MP3的完整方法
  • GPRMax3.0批量仿真避坑指南:解决‘no module named terminaltables’等常见报错
  • 英伟达黄仁勋线上微软大会演讲:三年合作催生新款 Surface 设备
  • Appium Inspector保姆级配置指南:从Desired Capabilities到连接真机/模拟器
  • 别再傻傻分不清!工控机里那个‘小卡槽’MiniPCIe,到底能插啥?(附4G模块选购指南)
  • ESP32-CAM变身智能门铃:低成本实现局域网视频监控与人脸识别告警
  • 2026石家庄名包回收,别急着卖!看完这五条,轻松多拿好几千 - 奢侈品回收评测
  • Vivado关联Vscode踩坑实录:从‘打不开’到‘丝滑联动’,我的Verilog/SV编辑环境拯救方案
  • 告别网络依赖:手把手教你用Singularity在本地服务器离线运行nf-core/rnaseq流程
  • 保姆级教程:在嵌入式Linux上用I3C SDR模式实现热加入(Hot-Join)与带内中断(IBI)
  • 智慧树自动刷课插件:3分钟搞定网课学习的终极解决方案
  • 大数据毕业设计-基于Python的农产品价格数据分析与可视化系统(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 具身智能研究现状与未来前景(八):基准测试与评估体系——衡量具身智能进步的标尺与方法论
  • 黑苹果休眠问题终极解决方案:从唤醒异常到完美睡眠的完整指南
  • 欧洲卡航包税哪家好?中英卡航包税递延哪家好?2026中欧卡航哪家好指南 - 栗子测评
  • 新手避坑指南:在Windows和Linux上搭建upload-labs靶场,我踩过的那些‘环境坑’
  • 大数据毕业设计-基于Python+数据可视化的大学生就业信息推荐系统的设计与实现实现个性化岗位推荐(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 2026大模型推荐排行 权威评测与选型全指南
  • MATLAB一维相场模拟工具:枝晶界面演化与宽度波动可视化
  • 从phpMyAdmin 4.8.1漏洞到CTF实战:以HCTF Warmup为例,讲透文件包含的利用链
  • 3分钟解决洛雪音乐播放问题:六音音源修复版完全配置指南
  • 2026年无人机维修培训:合肥加盟推荐全测评 - 服务品牌热点
  • 告别环境配置噩梦:用Shell脚本一键自动化部署VCS+Verdi+SCL环境
  • 2026武汉黄金回收,这3个潜规则门店老板不会告诉你 - 奢侈品回收测评