//定义全局常量,可供全局使用
var zhuhuo = {
config: {},
//bootstrap-table 属性配置信息
options:{},
/**
* 参数初始化
*/
set:function (id){
//判断配置信息里面是否有值,且当前的事件监听不为空
if ($.tools.getLength(zhuhuo.config) > 1 && $.tools.isNotEmpty(event)) {
//获取tableId,
var tableId = $.tools.isEmpty(id) ? $(event.currentTarget)
.parents(".bootstrap-table").find("table.table").attr("id") : id;
if ($.tools.isNotEmpty(tableId)) {
zhuhuo.options = zhuhuo.get(tableId);
}
}
},
// 获取实例配置
get: function(id) {
return zhuhuo.config[id];
},
};
(function ($) {
//为jQuery类添加静态方法,可以直接调用
$.extend({
//bootstrap table
bstable:{
/**
* 表格初始化
* @param options 相关属性配置
*/
init:function (options){
//初始化定义默认的配置,一些配置属于通用配置,可以直接设置默认值,如果想要改变则通过options传递过来即可
//此处只提供一些常用的,如果想要了解更多可以参考bootstrap-table官方文档
let defaultOptions = {
id: "bootstrap-table-list", //bootstrap-table初始化时候的标识
contentType: "application/x-www-form-urlencoded", // 编码类型
method: 'get', // 请求方式(*),一般列表请求都是get请求,特殊情况特殊处理
cache: false, // 是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
striped: true, // 是否显示行间隔色
//排序相关属性
sortable: true, // 是否启用排序
sortStable: true, // 设置为 true 将获得稳定的排序
sortOrder: 'asc', // 排序方式 asc 或者 desc
//分页相关属性
pagination: true, // 是否开启分页
sidePagination: 'server', // 分页方式:client客户端分页,server服务端分页(*)
//工具栏相关属性
toolbar: '#toolbar', // 指定工作栏
iconSize: 'undefined', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
buttonsClass:'secondary', //定义工具按钮的Bootstrap类(在'btn-'之后添加)
showFullscreen: true, // 是否显示全屏按钮
showRefresh: true, // 是否显示刷新按钮
showToggle: true, // 是否显示详细视图和列表视图的切换按钮
showColumns: true, // 是否显示所有的列(选择显示的列)
showSearch:true, //是否显示搜索按钮
showPaginationSwitch:false, //是否显示分页组件的切换按钮
//加载相关属性
showLoading: false, // 是否启用加载框
//表格相关属性
search: false, //是否显示表格搜索input
clickToSelect: false, // 是否启用点击选中行
uniqueId: 'id', // 唯一标识符 一般都是主键id
pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*)
pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
totalField:'total', //分页总条数对应的字段,可根据封装的json自定义调整
dataField:'rows', //分页数据所对应的字段,可根据封装的json自定义调整
showHeader:true, //是否显示表头
showFooter:false, //是否显示页脚
singleSelect:false, //是否允许复选框仅选择一行
loadingFontSize:'auto', //加载文本的字体大小
multipleSelectRow:false, //是否启用多选行
cardView: false, //是否显示详细视图
detailView: false, //设置为true以显示detail 视图表(细节视图)
queryParamsType:'limit', //设置'limit'以使用RESTFul类型发送查询参数。
minimumCountColumns: 1, //最少允许的列数 要从列下拉列表中隐藏的最小列数
data:[], //要加载的数据 [] or {}
dataType:'json', //服务器返回的数据类型,
isFullShow: true, //是否全屏展示,用于业务处理
}
//重新定义options为defaultOptions和传递的options浅拷贝后的结果
var options = $.extend(defaultOptions,options);
//绑定全局options
zhuhuo.options = options
zhuhuo.config[options.id] = options
// 绑定监听事件
$.bstable.bindEvent();
//初始化bootstrap table表格
$("#"+options.id).bootstrapTable({
id: options.id, // bootstrap-table初始化时候的标识
url: options.url, // 列表页面对照请求url
addPageUrl: options.addPageUrl, // 添加页面对照请求url
editPageUrl: options.editPageUrl, // 修改页面对照请求url
viewPageUrl: options.viewPageUrl, // 明细页面对照请求url,
removeUrl: options.removeUrl, // 删除内容请求URL
modualName: options.modualName, // 模块名称
isFullShow: options.isFullShow, // 是否全屏展示
contentType: options.contentType, // 编码类型
method: options.method, // 请求方式(*),一般列表请求都是get请求,特殊情况特殊处理
cache: options.cache, // 是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
// height: $(window).height()-56, // 表格的高度
striped: options.striped, // 是否显示行间隔色
//排序相关属性
sortable: options.sortable, // 是否启用排序
sortStable: options.sortStable, // 设置为 true 将获得稳定的排序
sortOrder: options.sortOrder, // 排序方式 asc 或者 desc
//分页相关属性
pagination: options.pagination, // 是否开启分页
sidePagination: options.sidePagination, // 分页方式:client客户端分页,server服务端分页(*)
//工具栏相关属性
toolbar: options.toolbar, // 指定工作栏
iconSize: options.iconSize, // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
buttonsClass:options.buttonsClass, // 定义工具按钮的Bootstrap类(在'btn-'之后添加)
showFullscreen: options.showFullscreen, // 是否显示全屏按钮
showRefresh: options.showRefresh, // 是否显示刷新按钮
showToggle: options.showToggle, // 是否显示详细视图和列表视图的切换按钮
showColumns: options.showColumns, // 是否显示所有的列(选择显示的列)
showSearch:options.showSearch, // 是否显示搜索按钮
showPaginationSwitch:options.showPaginationSwitch, // 是否显示分页组件的切换按钮
//加载相关属性
showLoading: options.showLoading, // 是否启用加载框
//表格相关属性
search: options.search, // 是否显示表格搜索input
clickToSelect: options.clickToSelect, // 是否启用点击选中行
uniqueId: options.uniqueId, // 唯一标识符 一般都是主键id
pageNumber: options.pageNumber, // 初始化加载第一页,默认第一页
pageSize: options.pageSize, // 每页的记录行数(*)
pageList: options.pageList, // 可供选择的每页的行数(*)
totalField:options.totalField, // 分页总条数对应的字段,可根据封装的json自定义调整
dataField:options.dataField, // 分页数据所对应的字段,可根据封装的json自定义调整
showHeader:options.showHeader, // 是否显示表头
showFooter:options.showFooter, // 是否显示页脚
singleSelect:options.singleSelect, // 是否允许复选框仅选择一行
loadingFontSize:options.loadingFontSize, // 加载文本的字体大小
multipleSelectRow:options.multipleSelectRow, // 是否启用多选行
cardView: options.cardView, // 是否显示详细视图
detailView: options.detailView, // 设置为true以显示detail 视图表(细节视图)
queryParamsType:options.queryParamsType, // 设置'limit'以使用RESTFul类型发送查询参数。
minimumCountColumns:options.minimumCountColumns, // 最少允许的列数 要从列下拉列表中隐藏的最小列数
data:options.data, // 要加载的数据 [] or {}
dataType:options.dataType, // 服务器返回的数据类型
columns:options.columns, // 显示的字段信息
queryParams:$.bstable.queryParams, // 配置查询参数
responseHandler: $.bstable.responseHandler, // 请求获取数据后处理回调函数
onl oadSuccess:$.bstable.onLoadSuccess, // 数据加载成功时候处理
onl oadError:$.bstable.onLoadError, // 数据加载失败的时候处理
});
},
/**
* 配置查询参数
* @param params
*/
queryParams: function(params) {
var reqParams = {
// 传递参数查询参数,搜索表单的参数合并表单处理
pageSize: params.limit,
pageNum: params.offset / params.limit + 1
};
//获取当前表单id 如果zhuhuo.options.formId为空则通过直接通过form进行获取
var formId = $.tools.isEmpty(zhuhuo.options.formId) ?
$('form').attr('id') : zhuhuo.options.formId;
//浅拷贝 把表单重的参数和bootstrap-table默认的一些参数融合
return $.extend(reqParams, $.form.formToJsonJq(formId));
},
/**
* 请求获取数据后处理回调函数
* @param res
* @return {{total: (number|PaymentItem|number|*), rows: *}|{total: number, rows: *[]}}
*/
responseHandler: function (res){
if(res == null || res == 'undefined'){
console.log('resp', res)
}else {
if (res.responseCode == '200') {
return {rows: res.responseData, total: res.total};
} else {
$.modal.msg(res.responseMessage,'warning');
return {rows: [], total: 0};
}
}
},
/**
* 数据加载成功时候处理
* @param data
*/
onl oadSuccess:function (data){
},
/**
* 数据加载失败的时候处理
* @param data
*/
onl oadError:function (data){
console.log('error',data)
$.modal.msg(data,'error');
},
/**
* 刷新表单
* @param tableId 当前bootstrap-table id标识
* @param pageNumber 分页数
* @param pageSize 分页条数
* @param url 请求地址
*/
refreshData:function (tableId, pageNumber, pageSize, url){
var currentId = $.tools.isEmpty(tableId) ? zhuhuo.options.id : tableId;
var params = $("#" + currentId).bootstrapTable('getOptions');
if ($.tools.isEmpty(pageNumber)) {
pageNumber = params.pageNumber;
}
if ($.tools.isEmpty(pageSize)) {
pageSize = params.pageSize;
}
if ($.tools.isEmpty(url)) {
url = $.tools.isEmpty(url) ? params.url : url;
}
$("#" + currentId).bootstrapTable('refresh', {
url: url,
pageNumber: pageNumber,
pageSize: pageSize
});
},
/**
* 搜索表单
* @param formId
* @param tableId
* @param pageNumber
* @param pageSize
*/
search:function (formId,tableId, pageNumber, pageSize){
zhuhuo.set(tableId);
zhuhuo.options.formId = $.tools.isEmpty(formId) ? $('form').attr('id') : formId;
var params = $.tools.isEmpty(tableId) ?
$("#" + zhuhuo.options.id).bootstrapTable('getOptions') :
$("#" + tableId).bootstrapTable('getOptions');
if ($.tools.isNotEmpty(pageNumber)) {
params.pageNumber = pageNumber;
}
if ($.tools.isNotEmpty(pageSize)) {
params.pageSize = pageSize;
}
console.log('搜索参数',params)
if ($.tools.isNotEmpty(tableId)){
$("#" + tableId).bootstrapTable('refresh', params);
} else{
$("#" + zhuhuo.options.id).bootstrapTable('refresh', params);
}
},
/**
* 重置搜索条件
* @param formId
* @param tableId
* @param pageNumber
* @param pageSize
*/
reset:function (formId,tableId, pageNumber, pageSize){
zhuhuo.set(tableId);
zhuhuo.options.formId = $.tools.isEmpty(formId) ? $('form').attr('id') : formId;
$("#"+zhuhuo.options.formId)[0].reset();
var params = $.tools.isEmpty(tableId) ?
$("#" + zhuhuo.options.id).bootstrapTable('getOptions') :
$("#" + tableId).bootstrapTable('getOptions');
if ($.tools.isNotEmpty(pageNumber)) {
params.pageNumber = pageNumber;
}
if ($.tools.isNotEmpty(pageSize)) {
params.pageSize = pageSize;
}
if ($.tools.isNotEmpty(tableId)){
$("#" + tableId).bootstrapTable('refresh', params);
} else{
$("#" + zhuhuo.options.id).bootstrapTable('refresh', params);
}
},
/**
* 获取实例ID,如存在多个返回#id1,#id2 delimeter分隔符 参考ruoyi
* @param separator
* @return {string}
*/
getOptionsIds: function(separator) {
var _separator = $.tools.isEmpty(separator) ? "," : separator;
var optionsIds = "";
$.each(zhuhuo.config, function(key, value){
optionsIds += "#" + key + _separator;
});
return optionsIds.substring(0, optionsIds.length - 1);
},
/**
* 绑定监听事件
*/
bindEvent:function (){
//添加按钮点击事件
$(".add-click").on('click',function (){
let url = zhuhuo.options.addPageUrl;
console.log('点击了新增按钮')
$.action.addPage(url);
});
//修改按钮点击事件
$(".edit-click").on('click',function (){
let url = zhuhuo.options.editPageUrl;
console.log('点击了修改按钮')
$.action.editPage("",url);
});
//查询按钮点击事件
$(".view-click").on('click',function (){
let url = zhuhuo.options.viewPageUrl;
$.action.viewPage(url);
});
// 实例ID信息
var optionsIds = $.bstable.getOptionsIds();
var needEvents = "all.bs.table click-row.bs.table dbl-click-row.bs.table click-cell.bs.table dbl-click-cell.bs.table sort.bs.table check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table check-some.bs.table uncheck-some.bs.table load-success.bs.table load-error.bs.table column-switch.bs.table column-switch-all.bs.table page-change.bs.table search.bs.table toggle.bs.table pre-body.bs.table post-body.bs.table post-header.bs.table post-footer.bs.table expand-row.bs.table collapse-row.bs.table refresh-options.bs.table reset-view.bs.table refresh.bs.table scroll-body.bs.table toggle-pagination.bs.table virtual-scroll.bs.table"
// 监听事件处理
$(optionsIds).on(needEvents, function () {
zhuhuo.set($(this).attr("id"));
});
}
},
//工具相关
tools: {
/**
* 校验uri合法性
* @param textval 传入的文本
*/
validateURL:function (textval){
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
return urlregex.test(textval)
},
/**
* 校验小写字母
* @param textval 传入的文本
* @returns {boolean}
*/
validateLowerCase: function (textval){
const reg = /^[a-z]+$/
return reg.test(textval)
},
/**
* 校验是否为空
* @param textval 传入的文本
*/
isEmpty:function (textval){
if (textval == null || this.trim(textval) == "" || textval == undefined || textval == "undefined") {
return true;
}
return false;
},
/**
* 校验是否非空
* @param textval
* @return {boolean}
*/
isNotEmpty: function (textval) {
return !$.tools.isEmpty(textval);
},
/**
* 判断是否为数字
* @param textval
*/
isNumeric:function (textval){
return !isNaN(parseFloat(textval)) && isFinite(textval)
},
/**
* 剔除空格
* @param textval
* @return {string}
*/
trim:function (textval){
if (textval == null) {
return "";
}
return textval.toString().replace(/(^\s*)|(\s*$)|\r|\n/g, "");
},
/**
* 校验是否为移动端
*/
mobileTerminal:function(){
if(navigator.userAgent.match(/(iPhone|iPad|Android|ios)/i)){
return true;
}
return false;
},
/**
* 获取对象长度
* @param obj
* @return {number}
*/
getLength: function(obj) {
var count = 0;
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
count++;
}
}
return count;
},
/**
* 获取选中的窗口
* @return {WindowProxy}
*/
activeWindow: function () {
var topWindow = $(window.parent.document);
var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
if (!currentId) {
return window.parent;
}
return $('.zh-iframe[data-id="' + currentId + '"]', topWindow)[0].contentWindow;
}
},
//表单相关
form:{
/**
* form转json 通过传递form
* @param form 表单信息
*/
formToJsonNormal:function (form){
let formData = new FormData(form);
let json = {};
for (var [key, value] of formData.entries()) {
json[key] = value;
}
return JSON.stringify(json);
},
/**
* form转json 通过formid传递
* @param formId 表单id
* @return {{}}
*/
formToJsonJq: function(formId) {
var json = {};
$.each($("#" + formId).serializeArray(), function(i, field) {
if (json[field.name]) {
json[field.name] += ("," + field.value);
} else {
json[field.name] = field.value;
}
});
return json;
},
/**
* form 序列化
* @param form
* @return {*}
*/
formToSerialize(form){
return form.serialize();
},
/**
* 唯一性校验
*/
uniqueCheck:function (res,type){
//如果type
if($.tools.isEmpty(type) || type == "1"){
let result = JSON.parse(res)
//1存在 0 不存在 false 为存在 true 为不存在
if(result.responseData == "1"){
return false;
}else {
return true;
}
}else {
if(res == "1"){
return false;
}else {
return true;
}
}
}
},
//方法相关
action: {
/**
* ajax 封装 表单提交
* @param methodType 请求类别 get post
* @param methodUrl 请求地址
* @param contentType 请求内容类型 默认 application/x-www-form-urlencoded 如果需要json形式则application/json
* @param requestData 请求参数
* @param dataType 返回数据类型 默认json
* @param callback 回调函数
*/
submit:function (methodType,methodUrl,contentType,requestData,dataType,callback){
$.ajax({
url:methodUrl,
type:methodType,
data:requestData,
dataType:dataType,
contentType: contentType,
success: function(result) {
if (typeof callback == "function") {
callback(result);
}
$.action.defaultCallBack(result);
}
})
},
/**
* post提交 json格式
* @param methodUrl 请求地址
* @param requestData 请求内容
* @param callback 回调函数
* @param isStringify 是否需要转换
*/
postJson:function (methodUrl,requestData,isStringify,callback){
let methodType = "post";
let requestParams = $.tools.isEmpty(isStringify)?JSON.stringify(requestData): isStringify?JSON.stringify(requestData):requestData;
let contentType = "application/json";
let dataType = "json";
this.submit(methodType,methodUrl,contentType,requestParams,dataType,callback);
},
/**
* post 提交 对象格式/普通格式
* @param methodUrl 请求地址
* @param requestData 请求内容
* @param callback 回调函数
*/
postNormal:function (methodUrl,requestData,callback){
let methodType = "post";
let contentType = "application/x-www-form-urlencoded";
let dataType = "json";
this.submit(methodType,methodUrl,contentType,requestData,dataType,callback);
},
/**
* get 请求
* @param methodUrl 请求地址
* @param requestData 请求内容
* @param callback 回调函数
*/
getNormal:function (methodUrl,requestData,callback){
let methodType = "get";
let contentType = "application/x-www-form-urlencoded";
let dataType = "json";
this.submit(methodType,methodUrl,contentType,requestData,dataType,callback);
},
/**
* 新增页面
* @param targetUrl 目标地址 如果为静态页面则为具体地址,如果为动态通过服务端获取则为请求路径
*/
addPage:function (targetUrl){
zhuhuo.set()
if($.tools.isEmpty(targetUrl)){
targetUrl = zhuhuo.options.addPageUrl;
}
if($.tools.isEmpty(targetUrl)){
$.modal.msg("未设置新增页页面地址,请检查","error");
}
$.modal.openPop("新增"+zhuhuo.options.modualName,targetUrl)
},
/**
* 修改页面
* @param identifying 主键id/或者唯一标识,一般为主键id
* @param targetUrl 目标地址 如果为静态页面则为具体地址,如果为动态通过服务端获取则为请求路径
*/
editPage:function (identifying,targetUrl){
//设置options
zhuhuo.set()
//判断是否设置修改页面地址
if($.tools.isEmpty(targetUrl)){
targetUrl = zhuhuo.options.editPageUrl;
}
if($.tools.isEmpty(targetUrl)){
$.modal.msg("未设置修改页面地址,请检查","error");
return;
}
//判断id是否为空,是否选中
if($.tools.isEmpty(identifying)){
//获取选中行
let selections = $("#" + zhuhuo.options.id).bootstrapTable('getSelections');
//判断是否选中行
if (selections.length === 0) {
$.modal.msg("请选择记录进行编辑操作","info");
return;
}
//判断是否只选中一行
if (selections.length > 1) {
$.modal.msg("只能选择一条记录进行编辑操作","info");
return;
}
identifying = selections[0][zhuhuo.options.uniqueId];
console.log('id',identifying)
}
targetUrl = targetUrl.replace('{id}', identifying);
$.modal.openPop("修改"+zhuhuo.options.modualName,targetUrl)
},
/**
* 详情页面
* @param identifying 主键id/或者唯一标识,一般为主键id
* @param targetUrl 目标地址 如果为静态页面则为具体地址,如果为动态通过服务端获取则为请求路径
*/
viewPage:function (identifying,targetUrl){
//设置options
zhuhuo.set()
//判断是否设置详情页面地址
if($.tools.isEmpty(targetUrl)){
targetUrl = zhuhuo.options.viewPageUrl;
}
if($.tools.isEmpty(targetUrl)){
$.modal.msg("未设置详情页面地址,请检查","error");
return;
}
//判断id是否为空,是否选中
if($.tools.isEmpty(identifying)){
//获取选中行
let selections = $("#" + zhuhuo.options.id).bootstrapTable('getSelections');
//判断是否选中行
if (selections.length === 0) {
$.modal.msg("请选择记录进行查询操作","info");
return;
}
//判断是否只选中一行
if (selections.length > 1) {
$.modal.msg("只能选择一条记录进行查询操作","info");
return;
}
identifying = selections[0][zhuhuo.options.uniqueId];
}
//地址格式化
targetUrl = targetUrl.replace('{id}', identifying);
$.modal.openViewPop("查询"+zhuhuo.options.modualName,targetUrl)
},
/**
* 删除数据
* @param identifying
* @param targetUrl
*/
remove:function (identifying,targetUrl){
//设置options
zhuhuo.set()
//判断是否设置删除地址
if($.tools.isEmpty(targetUrl)){
targetUrl = zhuhuo.options.removeUrl;
}
if($.tools.isEmpty(targetUrl)){
$.modal.msg("未设置删除内容地址,请检查","error");
return;
}
//判断id是否为空,是否选中
if($.tools.isEmpty(identifying)){
//获取选中行
let selections = $("#" + zhuhuo.options.id).bootstrapTable('getSelections');
//判断是否选中行
if (selections.length === 0) {
$.modal.msg("请选择记录进行删除操作","waring");
return;
}
//判断是否只选中一行
if (selections.length > 1) {
$.modal.msg("只能选择一条记录进行删除操作","waring");
return;
}
identifying = selections[0][zhuhuo.options.uniqueId];
}
//地址格式化
targetUrl = targetUrl.replace('{id}', identifying);
$.modal.confirm("确定删除该条信息吗?", function() {
var url = targetUrl
var data = { "id": identifying };
$.action.postJson(url,data);
});
},
/**
* 默认回调方法,基本用于表单提交回调关闭弹出层使用,包含关闭弹出层后刷新表格
* @param result
*/
defaultCallBack:function (result){
var parent = $.tools.activeWindow();
if(result.responseCode == "200"){
$.modal.closePop();
parent.$.modal.msg(result.responseMessage,'success');
parent.$.bstable.refreshData();
}else {
$.modal.msg(result.responseMessage,'error');
}
}
},
//弹出框相关
modal:{
/**
* 弹出框的图标
* @param type
*/
icon:function (type){
var icon = "";
switch (type){
case "success":
icon = 1;
break
case "error":
icon = 2;
break
case "waring":
icon = 3;
break
case "fail":
icon = 5;
break
default:
icon = 1;
break
}
return icon;
},
/**
* 提示
* @param msg 消息内容
* @param type 类型 warning,error,success,info
* @param callback 回调函数
*/
tip:function (msg,type,callback){
},
/**
* 消息弹窗提示
* @param content 提示内容
* @param type 类型 warning,error,success,info
*/
msg:function (content,type){
if (type != undefined) {
top.layer.msg(content, { icon: $.modal.icon(type), time: 1000, shift: 5 });
} else {
top.layer.msg(content);
}
},
/**
* 确认提示
* @param content 提示内容
* @param successCallBack 确认回调函数
* @param cancelCallBack 取消回调函数
*/
confirm:function (content,callBack){
top.layer.confirm(content, {
icon: 3,
title: "系统提示",
btn: ['确认', '取消']
}, function (index) {
$.modal.closePop(index);
callBack(true);
});
},
/**
* 打开弹窗
* @param title 标题
* @param url 地址/如果为动态获取一般为后台请求地址
* @param width 宽度
* @param height 高度
* @param isFull 是否全屏
*/
openPop:function (title,url,isFull,width,height){
//校验环境是否为移动端
if($.tools.mobileTerminal()){
width = 'auto';
height = 'auto';
}
if($.tools.isEmpty(width)){
width = 800;
}
if($.tools.isEmpty(height)){
height = $(window).height();
}
var index = top.layer.open({
type: 2,
title: title,
area: [width + 'px', height + 'px'],
content: url, //要展示的内容,此处可以通过后台获取,也可以自定义
fix: false,
maxmin: true, //开启最大化最小化按钮
shade: 0.3,
btn: ['确定', '关闭'],
shadeClose: true, // 弹层外区域关闭
yes: function(index, layero) {
var iframeWin = layero.find('iframe')[0];
iframeWin.contentWindow.submitHandler(index, layero);
},
cancel: function(index) {
return true;
},
success: function () {
$(':focus').blur();
}
});
if(zhuhuo.options.isFullShow){
top.layer.full(index);
}
},
/**
* 打开详情弹窗
* @param title 标题
* @param url 地址/如果为动态获取一般为后台请求地址
* @param width 宽度
* @param height 高度
* @param isFull 是否全屏
*/
openViewPop:function (title,url,isFull,width,height){
//校验环境是否为移动端
if($.tools.mobileTerminal()){
width = 'auto';
height = 'auto';
}
if($.tools.isEmpty(width)){
width = 800;
}
if($.tools.isEmpty(height)){
height = $(window).height();
}
var index = top.layer.open({
type: 2,
title: title,
area: [width + 'px', height + 'px'],
content: url, //要展示的内容,此处可以通过后台获取,也可以自定义
fix: false,
maxmin: true, //开启最大化最小化按钮
shade: 0.3,
btn: ['关闭'],
shadeClose: true, // 弹层外区域关闭
cancel: function(index) {
return true;
},
success: function () {
$(':focus').blur();
}
});
if(zhuhuo.options.isFullShow){
top.layer.full(index);
}
},
/**
* 关闭弹出层
* @param index iframe的索引
*/
closePop:function (index){
if ($.tools.isEmpty(index)){
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
} else {
top.layer.close(index);
}
}
},
})
})(jQuery);
标签:function,return,param,js,017,后台,zhuhuo,tools,options
From: https://blog.51cto.com/cykj20210317/7275909