4.3.太极平台:使用模块制作左右布局,实现分类下数据列表

1、需求场景

某些场合下,仅有一个列表的页面,是不能满足需求的。有时需要左右布局,或者上下布局,甚至是页面上多个区域。

比如左右布局,点击左边,右边则进行响应。

我们以供应商管理来作为示例,讲解如何使用模块,去实现左右布局效果。实现效果如下图所示。

2、实现方法

该页面效果由模块来制作,页面是左右布局,包含有2个列表,每个列表是1个组件,因此该模块页面由2个组件合成。

实现此效果,就需要创建1个模块,2个组件。把这2个组件放到此模块中,通过左边组件设置,去响应右边的组件。

1)创建模块

在模块管理中添加模块:供应商管理,如下图所示。模板内容就是一个简单的左右布局,2个div,通过ajax动态加载,进行load内容填充。

代码如下:

<div class="row">
    <div id="page-center-left" class="col-lg-3"></div>
    <div id="page-center-right" class="col-lg-9"></div>
</div>

<script type="text/javascript">
    loadUrl("page-center-left", "taijiWidget.do?widgetId=8");
    loadUrl("page-center-right", "taijiWidget.do?widgetId=7");
</script>

如果初次进入页面时,不加载右边数据,提示只有点击了左边,才会加载,如下面的效果。

初始时不需要加载右边页面,代码如下:

<div class="row">
    <div id="page-center-left" class="col-lg-3"></div>
    <div id="page-center-right" class="col-lg-9">
        <div class="alert alert-info">
            请点击左边的分类名称。
        </div>
    </div>
</div>

<script type="text/javascript">
    loadUrl("page-center-left", "taijiWidget.do?widgetId=8");
</script>

2)创建左边组件

左边组件是一个列表,列出分类名称和分类下的统计数量。分类名称带超链接,点击后,右边会加载该分类下的数据。

此组件的重点有2块:超链接点击响应、数量统计显示。

a)超链接点击响应

点击响应的实现原理很简单,只需要设置该字段的自定义显示格式即可。要实现功能:点击后,ajax加载列表数据,填充到右边的div中。

我们采用loadUrl函数,加载链接到page-center-right区域中,链接中使用了${field:Id}标签,会替换为ID值。

<a class="text-success" 
    οnclick="loadUrl('page-center-right','taijiWidget.do?widgetId=7&SortId=${field:Id}')" 
    href="javascript:void(0)">
${field}</a>

b)数量统计

数量是每个分类下的数量,我们采用SQL查询语句去统计出来。当然,也可以采用字段存储,结合触发器实时更新数量,那么就只需要查询出字段值即可。根据实际情况自行选择合适的方案。

采用SQL语句统计出分类和分类下的数量,SQL语句和查询结果如下。采用左连接和group by的方式。

因此,需要在组件设置中,设置左连接和查询字段。如下图所示,最终会合并为上图的SQL语句。

c)组件字段

组件包含2个字段,如下图所示。

3)创建右边组件

右边的组件比较简单,普通的列表。唯一要注意的,就是需要加上SQL附加条件。附加条件的内容,则是接收URL传递的SortId,作为筛选条件,仅列出满足SortId条件的数据列表。如下图所示。

3、总结

经过上面3步的配置,就实现了左右布局的功能。如果要实现其他页面布局,方法相似。

1)采用loadUrl去动态加载各个页面。

2)采用${field:字段名称}标签方式,传递字段值;采用${ReqInt:字段名称}标签,获取request传递的值。

发布了89 篇原创文章 · 获赞 71 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_42127613/article/details/97250311