mirror of https://gitee.com/karson/fastadmin.git
新增buttons配置success/error/callback回调事件
新增buttons配置confirm提示框功能 新增buttons的URL替换行其它数据 完善btn-ajax/btn-addtabs/btn-dialog的功能 修复后台系统配置使用复选框的BUGpull/28/head
parent
87c12d6847
commit
f463fa980a
|
|
@ -4,6 +4,7 @@ return [
|
|||
'Url' => '链接',
|
||||
'Userame' => '用户名',
|
||||
'Createtime' => '操作时间',
|
||||
'Click to edit' => '点击编辑',
|
||||
'Admin log' => '操作日志',
|
||||
'Leave password blank if dont want to change' => '不修改密码请留空',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -111,23 +111,74 @@ define(['fast', 'moment'], function (Fast, Moment) {
|
|||
Toastr.options.positionClass = Config.controllername === 'index' ? "toast-top-right-index" : "toast-top-right";
|
||||
//点击包含.btn-dialog的元素时弹出dialog
|
||||
$(document).on('click', '.btn-dialog,.dialogit', function (e) {
|
||||
var options = $(this).data() || {};
|
||||
Backend.api.open(Backend.api.replaceids(this, $(this).attr('href')), $(this).attr('title'), options);
|
||||
var that = this;
|
||||
var options = $(that).data() || {};
|
||||
if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
|
||||
var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
|
||||
if (tableOptions) {
|
||||
var button = tableOptions.columns[0][options.columnIndex]['buttons'][options.buttonIndex];
|
||||
if (button && typeof button.callback === 'function') {
|
||||
options.callback = button.callback;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof options.confirm !== 'undefined') {
|
||||
Layer.confirm(options.confirm, function (index) {
|
||||
Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
|
||||
Layer.close(index);
|
||||
});
|
||||
} else {
|
||||
Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//点击包含.btn-addtabs的元素时新增选项卡
|
||||
$(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
|
||||
Backend.api.addtabs(Backend.api.replaceids(this, $(this).attr('href')), $(this).attr("title"));
|
||||
var that = this;
|
||||
var options = $(that).data() || {};
|
||||
if (typeof options.confirm !== 'undefined') {
|
||||
Layer.confirm(options.confirm, function (index) {
|
||||
Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
|
||||
Layer.close(index);
|
||||
});
|
||||
} else {
|
||||
Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
//点击包含.btn-ajax的元素时发送Ajax请求
|
||||
$(document).on('click', '.btn-ajax,.ajaxit', function (e) {
|
||||
var options = $(this).data();
|
||||
if (typeof options.url === 'undefined' && $(this).attr("href")) {
|
||||
options.url = $(this).attr("href");
|
||||
var that = this;
|
||||
var options = $(that).data() || {};
|
||||
if (typeof options.url === 'undefined' && $(that).attr("href")) {
|
||||
options.url = $(that).attr("href");
|
||||
}
|
||||
options.url = Backend.api.replaceids(this, options.url);
|
||||
Backend.api.ajax(options);
|
||||
var success = typeof options.success === 'function' ? options.success : null;
|
||||
var error = typeof options.error === 'function' ? options.error : null;
|
||||
delete options.success;
|
||||
delete options.error;
|
||||
if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
|
||||
var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
|
||||
if (tableOptions) {
|
||||
var button = tableOptions.columns[0][options.columnIndex]['buttons'][options.buttonIndex];
|
||||
if (button && typeof button.success === 'function') {
|
||||
success = button.success;
|
||||
}
|
||||
if (button && typeof button.error === 'function') {
|
||||
error = button.error;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof options.confirm !== 'undefined') {
|
||||
Layer.confirm(options.confirm, function (index) {
|
||||
Backend.api.ajax(options, success, error);
|
||||
Layer.close(index);
|
||||
});
|
||||
} else {
|
||||
Backend.api.ajax(options, success, error);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//修复含有fixed-footer类的body边距
|
||||
|
|
|
|||
|
|
@ -6909,23 +6909,74 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
|
|||
Toastr.options.positionClass = Config.controllername === 'index' ? "toast-top-right-index" : "toast-top-right";
|
||||
//点击包含.btn-dialog的元素时弹出dialog
|
||||
$(document).on('click', '.btn-dialog,.dialogit', function (e) {
|
||||
var options = $(this).data() || {};
|
||||
Backend.api.open(Backend.api.replaceids(this, $(this).attr('href')), $(this).attr('title'), options);
|
||||
var that = this;
|
||||
var options = $(that).data() || {};
|
||||
if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
|
||||
var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
|
||||
if (tableOptions) {
|
||||
var button = tableOptions.columns[0][options.columnIndex]['buttons'][options.buttonIndex];
|
||||
if (button && typeof button.callback === 'function') {
|
||||
options.callback = button.callback;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof options.confirm !== 'undefined') {
|
||||
Layer.confirm(options.confirm, function (index) {
|
||||
Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
|
||||
Layer.close(index);
|
||||
});
|
||||
} else {
|
||||
Backend.api.open(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr('title'), options);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//点击包含.btn-addtabs的元素时新增选项卡
|
||||
$(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
|
||||
Backend.api.addtabs(Backend.api.replaceids(this, $(this).attr('href')), $(this).attr("title"));
|
||||
var that = this;
|
||||
var options = $(that).data() || {};
|
||||
if (typeof options.confirm !== 'undefined') {
|
||||
Layer.confirm(options.confirm, function (index) {
|
||||
Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
|
||||
Layer.close(index);
|
||||
});
|
||||
} else {
|
||||
Backend.api.addtabs(Backend.api.replaceids(that, $(that).attr('href')), $(that).attr("title"));
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
//点击包含.btn-ajax的元素时发送Ajax请求
|
||||
$(document).on('click', '.btn-ajax,.ajaxit', function (e) {
|
||||
var options = $(this).data();
|
||||
if (typeof options.url === 'undefined' && $(this).attr("href")) {
|
||||
options.url = $(this).attr("href");
|
||||
var that = this;
|
||||
var options = $(that).data() || {};
|
||||
if (typeof options.url === 'undefined' && $(that).attr("href")) {
|
||||
options.url = $(that).attr("href");
|
||||
}
|
||||
options.url = Backend.api.replaceids(this, options.url);
|
||||
Backend.api.ajax(options);
|
||||
var success = typeof options.success === 'function' ? options.success : null;
|
||||
var error = typeof options.error === 'function' ? options.error : null;
|
||||
delete options.success;
|
||||
delete options.error;
|
||||
if (typeof options.tableId !== 'undefined' && typeof options.columnIndex !== 'undefined' && typeof options.buttonIndex !== 'undefined') {
|
||||
var tableOptions = $("#" + options.tableId).bootstrapTable('getOptions');
|
||||
if (tableOptions) {
|
||||
var button = tableOptions.columns[0][options.columnIndex]['buttons'][options.buttonIndex];
|
||||
if (button && typeof button.success === 'function') {
|
||||
success = button.success;
|
||||
}
|
||||
if (button && typeof button.error === 'function') {
|
||||
error = button.error;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof options.confirm !== 'undefined') {
|
||||
Layer.confirm(options.confirm, function (index) {
|
||||
Backend.api.ajax(options, success, error);
|
||||
Layer.close(index);
|
||||
});
|
||||
} else {
|
||||
Backend.api.ajax(options, success, error);
|
||||
}
|
||||
return false;
|
||||
});
|
||||
//修复含有fixed-footer类的body边距
|
||||
|
|
@ -9707,10 +9758,10 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
$(toolbar).on('click', Table.config.delbtn, function () {
|
||||
var that = this;
|
||||
var ids = Table.api.selectedids(table);
|
||||
var index = Layer.confirm(
|
||||
Layer.confirm(
|
||||
__('Are you sure you want to delete the %s selected item?', ids.length),
|
||||
{icon: 3, title: __('Warning'), offset: 0, shadeClose: true},
|
||||
function () {
|
||||
function (index) {
|
||||
Table.api.multi("del", ids, table, that);
|
||||
Layer.close(index);
|
||||
}
|
||||
|
|
@ -9765,10 +9816,10 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
e.preventDefault();
|
||||
var id = $(this).data("id");
|
||||
var that = this;
|
||||
var index = Layer.confirm(
|
||||
Layer.confirm(
|
||||
__('Are you sure you want to delete this item?'),
|
||||
{icon: 3, title: __('Warning'), shadeClose: true},
|
||||
function () {
|
||||
function (index) {
|
||||
Table.api.multi("del", id, table, that);
|
||||
Layer.close(index);
|
||||
}
|
||||
|
|
@ -9811,10 +9862,10 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
if ($(window).width() < 480) {
|
||||
top = left = undefined;
|
||||
}
|
||||
var index = Layer.confirm(
|
||||
Layer.confirm(
|
||||
__('Are you sure you want to delete this item?'),
|
||||
{icon: 3, title: __('Warning'), offset: [top, left], shadeClose: true},
|
||||
function () {
|
||||
function (index) {
|
||||
var table = $(that).closest('table');
|
||||
var options = table.bootstrapTable('getOptions');
|
||||
Table.api.multi("del", row[options.pk], table, that);
|
||||
|
|
@ -9916,65 +9967,69 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
|
|||
buttons.push({name: 'dragsort', icon: 'fa fa-arrows', classname: 'btn btn-xs btn-primary btn-dragsort'});
|
||||
buttons.push({name: 'edit', icon: 'fa fa-pencil', classname: 'btn btn-xs btn-success btn-editone', url: options.extend.edit_url});
|
||||
buttons.push({name: 'del', icon: 'fa fa-trash', classname: 'btn btn-xs btn-danger btn-delone'});
|
||||
var html = [];
|
||||
var url, classname, icon, text, title, extend;
|
||||
$.each(buttons, function (i, j) {
|
||||
return Table.api.buttonlink(this, buttons, value, row, index, 'operate');
|
||||
},
|
||||
buttons: function (value, row, index) {
|
||||
// 默认按钮组
|
||||
var buttons = $.extend([], this.buttons || []);
|
||||
return Table.api.buttonlink(this, buttons, value, row, index, 'buttons');
|
||||
}
|
||||
},
|
||||
buttonlink: function (column, buttons, value, row, index, type) {
|
||||
var table = column.table;
|
||||
type = typeof type === 'undefined' ? 'buttons' : type;
|
||||
// 操作配置
|
||||
var options = table ? table.bootstrapTable('getOptions') : {};
|
||||
var html = [];
|
||||
var url, classname, icon, text, title, extend;
|
||||
var columnIndex = options.columns[0].findIndex(function (element) {
|
||||
return element === column;
|
||||
});
|
||||
$.each(buttons, function (i, j) {
|
||||
if (type === 'operate') {
|
||||
if (j.name === 'dragsort' && typeof row[Table.config.dragsortfield] === 'undefined') {
|
||||
return true;
|
||||
}
|
||||
if (['add', 'edit', 'del', 'multi', 'dragsort'].indexOf(j.name) > -1 && !options.extend[j.name + "_url"]) {
|
||||
return true;
|
||||
}
|
||||
var attr = table.data("operate-" + j.name);
|
||||
if (typeof attr === 'undefined' || attr) {
|
||||
url = j.url ? j.url : '';
|
||||
if (url.indexOf("{ids}") === -1) {
|
||||
url = url ? url + (url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk] : '';
|
||||
}
|
||||
url = Table.api.replaceurl(url, value, row, table);
|
||||
url = url ? Fast.api.fixurl(url) : 'javascript:;';
|
||||
classname = j.classname ? j.classname : 'btn-primary btn-' + name + 'one';
|
||||
icon = j.icon ? j.icon : '';
|
||||
text = j.text ? j.text : '';
|
||||
title = j.title ? j.title : text;
|
||||
extend = j.extend ? j.extend : '';
|
||||
html.push('<a href="' + url + '" class="' + classname + '" ' + extend + ' title="' + title + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
|
||||
}
|
||||
var attr = table.data(type + "-" + j.name);
|
||||
if (typeof attr === 'undefined' || attr) {
|
||||
url = j.url ? j.url : '';
|
||||
if (!url.match(/\{(.*?)\}/i)) {
|
||||
url = url ? url + (url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk] : '';
|
||||
}
|
||||
});
|
||||
return html.join(' ');
|
||||
},
|
||||
buttons: function (value, row, index) {
|
||||
var table = this.table;
|
||||
// 操作配置
|
||||
var options = table ? table.bootstrapTable('getOptions') : {};
|
||||
// 默认按钮组
|
||||
var buttons = $.extend([], this.buttons || []);
|
||||
var html = [];
|
||||
var url, classname, icon, text, title, extend;
|
||||
$.each(buttons, function (i, j) {
|
||||
var attr = table.data("buttons-" + j.name);
|
||||
if (typeof attr === 'undefined' || attr) {
|
||||
url = j.url ? j.url : '';
|
||||
if (url.indexOf("{ids}") === -1) {
|
||||
url = url ? url + (url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk] : '';
|
||||
}
|
||||
url = Table.api.replaceurl(url, value, row, table);
|
||||
url = url ? Fast.api.fixurl(url) : 'javascript:;';
|
||||
classname = j.classname ? j.classname : 'btn-primary btn-' + name + 'one';
|
||||
icon = j.icon ? j.icon : '';
|
||||
text = j.text ? j.text : '';
|
||||
title = j.title ? j.title : text;
|
||||
extend = j.extend ? j.extend : '';
|
||||
html.push('<a href="' + url + '" class="' + classname + '" ' + extend + ' title="' + title + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
|
||||
}
|
||||
});
|
||||
return html.join(' ');
|
||||
}
|
||||
url = Table.api.replaceurl(url, value, row, table);
|
||||
url = url ? Fast.api.fixurl(url) : 'javascript:;';
|
||||
classname = j.classname ? j.classname : 'btn-primary btn-' + name + 'one';
|
||||
icon = j.icon ? j.icon : '';
|
||||
text = j.text ? j.text : '';
|
||||
title = j.title ? j.title : text;
|
||||
confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : '';
|
||||
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-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
|
||||
}
|
||||
});
|
||||
return html.join(' ');
|
||||
},
|
||||
//替换URL中的{ids}和{value}
|
||||
//替换URL中的数据
|
||||
replaceurl: function (url, value, row, table) {
|
||||
url = url ? url : '';
|
||||
url = url.replace(/\{value\}/ig, value);
|
||||
url = url.replace(/\{(.*?)\}/gi, function (matched) {
|
||||
matched = matched.substring(1, matched.length - 1);
|
||||
if (matched.indexOf(".") !== -1) {
|
||||
var temp = row;
|
||||
var arr = matched.split(/\./);
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (typeof temp[arr[i]] !== 'undefined') {
|
||||
temp = temp[arr[i]];
|
||||
}
|
||||
}
|
||||
return typeof temp === 'object' ? '' : temp;
|
||||
}
|
||||
return row[matched];
|
||||
});
|
||||
if (table) {
|
||||
var options = table.bootstrapTable('getOptions');
|
||||
url = url.replace(/\{ids\}/ig, row[options.pk]);
|
||||
|
|
@ -12836,7 +12891,7 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
|
|||
url = url ? url : location.href;
|
||||
//修复当存在多选项元素时提交的BUG
|
||||
var params = {};
|
||||
var multipleList = $("[name$='[]']");
|
||||
var multipleList = $("[name$='[]']", form);
|
||||
if (multipleList.size() > 0) {
|
||||
var postFields = form.serializeArray().map(function (obj) {
|
||||
return $(obj).prop("name");
|
||||
|
|
@ -12851,7 +12906,7 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
|
|||
Fast.api.ajax({
|
||||
type: type,
|
||||
url: url,
|
||||
data: form.serialize() + (params ? '&' + $.param(params) : ''),
|
||||
data: form.serialize() + (Object.keys(params).length > 0 ? '&' + $.param(params) : ''),
|
||||
dataType: 'json',
|
||||
complete: function (xhr) {
|
||||
var token = xhr.getResponseHeader('__token__');
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ define(['jquery', 'bootstrap', 'upload', 'validator'], function ($, undefined, U
|
|||
url = url ? url : location.href;
|
||||
//修复当存在多选项元素时提交的BUG
|
||||
var params = {};
|
||||
var multipleList = $("[name$='[]']");
|
||||
var multipleList = $("[name$='[]']", form);
|
||||
if (multipleList.size() > 0) {
|
||||
var postFields = form.serializeArray().map(function (obj) {
|
||||
return $(obj).prop("name");
|
||||
|
|
@ -231,7 +231,7 @@ define(['jquery', 'bootstrap', 'upload', 'validator'], function ($, undefined, U
|
|||
Fast.api.ajax({
|
||||
type: type,
|
||||
url: url,
|
||||
data: form.serialize() + (params ? '&' + $.param(params) : ''),
|
||||
data: form.serialize() + (Object.keys(params).length > 0 ? '&' + $.param(params) : ''),
|
||||
dataType: 'json',
|
||||
complete: function (xhr) {
|
||||
var token = xhr.getResponseHeader('__token__');
|
||||
|
|
|
|||
|
|
@ -189,10 +189,10 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
$(toolbar).on('click', Table.config.delbtn, function () {
|
||||
var that = this;
|
||||
var ids = Table.api.selectedids(table);
|
||||
var index = Layer.confirm(
|
||||
Layer.confirm(
|
||||
__('Are you sure you want to delete the %s selected item?', ids.length),
|
||||
{icon: 3, title: __('Warning'), offset: 0, shadeClose: true},
|
||||
function () {
|
||||
function (index) {
|
||||
Table.api.multi("del", ids, table, that);
|
||||
Layer.close(index);
|
||||
}
|
||||
|
|
@ -247,10 +247,10 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
e.preventDefault();
|
||||
var id = $(this).data("id");
|
||||
var that = this;
|
||||
var index = Layer.confirm(
|
||||
Layer.confirm(
|
||||
__('Are you sure you want to delete this item?'),
|
||||
{icon: 3, title: __('Warning'), shadeClose: true},
|
||||
function () {
|
||||
function (index) {
|
||||
Table.api.multi("del", id, table, that);
|
||||
Layer.close(index);
|
||||
}
|
||||
|
|
@ -293,10 +293,10 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
if ($(window).width() < 480) {
|
||||
top = left = undefined;
|
||||
}
|
||||
var index = Layer.confirm(
|
||||
Layer.confirm(
|
||||
__('Are you sure you want to delete this item?'),
|
||||
{icon: 3, title: __('Warning'), offset: [top, left], shadeClose: true},
|
||||
function () {
|
||||
function (index) {
|
||||
var table = $(that).closest('table');
|
||||
var options = table.bootstrapTable('getOptions');
|
||||
Table.api.multi("del", row[options.pk], table, that);
|
||||
|
|
@ -398,65 +398,68 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
|
|||
buttons.push({name: 'dragsort', icon: 'fa fa-arrows', classname: 'btn btn-xs btn-primary btn-dragsort'});
|
||||
buttons.push({name: 'edit', icon: 'fa fa-pencil', classname: 'btn btn-xs btn-success btn-editone', url: options.extend.edit_url});
|
||||
buttons.push({name: 'del', icon: 'fa fa-trash', classname: 'btn btn-xs btn-danger btn-delone'});
|
||||
var html = [];
|
||||
var url, classname, icon, text, title, extend;
|
||||
$.each(buttons, function (i, j) {
|
||||
return Table.api.buttonlink(this, buttons, value, row, index, 'operate');
|
||||
},
|
||||
buttons: function (value, row, index) {
|
||||
// 默认按钮组
|
||||
var buttons = $.extend([], this.buttons || []);
|
||||
return Table.api.buttonlink(this, buttons, value, row, index, 'buttons');
|
||||
}
|
||||
},
|
||||
buttonlink: function (column, buttons, value, row, index, type) {
|
||||
var table = column.table;
|
||||
type = typeof type === 'undefined' ? 'buttons' : type;
|
||||
var options = table ? table.bootstrapTable('getOptions') : {};
|
||||
var html = [];
|
||||
var url, classname, icon, text, title, extend;
|
||||
var columnIndex = options.columns[0].findIndex(function (element) {
|
||||
return element === column;
|
||||
});
|
||||
$.each(buttons, function (i, j) {
|
||||
if (type === 'operate') {
|
||||
if (j.name === 'dragsort' && typeof row[Table.config.dragsortfield] === 'undefined') {
|
||||
return true;
|
||||
}
|
||||
if (['add', 'edit', 'del', 'multi', 'dragsort'].indexOf(j.name) > -1 && !options.extend[j.name + "_url"]) {
|
||||
return true;
|
||||
}
|
||||
var attr = table.data("operate-" + j.name);
|
||||
if (typeof attr === 'undefined' || attr) {
|
||||
url = j.url ? j.url : '';
|
||||
if (url.indexOf("{ids}") === -1) {
|
||||
url = url ? url + (url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk] : '';
|
||||
}
|
||||
url = Table.api.replaceurl(url, value, row, table);
|
||||
url = url ? Fast.api.fixurl(url) : 'javascript:;';
|
||||
classname = j.classname ? j.classname : 'btn-primary btn-' + name + 'one';
|
||||
icon = j.icon ? j.icon : '';
|
||||
text = j.text ? j.text : '';
|
||||
title = j.title ? j.title : text;
|
||||
extend = j.extend ? j.extend : '';
|
||||
html.push('<a href="' + url + '" class="' + classname + '" ' + extend + ' title="' + title + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
|
||||
}
|
||||
var attr = table.data(type + "-" + j.name);
|
||||
if (typeof attr === 'undefined' || attr) {
|
||||
url = j.url ? j.url : '';
|
||||
if (!url.match(/\{(.*?)\}/i)) {
|
||||
url = url ? url + (url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk] : '';
|
||||
}
|
||||
});
|
||||
return html.join(' ');
|
||||
},
|
||||
buttons: function (value, row, index) {
|
||||
var table = this.table;
|
||||
// 操作配置
|
||||
var options = table ? table.bootstrapTable('getOptions') : {};
|
||||
// 默认按钮组
|
||||
var buttons = $.extend([], this.buttons || []);
|
||||
var html = [];
|
||||
var url, classname, icon, text, title, extend;
|
||||
$.each(buttons, function (i, j) {
|
||||
var attr = table.data("buttons-" + j.name);
|
||||
if (typeof attr === 'undefined' || attr) {
|
||||
url = j.url ? j.url : '';
|
||||
if (url.indexOf("{ids}") === -1) {
|
||||
url = url ? url + (url.match(/(\?|&)+/) ? "&ids=" : "/ids/") + row[options.pk] : '';
|
||||
}
|
||||
url = Table.api.replaceurl(url, value, row, table);
|
||||
url = url ? Fast.api.fixurl(url) : 'javascript:;';
|
||||
classname = j.classname ? j.classname : 'btn-primary btn-' + name + 'one';
|
||||
icon = j.icon ? j.icon : '';
|
||||
text = j.text ? j.text : '';
|
||||
title = j.title ? j.title : text;
|
||||
extend = j.extend ? j.extend : '';
|
||||
html.push('<a href="' + url + '" class="' + classname + '" ' + extend + ' title="' + title + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
|
||||
}
|
||||
});
|
||||
return html.join(' ');
|
||||
}
|
||||
url = Table.api.replaceurl(url, value, row, table);
|
||||
url = url ? Fast.api.fixurl(url) : 'javascript:;';
|
||||
classname = j.classname ? j.classname : 'btn-primary btn-' + name + 'one';
|
||||
icon = j.icon ? j.icon : '';
|
||||
text = j.text ? j.text : '';
|
||||
title = j.title ? j.title : text;
|
||||
confirm = j.confirm ? 'data-confirm="' + j.confirm + '"' : '';
|
||||
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-button-index="' + i + '"><i class="' + icon + '"></i>' + (text ? ' ' + text : '') + '</a>');
|
||||
}
|
||||
});
|
||||
return html.join(' ');
|
||||
},
|
||||
//替换URL中的{ids}和{value}
|
||||
//替换URL中的数据
|
||||
replaceurl: function (url, value, row, table) {
|
||||
url = url ? url : '';
|
||||
url = url.replace(/\{value\}/ig, value);
|
||||
url = url.replace(/\{(.*?)\}/gi, function (matched) {
|
||||
matched = matched.substring(1, matched.length - 1);
|
||||
if (matched.indexOf(".") !== -1) {
|
||||
var temp = row;
|
||||
var arr = matched.split(/\./);
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (typeof temp[arr[i]] !== 'undefined') {
|
||||
temp = temp[arr[i]];
|
||||
}
|
||||
}
|
||||
return typeof temp === 'object' ? '' : temp;
|
||||
}
|
||||
return row[matched];
|
||||
});
|
||||
if (table) {
|
||||
var options = table.bootstrapTable('getOptions');
|
||||
url = url.replace(/\{ids\}/ig, row[options.pk]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue