From 608e7bd792bc907e163f9e9bdd03882ad494a63b Mon Sep 17 00:00:00 2001
From: lyqwer <5224232+lyqwer@user.noreply.gitee.com>
Date: Thu, 24 Jun 2021 07:34:23 +0000
Subject: [PATCH] =?UTF-8?q?common.js=20251=E8=A1=8C=E6=A0=87=E7=82=B9?=
=?UTF-8?q?=E7=AC=A6=E5=8F=B7=E7=9A=84=E5=B0=8F=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/resources/static/ruoyi/js/common.js | 986 +++++++++---------
1 file changed, 493 insertions(+), 493 deletions(-)
diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js
index 673662d5e..2e29dcebf 100644
--- a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js
+++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js
@@ -1,493 +1,493 @@
-/**
- * 通用方法封装处理
- * Copyright (c) 2019 ruoyi
- */
-$(function() {
-
- // layer扩展皮肤
- if (window.layer !== undefined) {
- layer.config({
- extend: 'moon/style.css',
- skin: 'layer-ext-moon'
- });
- }
-
- // 回到顶部绑定
- if ($.fn.toTop !== undefined) {
- $('#scroll-up').toTop();
- }
-
- // select2复选框事件绑定
- if ($.fn.select2 !== undefined) {
- $.fn.select2.defaults.set( "theme", "bootstrap" );
- $("select.form-control:not(.noselect2)").each(function () {
- $(this).select2().on("change", function () {
- $(this).valid();
- })
- })
- }
-
- // iCheck单选框及复选框事件绑定
- if ($.fn.iCheck !== undefined) {
- $(".check-box:not(.noicheck),.radio-box:not(.noicheck)").each(function() {
- $(this).iCheck({
- checkboxClass: 'icheckbox-blue',
- radioClass: 'iradio-blue',
- })
- })
- }
-
- // 取消回车自动提交表单
- $(document).on("keypress", ":input:not(textarea):not([type=submit])", function(event) {
- if (event.keyCode == 13) {
- event.preventDefault();
- }
- });
-
- // laydate 时间控件绑定
- if ($(".select-time").length > 0) {
- layui.use('laydate', function() {
- var laydate = layui.laydate;
- var startDate = laydate.render({
- elem: '#startTime',
- max: $('#endTime').val(),
- theme: 'molv',
- trigger: 'click',
- done: function(value, date) {
- // 结束时间大于开始时间
- if (value !== '') {
- endDate.config.min.year = date.year;
- endDate.config.min.month = date.month - 1;
- endDate.config.min.date = date.date;
- } else {
- endDate.config.min.year = '';
- endDate.config.min.month = '';
- endDate.config.min.date = '';
- }
- }
- });
- var endDate = laydate.render({
- elem: '#endTime',
- min: $('#startTime').val(),
- theme: 'molv',
- trigger: 'click',
- done: function(value, date) {
- // 开始时间小于结束时间
- if (value !== '') {
- startDate.config.max.year = date.year;
- startDate.config.max.month = date.month - 1;
- startDate.config.max.date = date.date;
- } else {
- startDate.config.max.year = '2099';
- startDate.config.max.month = '12';
- startDate.config.max.date = '31';
- }
- }
- });
- });
- }
-
- // laydate time-input 时间控件绑定
- if ($(".time-input").length > 0) {
- layui.use('laydate', function () {
- var com = layui.laydate;
- $(".time-input").each(function (index, item) {
- var time = $(item);
- // 控制控件外观
- var type = time.attr("data-type") || 'date';
- // 控制回显格式
- var format = time.attr("data-format") || 'yyyy-MM-dd';
- // 控制日期控件按钮
- var buttons = time.attr("data-btn") || 'clear|now|confirm', newBtnArr = [];
- // 日期控件选择完成后回调处理
- var callback = time.attr("data-callback") || {};
- if (buttons) {
- if (buttons.indexOf("|") > 0) {
- var btnArr = buttons.split("|"), btnLen = btnArr.length;
- for (var j = 0; j < btnLen; j++) {
- if ("clear" === btnArr[j] || "now" === btnArr[j] || "confirm" === btnArr[j]) {
- newBtnArr.push(btnArr[j]);
- }
- }
- } else {
- if ("clear" === buttons || "now" === buttons || "confirm" === buttons) {
- newBtnArr.push(buttons);
- }
- }
- } else {
- newBtnArr = ['clear', 'now', 'confirm'];
- }
- com.render({
- elem: item,
- theme: 'molv',
- trigger: 'click',
- type: type,
- format: format,
- btns: newBtnArr,
- done: function (value, data) {
- if (typeof window[callback] != 'undefined'
- && window[callback] instanceof Function) {
- window[callback](value, data);
- }
- }
- });
- });
- });
- }
-
- // tree 关键字搜索绑定
- if ($("#keyword").length > 0) {
- $("#keyword").bind("focus", function focusKey(e) {
- if ($("#keyword").hasClass("empty")) {
- $("#keyword").removeClass("empty");
- }
- }).bind("blur", function blurKey(e) {
- if ($("#keyword").val() === "") {
- $("#keyword").addClass("empty");
- }
- $.tree.searchNode(e);
- }).bind("input propertychange", $.tree.searchNode);
- }
-
- // tree表格树 展开/折叠
- var expandFlag;
- $("#expandAllBtn").click(function() {
- var dataExpand = $.common.isEmpty(table.options.expandAll) ? true : table.options.expandAll;
- expandFlag = $.common.isEmpty(expandFlag) ? dataExpand : expandFlag;
- if (!expandFlag) {
- $.bttTable.bootstrapTreeTable('expandAll');
- } else {
- $.bttTable.bootstrapTreeTable('collapseAll');
- }
- expandFlag = expandFlag ? false: true;
- })
-
- // 按下ESC按钮关闭弹层
- $('body', document).on('keyup', function(e) {
- if (e.which === 27) {
- $.modal.closeAll();
- }
- });
-});
-
-(function ($) {
- 'use strict';
- $.fn.toTop = function(opt) {
- var elem = this;
- var win = (opt && opt.hasOwnProperty('win')) ? opt.win : $(window);
- var doc = (opt && opt.hasOwnProperty('doc')) ? opt.doc : $('html, body');
- var options = $.extend({
- autohide: true,
- offset: 50,
- speed: 500,
- position: true,
- right: 15,
- bottom: 5
- }, opt);
- elem.css({
- 'cursor': 'pointer'
- });
- if (options.autohide) {
- elem.css('display', 'none');
- }
- if (options.position) {
- elem.css({
- 'position': 'fixed',
- 'right': options.right,
- 'bottom': options.bottom,
- });
- }
- elem.click(function() {
- doc.animate({
- scrollTop: 0
- }, options.speed);
- });
- win.scroll(function() {
- var scrolling = win.scrollTop();
- if (options.autohide) {
- if (scrolling > options.offset) {
- elem.fadeIn(options.speed);
- } else elem.fadeOut(options.speed);
- }
- });
- };
-})(jQuery);
-
-/** 刷新选项卡 */
-var refreshItem = function(){
- var topWindow = $(window.parent.document);
- var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
- var target = $('.RuoYi_iframe[data-id="' + currentId + '"]', topWindow);
- var url = target.attr('src');
- target.attr('src', url).ready();
-}
-
-/** 关闭选项卡 */
-var closeItem = function(dataId){
- var topWindow = $(window.parent.document);
- if($.common.isNotEmpty(dataId)){
- window.parent.$.modal.closeLoading();
- // 根据dataId关闭指定选项卡
- $('.menuTab[data-id="' + dataId + '"]', topWindow).remove();
- // 移除相应tab对应的内容区
- $('.mainContent .RuoYi_iframe[data-id="' + dataId + '"]', topWindow).remove();
- return;
- }
- var panelUrl = window.frameElement.getAttribute('data-panel');
- $('.page-tabs-content .active i', topWindow).click();
- if($.common.isNotEmpty(panelUrl)){
- $('.menuTab[data-id="' + panelUrl + '"]', topWindow).addClass('active').siblings('.menuTab').removeClass('active');
- $('.mainContent .RuoYi_iframe', topWindow).each(function() {
- if ($(this).data('id') == panelUrl) {
- $(this).show().siblings('.RuoYi_iframe').hide();
- return false;
- }
- });
- }
-}
-
-/** 创建选项卡 */
-function createMenuItem(dataUrl, menuName, isRefresh) {
- var panelUrl = window.frameElement.getAttribute('data-id');
- 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() {
- if ($(this).data('id') == dataUrl) {
- if (!$(this).hasClass('active')) {
- $(this).addClass('active').siblings('.menuTab').removeClass('active');
- scrollToTab(this);
- $('.page-tabs-content').animate({ marginLeft: ""}, "fast");
- // 显示tab对应的内容区
- $('.mainContent .RuoYi_iframe', topWindow).each(function() {
- if ($(this).data('id') == dataUrl) {
- $(this).show().siblings('.RuoYi_iframe').hide();
- return false;
- }
- });
- }
- if (isRefresh) {
- refreshTab();
- }
- flag = false;
- return false;
- }
- });
- // 选项卡菜单不存在
- if (flag) {
- var str = '';
- $('.menuTab', topWindow).removeClass('active');
-
- // 添加选项卡对应的iframe
- var str1 = '';
- $('.mainContent', topWindow).find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1);
-
- window.parent.$.modal.loading("数据加载中,请稍后...");
- $('.mainContent iframe:visible', topWindow).load(function () {
- window.parent.$.modal.closeLoading();
- });
-
- // 添加选项卡
- $('.menuTabs .page-tabs-content', topWindow).append(str);
- scrollToTab($('.menuTab.active', topWindow));
- }
- return false;
-}
-
-// 刷新iframe
-function refreshTab() {
- var topWindow = $(window.parent.document);
- var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
- var target = $('.RuoYi_iframe[data-id="' + currentId + '"]', topWindow);
- var url = target.attr('src');
- target.attr('src', url).ready();
-}
-
-// 滚动到指定选项卡
-function scrollToTab(element) {
- var topWindow = $(window.parent.document);
- var marginLeftVal = calSumWidth($(element).prevAll()),
- marginRightVal = calSumWidth($(element).nextAll());
- // 可视区域非tab宽度
- var tabOuterWidth = calSumWidth($(".content-tabs", topWindow).children().not(".menuTabs"));
- //可视区域tab宽度
- var visibleWidth = $(".content-tabs", topWindow).outerWidth(true) - tabOuterWidth;
- //实际滚动宽度
- var scrollVal = 0;
- if ($(".page-tabs-content", topWindow).outerWidth() < visibleWidth) {
- scrollVal = 0;
- } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
- if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
- scrollVal = marginLeftVal;
- var tabElement = element;
- while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content", topWindow).outerWidth() - visibleWidth)) {
- scrollVal -= $(tabElement).prev().outerWidth();
- tabElement = $(tabElement).prev();
- }
- }
- } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
- scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
- }
- $('.page-tabs-content', topWindow).animate({ marginLeft: 0 - scrollVal + 'px' }, "fast");
-}
-
-//计算元素集合的总宽度
-function calSumWidth(elements) {
- var width = 0;
- $(elements).each(function() {
- width += $(this).outerWidth(true);
- });
- return width;
-}
-
-/** 密码规则范围验证 */
-function checkpwd(chrtype, password) {
- if (chrtype == 1) {
- if(!$.common.numValid(password)){
- $.modal.alertWarning("密码只能为0-9数字");
- return false;
- }
- } else if (chrtype == 2) {
- if(!$.common.enValid(password)){
- $.modal.alertWarning("密码只能为a-z和A-Z字母");
- return false;
- }
- } else if (chrtype == 3) {
- if(!$.common.enNumValid(password)){
- $.modal.alertWarning("密码必须包含字母以及数字");
- return false;
- }
- } else if (chrtype == 4) {
- if(!$.common.charValid(password)){
- $.modal.alertWarning("密码必须包含字母、数字、以及特殊符号~!@#$%^&*()-=_+");
- return false;
- }
- }
- return true;
-}
-
-// 日志打印封装处理
-var log = {
- log: function(msg) {
- console.log(msg);
- },
- info: function(msg) {
- console.info(msg);
- },
- warn: function(msg) {
- console.warn(msg);
- },
- error: function(msg) {
- console.error(msg);
- }
-};
-
-// 本地缓存处理
-var storage = {
- set: function(key, value) {
- window.localStorage.setItem(key, value);
- },
- get: function(key) {
- return window.localStorage.getItem(key);
- },
- remove: function(key) {
- window.localStorage.removeItem(key);
- },
- clear: function() {
- window.localStorage.clear();
- }
-};
-
-// 主子表操作封装处理
-var sub = {
- editColumn: 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');
- 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 {
- obj[key] = "";
- }
- }
- var item = data[dataIndex];
- var extendObj = $.extend({}, item, obj);
- params.push({ index: dataIndex, row: extendObj });
- }
- $("#" + table.options.id).bootstrapTable("updateRow", params);
- },
- delColumn: function(column) {
- sub.editColumn();
- 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 });
- },
- addColumn: function(row, tableId) {
- var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId;
- table.set(currentId);
- var count = $("#" + currentId).bootstrapTable('getData').length;
- sub.editColumn();
- $("#" + currentId).bootstrapTable('insertRow', {
- index: count + 1,
- row: row
- });
- }
-};
-
-// 动态加载css文件
-function loadCss(file, headElem) {
- var link = document.createElement('link');
- link.href = file;
- link.rel = 'stylesheet';
- link.type = 'text/css';
- if (headElem) headElem.appendChild(link);
- else document.getElementsByTagName('head')[0].appendChild(link);
-}
-
-// 动态加载js文件
-function loadJs(file, headElem) {
- var script = document.createElement('script');
- script.src = file;
- script.type = 'text/javascript';
- if (headElem) headElem.appendChild(script);
- else document.getElementsByTagName('head')[0].appendChild(script);
-}
-
-/** 设置全局ajax处理 */
-$.ajaxSetup({
- complete: function(XMLHttpRequest, textStatus) {
- if (textStatus == 'timeout') {
- $.modal.alertWarning("服务器超时,请稍后再试!");
- $.modal.enable();
- $.modal.closeLoading();
- } else if (textStatus == "parsererror" || textStatus == "error") {
- $.modal.alertWarning("服务器错误,请联系管理员!");
- $.modal.enable();
- $.modal.closeLoading();
- }
- }
-});
+/**
+ * 通用方法封装处理
+ * Copyright (c) 2019 ruoyi
+ */
+$(function() {
+
+ // layer扩展皮肤
+ if (window.layer !== undefined) {
+ layer.config({
+ extend: 'moon/style.css',
+ skin: 'layer-ext-moon'
+ });
+ }
+
+ // 回到顶部绑定
+ if ($.fn.toTop !== undefined) {
+ $('#scroll-up').toTop();
+ }
+
+ // select2复选框事件绑定
+ if ($.fn.select2 !== undefined) {
+ $.fn.select2.defaults.set( "theme", "bootstrap" );
+ $("select.form-control:not(.noselect2)").each(function () {
+ $(this).select2().on("change", function () {
+ $(this).valid();
+ })
+ })
+ }
+
+ // iCheck单选框及复选框事件绑定
+ if ($.fn.iCheck !== undefined) {
+ $(".check-box:not(.noicheck),.radio-box:not(.noicheck)").each(function() {
+ $(this).iCheck({
+ checkboxClass: 'icheckbox-blue',
+ radioClass: 'iradio-blue',
+ })
+ })
+ }
+
+ // 取消回车自动提交表单
+ $(document).on("keypress", ":input:not(textarea):not([type=submit])", function(event) {
+ if (event.keyCode == 13) {
+ event.preventDefault();
+ }
+ });
+
+ // laydate 时间控件绑定
+ if ($(".select-time").length > 0) {
+ layui.use('laydate', function() {
+ var laydate = layui.laydate;
+ var startDate = laydate.render({
+ elem: '#startTime',
+ max: $('#endTime').val(),
+ theme: 'molv',
+ trigger: 'click',
+ done: function(value, date) {
+ // 结束时间大于开始时间
+ if (value !== '') {
+ endDate.config.min.year = date.year;
+ endDate.config.min.month = date.month - 1;
+ endDate.config.min.date = date.date;
+ } else {
+ endDate.config.min.year = '';
+ endDate.config.min.month = '';
+ endDate.config.min.date = '';
+ }
+ }
+ });
+ var endDate = laydate.render({
+ elem: '#endTime',
+ min: $('#startTime').val(),
+ theme: 'molv',
+ trigger: 'click',
+ done: function(value, date) {
+ // 开始时间小于结束时间
+ if (value !== '') {
+ startDate.config.max.year = date.year;
+ startDate.config.max.month = date.month - 1;
+ startDate.config.max.date = date.date;
+ } else {
+ startDate.config.max.year = '2099';
+ startDate.config.max.month = '12';
+ startDate.config.max.date = '31';
+ }
+ }
+ });
+ });
+ }
+
+ // laydate time-input 时间控件绑定
+ if ($(".time-input").length > 0) {
+ layui.use('laydate', function () {
+ var com = layui.laydate;
+ $(".time-input").each(function (index, item) {
+ var time = $(item);
+ // 控制控件外观
+ var type = time.attr("data-type") || 'date';
+ // 控制回显格式
+ var format = time.attr("data-format") || 'yyyy-MM-dd';
+ // 控制日期控件按钮
+ var buttons = time.attr("data-btn") || 'clear|now|confirm', newBtnArr = [];
+ // 日期控件选择完成后回调处理
+ var callback = time.attr("data-callback") || {};
+ if (buttons) {
+ if (buttons.indexOf("|") > 0) {
+ var btnArr = buttons.split("|"), btnLen = btnArr.length;
+ for (var j = 0; j < btnLen; j++) {
+ if ("clear" === btnArr[j] || "now" === btnArr[j] || "confirm" === btnArr[j]) {
+ newBtnArr.push(btnArr[j]);
+ }
+ }
+ } else {
+ if ("clear" === buttons || "now" === buttons || "confirm" === buttons) {
+ newBtnArr.push(buttons);
+ }
+ }
+ } else {
+ newBtnArr = ['clear', 'now', 'confirm'];
+ }
+ com.render({
+ elem: item,
+ theme: 'molv',
+ trigger: 'click',
+ type: type,
+ format: format,
+ btns: newBtnArr,
+ done: function (value, data) {
+ if (typeof window[callback] != 'undefined'
+ && window[callback] instanceof Function) {
+ window[callback](value, data);
+ }
+ }
+ });
+ });
+ });
+ }
+
+ // tree 关键字搜索绑定
+ if ($("#keyword").length > 0) {
+ $("#keyword").bind("focus", function focusKey(e) {
+ if ($("#keyword").hasClass("empty")) {
+ $("#keyword").removeClass("empty");
+ }
+ }).bind("blur", function blurKey(e) {
+ if ($("#keyword").val() === "") {
+ $("#keyword").addClass("empty");
+ }
+ $.tree.searchNode(e);
+ }).bind("input propertychange", $.tree.searchNode);
+ }
+
+ // tree表格树 展开/折叠
+ var expandFlag;
+ $("#expandAllBtn").click(function() {
+ var dataExpand = $.common.isEmpty(table.options.expandAll) ? true : table.options.expandAll;
+ expandFlag = $.common.isEmpty(expandFlag) ? dataExpand : expandFlag;
+ if (!expandFlag) {
+ $.bttTable.bootstrapTreeTable('expandAll');
+ } else {
+ $.bttTable.bootstrapTreeTable('collapseAll');
+ }
+ expandFlag = expandFlag ? false: true;
+ })
+
+ // 按下ESC按钮关闭弹层
+ $('body', document).on('keyup', function(e) {
+ if (e.which === 27) {
+ $.modal.closeAll();
+ }
+ });
+});
+
+(function ($) {
+ 'use strict';
+ $.fn.toTop = function(opt) {
+ var elem = this;
+ var win = (opt && opt.hasOwnProperty('win')) ? opt.win : $(window);
+ var doc = (opt && opt.hasOwnProperty('doc')) ? opt.doc : $('html, body');
+ var options = $.extend({
+ autohide: true,
+ offset: 50,
+ speed: 500,
+ position: true,
+ right: 15,
+ bottom: 5
+ }, opt);
+ elem.css({
+ 'cursor': 'pointer'
+ });
+ if (options.autohide) {
+ elem.css('display', 'none');
+ }
+ if (options.position) {
+ elem.css({
+ 'position': 'fixed',
+ 'right': options.right,
+ 'bottom': options.bottom,
+ });
+ }
+ elem.click(function() {
+ doc.animate({
+ scrollTop: 0
+ }, options.speed);
+ });
+ win.scroll(function() {
+ var scrolling = win.scrollTop();
+ if (options.autohide) {
+ if (scrolling > options.offset) {
+ elem.fadeIn(options.speed);
+ } else elem.fadeOut(options.speed);
+ }
+ });
+ };
+})(jQuery);
+
+/** 刷新选项卡 */
+var refreshItem = function(){
+ var topWindow = $(window.parent.document);
+ var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
+ var target = $('.RuoYi_iframe[data-id="' + currentId + '"]', topWindow);
+ var url = target.attr('src');
+ target.attr('src', url).ready();
+}
+
+/** 关闭选项卡 */
+var closeItem = function(dataId){
+ var topWindow = $(window.parent.document);
+ if($.common.isNotEmpty(dataId)){
+ window.parent.$.modal.closeLoading();
+ // 根据dataId关闭指定选项卡
+ $('.menuTab[data-id="' + dataId + '"]', topWindow).remove();
+ // 移除相应tab对应的内容区
+ $('.mainContent .RuoYi_iframe[data-id="' + dataId + '"]', topWindow).remove();
+ return;
+ }
+ var panelUrl = window.frameElement.getAttribute('data-panel');
+ $('.page-tabs-content .active i', topWindow).click();
+ if($.common.isNotEmpty(panelUrl)){
+ $('.menuTab[data-id="' + panelUrl + '"]', topWindow).addClass('active').siblings('.menuTab').removeClass('active');
+ $('.mainContent .RuoYi_iframe', topWindow).each(function() {
+ if ($(this).data('id') == panelUrl) {
+ $(this).show().siblings('.RuoYi_iframe').hide();
+ return false;
+ }
+ });
+ }
+}
+
+/** 创建选项卡 */
+function createMenuItem(dataUrl, menuName, isRefresh) {
+ var panelUrl = window.frameElement.getAttribute('data-id'),
+ 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() {
+ if ($(this).data('id') == dataUrl) {
+ if (!$(this).hasClass('active')) {
+ $(this).addClass('active').siblings('.menuTab').removeClass('active');
+ scrollToTab(this);
+ $('.page-tabs-content').animate({ marginLeft: ""}, "fast");
+ // 显示tab对应的内容区
+ $('.mainContent .RuoYi_iframe', topWindow).each(function() {
+ if ($(this).data('id') == dataUrl) {
+ $(this).show().siblings('.RuoYi_iframe').hide();
+ return false;
+ }
+ });
+ }
+ if (isRefresh) {
+ refreshTab();
+ }
+ flag = false;
+ return false;
+ }
+ });
+ // 选项卡菜单不存在
+ if (flag) {
+ var str = '';
+ $('.menuTab', topWindow).removeClass('active');
+
+ // 添加选项卡对应的iframe
+ var str1 = '';
+ $('.mainContent', topWindow).find('iframe.RuoYi_iframe').hide().parents('.mainContent').append(str1);
+
+ window.parent.$.modal.loading("数据加载中,请稍后...");
+ $('.mainContent iframe:visible', topWindow).load(function () {
+ window.parent.$.modal.closeLoading();
+ });
+
+ // 添加选项卡
+ $('.menuTabs .page-tabs-content', topWindow).append(str);
+ scrollToTab($('.menuTab.active', topWindow));
+ }
+ return false;
+}
+
+// 刷新iframe
+function refreshTab() {
+ var topWindow = $(window.parent.document);
+ var currentId = $('.page-tabs-content', topWindow).find('.active').attr('data-id');
+ var target = $('.RuoYi_iframe[data-id="' + currentId + '"]', topWindow);
+ var url = target.attr('src');
+ target.attr('src', url).ready();
+}
+
+// 滚动到指定选项卡
+function scrollToTab(element) {
+ var topWindow = $(window.parent.document);
+ var marginLeftVal = calSumWidth($(element).prevAll()),
+ marginRightVal = calSumWidth($(element).nextAll());
+ // 可视区域非tab宽度
+ var tabOuterWidth = calSumWidth($(".content-tabs", topWindow).children().not(".menuTabs"));
+ //可视区域tab宽度
+ var visibleWidth = $(".content-tabs", topWindow).outerWidth(true) - tabOuterWidth;
+ //实际滚动宽度
+ var scrollVal = 0;
+ if ($(".page-tabs-content", topWindow).outerWidth() < visibleWidth) {
+ scrollVal = 0;
+ } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
+ if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
+ scrollVal = marginLeftVal;
+ var tabElement = element;
+ while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content", topWindow).outerWidth() - visibleWidth)) {
+ scrollVal -= $(tabElement).prev().outerWidth();
+ tabElement = $(tabElement).prev();
+ }
+ }
+ } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
+ scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
+ }
+ $('.page-tabs-content', topWindow).animate({ marginLeft: 0 - scrollVal + 'px' }, "fast");
+}
+
+//计算元素集合的总宽度
+function calSumWidth(elements) {
+ var width = 0;
+ $(elements).each(function() {
+ width += $(this).outerWidth(true);
+ });
+ return width;
+}
+
+/** 密码规则范围验证 */
+function checkpwd(chrtype, password) {
+ if (chrtype == 1) {
+ if(!$.common.numValid(password)){
+ $.modal.alertWarning("密码只能为0-9数字");
+ return false;
+ }
+ } else if (chrtype == 2) {
+ if(!$.common.enValid(password)){
+ $.modal.alertWarning("密码只能为a-z和A-Z字母");
+ return false;
+ }
+ } else if (chrtype == 3) {
+ if(!$.common.enNumValid(password)){
+ $.modal.alertWarning("密码必须包含字母以及数字");
+ return false;
+ }
+ } else if (chrtype == 4) {
+ if(!$.common.charValid(password)){
+ $.modal.alertWarning("密码必须包含字母、数字、以及特殊符号~!@#$%^&*()-=_+");
+ return false;
+ }
+ }
+ return true;
+}
+
+// 日志打印封装处理
+var log = {
+ log: function(msg) {
+ console.log(msg);
+ },
+ info: function(msg) {
+ console.info(msg);
+ },
+ warn: function(msg) {
+ console.warn(msg);
+ },
+ error: function(msg) {
+ console.error(msg);
+ }
+};
+
+// 本地缓存处理
+var storage = {
+ set: function(key, value) {
+ window.localStorage.setItem(key, value);
+ },
+ get: function(key) {
+ return window.localStorage.getItem(key);
+ },
+ remove: function(key) {
+ window.localStorage.removeItem(key);
+ },
+ clear: function() {
+ window.localStorage.clear();
+ }
+};
+
+// 主子表操作封装处理
+var sub = {
+ editColumn: 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');
+ 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 {
+ obj[key] = "";
+ }
+ }
+ var item = data[dataIndex];
+ var extendObj = $.extend({}, item, obj);
+ params.push({ index: dataIndex, row: extendObj });
+ }
+ $("#" + table.options.id).bootstrapTable("updateRow", params);
+ },
+ delColumn: function(column) {
+ sub.editColumn();
+ 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 });
+ },
+ addColumn: function(row, tableId) {
+ var currentId = $.common.isEmpty(tableId) ? table.options.id : tableId;
+ table.set(currentId);
+ var count = $("#" + currentId).bootstrapTable('getData').length;
+ sub.editColumn();
+ $("#" + currentId).bootstrapTable('insertRow', {
+ index: count + 1,
+ row: row
+ });
+ }
+};
+
+// 动态加载css文件
+function loadCss(file, headElem) {
+ var link = document.createElement('link');
+ link.href = file;
+ link.rel = 'stylesheet';
+ link.type = 'text/css';
+ if (headElem) headElem.appendChild(link);
+ else document.getElementsByTagName('head')[0].appendChild(link);
+}
+
+// 动态加载js文件
+function loadJs(file, headElem) {
+ var script = document.createElement('script');
+ script.src = file;
+ script.type = 'text/javascript';
+ if (headElem) headElem.appendChild(script);
+ else document.getElementsByTagName('head')[0].appendChild(script);
+}
+
+/** 设置全局ajax处理 */
+$.ajaxSetup({
+ complete: function(XMLHttpRequest, textStatus) {
+ if (textStatus == 'timeout') {
+ $.modal.alertWarning("服务器超时,请稍后再试!");
+ $.modal.enable();
+ $.modal.closeLoading();
+ } else if (textStatus == "parsererror" || textStatus == "error") {
+ $.modal.alertWarning("服务器错误,请联系管理员!");
+ $.modal.enable();
+ $.modal.closeLoading();
+ }
+ }
+});