Jeecg自定义树形表单

有时候表单中会使用到树形表单,那么我们因该前端添加代码。
<t:datagrid name="zdxmMainList" pagination="false" isShowSearch="true" fit="true" fitColumns="true" actionUrl="url" idField="id" extendParams="view: detailview,detailFormatter:detailFormatterFun,onExpandRow: onExpandRowFun" queryMode="group" btnCls="bootstrap">

<script>
    //返回行明细内容的格式化函数。
    function detailFormatterFun() {
        var s = '<div class="orderInfoHidden" style="padding:2px;">'
            + '       <div class="easyui-tabs" style="height:230px;width:1400px;">'
            + '          <div title="详细信息" style="padding:2px;">'
            + '             <table class="jfrom_order_linetablelines" ></table>'
            + '          </div>'
            + '       </div>'
            + '    </div>';
        return s;
    }

    //当展开一行时触发
    function onExpandRowFun(index, row) {
        console.log(index);
        //把加上的子表tabs和datagrid初始化
        let tabs = $(this).datagrid('getRowDetail', index).find('div.easyui-tabs');
        tabs.tabs();
        console.log(row)
        let jerome_order_literallines = $(this).datagrid('getRowDetail', index).find('table.jfrom_order_linetablelines');
        jerome_order_literallines.datagrid({
            singleSelect: true,
            loadMsg: '正在加载',
            fitColumns: true,
            height: '180',
            width:'1380',
            pageSize: 50,
            pageList: [50, 150, 200, 250, 300],
            border: false,
            url:"url&field=name,type,sum,paid,unpaid&id="+row.id,
            idField: 'id',
            rownumbers: true,
            pagination: false,
            columns: [[{
                title: '名称',
                field: 'name',
                align: 'center',
                width: 150
            },
            {
                title: '类型',
                field: 'type',
                align: 'center',
                width: 100
            },
            {
                title: '总金额',
                field: 'sum',
                align: 'center',
                width: 100
            },
            {
                title: '已付款',
                field: 'paid',
                align: 'center',
                width: 100
            },
            {
                title: '未付款',
                field: 'unpaid',
                align: 'center',
                width: 100
            },
            ]]
        });
    }
</script>
这是效果图

在这里插入图片描述

要启动 JeecgBoot表单生成功能,可以通过以下步骤进行操作,具体方法依赖于 JeecgBoot 提供的 Online 表单功能模块。 ### 启动表单生成功能的方法 1. **访问 JeecgBoot 管理后台** 登录 JeecgBoot 的管理界面,确保具备管理员权限以便操作表单生成相关的模块。 2. **进入 Online 表单管理界面** 在菜单中找到 "Online 表单" 模块,进入表单设计页面。此功能允许用户通过界面化操作快速生成数据库表,并绑定表单控件。 3. **创建或选择数据表** 在 Online 表单界面中,可以选择通过 "新建表" 或 "关联已有表" 来生成表单。如果选择新建表,则需要填写表名、字段等信息;如果选择已有表,则直接关联数据库中的表结构。 4. **配置字段信息** 在表单设计页面中,根据业务需求配置字段信息,包括字段名称、类型、是否主键、是否可为空等。同时,可设置字典控件(如树形控件)的关联信息,例如字典表名、字段映射等,具体字段格式为 `id,pid,name,has_child` [^2]。 5. **生成表单和代码** 完成字段配置后,点击 "生成表单" 按钮,系统将自动生成前端表单页面和后端代码。生成的代码会根据配置的包路径(`bussi_package`)存放,生成路径可由用户在界面上指定 [^1]。 6. **运行生成的代码** 生成的代码可以直接在 JeecgBoot 项目中运行。启动项目后,可以在菜单中找到新生成的模块,访问其对应的表单页面,进行数据的增删改查操作。 ### 示例代码片段(前端表单生成) 以下是一个示例的 Vue 前端表单组件代码,用于展示生成的表单界面: ```vue <template> <a-form :form="form" @submit="handleSubmit"> <a-form-item label="字段1"> <a-input v-decorator="['field1', { rules: [{ required: true, message: '请输入字段1' }] }]" /> </a-form-item> <a-form-item label="字段2"> <a-input v-decorator="['field2', { rules: [{ required: true, message: '请输入字段2' }] }]" /> </a-form-item> <a-button type="primary" htmlType="submit">提交</a-button> </a-form> </template> <script> export default { data() { return { form: this.$form.createForm(this), }; }, methods: { handleSubmit(e) { e.preventDefault(); this.form.validateFields((err, values) => { if (!err) { console.log('提交的表单数据:', values); } }); }, }, }; </script> ``` ### 后端接口示例(Spring Boot Controller) 以下是生成的后端控制器代码示例,用于处理表单数据的增删改查操作: ```java @RestController @RequestMapping("/api/example") public class ExampleController { @Autowired private ExampleService exampleService; @PostMapping("/save") public ResponseEntity<?> saveData(@RequestBody ExampleEntity data) { exampleService.save(data); return ResponseEntity.ok("保存成功"); } @GetMapping("/list") public ResponseEntity<List<ExampleEntity>> getAllData() { return ResponseEntity.ok(exampleService.findAll()); } } ``` ### 相关问题 1. 如何在 JeecgBoot 中配置 Online 表单的字典控件? 2. JeecgBoot 生成的代码默认存储路径如何修改? 3. JeecgBoot 的 Online 表单功能是否支持关联已有数据库表? 4. JeecgBoot 表单生成功能是否支持自定义字段类型? 5. JeecgBoot 生成的前后端代码如何进行集成测试?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值