发布于2021-12-05 19:12 阅读(1448) 评论(0) 点赞(29) 收藏(0)
最近的一个项目后台要处理的东西比较多,正好整理在这里方便以后使用
在后台处理编辑删除 还需要设置其他按钮 来进行操作
文档链接 ------》 传送门 《---------
见文档中 15.自定义按钮
{
name: 'ajax',
title: __('冻结'),
text: __('冻结'),
classname: 'btn btn-xs btn-danger btn-ajax',
icon: 'fa fa-minus-circle',
confirm: '确认冻结?',
url: 'user/disable',
success: function (data, ret) {
Layer.alert(ret.msg);
//成功之后刷新table
table.bootstrapTable('refresh', {});
},
error: function (data, ret) {
console.log(data, ret);
Layer.alert(ret.msg);
return false;
},
hidden:function (row) {
if (row.status == '-1'){
return true;
}
}
},
{
name: 'detail',
title: __('查看'),
text: __('查看'),
classname: 'btn btn-xs btn-primary btn-dialog',
icon: 'fa fa-list',
url: 'user/team_order',
extend:'data-area=\'["90%;","80%"]\'',
/*callback: function (data) {
Layer.alert("接收到回传数据:" + JSON.stringify(data), {title: "回传数据"});
}*/
}
高级进阶(一)
自定义打开窗口内容 我这里需要的是一个可以输入金额的弹框
{
name: 'no',
title: __('修改余额'),
text: __('修改余额'),
classname: 'btn btn-xs btn-info btn-click',
icon: 'fa fa-cny',
click: function (data, row) {
//当点击的时候出发 appwhy 并携带参数 id
appWhy(row.id);
}
},
appWhy 追加在js最后就可以
function appWhy(id) {
var str = "<div style='width:80%;margin-left:auto;margin-right:auto'>" +
"<select class=\"form-control\" name=\"type\" id=\"more-template-select\" style=\"width: 80px;margin-right:5px;\">\n" +
" <option value=\"+\" selected=\"\">增加</option>\n" +
" <option value=\"-\">减少</option>\n" +
"</select>" +
"<input type=\"text\" class=\"form-control\" style=\"display: block;margin-top: 20px;\" id=\"input-user_money\" name=\"user_money\" value=\"0\" placeholder=\"\" οnkeyup=\"if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\\D/g,'')}\" onafterpaste=\"if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\\D/g,'')}\"></div>";
var table = $("#table");
var openPage = Layer.open({
title: __('修改余额'), //页面标题
content: str,
area: ['400px', '230px'], //自定义文本域宽高
btn: ['确定', '取消'],
//到这里已经触发并弹框了
yes: function (e, value) {
var zj = $("#more-template-select").val();
var money = $("#input-user_money").val();
var user_id = id;
//这里是我发送ajax 处理参数 可以根据 实际情况处理
Fast.api.ajax({
url: 'user/handle_balance',
data: {zj: zj, money: money, user_id: id}
}, function (data, ret) {
//成功的回调
Layer.close(openPage);
table.bootstrapTable('refresh', {});
}, function (data, ret) {
//失败的回调
return false;
}
);
}, btn2: function () {
return 0;
}
})
}
高级进阶(二)
按钮携带参数打开其他页面 用途:如查看指定用户的订单
按钮代码
特别注意url参数
{
name: 'detail',
title: __('查看订单'),
text: __('查看订单'),
classname: 'btn btn-xs btn-primary btn-dialog',
icon: 'fa fa-list',
//注意一下这个url 为 订单的页面的index
url: 'order/index',
extend:'data-area=\'["90%;","80%"]\'',
/*callback: function (data) {
Layer.alert("接收到回传数据:" + JSON.stringify(data), {title: "回传数据"});
}*/
},
在订单控制器要处理穿过来的参数 也就是ids 因为Fastadmin是先渲染的页面然后通过ajax获取的参数 如果直接修改where条件 ajax请求的时候 ids获取不到 所以要 先把ids渲染到页面 再ajax请求回来
控制器中的处理
$ this->assignconfig(‘ids’,$this->request->param(“ids”));
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();
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$wheres = [];
if ($this->request->param("ids")!==NULL) {
$wheres['user_id'] = $this->request->param("ids");
}
$list = $this->model
->with(['auctiongoods','user'])
->where($where)
->where($wheres)
->order($sort, $order)
->paginate($limit);
$money = 0;
foreach ($list as $row) {
$row->visible(['id', 'order_sn', 'pay_money', 'total_money', 'status', 'is_transfer', 'pay_type', 'pay_time', 'examine_time', 'pay_img', 'create_time']);
$row->visible(['auctiongoods']);
$row->getRelation('auctiongoods')->visible(['goods_name']);
$row->visible(['user']);
$row->getRelation('user')->visible(['nick_name']);
$money += intval($row['total_money']*100);
}
$result = array("total" => $list->total(), "rows" => $list->items(), "extend" => ['money' =>$money/100]);
return json($result);
}
$this->assignconfig('ids',$this->request->param("ids"));
return $this->view->fetch();
}
ids通过渲染之后 在js中需要在携带请求
在初始化表格的时候携带
queryParams: function (params) {
//自定义搜索条件
var filter = params.filter ? JSON.parse(params.filter) : {}; //判断当前是否还有其他高级搜索栏的条件
var op = params.op ? JSON.parse(params.op) : {}; //并将搜索过滤器 转为对象方便我们追加条件
//注意要做一下判断 不然不带参数访问不到
if(Config.ids){
filter.user_id = Config.ids; //将透传的参数 Config.ids,追加到搜索条件中
}
op.user_id = "=";
params.filter = JSON.stringify(filter); //将搜索过滤器和操作方法 都转为JSON字符串
params.op = JSON.stringify(op);
//如果希望忽略搜索栏搜索条件,可使用
//params.filter = JSON.stringify({url: 'login'});
//params.op = JSON.stringify({url: 'like'});
return params;
},
{
field: 'time',
title: __('时间'),
operate: 'RANGE',
addclass: 'datetimerange',
autocomplete: false,
datetimeFormat: "YYYY-MM-DD",
formatter: Table.api.formatter.datetime,
},
自定义搜索功能时间搜索格式更换
{
field: 'today_time',
title: __('时间'),
operate: 'RANGE',
addclass: 'datetimerange',
autocomplete: false,
datetimeFormat: "YYYY-MM-DD",
formatter: Table.api.formatter.datetime,
data: 'data-date-format="YYYY-MM-DD"'
},
未完待续…
原文链接:https://blog.csdn.net/weixin_43866089/article/details/119006425
作者:Hggh
链接:http://www.qianduanheidong.com/blog/article/248490/abdf5aed90b7bc5a0f18/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!