jeecg填充自带的下拉框

本文介绍在Jeecg框架中如何将查询框转换为下拉筛选框,通过使用replace属性,可以轻松实现下拉数据的自定义,无需每次都增加数据字典,简化了开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在jeecg中的数据显示中 当query=‘true’ 会在表单顶端生成一个筛选框

  <t:dgCol title="姓名" field="realname" query="true" width="120"></t:dgCol>

如果要把它变成下拉框,自带的文档说明是需要连接数据字典,或者数据库表

在这里插入图片描述不可能每次做下拉数据,都不可能每次需要在后台加数据字典吧?
在这里插入图片描述
于是发现网上有说replace方法 这方法特隐蔽 文档都没仔细说明
在这里插入图片描述
用法是<t:dgCol title="年龄" field="age"query="true" replace ="五十周岁及以上_50,六十周岁及以上_60,全部_全部" width="120"></t:dgCol>
相当于实际上就是加个这个属性 replace ="显示字段_对应的值"

然后你就会发现你的框体变成了一个下拉框~

### 关于Jeecg框架中二级下拉框的实现 在Jeecg框架内,为了实现二级下拉框的功能,通常会利用其前后端分离的优势以及内置的数据交互机制来完成。具体来说,在前端部分可以借助Vue.js组件化特性构建联动菜单;而后端则负责提供相应的API接口用于获取各级选项数据。 #### 前端实现 (Vue) 对于前端而言,可以通过监听第一个下拉框的选择变化事件触发第二个下拉框的内容更新。下面是一个简单的例子: ```vue <template> <div class="dropdown-container"> <!-- 第一个下拉框 --> <a-select v-model:value="selectedFirstLevel" @change="handleFirstChange"> <a-select-option v-for="item in firstLevelOptions" :key="item.value">{{ item.label }}</a-select-option> </a-select> <!-- 第二个依赖前者的下拉框 --> <a-select v-if="secondLevelOptions.length > 0" v-model:value="selectedSecondLevel"> <a-select-option v-for="item in secondLevelOptions" :key="item.value">{{ item.label }}</a-select-option> </a-select> </div> </template> <script lang="ts"> import { defineComponent, ref } from 'vue'; export default defineComponent({ setup() { const selectedFirstLevel = ref(''); const selectedSecondLevel = ref(''); // 初始化一级分类列表 const fetchFirstLevelData = async () => { try { let response = await axios.get('/api/get-first-level-data'); return response.data; } catch(error){ console.error('Failed to load data', error); } }; // 根据选中的第一级ID加载第二级数据 const handleFirstChange = async value => { try{ let response = await axios.post(`/api/get-second-level-data`,{parentId: value}); setSecondLevelOptions(response.data); }catch(error){ console.error('Error fetching child options:',error); } }; function setSecondLevelOptions(data) { this.secondLevelOptions = data.map(item=>({value:item.id,label:item.name})); } return { selectedFirstLevel, selectedSecondLevel, firstLevelOptions: [], secondLevelOptions: [], handleFirstChange, fetchFirstLevelData }; }, mounted(){ this.fetchFirstLevelData().then((data)=>{ this.firstLevelOptions=data.map(item=>({value:item.id,label:item.name})) }); } }); </script> ``` 此代码片段展示了如何创建两个相互关联的选择框,并通过`@change`事件处理器实现了当用户改变第一个选择框时自动刷新第二个选择框内容的效果[^1]。 #### 后端 API 接口设计 后端需要准备两个主要的服务接口:一个是用来返回所有的一级类别信息;另一个则是接收父类别的 ID 参数并据此查询对应的子级别条目。这两个接口的具体路径可以根据实际需求定义,比如 `/api/get-first-level-data` 和 `/api/get-second-level-data` 。这些接口应该能够处理来自客户端发出的请求并将适当的结果集作为 JSON 数据发送回去[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值