1. 问题
- 自定义一个btn-dialog按钮 弹出一个弹窗 在完成了弹窗内的业务关闭弹窗后 要刷新按钮所在窗体数据
2. 思路
- 查找了若干社区帖子,综合Karson老板的回复
- 使用fast.api.open 和fast.api.close 是正途
3. 正确姿势
自定义按钮 页面A
{field: 'operate', title: __('Operate'), table: table, width:'30%',buttons:[ //width是规定这列的宽度 { name: '编辑详情', //按钮的名称 text: '编辑详情',//显示的字 icon: 'fa fa-image',//按钮的图标 classname: 'btn btn-xs btn-primary btn-dialog',//按钮的类型 其中btn-dialog是我们要讨论的内容 还有其他请自行社区搜搜 url: function (row, column) { //row 表格接收到的数据 return "lverp/lvorderlist?ids=" + row.id; //弹窗的对应后台控制器方法 这里是默认index方法 加id参数 }, extend: 'data-area='["98%","98%"]'', //这是控制弹窗的弹出的尺寸 callback: function (data) { //回调方法,用来响应 Fast.api.close()方法 **注意不能有success 是btn-ajax的回调,btn-dialog 用的callback回调,两者不能同存!!!! $(".btn-refresh").trigger("click");//刷新当前页面的数据 console.error(data);//控制输出回调数据 }, hidden:function(data){ //控制按钮隐藏方法 判断表格数据是否满足要求,然后隐藏或显示 if(data.lvbuyquotation_ids) return true; } }],events: Table.api.events.operate, formatter: Table.api.formatter.operate}
触发回调页面B 例子中btn-dialog url 是index方法
index: function () { parent.window.$(".layui-layer-iframe").find(".layui-layer-close").on('click',function () { Fast.api.close("1111"); }); //这里是给当前弹窗的右上角X按钮绑定了一个事件,当然也可以其他按钮,绑定Fast.api.close(data)事件,我这里是index方法没啥值好传递了,就随便搞了个1111//如果需要传值 请在table.on('load-success.bs.table', function (e, data) {} 表格数据加载完成后这个事件里面绑定相应按钮}
4. 思考
- 页面A中如果是模板上的按钮如何操作呢
//在对应js方法中绑定$(".your-button").on('click',function(){ Fast.api.open("www.fastadmin.net", "FastAdmin", { callback:function(value){ $(".btn-refresh").trigger("click");//刷新当前页面的数据 console.error(value);//控制输出回调数据 //在这里可以接收弹出层中使用`Fast.api.close(data)`进行回传的数据 } });//或者 在js表单Form.api.bindevent($("form[role=form]"), function(data, ret){ //给表单绑定新的回调函数 接收 控制器 success(msg,url,data)或者error(msg,url,data) Fast.api.close(data);//在这里 console.log("成功");}, function(data, ret){ console.error("错误");});
5. PS.
- 本人美工 大神勿喷
- 如有错误、不详 欢迎回帖指正、补充
- 如本帖帮到了你 请收藏 请点赞
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。