common.js 10.3 KB
/**
 * 通用方法封装处理
 * Copyright (c) 2018 huaheng
 */

$(function(){
	// 复选框事件绑定
	if ($.fn.select2 !== undefined) {
		$("select.form-control:not(.noselect2)").each(function () {
			$(this).select2().on("change", function () {
				$(this).valid();
			})
		})
	}
	if ($(".i-checks").length > 0) {
	    $(".i-checks").iCheck({
	        checkboxClass: "icheckbox_square-green",
	        radioClass: "iradio_square-green",
	    })
	}
	if ($(".time").length > 0) {
		layui.use('laydate', function() {
		    var laydate = layui.laydate;
            var day1 = new Date();
            day1.setTime(day1.getTime()-24*60*60*1000*7);
            var endDay = new Date();
            endDay.setTime(endDay.getTime()+24*60*60*1000);
		    laydate.render({ elem: '#startTime', theme: 'molv',value: new Date(day1), isInitValue: true});
		    laydate.render({ elem: '#endTime', theme: 'molv',value: new Date(endDay), isInitValue: true });
		});
	}
    if ($(".time2").length > 0) {
        layui.use('laydate', function() {
            var laydate = layui.laydate;
            var day1 = new Date();
            day1.setTime(day1.getTime()-24*60*60*1000*7);
            var endDay = new Date();
            endDay.setTime(endDay.getTime()+24*60*60*1000);
            laydate.render({ elem: '#startTime', theme: 'molv'});
            laydate.render({ elem: '#endTime', theme: 'molv'});
        });
    }

    if ($(".select-time").length > 0) {
        layui.use('laydate', function() {
            var laydate = layui.laydate;
            var day1 = new Date();
            day1.setTime(day1.getTime()-24*60*60*1000*7);
            var endDay = new Date();
            endDay.setTime(endDay.getTime()+24*60*60*1000);
            laydate.render({ elem: '#startTime', theme: 'molv'});
            laydate.render({ elem: '#endTime', theme: 'molv'});
        });
    }
    if ($(".select-time2").length > 0) {
        layui.use('laydate', function() {
            var laydate = layui.laydate;
            var day1 = new Date();
            day1.setTime(day1.getTime()-24*60*60*1000*7);
            var endDay = new Date();
            endDay.setTime(endDay.getTime()+24*60*60*1000);
            laydate.render({ elem: '#startTime', theme: 'molv'});
            laydate.render({ elem: '#endTime', theme: 'molv'});
        });
    }
});

// 主子表操作封装处理
var sub = {
    editRow: function() {
        var dataColumns = [];
        for (var columnIndex = 0; columnIndex < table.options.columns.length; columnIndex++) {
            if (table.options.columns[columnIndex].visible != false) {
                dataColumns.push(table.options.columns[columnIndex]);
            }
        }
        var params = new Array();
        var data = $("#" + table.options.id).bootstrapTable('getData');
        var count = data.length;
        for (var dataIndex = 0; dataIndex < count; dataIndex++) {
            var columns = $('#' + table.options.id + ' tr[data-index="' + dataIndex + '"] td:visible');
            var obj = new Object();
            for (var i = 0; i < columns.length; i++) {
                var inputValue = $(columns[i]).find('input');
                var selectValue = $(columns[i]).find('select');
                var textareaValue = $(columns[i]).find('textarea');
                var key = dataColumns[i].field;
                if ($.common.isNotEmpty(inputValue.val())) {
                    obj[key] = inputValue.val();
                } else if ($.common.isNotEmpty(selectValue.val())) {
                    obj[key] = selectValue.val();
                } else if ($.common.isNotEmpty(textareaValue.val())) {
                    obj[key] = textareaValue.val();
                } else {
                    if (key == "index" && $.common.isNotEmpty(data[dataIndex].index)) {
                        obj[key] = data[dataIndex].index;
                    } else {
                        obj[key] = "";
                    }
                }
            }
            var item = data[dataIndex];
            var extendObj = $.extend({}, item, obj);
            params.push({ index: dataIndex, row: extendObj });
        }
        $("#" + table.options.id).bootstrapTable("updateRow", params);
    },
    delRow: function(column) {
        sub.editRow();
        var subColumn = $.common.isEmpty(column) ? "index" : column;
        var ids = $.table.selectColumns(subColumn);
        if (ids.length == 0) {
            $.modal.alertWarning("请至少选择一条记录");
            return;
        }
        $("#" + table.options.id).bootstrapTable('remove', { field: subColumn, values: ids });
        sub.editColumn();
    },
    delRowByIndex: function(value, tableId) {
        var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId;
        sub.editRow();
        $("#" + currentId).bootstrapTable('remove', { field: "index", values: [value] });
        sub.editRow();
    },
    addRow: function(row, tableId) {
        var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId;
        table.set(currentId);
        console.log(currentId)
        var count = $("#" + currentId).bootstrapTable('getData').length;
        console.log(count)
        sub.editRow();
        $("#" + currentId).bootstrapTable('insertRow', { index: count + 1, row: row });
        sub.editColumn();
    },
    editColumn: function() {
        var count = $("#" + table.options.id).bootstrapTable('getData').length;
        var params = new Array();
        for (var dataIndex = 0; dataIndex <= count; dataIndex++) {
            var columns = $('#' + table.options.id + ' tr[data-index="' + dataIndex + '"] td');
            var obj = new Object();
            for (var i = 0; i < columns.length; i++) {
                var inputValue = $(columns[i]).find('input');
                var selectValue = $(columns[i]).find('select');
                var key = table.options.columns[i].field;
                if ($.common.isNotEmpty(inputValue.val())) {
                    obj[key] = inputValue.val();
                } else if ($.common.isNotEmpty(selectValue.val())) {
                    obj[key] = selectValue.val();
                } else {
                    obj[key] = "";
                }
            }
            params.push({ index: dataIndex, row: obj });
        }
        $("#" + table.options.id).bootstrapTable("updateRow", params);
    },
};


function activeWindow() {
    var topWindow = $(window.parent.document);
    var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
    if (!currentId) {
        return window.parent;
    }
    return $('.huaheng_iframe[data-id="' + currentId + '"]', topWindow)[0].contentWindow;
}

/** 创建选项卡 */
function createMenuItem(dataUrl, menuName) {
    dataIndex = $.common.random(1,100),
    flag = true;
    if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
    var topWindow = $(window.parent.document);
    // 选项卡菜单已存在
    $('.menuTab', topWindow).each(function() {
        //todo 增加判断 如果是detail 则需去掉后面的/id 再判断
        if ($(this).data('id') == dataUrl) {
            if (!$(this).hasClass('active')) {
                $(this).addClass('active').siblings('.menuTab').removeClass('active');
                $('.page-tabs-content').animate({ marginLeft: ""}, "fast");
                // 显示tab对应的内容区
                $('.mainContent .huaheng_iframe', topWindow).each(function() {
                    if ($(this).data('id') == dataUrl) {
                        $(this).show().siblings('.huaheng_iframe').hide();
                        return false;
                    }
                });
            }
            flag = false;
            return false;
        }
    });
    // 选项卡菜单不存在
    if (flag) {
        var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
        $('.menuTab', topWindow).removeClass('active');

        // 添加选项卡对应的iframe
        var str1 = '<iframe class="huaheng_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
        $('.mainContent', topWindow).find('iframe.huaheng_iframe').hide().parents('.mainContent').append(str1);

        // 添加选项卡
        $('.menuTabs .page-tabs-content', topWindow).append(str);
    }
    return false;
}

/** 设置全局ajax超时处理 */
$.ajaxSetup({
    complete: function(XMLHttpRequest, textStatus) {
        if (textStatus == "parsererror") {
        	$.modal.confirm("登陆超时!请重新登陆!", function() {
        		window.location.href = ctx + "login";
        	})
        }
    }
});

function getUrlParms(){
    var args = new Object();
    //获取查询串
    var query = location.search.substring(1);
    //在&处断开
    var pairs = query.split("&");
    for(var  i=0; i<pairs.length; i++)    {
        //查找name=value
        var pos = pairs[i].indexOf('=');
        //如果没有找到就跳过
        if(pos == -1)  continue;
        //提取name
        var argname = pairs[i].substring(0,pos);
        //提取value
        var value = pairs[i].substring(pos+1);
        //存为属性
        args[argname] = decodeURI(value);
    }
    return args;
}

/** 拓展方法,替换字符串中字段的值 */
function formValueReplace (formData, replaceField, replaceValue) {
    var beginIndex = formData.indexOf("&"+replaceField);
    if (beginIndex > -1)   {
        var endIndex = formData.indexOf("&", beginIndex+1);
        if (endIndex > -1)   {
            formData = formData.substring(0, beginIndex) + formData.substring(endIndex, formData.length);
        }
        else  {
            formData = formData.substring(0, beginIndex);
        }
    }
    return formData + "&" + replaceField + "=" + replaceValue;
};

// function formValueReplace(formData, replaceField, replaceValue) {
//     var beginIndex = formData.indexOf("&"+replaceField);
//     if (beginIndex > -1)   {
//         var endIndex = formData.indexOf("&", beginIndex+1);
//         if (endIndex > -1)   {
//             formData = formData.substring(0, beginIndex) + formData.substring(endIndex, tableValue.length);
//         }
//         else  {
//             formData = formData.substring(0, beginIndex);
//         }
//         formData = formData + "&" + replaceField + "=" + replaceValue;
//     }
// }