封方法到sys.js

目录结构

目标:把index_js下的TableInit();方法封装进Sys中

1,最初版,无封装

<script type="text/javascript">

    $(function () {
        //1.初始化Table
        var oTable = new TableInit();
        oTable.Init();

    });

    var TableInit = function () {
        var oTableInit = new Object();
        //初始化Table
        oTableInit.Init = function () {
            $('#ArbetTable').bootstrapTable({
                url: '/getData',         //请求后台的URL(*)
                method: 'get',                      //请求方式(*)
                toolbar: '#toolbar',                //工具按钮用哪个容器
                striped: true,                      //是否显示行间隔色
                cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
                pagination: true,                   //是否显示分页(*)
                sortable: false,                     //是否启用排序
                sortOrder: "asc",                   //排序方式
                queryParams: oTableInit.queryParams,//传递参数(*)
                sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
                pageNumber: 1,                       //初始化加载第一页,默认第一页
                pageSize: 10,                       //每页的记录行数(*)
                pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
                search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
                contentType: "application/x-www-form-urlencoded",
                strictSearch: true,
                showColumns: true,                  //是否显示所有的列
                showRefresh: true,                  //是否显示刷新按钮
                minimumCountColumns: 2,             //最少允许的列数
                clickToSelect: true,                //是否启用点击选中行
                height: 700,                        //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
                uniqueId: "no",                     //每一行的唯一标识,一般为主键列
                showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
                cardView: false,                    //是否显示详细视图
                detailView: false,                   //是否显示父子表
                columns: [
                    {
                        field: 'name',
                        title: '名字'
                    }, {
                        field: 'seq',
                        title: '排名'
                    }, {
                        field: 'score',
                        title: '分数'
                    },{
                        field: 'level',
                        title: '级别'
                    },
                    {
                        field: 'operate',
                        title: '操作',
                        formatter: operateFormatter //自定义方法,添加操作按钮
                    },
                ],
                rowStyle: function (row, index) {
                    var classesArr = ['success', 'info'];
                    var strclass = "";
                    if (index % 2 === 0) {//偶数行
                        strclass = classesArr[0];
                    } else {//奇数行
                        strclass = classesArr[1];
                    }
                    return { classes: strclass };
                },//隔行变色
            });

        };


        //得到查询的参数
        oTableInit.queryParams = function (params) {
            var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                limit: params.limit,   //页面大小
                offset:params.offset
            };
            return temp;
        };
        return oTableInit;
    };


    function operateFormatter(value, row, index) {//赋予的参数
        return [
            '<a class="btn active disabled" href="#">编辑</a>',
            '<a class="btn active" href="#">档案</a>',
            '<a class="btn btn-default" href="#">记录</a>',
            '<a class="btn active" href="#">准入</a>'
        ].join('');
    }







</script>

2,简单封装

<script>
    var Index = function(){
        return{
            init : function () {
                $('#ArbetTable').bootstrapTable({
                    url: '/getData',         //请求后台的URL(*)
                    method: 'get',                      //请求方式(*)
                    toolbar: '#toolbar',                //工具按钮用哪个容器
                    striped: true,                      //是否显示行间隔色
                    cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
                    pagination: true,                   //是否显示分页(*)
                    sortable: false,                     //是否启用排序
                    sortOrder: "asc",                   //排序方式
                    queryParams: Index.queryParams,//传递参数(*)
                    sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
                    pageNumber: 1,                       //初始化加载第一页,默认第一页
                    pageSize: 10,                       //每页的记录行数(*)
                    pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
                    search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
                    contentType: "application/x-www-form-urlencoded",
                    strictSearch: true,
                    showColumns: true,                  //是否显示所有的列
                    showRefresh: true,                  //是否显示刷新按钮
                    minimumCountColumns: 2,             //最少允许的列数
                    clickToSelect: true,                //是否启用点击选中行
                    height: 700,                        //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
                    uniqueId: "no",                     //每一行的唯一标识,一般为主键列
                    showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
                    cardView: false,                    //是否显示详细视图
                    detailView: false,                   //是否显示父子表
                    columns: [
                        {
                            field: 'name',
                            title: '名字'
                        }, {
                            field: 'seq',
                            title: '排名'
                        }, {
                            field: 'score',
                            title: '分数'
                        },{
                            field: 'level',
                            title: '级别'
                        },
                        {
                            field: 'operate',
                            title: '操作',
                            formatter: Index.operateFormatter //自定义方法,添加操作按钮
                        },
                    ],
                    rowStyle: function (row, index) {
                        var classesArr = ['success', 'info'];
                        var strclass = "";
                        if (index % 2 === 0) {//偶数行
                            strclass = classesArr[0];
                        } else {//奇数行
                            strclass = classesArr[1];
                        }
                        return { classes: strclass };
                    },//隔行变色
                });
            },

            queryParams: function (params) {
                var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                    limit: params.limit,   //页面大小
                    offset:params.offset
                };
                alert('temp:' + JSON.stringify(temp));
                return temp;

            },

            operateFormatter :function (value, row, index) {//赋予的参数
                return [
                    '<a class="btn active disabled" href="#">编辑</a>',
                    '<a class="btn active" href="#">档案</a>',
                    '<a class="btn btn-default" href="#">记录</a>',
                    '<a class="btn active" href="#">准入</a>'
                ].join('');
            }
        }

    }();




    $(document).ready(function() {

        Index.init();

    });

</script>

3,封装到sys

<script type="text/javascript">
    var Index = function(){
        return{
            init: function () {

              alert("123456780")
                Sys.initTable(

                    Index.getTableParam()
                )
            },

            getTableParam: function(){
                return{
                    tableId : 'ArbetTable',
                    url : '/getData',
                    queryParams: Index.queryParams,
                    columns : [
                        {
                            field: 'name',
                            title: '名字'

                        }, {
                            field: 'seq',
                            title: '排名'
                        }, {
                            field: 'score',
                            title: '分数'
                        },{
                            field: 'level',
                            title: '级别'
                        },
                        {
                            field: 'operate',
                            title: '操作',
                            formatter: Index.operateFormatter //自定义方法,添加操作按钮
                        },
                    ]
                }
            },

            queryParams: function (params) {
                var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                    limit: params.limit,   //页面大小
                    offset:params.offset
                };
                alert('temp:' + JSON.stringify(temp));
                return temp;

            },

            operateFormatter :function (value, row, index) {//赋予的参数
            return [
                '<a class="btn active disabled" href="#">编辑</a>',
                '<a class="btn active" href="#">档案</a>',
                '<a class="btn btn-default" href="#">记录</a>',
                '<a class="btn active" href="#">准入</a>'
            ].join('');
        }
        }

    }();




    $(document).ready(function() {

            Index.init();


        });

</script>

1到2连接https://blog.csdn.net/lucasmaluping/article/details/101028128

2到3

1,在static/js/路径下新建文件sys.js

2,分离方法,放入sys

3,引用

index.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <th:block th:replace="common/include"></th:block>
    <th:block th:replace="common/link"></th:block>


</head>
<body>
<table id="ArbetTable"></table>
<th:block th:replace="school/js/index_js"></th:block>

</body>
</html>

templates/common/include.html

//注意不能写错

<script src="/js/sys.js"></script>
<script src="/js/sys.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
<script src="https://unpkg.com/[email protected]/dist/bootstrap-table.min.js"></script>

templates/common/link.html

<!--sweetalert-->
<!--<link rel="stylesheet" type="text/css" href="vendor/sweetalert/dist/sweetalert.css">-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/bootstrap-table.min.css">

SchoolController

package com.example.demo.controller;


import com.example.demo.common.BootstrapTable;
import com.example.demo.model.School;
import com.example.demo.service.SchoolService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class SchoolController {

    @Autowired
    private SchoolService schoolService;

    @RequestMapping("/getData")
    @ResponseBody
    public BootstrapTable getData(){

        List<School> schoolData = schoolService.getSchoolData();
        System.out.println("....."+ schoolData.size());
        return  new BootstrapTable(30,schoolData);


    }


}
发布了26 篇原创文章 · 获赞 4 · 访问量 633

猜你喜欢

转载自blog.csdn.net/weixin_44730266/article/details/101164332
sys