fastadmin的后台管理页面全自动生成非常方便,但是有些复杂查询确不太好弄,需要完全自定义,但是遵从以下几个步骤即可轻松定制了
1.随便使用某个数据表生成页面所需内容
通过命令工具即可完成
2.自定义返回内容
在controller的index方法里面,删除掉原来返回的内容(主要是ajax请求的时候)例如下方,完全用自己写的sql替代返回内容(RechargeStatisticService::lis方法中)
php
public function index()
{
//当前是否为关联查询
$this->relationSearch = true;
//设置过滤方法
$this->request->filter(['strip_tags', 'trim']);
if ($this->request->isAjax()) {
//如果发送的来源是Selectpage,则转发到Selectpage
if ($this->request->request('keyField')) {
return $this->selectpage();
}
$limit = $this->request->param('limit');
$page = $this->request->param('offset') / $limit + 1;
$filter = json_decode($this->request->param('filter'), true);
$filter && $devicetype_id = $filter['devicetype_id'];
return json(RechargeStatisticService::list($page, $limit, $devicetype_id ?? 1));
}
return $this->view->fetch();
}
3.修改js文件
按照自己返回的数据,修改前端列表里面显示那些字段,原来不需要的字段就可以删除掉
4.修改view中的index.html(如果有必要)
比如下方,我自行修改了tab标签的显示内容
注意:可以参考其他已经生成的页面,关键点1:data-field="devicetype_id" 这里对应的是tab标签代表的字段,一定要改过来 关键点2:其中一个class设置为active,表示默认激活的,data-value是值,显示内容为实际看到的内容,总之只要仿照已经有的页面来修改,就可以达到目的了
html
<div class="panel-heading">
{:build_heading(null,FALSE)}
<ul class="nav nav-tabs" data-field="devicetype_id">
<li class='active'><a href="#t-1" data-value="1" data-toggle="tab">分子</a></li>
<li class=''><a href="#t-2" data-value="2" data-toggle="tab">免疫</a></li>
</ul>
</div>