新增btn-ajax操作成功后自动刷新表格的功能

表格buttons新增refresh参数
修复btn-ajax回调函数在多次调用时的BUG
修复在启用dataLimit时关联查询时的BUG
pull/567131/MERGE
Karson 2017-12-19 23:10:22 +08:00
parent 2f2c003f65
commit 50e91c53bb
4 changed files with 26 additions and 14 deletions

View File

@ -170,9 +170,9 @@ class Backend extends Controller
'fastadmin' => Config::get('fastadmin'), 'fastadmin' => Config::get('fastadmin'),
'referer' => Session::get("referer") 'referer' => Session::get("referer")
]; ];
Config::set('upload', array_merge(Config::get('upload'), $upload)); Config::set('upload', array_merge(Config::get('upload'), $upload));
// 配置信息后 // 配置信息后
Hook::listen("config_init", $config); Hook::listen("config_init", $config);
//加载当前控制器语言包 //加载当前控制器语言包
@ -232,16 +232,14 @@ class Backend extends Controller
{ {
if (!empty($this->model)) if (!empty($this->model))
{ {
$class = get_class($this->model); $tableName = $this->model->getQuery()->getTable() . ".";
$name = basename(str_replace('\\', '/', $class));
$tableName = $this->model->getQuery()->getTable($name) . ".";
} }
$sort = stripos($sort, ".") === false ? $tableName . $sort : $sort; $sort = stripos($sort, ".") === false ? $tableName . $sort : $sort;
} }
$adminIds = $this->getDataLimitAdminIds(); $adminIds = $this->getDataLimitAdminIds();
if (is_array($adminIds)) if (is_array($adminIds))
{ {
$where[] = [$this->dataLimitField, 'in', $adminIds]; $where[] = [$tableName . $this->dataLimitField, 'in', $adminIds];
} }
if ($search) if ($search)
{ {
@ -363,6 +361,10 @@ class Backend extends Controller
{ {
return null; return null;
} }
if ($this->auth->isSuperAdmin())
{
return null;
}
$adminIds = []; $adminIds = [];
if (in_array($this->dataLimit, ['auth', 'personal'])) if (in_array($this->dataLimit, ['auth', 'personal']))
{ {

View File

@ -112,7 +112,7 @@ define(['fast', 'moment'], function (Fast, Moment) {
//点击包含.btn-dialog的元素时弹出dialog //点击包含.btn-dialog的元素时弹出dialog
$(document).on('click', '.btn-dialog,.dialogit', function (e) { $(document).on('click', '.btn-dialog,.dialogit', function (e) {
var that = this; var that = this;
var options = $(that).data() || {}; var options = $.extend({}, $(that).data() || {});
if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') { if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions'); var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
if (tableOptions) { if (tableOptions) {
@ -135,7 +135,7 @@ define(['fast', 'moment'], function (Fast, Moment) {
//点击包含.btn-addtabs的元素时新增选项卡 //点击包含.btn-addtabs的元素时新增选项卡
$(document).on('click', '.btn-addtabs,.addtabsit', function (e) { $(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
var that = this; var that = this;
var options = $(that).data() || {}; var options = $.extend({}, $(that).data() || {});
if (typeof options.confirm !== 'undefined') { if (typeof options.confirm !== 'undefined') {
Layer.confirm(options.confirm, function (index) { Layer.confirm(options.confirm, function (index) {
Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title")); Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
@ -150,7 +150,7 @@ define(['fast', 'moment'], function (Fast, Moment) {
//点击包含.btn-ajax的元素时发送Ajax请求 //点击包含.btn-ajax的元素时发送Ajax请求
$(document).on('click', '.btn-ajax,.ajaxit', function (e) { $(document).on('click', '.btn-ajax,.ajaxit', function (e) {
var that = this; var that = this;
var options = $(that).data() || {}; var options = $.extend({}, $(that).data() || {});
if (typeof options.url === 'undefined' && $(that).attr("href")) { if (typeof options.url === 'undefined' && $(that).attr("href")) {
options.url = $(that).attr("href"); options.url = $(that).attr("href");
} }
@ -171,6 +171,10 @@ define(['fast', 'moment'], function (Fast, Moment) {
} }
} }
} }
//如果未设备成功的回调,设定了自动刷新的情况下自动进行刷新
if (!success && typeof options.tableId !== 'undefined' && typeof options.refresh !== 'undefined' && options.refresh) {
$("#" + options.tableId).bootstrapTable('refresh');
}
if (typeof options.confirm !== 'undefined') { if (typeof options.confirm !== 'undefined') {
Layer.confirm(options.confirm, function (index) { Layer.confirm(options.confirm, function (index) {
Backend.api.ajax(options, success, error); Backend.api.ajax(options, success, error);

View File

@ -6910,7 +6910,7 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
//点击包含.btn-dialog的元素时弹出dialog //点击包含.btn-dialog的元素时弹出dialog
$(document).on('click', '.btn-dialog,.dialogit', function (e) { $(document).on('click', '.btn-dialog,.dialogit', function (e) {
var that = this; var that = this;
var options = $(that).data() || {}; var options = $.extend({}, $(that).data() || {});
if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') { if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions'); var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
if (tableOptions) { if (tableOptions) {
@ -6933,7 +6933,7 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
//点击包含.btn-addtabs的元素时新增选项卡 //点击包含.btn-addtabs的元素时新增选项卡
$(document).on('click', '.btn-addtabs,.addtabsit', function (e) { $(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
var that = this; var that = this;
var options = $(that).data() || {}; var options = $.extend({}, $(that).data() || {});
if (typeof options.confirm !== 'undefined') { if (typeof options.confirm !== 'undefined') {
Layer.confirm(options.confirm, function (index) { Layer.confirm(options.confirm, function (index) {
Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title")); Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
@ -6948,7 +6948,7 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
//点击包含.btn-ajax的元素时发送Ajax请求 //点击包含.btn-ajax的元素时发送Ajax请求
$(document).on('click', '.btn-ajax,.ajaxit', function (e) { $(document).on('click', '.btn-ajax,.ajaxit', function (e) {
var that = this; var that = this;
var options = $(that).data() || {}; var options = $.extend({}, $(that).data() || {});
if (typeof options.url === 'undefined' && $(that).attr("href")) { if (typeof options.url === 'undefined' && $(that).attr("href")) {
options.url = $(that).attr("href"); options.url = $(that).attr("href");
} }
@ -6969,6 +6969,10 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
} }
} }
} }
//如果未设备成功的回调,设定了自动刷新的情况下自动进行刷新
if (!success && typeof options.tableId !== 'undefined' && typeof options.refresh !== 'undefined' && options.refresh) {
$("#" + options.tableId).bootstrapTable('refresh');
}
if (typeof options.confirm !== 'undefined') { if (typeof options.confirm !== 'undefined') {
Layer.confirm(options.confirm, function (index) { Layer.confirm(options.confirm, function (index) {
Backend.api.ajax(options, success, error); Backend.api.ajax(options, success, error);
@ -10005,9 +10009,10 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
icon = j.icon ? j.icon : ''; icon = j.icon ? j.icon : '';
text = j.text ? j.text : ''; text = j.text ? j.text : '';
title = j.title ? j.title : text; title = j.title ? j.title : text;
refresh = j.refresh ? 'data-refresh="' + j.refresh + '"' : '';
confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : ''; confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : '';
extend = j.extend ? j.extend : ''; extend = j.extend ? j.extend : '';
html.push('<a href="' + url + '" class="' + classname + '" ' + (confirm ? confirm + ' ' : '') + extend + ' title="' + title + '" data-table-id="' + (table ? table.attr("id") : '') + '" data-column-index="' + columnIndex + '" data-row-index="' + index + '" data-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>'); html.push('<a href="' + url + '" class="' + classname + '" ' + (confirm ? confirm + ' ' : '') + (refresh ? refresh + ' ' : '') + extend + ' title="' + title + '" data-table-id="' + (table ? table.attr("id") : '') + '" data-column-index="' + columnIndex + '" data-row-index="' + index + '" data-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
} }
}); });
return html.join(' '); return html.join(' ');

View File

@ -436,9 +436,10 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
icon = j.icon ? j.icon : ''; icon = j.icon ? j.icon : '';
text = j.text ? j.text : ''; text = j.text ? j.text : '';
title = j.title ? j.title : text; title = j.title ? j.title : text;
refresh = j.refresh ? 'data-refresh="' + j.refresh + '"' : '';
confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : ''; confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : '';
extend = j.extend ? j.extend : ''; extend = j.extend ? j.extend : '';
html.push('<a href="' + url + '" class="' + classname + '" ' + (confirm ? confirm + ' ' : '') + extend + ' title="' + title + '" data-table-id="' + (table ? table.attr("id") : '') + '" data-column-index="' + columnIndex + '" data-row-index="' + index + '" data-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>'); html.push('<a href="' + url + '" class="' + classname + '" ' + (confirm ? confirm + ' ' : '') + (refresh ? refresh + ' ' : '') + extend + ' title="' + title + '" data-table-id="' + (table ? table.attr("id") : '') + '" data-column-index="' + columnIndex + '" data-row-index="' + index + '" data-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
} }
}); });
return html.join(' '); return html.join(' ');