问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FastAdmin工具栏添加自定义按钮,实现弹窗并保存数据效果

创作时间:
作者:
@小白创作中心

FastAdmin工具栏添加自定义按钮,实现弹窗并保存数据效果

引用
1
来源
1.
https://www.cnblogs.com/hjxcode/p/18396487

FastAdmin在一键CRUD时会自动生成添加、编辑、删除、导入、更多按钮的HTML,这些按钮会根据用户所拥有的权限控制基是否显示或隐藏。我们可以在控制器对应的index.html视图文件中任意修改或删除对应的按钮。

当我们需要在工具栏新增一个自定义按钮,并且点击按钮能够实现弹窗并且弹窗可以保存数据时,可以参考以下步骤:

  1. 在对应的index.html视图文件中,新增弹窗按钮代码,代码整体以及实现效果如下图:
<a href="assess/assess_dimension_weight/publish" class="btn btn-danger btn-dialog" title="测试" ><i class="fa fa-trash"></i> 自定义按钮</a>
  1. 在视图中,新建publish.html文件,代码如下:
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
 <div class="form-group">
 <label class="control-label col-xs-12 col-sm-2">{:__('Assess_activity_id')}:</label>
 <div class="col-xs-12 col-sm-8">
 <input id="c-assess_activity_id" data-rule="required" min="0" data-source="assess/activity/index" class="form-control" name="row[assess_activity_id]" type="text" value="">
 </div>
 </div>
 <div class="form-group layer-footer">
 <label class="control-label col-xs-12 col-sm-2"></label>
 <div class="col-xs-12 col-sm-8">
 <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
 <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
 </div>
 </div>
</form>
  1. 在控制器中,新建方法渲染已经接收弹窗提交时的post请求:
public function publish()
{
 if ($this->request->isPost()) {
 // 写保存按钮后的接收处理逻辑
 $this->success('success!');
 }
 // 点击按钮渲染弹窗页面
 return $this->view->fetch();
 }
  1. 在js文件中,新增与控制器方法同名的方法,放api之上,代码以及代码位置如下:
publish: function () {
 Controller.api.bindevent();
 },

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号