一、增加按钮

目录:public/assets/js/backend/pim/test.js

样式:

代码(核心部分buttons:[ ]):

{field: 'operate', title: __('Operate'), table: table,buttons:[{name:'start',//名称开始按钮text:'',//文本classname:'btn btn-xs btn-info btn-ajax btn-restoreit',//按钮样式icon:'fa fa-play',//图标url:'pim/test/start',//请求的方法confirm:'是否开始?',//确认refresh:true,//一开始界面需要刷新},{name:'finish',//名称结束按钮text:'',//文本classname:'btn btn-xs btn-danger btn-ajax btn-restoreit',//按钮样式icon:'fa fa-stop',//图标url:'pim/test/finish',//请求的方法confirm:'是否结束?',//确认refresh:true,//一开始界面需要刷新},],//formatter: Table.api.formatter.operate,formatter:function(value,row,index){var that = $.extend({},this);//将this赋值给that,var table = $(that.table).clone(true);//通过that去引用table中的信息$(table).data("operate-edit",null);//隐藏操作中的编辑按钮,$(table).data("operate-del",null);//隐藏操作中的删除按钮,that.table = table;return Table.api.formatter.operate.call(that,value,row,index);//展示信息}
},

按钮样式:

1、大小:

btn-xs:特别小按钮

btn-sm:小按钮

btn-lg:大按钮

2、颜色

btn-info:一般信息(蓝色)

btn-danger:危险信息(红色)

btn-default:默认样式(白色)

btn-primary:首选项(深蓝)

btn-success:成功(绿色)

btn-warning:警告(黄色)

3、弹出窗口、ajax和新选项卡

btn-dialog:弹窗

btn-ajax:ajax请求

btn-addtabs:新选项卡

图标样式

地址:

https://fontawesome.dashgame.com/

根据icon:'fa fa-XXX'进行图标设置

例如:图库中的

在代码中需写

二、fastadmin开始结束按钮功能实现

(一)在新增时为开始结束按钮设置初始值

位置:application/admin/view/pim/test/add.html

更改value的值为固定值,这里是value="{:date('2022-10-10 00:00:00')}"

(这里假设startdate为开始时间,activitytime为结束时间)

    <div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Startdate')}:</label><div class="col-xs-12 col-sm-8"><input id="c-startdate" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-use-current="true" name="row[startdate]" type="text" value="{:date('2022-10-10 00:00:00')}"></div></div><div class="form-group"><label class="control-label col-xs-12 col-sm-2">{:__('Activitytime')}:</label><div class="col-xs-12 col-sm-8"><input id="c-activitytime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[activitytime]" type="text" value="{:date('2022-10-10 00:00:00')}"></div></div>

(二)给表格单元格中的开始时间与结束时间设置

位置:public/assets/js/backend/pim/test.js

根据formatter方法,去判断每行的开始时间与结束时间是否为设定的固定值,如果是将其汉字“未开始”/“未结束”,这里是通过lang库进行的转换

{field: 'startdate', title: __('Startdate'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter:function(value,row,index){if(row.startdate=='2022-10-10  00:00:00'){return __('willstart');//相当于新建立的开始时间都表示为“未开始”}else{return row.startdate;//当开始时间不是设定的时间,就表示为当前时间值}}
},
{field: 'activitytime', title: __('Activitytime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,formatter:function(value,row,index){if(row.activitytime=='2022-10-10 00:00:00'){return __('willend');//相当于新建立的开始时间都表示为“未结束”}else{return row.activitytime;//当结束时间不是设定的时间,就表示为当前时间值}}
}

语言转换位置:application/admin/lang/zh-cn/pim/test.php

'willstart'           => '未开始',
'willend'             => '未结束'

(三)给按钮添加方法

位置:application/admin/controller/pim/test.php

在代码中之前设置过限制数据权限功能

 //数据限制除了管理员,其余用户只能看见自己的信息protected $dataLimit = true; //默认基类中为false,表示不启用,可额外使用auth和personal两个值protected $dataLimitField ="admin_id";//数据关联字段,当前控制器对应的模型表中必须存在该字段

开始方法

//开始事务需要获取到参数public function start($ids=null){//step1从数据库取得该条数据$row = $this->model->get($ids);//用this去操作对应的model,按照参数ids去get数据if(!$row){$this->error(__('No results where found'));//如果行数据不存在,返回No results where found在语言库中对应的信息}//step2检查是否有数据操作权限$adminIds = $this->getDataLimitAdminIds();//查询能操作这个数据的所有用户的列表if(is_array($adminIds)){//判断是不是数组if(!in_array($row[$this->dataLimitField],$adminIds)){//判断当前用户是不是在数组中in_array(要在数组搜索的值,搜索的数组)$this->error(__('You have no permission'));//如果行数据不存在,返回You have no permission在语言库中对应的信息}}//step3更新数据库if($this->request->isPost()){//使用post传参,表明数据库的修改$row->status=1;//将数据库中该行栏位status更改为1$row->startdate=date('Y-m-d H:i:s');//将数据库中该行栏位startdate更改为当前时间$row->save();//对修改的数据进行保存}//step4返回处理结果$rst = array('code' => 1,'msg'  => "事务成功开始",//消息提示'data' => $row,//返回的行数据'url'  => '.',//当前页面跳转'wait' =>3//消息提示的时间);return json($rst);//输出数组信息}

结束方法

public function finish($ids=null){//step1从数据库取得该条数据$row = $this->model->get($ids);if(!$row){$this->error(__('No results where found'));}//step2检查是否有数据操作权限$adminIds = $this->getDataLimitAdminIds();//查询能操作这个数据的所有用户的列表if(is_array($adminIds)) {if(!in_array($row[$this->dataLimitField],$adminIds)){$this->error(__('You have no permission'));//如果行数据不存在,返回You have no permission在语言库中对应的信息}}//step3更新数据库if($this->request->isPost()){//使用post传参,表明数据库的修改$row->status=2;$row->activitytime=date('Y-m-d H:i:s');$row->save();}//step4返回处理结果$rst = array('code' => 1,'msg'  => "事务成功结束",'data' => $row,'url'  => '.','wait' =>3);return json($rst);//输出数组信息s}

(四)完善功能

当状态为0(“未开始”),只显示“开始”按钮

当状态为1(“进行中”),只显示“结束”按钮

当状态为2(“已完成”),“开始”“结束”按钮均不显示

位置:public/assets/js/backend/pim/test.js

修改隐藏按钮的操作,见formatter中的操作

{field: 'operate', title: __('Operate'), table: table,buttons:[{name:'start',//名称开始按钮text:'',//文本classname:'btn btn-xs btn-info btn-ajax btn-restoreit',icon:'fa fa-play',//图标url:'pim/test/start',confirm:'是否开始?',//确认refresh:true,//一开始界面需要刷新},{name:'finish',//名称结束按钮text:'',//文本classname:'btn btn-xs btn-danger btn-ajax btn-restoreit',icon:'fa fa-stop',//图标url:'pim/test/finish',//请求的方法confirm:'是否结束?',//确认refresh:true,//一开始界面需要刷新},],events: Table.api.events.operate, //formatter: Table.api.formatter.operate,formatter:function(value,row,index){var that = $.extend({},this);//将this赋值给that,var table = $(that.table).clone(true);//通过that去引用table中的信息if(row.status=='0'){//如果状态为0表示未开始$(table).data("operate-finish",null);//隐藏结束按钮}else if(row.status=='1'){//如果状态为1表示进行中$(table).data("operate-start",null);//隐藏开始按钮}else if(row.status=='2'){//如果状态为2表示已结束$(table).data("operate-finish",null);//隐藏结束按钮$(table).data("operate-start",null);//隐藏开始按钮}$(table).data("operate-edit",null);//隐藏操作中的编辑按钮,$(table).data("operate-del",null);//隐藏操作中的删除按钮,that.table = table;return Table.api.formatter.operate.call(that,value,row,index);//展示信息}
},

(五)进行页面的功能权限设置

位置:application/admin/view/pim/test/index.html

在权限判断中加入对开始,结束的判断

 <!--权限判断-->
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"data-operate-edit="{:$auth->check('pim/test/edit')}"data-operate-del="{:$auth->check('pim/test/del')}"data-operate-start="{:$auth->check('pim/test/start')}"data-operate-finish="{:$auth->check('pim/test/finish')}"width="100%">
</table>

(六)对权限进行设置

由于现在的权限是不包含start与finish

需要重新建立菜单,新增角色权限

覆盖现有菜单

进入权限管理,新增权限

fastadmin追加开始结束按钮,并实现功能相关推荐

  1. pyqt5 点击开始执行_pyqt5实现开始按钮开始一个循环,结束按钮结束循环

    part 1 初学pyqt,折腾了好久才把功能实现,功能是按开始按钮循环输出数字在textBrowser控件中,按结束按钮停止输出,再按开始按钮重新开始循环 part 2 技术点与其中遇到的坑 1.遇 ...

  2. Android编程实现长按Button按钮连续响应功能示例

    这篇文章主要介绍了Android编程实现长按Button按钮连续响应功能,涉及Android自定义按钮及事件响应操作相关技巧,需要的朋友可以参考下 本文实例讲述了Android编程实现长按Button ...

  3. Java程序开发一个窗体有两个按钮,一个是“开始”按钮,一个是“结束”按钮,当用户点击“开始”按钮时就在控制台打印一句话,反之则结束打印。

    package javase18;import javax.swing.*; import java.awt.*; import java.awt.event.*;public class javas ...

  4. 如何给按钮加上链接功能

    脚本说明: 把如下代码加入<body>区域中 <INPUT TYPE="submit" value="建站资源网" οnclick=" ...

  5. vue 点击文字input_vue input实现点击按钮文字增删功能示例

    本文实例讲述了vue input实现点击按钮文字增删功能.分享给大家供大家参考,具体如下: content="width=device-width, user-scalable=no, in ...

  6. E9表单按钮置灰功能与单元格自定义属性说明

    1:表单单元格自定义按钮配置说明 1.1:选中需要设置按钮的单元格 1.2:设置单元格自定义属性 鼠标右键====>设置自定义属性====>id.name.class 如下图: 1.3:插 ...

  7. 【微信小程序】随机点名系统(点击开始滚动名字点击结束按钮结束滚动)

    [微信小程序]随机点名系统(点击开始滚动名字点击结束按钮结束滚动) 1.效果图: 2.js代码 {Page({data:{condition: Math.floor(Math.random()*7+1 ...

  8. 模拟JS触发按钮点击功能

    模拟JS触发按钮点击功能 Html代码   <html> <head> <title>usually function</title> </hea ...

  9. java按钮触发事件程序,小编给你传授java怎么实现按钮触发事件功能

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到java怎么实现按钮触发事件功能的问题,如果我们遇到了java怎么实现按钮触发事件功能的情况,该怎么处理怎么才能解决ja ...

最新文章

  1. 四川c语言二级成绩查询,四川省计算机等级考试二级C语言考试分析(hcy__ ).ppt
  2. 2-django进阶之日志功能(亲测)
  3. [PAT乙级]1006 换个格式输出整数
  4. 浅析常用软件架构中的一定要理解的三种架构模型
  5. Lua脚本实现检查外业核查地类图斑
  6. 深入浅出ExtJS 第六章 布局
  7. textAppearance的属性设置
  8. java exe指的是什么_Java程序的执行过程中用到一套JDK工具,其中java.exe是指( )。
  9. 【水果识别】基于matlab GUI苹果质量检测及分级系统【含Matlab源码 896期】
  10. Axure手机原型图总结
  11. 惯性系统常用坐标系_惯性坐标系与非惯性坐标系
  12. QA智能问答(QQ匹配)
  13. matlab 鲁棒性分析,电液速度系统的鲁棒性分析及MATLAB计算
  14. 寂寞情来情去——忆纳兰词
  15. 靖哥哥教你一步一步安装redis监控redis-stat-超详细
  16. 绘画入门新手要学的绘画基础有哪些
  17. 【解密】OpenSea免费创造的NFT都没上链竟能出现在我的钱包里?
  18. Ubuntu 设置静态IP
  19. Reactor模式:反应器模式
  20. 研究生项目狗自救指南

热门文章

  1. IE浏览器VUE语法兼容
  2. 谈谈初学者该怎么学电脑
  3. 圆周分孔计算公式表图_圆周等分系数表(带图示例,版式清晰)
  4. Python 三国演义文本可视化(词云,人物关系图,主要人物出场次数,章回字数)
  5. html打印预览出现重叠,求高手解答:在WORD 中插入EXCEL表格,打印出现字重叠的问题...
  6. XTU—1190 Game of Wuxing
  7. 好用的图像分割标注工具:Labelme
  8. 最新版去水印小程序源码/基于WordPress的短视频去水印小程序源码
  9. GUI自动化:robot framework环境搭建和RIDE工具和sublime text3
  10. hadoop单机和伪分布安装(基于hadoop v2.7.2)