fastadmin权限、关联查询和快速搜索

权限、关联查询和快速搜索

<?php

namespace app\admin\controller;

use app\common\controller\Backend;

/**
 * 
 *
 * @icon fa fa-circle-o
 */
class HrzJson extends Backend
{
    
    /**
     * HrzJson模型对象
     * @var \app\admin\model\HrzJson
     */
    protected $model = null;
    /**
             * 无需登录的方法,同时也就不需要鉴权了
     * @var array
     */
    protected $noNeedLogin = ['mywork'];
    
    /**
            * 无需鉴权的方法,但需要登录
     * @var array
     */
    protected $noNeedRight = ['mylogin'];

    
    /**
             * 是否开启数据限制
             * 支持auth/personal
             * 表示按权限判断/仅限个人
             * 默认为禁用,若启用请务必保证表中存在admin_id字段
     */
    protected $dataLimit = 'auth';
    
    /**
            * 数据限制字段
     */
    protected $dataLimitField = 'admin_id';
    
    /**
            * 快速搜索时执行查找的字段
     */
    protected $searchFields = ['admin_id','admin.username'];
    
    /**
             * 是否是关联查询
     */
    protected $relationSearch = true;
    
    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\admin\model\HrzJson;

    }
    
    /**
            * 查看
     */
    public function index()
    {
        //设置过滤方法
        $this->request->filter(['strip_tags', 'trim']);
        if ($this->request->isAjax()) {
            //如果发送的来源是Selectpage,则转发到Selectpage
            if ($this->request->request('keyField')) {
                return $this->selectpage();
            }
            list($where, $sort, $order, $offset, $limit) = $this->buildparams();
            
            
            $list = $this->model
            ->with(["admin"])
            ->where($where)
            ->order($sort, $order)
            ->paginate($limit);
            
            $result = array("total" => $list->total(), "rows" => $list->items());
            
            return json($result);
        }
        return $this->view->fetch();
    }

    public function import()
    {
        parent::import();
    }
    
    /*
     * mywork
     * */
    public function mywork()
    {
       return "权限设定";
    }
    
    /*
     * mywork
     * */
    public function mylogin()
    {
        return "需要登录吧";
    }

    /**
     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
     */
    

}

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    index_url: 'hrz_json/index' + location.search,
                    add_url: 'hrz_json/add',
                    edit_url: 'hrz_json/edit',
                    del_url: 'hrz_json/del',
                    multi_url: 'hrz_json/multi',
                    import_url: 'hrz_json/import',
                    table: 'hrz_json',
                }
            });

            var table = $("#table");

            // 初始化表格
            table.bootstrapTable({
                url: $.fn.bootstrapTable.defaults.extend.index_url,
                pk: 'id',
                sortName: 'id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id')},
                        {field: 'gwSn', title: __('Gwsn'), operate: 'LIKE'},
                        {field: 'gwName', title: __('Gwname'), operate: 'LIKE'},
                        {field: 'pubdata', title: __('Pubdata'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
                        {field: 'admin_id', title: __('Admin_id')},
                        {field: 'admin.username', title: __('Username')},
                        {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        recyclebin: function () {
            // 初始化表格参数配置
            Table.api.init({
                extend: {
                    'dragsort_url': ''
                }
            });

            var table = $("#table");

            // 初始化表格
            table.bootstrapTable({
                url: 'hrz_json/recyclebin' + location.search,
                pk: 'id',
                sortName: 'id',
                columns: [
                    [
                        {checkbox: true},
                        {field: 'id', title: __('Id')},
                        {
                            field: 'deletetime',
                            title: __('Deletetime'),
                            operate: 'RANGE',
                            addclass: 'datetimerange',
                            formatter: Table.api.formatter.datetime
                        },
                        {
                            field: 'operate',
                            width: '130px',
                            title: __('Operate'),
                            table: table,
                            events: Table.api.events.operate,
                            buttons: [
                                {
                                    name: 'Restore',
                                    text: __('Restore'),
                                    classname: 'btn btn-xs btn-info btn-ajax btn-restoreit',
                                    icon: 'fa fa-rotate-left',
                                    url: 'hrz_json/restore',
                                    refresh: true
                                },
                                {
                                    name: 'Destroy',
                                    text: __('Destroy'),
                                    classname: 'btn btn-xs btn-danger btn-ajax btn-destroyit',
                                    icon: 'fa fa-times',
                                    url: 'hrz_json/destroy',
                                    refresh: true
                                }
                            ],
                            formatter: Table.api.formatter.operate
                        }
                    ]
                ]
            });

            // 为表格绑定事件
            Table.api.bindevent(table);
        },
        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});
<?php

namespace app\admin\model;

use think\Model;
use traits\model\SoftDelete;

class HrzJson extends Model
{

    use SoftDelete;

    

    // 表名
    protected $name = 'hrz_json';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = false;

    // 定义时间戳字段名
    protected $createTime = false;
    protected $updateTime = false;
    protected $deleteTime = 'deletetime';

    // 追加属性
    protected $append = [

    ];
    

    public function admin()
    {
        return $this->belongsTo('admin', 'admin_id')->setEagerlyType(0);
    }







}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值