/**
* 通用js方法封装处理
* Copyright (c) 2019 siyucms
*/
(function ($) {
$.extend({
btTable: {}, // bootstrapTable
// 表格封装处理
table: {
_option: {},
// 初始化表格参数
init: function (options) {
// 默认参数
var defaults = {
id: "bootstrap-table",
height: undefined, // 表格的高度,一般不需要设置
sidePagination: "server", // server启用服务端分页client客户端分页
sortName: "id", // 排序列名称
sortOrder: "desc", // 排序方式 asc 或者 desc
escape: true, // 转义HTML字符串
pagination: true, // 是否显示分页
pageSize: 10, // 每页的记录行数
showRefresh: true, // 是否显示刷新按钮
showToggle: true, // 是否显示详细视图和列表视图的切换按钮
showFullscreen: true, // 是否显示全屏按钮
showColumns: true, // 是否显示隐藏某列下拉框
search: false, // 是否显示自带的搜索框功能
showSearchButton: false, // 是否显示自带的搜索按钮
pageList: [10, 25, 50, 100], // 每页显示的数量选择
toolbar: "toolbar", // 自定义工具栏
toolbarAlign: "left", // 工具栏左对齐
buttonsClass: "", // 按钮样式
showFooter: false, // 显示页脚
showExport: false, // 显示导出按钮
clickToSelect: false, // 是否启用点击选中行
fixedColumns: false, // 是否启用固定列功能
fixedLeft: 1, // 左侧固定列数
fixedRight: 1, // 右侧固定列数
rowStyle: {}, // 设置行样式
classes: 'table table-hover', // 设置表样式
queryParams: $.table.queryParams,
};
var options = $.extend(defaults, options);
$.table._option = options;
$.btTable = $('#' + options.id);
// 初始化新事件对象的属性
$.table.initEvent();
// 构建bootstrap数据
var option = {
url: options.url, // 请求后台的URL(*)
height: options.height, // 表格的高度
sortable: true, // 是否启用排序
sortName: options.sortName, // 排序列名称
sortOrder: options.sortOrder, // 排序方式 asc 或者 desc
sortStable: true, // 设置为 true 将获得稳定的排序
method: 'post', // 请求方式(*)
cache: false, // 是否使用缓存
contentType: "application/json", // 内容类型
dataType: 'json', // 数据类型
responseHandler: $.table.responseHandler, // 在加载服务器发送来的数据之前处理函数
pagination: options.pagination, // 是否显示分页(*)
paginationLoop: true, // 是否禁用分页连续循环模式
sidePagination: options.sidePagination, // server启用服务端分页client客户端分页
pageNumber: 1, // 初始化加载第一页,默认第一页
pageSize: options.pageSize, // 每页的记录行数(*)
pageList: options.pageList, // 可供选择的每页的行数(*)
search: options.search, // 是否显示搜索框功能
showSearchButton: options.showSearchButton, // 是否显示检索信息
showColumns: options.showColumns, // 是否显示隐藏某列下拉框
showRefresh: options.showRefresh, // 是否显示刷新按钮
showToggle: options.showToggle, // 是否显示详细视图和列表视图的切换按钮
showFullscreen: options.showFullscreen, // 是否显示全屏按钮
showFooter: options.showFooter, // 是否显示页脚
escape: options.escape, // 转义HTML字符串
clickToSelect: options.clickToSelect, // 是否启用点击选中行
toolbar: '#' + options.toolbar, // 指定工作栏
detailView: options.detailView, // 是否启用显示细节视图
iconSize: 'undefined', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
rowStyle: options.rowStyle, // 通过自定义函数设置行样式
showExport: options.showExport, // 是否支持导出文件
uniqueId: options.uniqueId, // 唯 一的标识符
fixedColumns: options.fixedColumns, // 是否启用固定列
fixedNumber: options.fixedLeft, // 左侧固定列数
fixedRightNumber: options.fixedRight, // 右侧固定列数
detailFormatter: options.detailFormatter, // 在行下面展示其他数据列表
columns: options.columns, // 显示列信息(*)
classes: options.classes, // 设置表样式
queryParams: options.queryParams, // 传递参数(*)
loadingFontSize: 16, // 加载字样的字体大小
formatNoMatches: function () { // 空数据提示信息
return options.emptyTips;
},
onDblClickRow: function (row, $element, field) { // 双击一行时触发编辑动作
var edit = $element.children("td").last().html();
if ($.common.isNotEmpty(edit) && edit.indexOf('$.operate.edit') != -1) {
$.operate.edit($element.data('uniqueid'));
}
},
buttons: function () { // 自定义按钮
return {
btnSearch: {
text: '隐藏/显示 搜索',
icon: 'fa-search',
event: function () {
$('.search-collapse').slideToggle();
},
attributes: {
title: '隐藏/显示 搜索'
}
}
}
},
};
// 将tree合并到option[关闭分页且传递父id字段才可以看到tree]
if (option.pagination == false && $.common.isNotEmpty(options.parentIdField)) {
// 构建tree
var tree = {
idField: options.uniqueId,
treeShowField: options.uniqueId,
parentIdField: options.parentIdField,
rowStyle: function (row, index) {
return classes = [
'bg-blue',
'bg-green',
'bg-red'
];
},
onPostBody: function onPostBody() {
var columns = $.btTable.bootstrapTable('getOptions').columns;
if (columns) {
// 查看是否默认展开
var initialState = 'collapsed';
if (typeof (Storage) !== 'undefined') {
initialState = localStorage.getItem('initialState');
}
$.btTable.treegrid({
//initialState: 'collapsed',// 所有节点都折叠
//initialState: 'expanded',// 所有节点都展开
initialState: initialState,// 所有节点都保留上次的效果
treeColumn: 1, // 默认为第三个
// expanderExpandedClass: 'glyphicon glyphicon-minus', //图标样式
// expanderCollapsedClass: 'glyphicon glyphicon-plus',
onChange: function () {
$.btTable.bootstrapTable('resetView');
}
});
}
},
};
$.extend(option, tree);
}
$.btTable.bootstrapTable(option);
},
// 查询条件
queryParams: function (params) {
var curParams = {
// 传递参数查询参数
pageSize: params.limit,
page: params.offset / params.limit + 1,
searchValue: params.search,
orderByColumn: params.sort,
isAsc: params.order
};
var currentId = $.common.isEmpty($.table._option.formId) ? 'search_form' : $.table._option.formId;
return $.extend(curParams, $.common.formToJSON(currentId));
},
// 请求获取数据后处理回调函数
responseHandler: function (res) {
if (typeof $.table._option.responseHandler == "function") {
$.table._option.responseHandler(res);
}
return {rows: res.data, total: res.total};
},
// 初始化事件
initEvent: function (data) {
// 触发行点击事件 加载成功事件
$.btTable.on("check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table load-success.bs.table", function () {
// 工具栏按钮控制
var rows = $.common.isEmpty($.table._option.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.uniqueId);
// 非多个禁用
$('#' + $.table._option.toolbar + ' .multiple').toggleClass('disabled', !rows.length);
// 非单个禁用
$('#' + $.table._option.toolbar + ' .single').toggleClass('disabled', rows.length != 1);
});
// 绑定选中事件、取消事件、全部选中、全部取消
$.btTable.on("check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table", function (e, rows) {
// 复选框分页保留保存选中数组
var rowIds = $.table.affectedRowIds(rows);
if ($.common.isNotEmpty($.table._option.rememberSelected) && $.table._option.rememberSelected) {
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, rowIds);
}
});
},
// 表格销毁
destroy: function (tableId) {
var currentId = $.common.isEmpty(tableId) ? $.table._option.id : tableId;
$("#" + currentId).bootstrapTable('destroy');
},
// 图片预览
imageView: function (value, height, width, target) {
if ($.common.isEmpty(width)) {
width = 'auto';
}
if ($.common.isEmpty(height)) {
height = 'auto';
}
// blank or self
var _target = $.common.isEmpty(target) ? 'self' : target;
if ($.common.isNotEmpty(value)) {
return $.common.sprintf("
", width, height, _target, value);
} else {
return $.common.nullToStr(value);
}
},
// 搜索-默认为 search_form
search: function (formId, data) {
var currentId = $.common.isEmpty(formId) ? 'search_form' : formId;
var params = $.btTable.bootstrapTable('getOptions');
params.queryParams = function (params) {
// 获取所有搜索的form元素
var search = $.common.formToJSON(currentId);
// 如传递data则追加进search中
if ($.common.isNotEmpty(data)) {
$.each(data, function (key) {
search[key] = data[key];
});
}
search.pageSize = params.limit;
search.page = params.offset / params.limit + 1;
search.searchValue = params.search;
search.orderByColumn = params.sort;
search.isAsc = params.order;
return search;
}
$.btTable.bootstrapTable('refresh', params);
},
// 导出数据
export: function (formId) {
var rows = $.common.isEmpty($.table._option.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.uniqueId);
var confirmStr = "所有的";
if (rows.length > 0) {
confirmStr = "选中的" + rows.length + "条"
}
$.modal.confirm("确定导出" + confirmStr + "数据吗?", function () {
var currentId = $.common.isEmpty(formId) ? 'search_form' : formId;
var param = $("#" + currentId).serialize();
if (rows.length > 0) {
if ($.common.isEmpty(param)) {
param = $.table._option.uniqueId + '=' + rows.join();
} else {
param = param + '&' + $.table._option.uniqueId + '=' + rows.join();
}
}
window.open($.table._option.exportUrl + '?' + param);
});
},
// 设置排序
sort: function (obj) {
var url = $.table._option.sortUrl;
var data = {"id": $(obj).data('id'), "sort": $(obj).val()};
$.operate.submit(url, "post", "json", data);
},
// 刷新表格
refresh: function () {
$.btTable.bootstrapTable('refresh', {
silent: true
});
},
// 显示表格指定列
showColumn: function (column) {
$.btTable.bootstrapTable('showColumn', column);
},
// 隐藏表格指定列
hideColumn: function (column) {
$.btTable.bootstrapTable('hideColumn', column);
},
// 查询表格指定列值
selectColumns: function (column) {
var rows = $.map($.btTable.bootstrapTable('getSelections'), function (row) {
return row[column];
});
if ($.common.isNotEmpty($.table._option.rememberSelected) && $.table._option.rememberSelected) {
rows = rows.concat(selectionIds);
}
return $.common.uniqueFn(rows);
},
// 获取当前页选中或者取消的行ID
affectedRowIds: function (rows) {
var column = $.common.isEmpty($.table._option.uniqueId) ? $.table._option.columns[1].field : $.table._option.uniqueId;
var rowIds;
if ($.isArray(rows)) {
rowIds = $.map(rows, function (row) {
return row[column];
});
} else {
rowIds = [rows[column]];
}
return rowIds;
},
// 查询表格首列值
selectFirstColumns: function () {
var rows = $.map($.btTable.bootstrapTable('getSelections'), function (row) {
return row[$.table._option.columns[1].field];
});
if ($.common.isNotEmpty($.table._option.rememberSelected) && $.table._option.rememberSelected) {
rows = rows.concat(selectionIds);
}
return $.common.uniqueFn(rows);
},
},
// 表单封装处理
form: {
// 表单重置
reset: function (formId) {
var currentId = $.common.isEmpty(formId) ? 'search_form' : formId;
$("#" + currentId)[0].reset();
// 重置select2
$('select.select2').val(null).trigger("change");
// 刷新表格
$.btTable.bootstrapTable('refresh');
},
},
// 弹出层封装处理
modal: {
// 消息提示前显示图标(通常不会单独前台调用)
icon: function (type) {
var icon = "";
if (type == "warning") {
icon = 0;
} else if (type == "success") {
icon = 1;
} else if (type == "error") {
icon = 2;
} else {
icon = 3;
}
return icon;
},
// 消息提示(第一个参数为内容,第二个为类型,通过类型调用不同的图标效果) [warning/success/error]
msg: function (content, type) {
if (type != undefined) {
layer.msg(content, {icon: $.modal.icon(type), time: 1500, anim: 5, shade: [0.3]});
} else {
layer.msg(content);
}
},
// 错误消息
msgError: function (content) {
$.modal.msg(content, "error");
},
// 成功消息
msgSuccess: function (content) {
$.modal.msg(content, "success");
},
// 警告消息
msgWarning: function (content) {
$.modal.msg(content, "warning");
},
// 弹出提示
alert: function (content, type, callback) {
layer.alert(content, {
icon: $.modal.icon(type),
title: "系统提示",
btn: ['确认'],
btnclass: ['btn btn-primary'],
}, callback);
},
// 错误提示
alertError: function (content, callback) {
$.modal.alert(content, "error", callback);
},
// 成功提示
alertSuccess: function (content, callback) {
$.modal.alert(content, "success", callback);
},
// 警告提示
alertWarning: function (content, callback) {
$.modal.alert(content, "warning", callback);
},
// 确认窗体
confirm: function (content, callBack) {
layer.confirm(content, {
icon: 3,
title: "系统提示",
btn: ['确认', '取消']
}, function (index) {
layer.close(index);
callBack(true);
});
},
// 消息提示并刷新父窗体
msgReload: function (msg, type) {
layer.msg(msg, {
icon: $.modal.icon(type),
time: 500,
shade: [0.1, '#8F8F8F']
},
function () {
$.modal.reload();
});
},
// 弹出层指定宽度
open: function (title, url, width, height, callback) {
// 如果是移动端,就使用自适应大小弹窗
if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {
width = 'auto';
height = 'auto';
}
if ($.common.isEmpty(title)) {
title = false;
}
if ($.common.isEmpty(width)) {
width = 800;
}
if ($.common.isEmpty(height)) {
height = ($(window).height() - 50);
}
if ($.common.isEmpty(callback)) {
// 当前层索引参数(index)、当前层的DOM对象(layero)
callback = function (index, layero) {
//var iframeWin = layero.find('iframe')[0];
//iframeWin.contentWindow.submitHandler(index, layero);
// 获取弹出层中的form表单元素
var formSubmit = layer.getChildFrame('form', index);
// 获取表单中的提交按钮(在我的表单里第一个button按钮就是提交按钮,使用find方法寻找即可)
var submited = formSubmit.find('.form-builder-submit').find('button')[0];
// 触发点击事件,会对表单进行验证,验证成功则提交表单,失败则返回错误信息
submited.click();
//window.parent.location.reload();
//location.reload();
}
}
layer.open({
// iframe层
type: 2,
// 宽高
area: [width + 'px', height + 'px'],
// 固定
fix: false,
// 最大最小化
maxmin: true,
// 遮罩
shade: 0,
// 是否允许拖拽到窗口外
moveOut: true,
// 标题
title: title,
// 内容
content: url,
// 按钮
btn: ['确定', '关闭'],
// 是否点击遮罩关闭
shadeClose: true,
// 确定按钮回调方法
yes: callback,
// 层弹出后的成功回调方法
success: function (layero, index) {
//var body = layer.getChildFrame('body', index);
//body.addClass('layer-body')
//body.find('.main-sidebar').hide()
//body.find('.main-header').hide()
//body.find('.main-footer').hide()
//body.find('.content-header').hide()
//body.find('.content .search').hide()
//body.find('.content-wrapper').hide()
},
// 右上角关闭按钮触发的回调
cancel: function (index) {
return true;
}
});
},
// 弹出层指定参数选项
openOptions: function (options) {
var _url = $.common.isEmpty(options.url) ? "/404.html" : options.url;
var _title = $.common.isEmpty(options.title) ? "系统窗口" : options.title;
var _width = $.common.isEmpty(options.width) ? "800" : options.width;
var _height = $.common.isEmpty(options.height) ? ($(window).height() - 50) : options.height;
var _btn = [' 确认', ' 关闭'];
if ($.common.isEmpty(options.yes)) {
options.yes = function (index, layero) {
options.callBack(index, layero);
}
}
layer.open({
type: 2,
maxmin: true,
shade: 0.3,
title: _title,
fix: false,
area: [_width + 'px', _height + 'px'],
content: _url,
shadeClose: $.common.isEmpty(options.shadeClose) ? true : options.shadeClose,
skin: options.skin,
btn: $.common.isEmpty(options.btn) ? _btn : options.btn,
yes: options.yes,
cancel: function () {
return true;
}
});
},
// 弹出层全屏
openFull: function (title, url, width, height) {
//如果是移动端,就使用自适应大小弹窗
if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {
width = 'auto';
height = 'auto';
}
if ($.common.isEmpty(title)) {
title = false;
}
if ($.common.isEmpty(url)) {
url = "/404.html";
}
if ($.common.isEmpty(width)) {
width = 800;
}
if ($.common.isEmpty(height)) {
height = ($(window).height() - 50);
}
var index = layer.open({
type: 2,
area: [width + 'px', height + 'px'],
fix: false,
//不固定
maxmin: true,
shade: 0.3,
title: title,
content: url,
btn: ['确定', '关闭'],
// 弹层外区域关闭
shadeClose: true,
yes: function (index, layero) {
var iframeWin = layero.find('iframe')[0];
iframeWin.contentWindow.submitHandler(index, layero);
},
cancel: function (index) {
return true;
}
});
layer.full(index);
},
// 重新加载
reload: function () {
parent.location.reload();
},
// 关闭窗体
close: function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
},
},
// 操作封装处理
operate: {
// 修改信息
edit: function (id) {
var url = $.operate.editUrl(id)
if ($.table._option.layerOpen == "1") {
// 通过参数隐藏左侧和顶部等数据
if (url.indexOf('?') != -1) {
url = url + '&_layer=1'
} else {
url = url + '?_layer=1'
}
// 弹窗打开要添加的地址
$.modal.open("修改", url);
} else {
// 当前窗口打开要添加的地址
$.common.jump(url);
}
},
// 修改访问的地址
editUrl: function (id) {
var url = "";
if ($.common.isNotEmpty(id)) {
url = $.table._option.editUrl.replace("__id__", id);
} else {
var id = $.common.isEmpty($.table._option.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.uniqueId);
if (id.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
url = $.table._option.editUrl.replace("__id__", id);
}
// 获取搜索信息
var back = $.common.serializeRemoveNull($("#search_form").serialize());
back = back ? '&back_url=' + encodeURIComponent(back) : '';
return url + back;
},
// 添加信息
add: function (id) {
var url = $.operate.addUrl(id)
if ($.table._option.layerOpen == "1") {
// 通过参数隐藏左侧和顶部等数据
if (url.indexOf('?') != -1) {
url = url + '&_layer=1'
} else {
url = url + '?_layer=1'
}
// 弹窗打开要添加的地址
$.modal.open("添加", url);
} else {
// 当前窗口打开要添加的地址
$.common.jump(url);
}
},
// 添加访问的地址
addUrl: function (id) {
var url = $.common.isEmpty(id) ? $.table._option.addUrl.replace("__id__", "") : $.table._option.addUrl.replace("__id__", id);
// 获取搜索信息
var back = $.common.serializeRemoveNull($("#search_form").serialize());
if (url.indexOf('?') != -1) {
back = back ? '&back_url=' + encodeURIComponent(back) : '';
} else {
back = back ? '?back_url=' + encodeURIComponent(back) : '';
}
return url + back;
},
// 删除信息
remove: function (id) {
$.modal.confirm("确定删除该条数据吗?", function () {
var url = $.common.isEmpty(id) ? $.table._option.delUrl : $.table._option.delUrl.replace("__id__", id);
var data = {"id": id};
$.operate.submit(url, "post", "json", data);
});
},
// 批量删除信息
removeAll: function () {
var rows = $.common.isEmpty($.table._option.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.uniqueId);
if (rows.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
$.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function () {
var url = $.table._option.delUrl.replace("__id__", rows.join());
var data = {"id": rows.join()};
$.operate.submit(url, "post", "json", data);
});
},
// 修改状态
state: function (id, url) {
$.modal.confirm("确认要更改状态吗?", function () {
var data = {"id": id};
$.operate.submit(url, "post", "json", data);
});
},
// 代码生成
build: function (id, url) {
$.modal.confirm("确定要生成代码吗?生成代码会覆盖原有的控制器、模型和验证器文件
注意:原有文件会被重命名留做备份", function () {
if ($.common.isEmpty(id)) {
var id = $.common.isEmpty($.table._option.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.uniqueId);
if (id.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
}
var data = {"id": id[0]};
$.operate.submit(url, "post", "json", data);
});
},
// 生成菜单规则
makeRule: function (url) {
$.modal.confirm("确定要生成菜单规则吗,我们会根据模块的参数生成列表、新增、新增保存、修改、修改保存、删除、批量删除、导出、状态、排序 等规则", function () {
var id = $.table.selectFirstColumns();
if (id.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
var data = {"id": id[0]};
$.operate.submit(url, "post", "json", data);
});
},
// 数据库备份+优化+修复
database: function (url, title) {
var rows = $.common.isEmpty($.table._option.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.uniqueId);
if (rows.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
$.modal.confirm("确认要" + title + "选中的" + rows.length + "条数据吗?", function () {
var data = {"id": rows.join()};
$.operate.submit(url, "post", "json", data);
});
},
// 提交数据
submit: function (url, type, dataType, data, callback) {
var config = {
url: url,
type: type,
dataType: dataType,
data: data,
beforeSend: function () {
// "正在处理中,请稍后..."
},
success: function (result) {
if (typeof callback == "function") {
callback(result);
}
$.operate.ajaxSuccess(result);
}
};
$.ajax(config)
},
// 保存信息 刷新表格
save: function (url, data, callback) {
var config = {
url: url,
type: "post",
dataType: "json",
data: data,
success: function (result) {
if (typeof callback == "function") {
callback(result);
}
$.operate.successCallback(result);
}
};
$.ajax(config)
},
// 成功回调执行事件(父窗体静默更新)
successCallback: function (result) {
if (result.code == 1) {
var parent = window.parent;
$.modal.close();
parent.toastr.success(result.msg); // toastr提示
// parent.$.modal.msgSuccess(result.msg); // 消息提示
parent.$.table.refresh();
} else {
$.modal.alertError(result.msg);
}
},
// 保存结果弹出msg刷新table表格
ajaxSuccess: function (result) {
if (result.error == 0 || result.code == 1) {
toastr.success(result.msg); // toastr提示
//$.modal.msgSuccess(result.msg); // 消息提示
$.table.refresh();
} else {
$.modal.alertError(result.msg);
}
},
// 展开/折叠列表树
treeStatus: function (result) {
// 上次展开则增加样式
var initialState = 'collapsed';
if (typeof (Storage) !== 'undefined') {
initialState = localStorage.getItem('initialState');
}
if (initialState == 'expanded') {
$('.treeStatus').addClass('expandAll');
}
if ($('.treeStatus').hasClass('expandAll')) {
$.btTable.treegrid('collapseAll');
$('.treeStatus').removeClass('expandAll');
// 更新
if (typeof (Storage) !== 'undefined') {
localStorage.setItem('initialState', 'collapsed');
}
} else {
$.btTable.treegrid('expandAll');
$('.treeStatus').addClass('expandAll');
// 更新
if (typeof (Storage) !== 'undefined') {
localStorage.setItem('initialState', 'expanded');
}
}
},
// 批量添加栏目
batchAdd: function (url) {
if ($.table._option.layerOpen == "1") {
// 通过参数隐藏左侧和顶部等数据
if (url.indexOf('?') != -1) {
url = url + '&_layer=1'
} else {
url = url + '?_layer=1'
}
// 弹窗打开要添加的地址
$.modal.open("批量添加", url);
} else {
// 当前窗口打开要添加的地址
$.common.jump(url);
}
},
},
// 通用方法封装处理
common: {
// 判断字符串是否为空
isEmpty: function (value) {
if (value == null || this.trim(value) == "") {
return true;
}
return false;
},
// 判断一个字符串是否为非空串
isNotEmpty: function (value) {
return !$.common.isEmpty(value);
},
// 空格截取
trim: function (value) {
if (value == null) {
return "";
}
return value.toString().replace(/(^\s*)|(\s*$)|\r|\n/g, "");
},
// 比较两个字符串(大小写敏感)
equals: function (str, that) {
return str == that;
},
// 比较两个字符串(大小写不敏感)
equalsIgnoreCase: function (str, that) {
return String(str).toUpperCase() === String(that).toUpperCase();
},
// 将字符串按指定字符分割
split: function (str, sep, maxLen) {
if ($.common.isEmpty(str)) {
return null;
}
var value = String(str).split(sep);
return maxLen ? value.slice(0, maxLen - 1) : value;
},
// 字符串格式化(%s )
sprintf: function (str) {
var args = arguments, flag = true, i = 1;
str = str.replace(/%s/g, function () {
var arg = args[i++];
if (typeof arg === 'undefined') {
flag = false;
return '';
}
return arg;
});
return flag ? str : '';
},
// 数组去重
uniqueFn: function (array) {
var result = [];
var hashObj = {};
for (var i = 0; i < array.length; i++) {
if (!hashObj[array[i]]) {
hashObj[array[i]] = true;
result.push(array[i]);
}
}
return result;
},
// 获取form下所有的字段并转换为json对象
formToJSON: function (formId) {
var json = {};
$.each($("#" + formId).serializeArray(), function (i, field) {
json[field.name] = field.value;
});
return json;
},
// 跳转页
jump: function (url) {
if ($('body').data('display_mode') == "1") {
window.location.href = url;
} else {
$.pjax({url: url, container: '.content-wrapper'})
}
},
// 序列化表单,不含空元素
serializeRemoveNull: function (serStr) {
// return serStr.split("&").filter(str => !str.endsWith("=")).join("&"); // 不兼容ie
return serStr.split("&").filter(function (item) {
var itemArr = item.split('=');
if (itemArr[1]) {
return item;
}
}
).join("&");
},
}
});
})(jQuery);