其他分享
首页 > 其他分享> > Jeesite框架实用 前端页面如何实现双表联动

Jeesite框架实用 前端页面如何实现双表联动

作者:互联网

文章目录

目录

文章目录

前言

一、问题

二、使用步骤

1.模板

2.修改数据

总结



前言

有时我们需要两张相关联的表,显示在一个页面上,并且具备一些功能。如图:

由图可知,上下两张表是单独的,只有创会id是相同的

上表,可以翻页,并且选中后双击,便可以在下表的审查中,显示id相同的信息。


一、问题

如何制作这张双表联动?

二、使用步骤

1.模板

可以直接复制模板到HTML中,然后在进行修改即可。关键要修改的地方,已标注一二三。

代码如下(示例 由jeesite框架源码中demo提供):

<% layout('/layouts/default.html', {title: '多表格联动示例', libs: ['layout', 'dataGrid']}){ %>
<div class="ui-layout-north">
    <div class="main-content">
        <div class="box box-main">
            <div class="box-header">
                <div class="box-title">
                
                // 1. 此处的('岗位列表')}(多表格联动示例) 可以修改 ,是上表的标题
                
                    <i class="fa icon-trophy"></i> ${text('岗位列表')}(多表格联动示例)
                </div>
            </div>
            <div class="ui-layout-content">
            
            // 2.这个是上表数据来源和显示多少数据的地方
            
                <#form:form id="searchForm" model="${post!}" action="${ctx}/sys/post/listData" method="post" class="form-inline hide"
                data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize!3}"
                data-order-by="${parameter.orderBy!'post_code desc'}">
                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-sm">${text('查询')}</button>
                    <button type="reset" class="btn btn-default btn-sm">${text('重置')}</button>
                </div>
            </#form:form>
            <table id="dataGrid"></table>
            <div id="dataGridPage"></div>
        </div>
    </div>
</div>
</div>
<div class="ui-layout-center">
    <div class="main-content">
        <div class="box box-main">
            <div class="box-header">
                <div class="box-title">
                
                // 3. 此处的(('用户列表')}(点击岗位查询对应用户) 可以修改 ,是下表的标题
                
                    <i class="fa icon-user"></i> ${text('用户列表')}(点击岗位查询对应用户)
                </div>
            </div>
            <div class="ui-layout-content">
            
            // 4.这个是下表数据来源和显示多少数据的地方
            
                <#form:form id="searchForm2" model="${empUser!}" action="${ctx}/sys/empUser/listData" method="post" class="form-inline hide"
                data-page-no="${parameter.pageNo}" data-page-size="${parameter.pageSize!6}"
                data-order-by="${parameter.orderBy}">
                <div class="form-group">
                    <label class="control-label">${text('岗位')}:</label>
                    <div class="control-inline width-90">
                    
                    //5.这是上表的id值 ,是为了上表双击,下表显示相同id信息。
                    
                        <#form:input name="employee.postCode" id="postCode" class="form-control"/>
                    </div>
                </div>
            </#form:form>
            <table id="dataGrid2"></table>
            <div id="dataGrid2Page"></div>
        </div>
    </div>
</div>
</div>

<% } %>
<script>
    // 初始化布局
    $('body').layout({
        north__size: 300,
        onresize: function(){
            $(window).resize();
        }
    });
    // 初始化DataGrid对象
    $('#dataGrid').dataGrid({
        searchForm: $("#searchForm"),
        dataGridPage: $('#dataGridPage'),
        autoGridHeight: function(){
            return $('#searchForm').parent().height() - $('#dataGridPage').height() - 45;
        },
        columnModel: [
        
        //6.上表显示的信息
        
            {header:'${text("岗位名称")}', name:'postName', index:'a.post_name', width:200, align:"center"},
            {header:'${text("岗位编码")}', name:'postCode', index:'a.post_code', width:200, align:"center"},
            {header:'${text("排序号")}', name:'postSort', index:'a.post_sort', width:80, align:"center"},
            {header:'${text("岗位分类")}', name:'postType', index:'a.post_type', width:100, align:"center", formatter: function(val, obj, row, act){
                    return js.getDictLabel(${@DictUtils.getDictListJson('sys_post_type')}, val, '未知', true);
                }},
            {header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
            {header:'${text("备注信息")}', name:'remarks', index:'a.remarks', width:200, align:"left"},
            {header:'${text("状态")}', name:'status', index:'a.status', width:80, align:"center", formatter: function(val, obj, row, act){
                    return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
                }}
        ],
        onSelectRow: function(id, isSelect, event){
            $('#postCode').val(id);
            $('#dataGrid2').dataGrid('refresh');
        },
        // 加载成功后执行事件
        ajaxSuccess: function(data){

        }
    });
    // 初始化DataGrid对象
    $('#dataGrid2').dataGrid({
        searchForm: $("#searchForm2"),
        dataGridPage: $('#dataGrid2Page'),
        autoGridHeight: function(){
            return $('#searchForm2').parent().height() - $('#dataGrid2Page').height() - 45;
        },
        columnModel: [
        
        // 7.下表显示的信息
        
            {header:'${text("登录账号")}', name:'loginCode', index:'a.login_code', width:200, align:"center"},
            {header:'${text("用户昵称")}', name:'userName', index:'a.user_name', width:200, align:"center"},
            {header:'${text("员工姓名")}', name:'refName', index:'a.ref_name', width:200, align:"center"},
            {header:'${text("归属机构")}', name:'employee.office.officeName', index:'o.office_name', width:200, align:"center"},
            {header:'${text("归属公司")}', name:'employee.company.companyName', index:'c.company_name', width:200, align:"center"},
            {header:'${text("电子邮箱")}', name:'email', index:'a.email', width:200, align:"center"},
            {header:'${text("手机号码")}', name:'mobile', index:'a.mobile', width:200, align:"center"},
            {header:'${text("办公电话")}', name:'phone', index:'a.phone', width:200, align:"center"},
            {header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:200, align:"center"},
            {header:'${text("状态")}', name:'status', index:'a.status', width:140, align:"center", formatter: function(val, obj, row, act){
                    return js.getDictLabel(${@DictUtils.getDictListJson('sys_status')}, val, '未知', true);
                }}
        ],
        // 加载成功后执行事件
        ajaxSuccess: function(data){

        }
    });
</script>

2.修改数据

上表和下表这两个表联动 ,其实jeesite是可以生成两张单独的表,单独的list和form页面的

1. 模板中  第二步和第四步 可以直接从 上表单独的lits 和下表单独的list  中 <#form:form > 找到这个标签里的内容 复制粘贴过来就行。

data-page-size="${parameter.pageSize!3}   其中这个 !3  表示一次显示三行信息。

2. 模板中 第五步

<#form:input name="employee.postCode" id="postCode" class="form-control"/>

这个那么name  要注意  :如果是两张单表 只有id相关联   name 只需填id的名称就行比如 meetingId

                                          这里employee.postCode 是因为   employee是上下表中间的一张关联表,上下表的id不同,employee只存储两张表的id。

3. 模板中第六 第七步

也可以从上下表中单独的list中复制粘贴过来。


总结

修改数据 中的 2 一定要注意,这里name的值填写极易出现错误。

标签:index,name,width,text,Jeesite,双表,header,align,页面
来源: https://blog.csdn.net/weixin_47756184/article/details/118750973