[fastadmin]第四篇 子页面使用到表格

之前写了子页面 表格

但是这个表格,依然是依赖于fastadmin的。
这里下面的作者,完全新增控制器,来处理第二个表格。思路很赞,大家可以参考

我们经常会遇到,点击某条数据,子页面又要显示另外一个表格。

举例场景:后台有给用户发送优惠券的功能,用户列表每行数据有个按钮,点击就能弹出所有可用的优惠券

[fastadmin]第四篇 子页面使用到表格

但这样做,并不好实现。因为在优惠券管理那边肯定有==“添加”==或其他功能,你在给用户发送的时候,并不需要,所以如果这样,还得去判断是从哪个入口进来的,要显示什么,不显示什么。所以要做就是要把弹出优惠券列表和原本的优惠券管理分开来。那么,我为什么不直接新建个控制器,虽然代码和优惠券管理一样,但是因为是新的控制器,你不需要的东西完全可以去掉。而且,利用fastadmin命令行生成增删改查列表,分分钟的事情。
如图:

[fastadmin]第四篇 子页面使用到表格

第二种方法:我们知道fastadmin的表格使用的是bootstrap,所以完全可以用bootstrap数据表格来构造。

首先,在表格内新增一个按钮。比如enrolluser,这时候,同样需要其中使用
Controller.api.bindevent();然后在开始子页面的数据表格的构建。fastadmin中写法如下,后台具体代码就不贴出来,只要按bootstrap要求的数据格式返回即可。


enrolluser : function(){
    function addFunctionAlty(value, row, index) {
       return [
       '<button id="edituser" type="button" class="btn btn-success">编辑</button>',
       '<button id="deluser" type="button" class="btn btn-danger">删除</button>',
       ].join('');
     } 
    window.operateEvents = {
        'click #edituser': function (e, value, row, index) {
           Fast.api.open("enroll/useredit?id="+row.id, "编辑", {});
         },
         'click #deluser': function (e, value, row, index) {
              $.get("enroll/deluser?id="+row.id,"",function(res){
                  parent.Toastr.success(res.msg);
                  location.reload();
              });
         }
     };

    function initTable (searchValue){
        // console.log(searchValue,"测试");
        $("#coupon_table").bootstrapTable({
            url : "enroll/enrolluserData?activity_id="+Fast.api.query('activity_id'),
            columns: [
                {field: 'user_id', title: '用户ID'},
                {field: 'name', title: '用户姓名'},
                {field: 'age', title: '年龄'},
                {field: 'avatar', title: '用户头像',events: Table.api.events.image, formatter: Table.api.formatter.image},
                {field: 'sex', title: '性别'},
                {field : 'like', title : '爱好'},
                {field : 'strong', title : '强项'},
                {field : 'motto', title : '参赛宣言'},
                {field: 'images', title: '参赛图片',events: Table.api.events.image, formatter: Table.api.formatter.images},
                {field : 'love', title : '人气值',sortable:true},
                {field : 'create_time', title : '报名时间'},
                {field : 'operate', title : '操作',events:operateEvents,formatter:addFunctionAlty},
            ],
            search: true,
            pagination: true,
            pageSize: 10,
            pageList: [5, 10, 15, 20],
            showColumns: false,
            showRefresh: false,
            showToggle: false,
            sidePagination:'server',//服务端分页,必须写,不然无法加载

        });
    }

    initTable();

    // $("#search").click(function(){
    //     var name = $("#name").val();
    //     var obj = {
    //         'name' : name
    //     }
    //     console.log(obj);
    //     initTable(obj);
    // });



    Controller.api.bindevent();
},

效果页面如下:

[fastadmin]第四篇 子页面使用到表格

其中值得一提的是:因为是自定义的bootstrap表格,存在一个,编辑之后,表格不会刷新。解决方法就是在Form.api.bindevent中进行回调刷新父页面。

[fastadmin]第四篇 子页面使用到表格

原文

blog.csdn.net/weixin_42273669/arti...

关联 :如何在FastAdmin中使用Ajax发送请求?

html页面:
相关js文件里添加以下代码(这个是自己模块对应的js文件,不懂的话,得先了解一下fastadmin 基础):

{field: 'uid', title: __('解绑'), table: table, buttons: [
        {
            name: 'ajax',
            text: __('解绑'),
            title: __('解绑'),
            classname: 'btn btn-xs btn-success btn-magic btn-ajax',
            icon: 'fa fa-magic',
            url: 'player/player/unbundling?',
            confirm: '确认是否要解绑',
            success: function (data, ret) {
                if(ret["msg"]["code"]==200){
                    Layer.alert("解绑"+ret["msg"]["msg"]);
                }
                else {
                    Layer.alert('<span id="" style="color: red;">'+ret["msg"]["msg"]+'</span>');
                }
            },
            error: function (data, ret) {
                console.log(data, ret);
                Layer.alert(ret.msg);
                return false;
            }
        }
    ], operate:false, formatter: Table.api.formatter.buttons},

后端php: 省略。

本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
558
收藏
1106
排名:64
访问:12.2 万
私信
所有博文
社区赞助商