fastadmin小知识

记录工作中遇到的各种关于fastadmin的知识点,进行记录

1、图片上传修改原设置是随机名称,现改为图片原名

在application/extra/upload.php中修改savekey的值

'savekey'   => '/uploads/{year}{mon}{day}/{filename}',

2、在列表字段,添加类似(价格)上下箭头,点击排序

在对应的js文件中,添加sortable:true

{field: 'sum', title: __('Sum'),sortable:true},

3、添加按纽弹框,添加完后不关闭,可以继续添加(需要点击重置)

在对应的js文件,修改add方法

add: function () {
    // Controller.api.bindevent();
    Form.api.bindevent($("form"), function(data,ret){
        //成功的回调,如果返回false,将不会出现提示消息
        Toastr.success("提交成功");
        return false;//这行代码阻止弹框关闭
    }, function(data, ret){
        //失败的回调,如果返回false,将不会出现提示消息
    }, function(success, error){
        //如果返回falsle,将阻止表单的提交
        //如果处理成功后我们可以使用Form.api.submit(this, success, error);再次提交表单
    });
},

4、fastadmin创建一个父级菜单,把其它子菜单放进去

在权限管理-菜单规则中添加,父级选择对应的项目,规则随意填写,确定添加后,对应的项目会多出一个菜单项(点击会出错,要把要调整的菜单放到这个父菜单才行)

也是选择权限管理-菜单规则,把要调整的菜单栏进行编辑,调整父级到上面添加的菜单项即可

5、操作栏添加自定义按纽,调用后台方法,返回刷新

在对应的index.html中,添加

重置

在对应的js文件Table.api.bindevent(table);下面添加代码

//重置
$(".btn-process-1").click(function(){
    var ids = Table.api.selectedids(table);
    layer.confirm('确定要重置所有考生查询信息吗?', {btn: ['是','否'] },
        function(index){
            layer.close(index);
            $.post("zkxx/user/reset", {ids:ids , action:'success', reply:''},function(response){
                // alert(response.code);
                if(response.code == 200){
                    Toastr.success('重置成功')
                    $(".btn-refresh").trigger('click');
                }else{
                    Toastr.error('重置失败,请联系管理员')
                }
            }, 'json')
        },
        function(index){
            layer.close(index);
        }
    );
});

在对应的controll中添加reset方法

public function reset(){
    $res['code'] = 200;
    return json($res);
}

6、fastadmin   子用户switch开关权限

在对应的controll后台控制器里面添加   

protected $multiFields = 'showswitch';

7、修改status状态,对不同的状态可以进行js处理

在对应的view-edit.html中,添加c-id字段

在对应的js文件中,修改api方法

api: {
    bindevent: function () {
        //Form.api.bindevent($("form[role=form]"));
        Form.api.bindevent($("form[role=form]"), function(data, ret){
            //如果我们需要在提交表单成功后做跳转,可以在此使用location.href="链接";进行跳转
            Toastr.success("成功");
        }, function(data, ret){
            Toastr.success("失败");
        }, function(success, error){
            //bindevent的第三个参数为提交前的回调
            //如果我们需要在表单提交前做一些数据处理,则可以在此方法处理
            //注意如果我们需要阻止表单,可以在此使用return false;即可
            //如果我们处理完成需要再次提交表单则可以使用submit提交,如下
            //Form.api.submit(this, success, error);
            var status = $("input[name='row[status]']:checked").val();
            var that = this;
            //已结束状态
            if(status==2){
                var id = $("#c-id").val();
                Fast.api.ajax({
                    url:'back/changeKecxOrder',
                    data:{id:id}
                }, function(data){
                    //成功的回调-再次提交表单
                    Form.api.submit(that, success, error);
                }, function(data){
                    //失败的回调
                    return false;
                });
                return false;
            }
        });
    }
}

在上面设定的类back中,添加自定义的方法changeKecxOrder

public function changeKecxOrder(){
    $id = $_POST['id'];
    $orderData = KecxOrderModel::where('id',$id)->find();
    $integral = round($orderData['total']/100);
    KecxUserModel::where('id',$orderData['userId'])->inc('total',$orderData['total'])->setInc('integral',$integral);

    $this->success('', null,null);
}

8、根据status状态,设置不可编辑

在对应的controll中,重写edit方法,进行状态判断

/**
 * 编辑
 */
public function edit($ids = null)
{
    $row = $this->model->get($ids);
    if($row['status']==2 || $row['status'] == 3){
        $this->error(__('该状态不可编辑'));
    }else{
        //正常编辑
     }

}

9、二级联动,选第一级时,二级选项自动匹配

主要就是修改js文件的add和edit方法

c-dept_id = 2级选项类名

c-org_id=1级选项类名

org_id=1级选项id

  add: function () {
            $("#c-dept_id").data("params", function(){
                return {custom: {org_id: $("#c-org_id").val()}};
            });
 
            Controller.api.bindevent();
        },
        edit: function () {
            $("#c-dept_id").data("params", function(){
                return {custom: {org_id: $("#c-org_id").val()}};
            });
 
            Controller.api.bindevent();
        },
 

你可能感兴趣的:(小例子,php)