layui封装表格的过程

layui表格数据封装详解
本文详细介绍了如何在 layui 中进行表格数据的封装,从前端代码到后端的 Controller、DAO、Service、ServiceImpl 和 Mapper 层的实现,最后进行了总结,阐述了 layui 对数据规则的特定要求。

上前端代码:

<table class="layui-table"  lay-data="{url:'${base}/statistics/show', method:'post', done: function (res,curr,count) {merge(res);}, page: false, limit: 1990000000}"  lay-filter="test" id="test">
    <thead>
    <tr>
        <td lay-data="{field:'region',width:'13.3%',align:'center'}">地区</td>
        <td lay-data="{field:'city',width:'13.3%',align:'center'}">部门</td>
        <td lay-data="{field:'userName',width:'13.3%',align:'center'}">姓名</td>
        <td lay-data="{field:'fwOA',width:'15%',align:'center'}">访问OA</td>
        <td lay-data="{field:'fwOAat',width:'15%',align:'center'}">访问OA按天</td>
        <td lay-data="{field:'mailSend',width:'15%',align:'center'}">邮件发</td>
        <td lay-data="{field:'mailReceive',width:'16%',align:'center'}">邮件收</td>
    </tr>
    <tr>
        <td lay-data="{width:'40%',align:'center'}" colspan="3">合计</td>
        <td lay-data="{width:'15%',align:'center'}" id="allcount12">${visitOACount}</td>
        <td lay-data="{width:'15%',align:'center'}" >${visitOAATCount}</td>
        <td lay-data="{width:'15%',align:'center'}">${visitSMailCount}</td>
        <td lay-data="{width:'16%',align:'center'}">${visitRMailCount}</td>
    </tr>
    </thead>

</table>

Controller层代码:

@PostMapping("show")
    @ResponseBody
    public LayerData<Statistics> list(@RequestParam(value = "page", defaultValue = "1") Integer page,
                                      @RequestParam(value = "limit") Integer limit,
                                      ServletRequest request) {
        Map<String,Object> map = WebUtils.getParametersStartingWith(request, "s_");

        LayerData<Statistics> layerData = new LayerData<>();
		
        Page<Statistics> dataPage = showService.queryStatisticsOAEveryCount(map, new Page<>(page, limit));

        layerData.setCount(dataPage.getTotal());

        layerData.setData(dataPage.getRecords());

        return  layerData;
    }

dao层代码:

List<Statistics> queryStatisticsOAEveryCount(Map<String, Object> map, Page<Statistics> page);

Service层:

/*用户统计表查询*/
    Page<Statistics> queryStatisticsOAEveryCount(Map<String,Object> map, Page<Statistics> page);

ServiceImpl层

/*用户统计表查询*/
    @Override
    public Page<Statistics> queryStatisticsOAEveryCount(Map<String, Object> map, Page<Statistics> page) {
        return page.setRecords(showDao.queryStatisticsOAEveryCount(map,page));
    }

Mapper层

<!--用户统计表-->
    <!--queryStatisticsOAEveryCount()-->
    <resultMap id="showList" type="com.raising.core.entity.statistics.Statistics">
        <result column="OANUM" property="fwOA"/>
        <result column="OAAT" property="fwOAat"/>
        <result column="NICK_NAME" property="userName"/>
        <result column="RMAIL" property="mailReceive"/>
        <result column="SMAIL" property="mailSend"/>
        <result column="department" property="city"/>
        <result column="region" property="region"/>
    </resultMap>
    <select id="queryStatisticsOAEveryCount" resultMap="showList">
        SELECT a.NICK_NAME,nvl(h.REGION_NAME,'其他') region,nvl(b.num,0) AS oanum,nvl(c.rnum,0) rmail,nvl(d.snum,0) smail,f.NAME department,nvl(g.oant,0) oaat
        FROM SYS_USER a
        LEFT JOIN(

                SELECT count(0) as num,l.CREATE_BY id
                FROM SYS_LOG l
                WHERE
                l.TITLE='用户登录'
                GROUP BY l.CREATE_BY

                ) b on a.id = b.id
        LEFT JOIN(

                SELECT count(0) as rnum,a.RECEIPT_ID id
                FROM MAIL_RECEIPT a
                GROUP BY a.RECEIPT_ID

                ) c ON a.ID=c.ID
        LEFT JOIN(

                SELECT COUNT(0) as snum,e.EMAILED_ID id
                FROM MAIL_EMAILED e
                GROUP BY e.EMAILED_ID

                 ) d ON a.ID=d.ID
        LEFT JOIN(

                SELECT COUNT(0) oant,z.id
                FROM(
                select to_char(t.CREATE_DATE, 'yyyy/mm/dd') timedate,t.CREATE_BY id
                from SYS_LOG t
                where t.CREATE_DATE &gt;= to_date('1980/1/1', 'yyyy/mm/dd')
                and t.CREATE_DATE &lt;= to_date('3000/1/31', 'yyyy/mm/dd')
                and t.TITLE='用户登录'
                group by to_char(t.CREATE_DATE, 'yyyy/mm/dd'),t.CREATE_BY
                ) z
                GROUP BY z.id

                ) g ON a.id=g.id
        LEFT JOIN SYS_ORG f ON a.ORG_ID=f.ID
        LEFT JOIN DIC_ADMINREGION_JS h ON f.id=h.REGION_ID
        WHERE 1=1
        <if test="userName != null and userName != ''">
            AND a.NICK_NAME LIKE '%${userName}%'
        </if>
        <if test="city != null and city != ''">
            AND f.NAME LIKE '%${city}%'
        </if>
        ORDER BY f.ID
    </select>

总结:

layui有自己的一套封装数据规则

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值