/* *Author:jxx *Contact:283591387@qq.com *Date:2018-07-01 */ /*************jqTree***************/ (function ($) { function hasChilde(args, menuId, parentId) { for (var i = 0; i < args.length; i++) { if (args[i].parentId == menuId) { return 1; } } return 0; } function toggleIconClass() { var nodeData = $.data(this[0], 'nodeData'); if (nodeData.parentId == 0 && !treeRoots.rootIcon) return; var toggleData = { open: '', colse: '' }; if (treeRoots.rootIcon) { toggleData.open = treeRoots.rootIcon.open; toggleData.close = treeRoots.rootIcon.close; } else { toggleData.open = nodeData.openClass; toggleData.close = nodeData.closeClass; } $('b:eq(0)', this).removeClass( nodeData.open ? toggleData.open : toggleData.close ).addClass(nodeData.open ? toggleData.close : toggleData.open); nodeData.open = !nodeData.open; } function loadChilde(obj, menuId) { menuId = menuId || 0; var ul; var nodeData = $.data(obj[0], 'nodeData'); if (nodeData) { //节点选中前事件 if (!obj.jqTree('onSelect', nodeData)) { return; } if (nodeData.haschild == 0) { return; } if (nodeData.loaded == 1) { toggleIconClass.call(obj); obj.next().slideToggle(300); return; } nodeData.loaded = 1; toggleIconClass.call(obj); } var rootData = treeRoots.rootData; $.each(rootData, function () { if (this.parentId != menuId) { return; } this.haschild = hasChilde(rootData, this.id); this.loaded = 0; this.open = false; this.openClass = ' icon-minus-sign'; this.closeClass = 'icon-plus-sign-alt'; var li = $('
  • '); var currentMenuId = this.id; var $element_a = $('
    '); if (treeRoots.rootIcon && this.haschild) { this.icon = treeRoots.rootIcon.close; } if (!this.icon) { this.icon = ' icon-copy'; } if (!this.haschild && menuId != 0) { this.icon = this.icon + ' child-margin '; } if (menuId > 0 && !this.haschild) { $element_a.addClass("tree-not-child "); } $element_a.find("span").append('   ' + this.name + ''); var selectData = this; $.data($element_a[0], 'nodeData', selectData); $element_a.click(function () { if (treeRoots.selectData) { var selectNodeData = $.data(treeRoots.selectData[0], 'nodeData');//.parentId; if (selectNodeData.id == 0 && !selectNodeData.icon) { treeDefaultOptions.rootIcon && $(' > span > b:eq(0)', treeRoots.selectData[0]).removeClass(treeRoots.open).addClass(treeRoots.close); } treeRoots.selectData.removeClass('active-bg'); } $element_a.addClass('active-bg'); treeRoots.selectData = $element_a; loadChilde($(this), currentMenuId); }); li.append($element_a); if (menuId == 0) { obj.append(li); } else { if (!ul) { ul = $(''); } ul.append(li); } }) if (menuId != 0) { obj.parent('li').append(ul); ul.slideToggle(300); } else { obj.addClass('tree-list'); } return obj; } var treeDefaultOptions = { data: [], rootIcon: { open: 'icon-folder-open', close: 'icon-folder-close' } }, treeRoots = {}; //数据格式{ // data: [{ "id": 4783, "parentId": 4648, "name": "测试", "OrderNo": 132131, icon: '' }] // rootIcon:{ open: 'icon-folder-open',close:'icon-folder-close'} //所有节点默认使用rootIcon图标,若不想使用此图标请将rootIcon设置为null // }; $.fn.jqTree = function (args, data) { if (typeof args == 'string') { if (typeof data == 'object') { return $.fn.jqTree.methods[args](this, data); } if (data) { $.fn.jqTree.methods[args] = data; } else { return $.fn.jqTree.methods[args](); } return; } this.addClass('jqTree'); args = $.extend({}, treeDefaultOptions, args); treeRoots.rootData = args.data; treeRoots.rootIcon = args.rootIcon; return loadChilde(this, 0); } $.fn.jqTree.methods = { getData: function () { return treeRoots.rootData; }, onSelectBefore: function (obj, node) { // alert('这里是选中前事件,选中的节点绑定的对象' + JSON.stringify(node)); return true; }, onSelect: function (obj, node) { return true; // alert('选中的节点事件绑定的对象' + JSON.stringify(node)); }, onSelectAfter: function (obj, node) { return true; //alert('节点选中后事件' + JSON.stringify(node)); }, onSelectParentBefore: function (obj, node) {//父节点点击事件 //alert('父节点选中事件'); return true; }, getSelectData: function () { if (!treeRoots.selectData) { return []; } return [$.data(treeRoots.selectData[0], 'nodeData')]; } } })(jQuery); /*************jqTabs***************/ (function ($) { function getIndex(par) { if (typeof this != 'object') { return -1; } var parString = typeof par == 'object' ? par.title : par; var parIndex = -1; $.each(this, function (i) { if (this.title == parString) { parIndex = i; return false; } }); return parIndex; } ////args格式: //[{ // title: nodeData.name,//tabs选项卡名 // show: true,//如果已经存在此项,是否显示,默认不显示 // text:'tabs内容' //}]; $.fn.extend({ jqTabs: function (args, data) { if (typeof args == "string") { return $.fn.jqTabs.methods[args].call(this, data); } var tabsCalss = { iconRemove: 'icon-remove-sign', tabAction: 'tab-nav-action' }; var _init; if (!args) { _init = true; args = [{ title: '首页', text: '这里是首页内容' }]; } if (typeof defaultData == 'string') { return; } var tabsData = $.data(this, 'tabs'), containsPar = false; if (tabsData && args.length == 1 && getIndex.call(tabsData, args[0]) != -1) { if (args[0].show) { $('.tabs-ul > li', this).each(function () { if ($(this).text() == args[0].title) { $(this).click(); return false; } }); } return; } if (containsPar) { return; } tabsData = tabsData || []; var $this = $(this), defaultElement = { titles: null, tabsBody: null, ul: null, }; var tabsElement = $.data(this, 'element'); if (typeof cache == "boolean" && !cache) { $.data(this, 'tabs', null); $.data(this, 'element', null); $(this).text(''); tabsElement = []; } if (!tabsElement) { $this.addClass('jqTabs'); tabsElement = $.extend({}, defaultElement); tabsElement.titles = $('
    '); tabsElement.ul = $(''); tabsElement.titles.append(tabsElement.ul); $this.append(tabsElement.titles); tabsElement.tabsBody = $('
    '); $this.append(tabsElement.tabsBody); } var style = ['style="display:none;"', '']; var _index = tabsData.length; var tabsAdd = _index > 0 || false; if (tabsData.length > 0) { tabsElement.ul.find('li').removeClass(tabsCalss.tabAction); } $.each(args, function (j) { var $tabs_liItems = $('
  • ' + this.title + '
  • '); var $tabs_remove; if (!this.hasOwnProperty('showRemove')) { $tabs_remove = $(''); $tabs_liItems.append($tabs_remove); } tabsElement.ul.append($tabs_liItems); var bodyDiv = $('
    '); bodyDiv.append(this.text); tabsElement.tabsBody.append(bodyDiv); $tabs_liItems.click(function () { $(this).addClass(tabsCalss.tabAction); $(this).siblings('li').removeClass(tabsCalss.tabAction); $(' > div', tabsElement.tabsBody).hide(); bodyDiv.show(); }); var options = this; if ($tabs_remove) { $tabs_remove.click(function () { var parIndex = getIndex.call(tabsData, options); if (parIndex != -1) { tabsData.splice(parIndex, 1); } $tabs_liItems.remove(); bodyDiv.remove(); $('li:last', tabsElement.ul).addClass(tabsCalss.tabAction).siblings().removeClass(tabsCalss.tabAction); $(' > div:last', tabsElement.tabsBody).show().siblings().hide(); }); } tabsData.push(this); _index++; }); $.data(this, 'tabs', tabsData); $.data(this, 'element', tabsElement); if (tabsAdd) { $(' > div', tabsElement.tabsBody).hide(); $(' > div:last', tabsElement.tabsBody).show(); $('li:last', tabsElement.titles).addClass(tabsCalss.tabAction); } if (_init) { this.jqTabs("init"); } return this; } }); $.fn.jqTabs.methods = { init: function () { $(".tabs-body", this).height(this.height() - $(".title-nav", this).height()); }, getIndex: function () {//获取选中项的序号 return $('li.tab-nav-action', this).index(); }, getBody: function (data) {//获取选中项的body内容 if (typeof data == 'string') { return $('.tabs-body > div:eq(' + this.jqTabs('getIndex') + ')').find(data); } return $('.tabs-body > div:eq(' + this.jqTabs('getIndex') + ')'); }, setSelect: function (index) { $('.tabs-ul li.tab-nav:eq(' + index + ')', this).click(); } } })(jQuery); /**********************jqWindow***********************/ (function ($) { $.fn.jqWindowDefault = { title: '消息提示', titleIcon: 'icon-info-sign', //buttons(footer)按钮格式[{text: '关闭',icon: 'btn btn-info icon-minus', handler: function (_evenWin, winHtml) { winHtml.hide();}}] buttons: null, edit: null,//系统编辑 show: true, width: '350px',//默认window宽度 height: '220px',//默认window高度 //设定window显示位置,若要显示到右下角,请设置 {top: 'auto',left: 'auto',right: 0, bottom: 0} top: 0,//指定window顶部距离 left: 0,//指定window左边距离 right: 0, bottom: 0, zIndex: 200, footer: true, showFooter: true,//是否显示底部button里 text: null,//window文本 mask: true,//是否显示遮罩 bodyClass: '',//body样式 windowClass: '',//整个window样式 headStyle: 'background:#dd470d',//'background:linear-gradient(#ff6060,#ce1e0c)',//head样式 layOutBg: 'rgba(0, 0, 0, 0.15)',//默认弹出框后的遮罩层 cache: true,//关闭后是否清空内容 shade: true,//显示最外层的遮罩效果 isMessage: false }; var jqWindObjects = { alert: null, message: null, window: null }; $.alert = function (options, color) { options = typeof options == 'string' ? { text: options } : options; if (color) { color = "color:" + color + ";"; } options.text = '
    ' + options.text + '
    '; options = $.extend({}, { mask: false, layOutBg: '', shade: false, headStyle: 'background:#c11c10;', showFooter: true, zIndex: 99999 }, options); if (options.windowClass == 'animated slideInDown') { options.shade = false; } if (options.isMessage) { //jqWindObjects.message = jqWindObjects.message // || $('
    ').appendTo($('body')); //return jqWindObjects.message.jqWindow(options); return $('
    ').appendTo($('body')).jqWindow(options); } // options.showFooter = false; jqWindObjects.alert = jqWindObjects.alert || $('
    ').appendTo($('body')); return jqWindObjects.alert.jqWindow(options); } $.message = function (options, color) { options = typeof options == 'string' ? { text: options } : options; options = $.extend({}, { mask: false, isMessage: true, showFooter: false, headStyle: 'padding: 4px;background: linear-gradient(#e26363,#ce1e0c);height:25px;', width: '280px', height: '100px', zIndex: 99999, windowClass: 'animated slideInDown' }, options); return $.alert(options, color); } var jqWindowConst = { open: 'open', close: 'close' } $.jqWindow = function (options, _data) { jqWindObjects.window = jqWindObjects.window || $('
    ').appendTo($('body')); jqWindObjects.window.jqWindow(options, _data); return jqWindObjects.window; } $.fn.jqWindow = function (options, _data) { if (typeof options == "string") { return $.fn.jqWindow.methods[options].call(this, _data); } options = $.extend({}, $.fn.jqWindowDefault, { showFooter: true }, options || {}); options.buttons = options.buttons || []; options.showFooter && options.buttons.push({ text: '关闭', icon: 'btn btn-info icon-remove-sign', handler: function (_windowLayout, options) { if (options && !options.cache) { $(" .jqWindow > .content", _windowLayout).text(''); } _windowLayout.jqWindow(jqWindowConst.close); } }); var newLayer = false; if (!this.hasClass('jqLayer')) { newLayer = true; this.addClass('jqLayer alert').appendTo($('body')); } if (options.windowClass) { this.addClass(options.windowClass); } var $layer = this; if (!newLayer && ($layer.is(":hidden") || $.data(this, 'data'))) { $layer.jqWindow('resize', options); $layer.jqWindow(jqWindowConst.open); return $layer; } $layer.addClass(options.shade ? 'shade' : 'default'); $layer.css({ 'z-index': options.zIndex }); //设置弹出的遮罩层 $layer.css('background-color', options.layOutBg); var $jqWindow = $('
    ') .jqWindow('setWindowCss', options); var $head = $('
    '); $head.append(' ' + options.title + ' ') .append(''); var $content = $('
    ').html(options.text); var $footer; if (options.showFooter) { $footer = $(''); } $head.find('.icon-remove').bind('click', function () { $layer.jqWindow(jqWindowConst.close, options); }); $layer.jqWindow('createFooter', { footer: $footer, options: options }); $layer.append($jqWindow.append($head).append($content) .append($footer)) .jqWindow('resize', options); $layer.jqWindow('setBoxTimeOut'); // _head.jqDrag($jqWindow); return $layer; }; $.fn.jqWindow.methods = { setBoxTimeOut: function () { if (!$.data(this, 'data').isMessage) { return; } var $_message = this; window.setTimeout(function () { $_message.fadeOut(1000); $_message.remove(); }, 4000) return; }, open: function () { this.show(); this.jqWindow('setBoxTimeOut'); }, close: function () { this.hide(); }, setCss: function (options) { return this.jqWindow('setWindowCss', options); }, createFooter: function (args) { var $layer = this; var options = args.options; var $footer = args.footer; options.footer && options.showFooter && options.buttons.map(function (data) { var btnElement = $(''); data.handler && btnElement.bind('click', function () { data.handler($layer, options); }); $footer.append(btnElement); }); }, setWindowCss: function (options) { var prevOptions = $.data(this, 'data'); if (prevOptions) { var sumPrevVal = prevOptions.width + prevOptions.height + prevOptions.top + prevOptions.left + prevOptions.right + prevOptions.bottom; options = $.extend({}, $.fn.jqWindowDefault, options); var sumOptionsVal = options.width + options.height + options.top + options.left + options.right + options.bottom; if (prevOptions == options) { return this; } } $.data(this, options); if (!options.shade) { return this; } return this.css({ top: options.top, left: options.left, right: options.right, bottom: options.bottom }); }, resize: function (options) { if (~~options.width) { options.width == options.width + 'px'; options.height == options.height + 'px'; } var window_element = $(".jqWindow", this).jqWindow('setCss', options); var lay_data = $.data(this, 'data'); var layer_element = this; if (lay_data && lay_data.text != options.text) { $('.content', window_element).html(options.text); } $(' > .head > span:eq(0)', window_element).text(options.title); $.data(this, 'data', options); var outerWidth, outerHeight; //重置footer按钮 // && JSON.stringify(lay_data.buttons) != JSON.stringify(options.buttons) if (lay_data && (options.showFooter || lay_data.showFooter)) { var $footer = $('.footer', this); $footer.empty(); this.jqWindow('createFooter', { footer: $footer, options: options }); } var width = 0, height = 0; if (!options.shade) { width = height = '100%'; layer_element.css({ 'width': options.width, 'height': options.height }); } else { width = options.width; height = options.height } if (!options.isMessage) { outerWidth = ($(window).width() - layer_element.outerWidth()) / 2; outerHeight = ($(window).height() - layer_element.outerHeight() - 30) / 2 } else { outerWidth = 'auto'; outerHeight = 'auto'; } layer_element.css({ position: "fixed", left: outerWidth, top: options.mask ? 0 : outerHeight }); window_element.css({ width: width, height: height }); var containerHeigth = window_element.height(); var headHeigth = $(".head", window_element).height(); var footerHeigth = $(".footer", window_element).height(); $(".content", window_element).height(containerHeigth - headHeigth - footerHeigth - 40); // $(".content", _jqWin).height(containerHeigth); } } })(jQuery); /************jqSelect**********/ (function ($) { $.fn.selectDefault = { valueField: 'ID',//数据key/val字段(实际字段) textField: 'Name', onSelect: null,//选中事件 id: null,//input或button标签的ID all: false,//是否显示‘全部’选项 multiple: false,//是否为多选 // style:'background: rgb(255, 106, 0)', style: 'color: #db0909;',//自定义ul选中样式{ "background": "green" }; fixClass: null,//固定样式 data: null//[{ ID: "key", Name: "value", icon: " icon-caret-down",selected:true }]//select是否默认选中 }; $.fn.jqSelect = function (options, data) { if (typeof options == 'string') { return $.fn.jqSelect.methods[options].call(this, data); } options = $.extend({}, $.fn.selectDefault, options || {}); if (!options.data) { return this; } //显示全部选项 if (options.all) { //$.extend合并时,若有引用对象,合并后实际上还是使用的同一个地址的对象 options.data = options.data.slice(); options.data.pushDefault(options.valueField, options.textField); } var active = 'active'; var isDefalut = false; return this.each(function () { var $ul_element = $(this); $ul_element.addClass('jq-select'); $.each(options.data, function (index) { var text = '' + this[options.textField] + ''; var icon = ''; if (this.icon) { icon = '' } var $li_element = $('
  • ' + icon + text + '
  • '); //设置默认选中项 if (this.selected) { isDefalut = true; $li_element.addClass(active); } var itemData = this; $li_element.bind('click', function () { //如果是多选并且显示全部选项,选中的不是第一个,移除全部样式 if (options.all && index != 0) { $ul_element.find('li:eq(0)').removeClass(active); } //如果已选中样式,则移除样式 if ($(this).hasClass(active)) { $(this).removeClass(active); } else if (!options.multiple || (options.all && index == 0)) {//单选或点击的全部 $(this).addClass(active).siblings().removeClass(active); } else { //多选 $(this).addClass(active); } options.onSelect && !options.onSelect.call(this, itemData, $ul_element); }); $.data($li_element[0], 'data', this); $ul_element.append($li_element); }); $.data(this, 'data', options); if (options.all && !isDefalut) { $ul_element.find('li:eq(0)').addClass(active); } }); } $.fn.jqSelect.methods = { getSelectData: function (field) { //如要是有默认全部选项,并且选中的全部,则获取所有数据 var element_data = $.map($(' > li[class=active]', this), function (element_li) { return $.data(element_li, 'data'); }); //移除全部选项 var multiple = $.data(this[0], 'data').multiple; if (!field) { if (multiple) { return element_data; } //单选的只返回第一个选中项 return element_data && element_data.length > 0 ? element_data[0] : ''; } var reslut = $.map(element_data, function (data) { return data[field]; }) if (multiple) { return reslut || []; } return reslut && reslut.length > 0 ? [reslut[0]] : []; }, getValue: function () { return this.jqSelect('getValueArray').join(','); }, getText: function () { return this.jqSelect('getTextArray').join(','); }, getValueArray: function () { return (this.jqSelect('getSelectData', $.data(this[0], 'data').valueField) || []).filterSelect(); }, getTextArray: function () { return (this.jqSelect('getSelectData', $.data(this[0], 'data').textField) || []).filterSelect(); }, getData: function () { return $.data(this[0], 'data'); }, reset: function () { $(' > li', this).removeClass('active'); }, setValue: function (val) { $(' > li', this).removeClass('active'); if (!val && val != "0") { return; } var valField = $.data(this[0], 'data').valueField; $.map($(' > li', this), function (element_li) { if ($.data(element_li, 'data')[valField] == val) { $(element_li).addClass("active"); return false; }; }); } }; })(jQuery); /******************jqDrop*************************/ //搜索 //
    //
    (function ($) { $.fn.jqDropDefault = { valueField: 'ID',//数据key/val字段(实际字段) textField: 'Name', all: false,//是否显示‘全部’选项 multiple: false,//是否为多选, readonly: true,//只读 maxHeight: '300px',//下拉框最大高度 search: false,//是否启搜索功能 //当下拉框为button时设置下拉框右边的图标 //btn: { icon: null, text:''}, dropIcon: null,//下拉框右边的图标 onSelect: null,//选中事件 data: null,//[{ ID: "key", Name: "value", icon: " icon-caret-down",selected:true,onSelect:null }]//select是否默认选中 handler: null //下拉框选中事件 }; $.fn.jqDrop = function (options, data) { if (typeof options == 'string') { return $.fn.jqDropMethods[options].call(this, data); } options = $.extend({}, $.fn.jqDropDefault, options); if (!options.data || typeof options.data != 'object' || options.data.length == 0) { var DD_Data = {}; DD_Data[options.valueField] = ''; DD_Data[options.textField] = ''; options.data = [DD_Data]; } if (typeof options.data[0] != 'object') { options.data = $.map(options.data, function (d) { var dropItem = {}; dropItem[options.valueField] = d; dropItem[options.textField] = d; return dropItem; }); } return this.each(function () { var $drop_this = $(this); $drop_this[0].select = []; if (options.multiple) { options.readonly = true; } $drop_this.addClass('jqDrop drop-group'); var readonly = options.readonly ? 'readonly="readonly"' : ''; var $element_input; var $element_span = $('');; if (options.btn) { $element_input = $(''); $element_span.find('b').addClass(options.btn.icon); } else { $element_input = $(''); $element_span.find('b').addClass(options.dropIcon ? options.dropIcon : 'icon-caret-down'); } $drop_this.append($element_input).append($element_span); if (options.all) { //$.extend合并时,若有引用对象,合并后实际上还是使用的同一个地址的对象 options.data = options.data.slice(); options.data.pushDefault(options.valueField, options.textField); } //已经选中的项 var selected = $drop_this[0].select; var $element_dropGroup = $(''); var $element_ul = $('').css("max-height", options.maxHeight);; $.each(options.data, function () { var item = this, text = item[options.textField], value = item[options.valueField], icon = ''; if (this.icon) { icon = ''; } var $element_li = $('
  • ' + icon + text + '
  • '); $element_li.click(function () { //options.btn按钮组下拉框不需要执行后面的选中项 if (options.btn) { item.handler && item.handler(); return false; } if (item.onSelect && !item.onSelect()) { return false; } dropEvenBind.click.call(this, { textField: options.textField, valueField: options.valueField, options: options, input: $element_input, item: item, selected: selected, dropGroup: $element_dropGroup }); options.onSelect && options.onSelect(this, item[options.valueField], item[options.textField], item, options); }); $element_ul.append($element_li); }); var $search_input; if (options.search) { $search_input = $(''); $element_ul.addClass('ul-search'); $element_dropGroup.append($search_input).append($element_ul) .append(''); $search_input.keyup(function () { dropEvenBind.searchKeyup.call(this, $element_ul); }); } $element_dropGroup.append($element_ul); $drop_this.append($element_dropGroup); $element_input.click(function () { dropEvenBind.showDrop($element_dropGroup, $search_input); }) $element_span.click(function () { dropEvenBind.showDrop($element_dropGroup, $search_input); }); $drop_this.mouseleave(function () { $element_dropGroup.hide(); if (!options.search) { return; } $('li', $element_dropGroup).show(); $search_input.val(''); }); $.data(this, 'data', options); }); } var dropEvenBind = { hideDrop: function () { }, showDrop: function ($element_dropGroup, $search_input) { $element_dropGroup.show(); $search_input && $search_input.focus(); }, searchKeyup: function ($element_ul) { var $this = $(this); var searchVal = $(this).val().toLocaleLowerCase(); if (searchVal == '') { $('li', $element_ul).show(); return; } $('li', $element_ul).each(function () { $(this)[$(this).text().toLocaleLowerCase().indexOf(searchVal) != -1 ? 'show' : 'hide'](); }); }, click: function (args) { var text = args.item[args.textField]; //单选直接赋值 if (text == '全部') { args.selected.splice(0); args.input.val(''); } for (var i = 0; i < args.selected.length; i++) { if (args.selected[i][args.textField] == '全部') { args.selected.splice(i, 1); break; } } //$.each(args.select,function()); //多选,如果当前选中的是全部或已经选择过的是全部直接清空数据 if ((args.selected.length == 1 && args.selected[0][args.valueField] == -1) || args.item[args.valueField] == -1) { args.selected.splice(0, args.selected.length) } //单选或第一次选中值,直接返回 var multiple = !args.options.multiple; if (multiple || args.selected.length == 0) { args.input.val(text); //单选,如果有选中值,直接替换第一个的值 if (multiple && args.selected.length > 0) { args.selected[0] = args.item; } else { args.selected.push(args.item); } args.dropGroup.hide(); return; } var selectOptions = { text: [], values: [], contains: false }; var count = args.selected.length; var index = 0; //多选,如果已经选中过,删除已选的项,没有选中的添加 while (count > 0) { if (args.selected[index][args.valueField] == args.item[args.valueField]) { args.selected.splice(index, 1); selectOptions.contains = true; index = index && index - 1; } else { selectOptions.text.push(args.selected[index][args.textField]); index++; } count--; } if (!selectOptions.contains) { args.selected.push(args.item); selectOptions.text.push(text); } args.input.val(selectOptions.text.join(',')); } } $.fn.jqDropMethods = { getOptions: function () { return $.data(this[0], 'data'); }, getData: function () { return this.jqDrop('getOptions').data; }, getSelected: function () { return this[0].select; }, getValue: function () { return this.jqDrop('getValueArray').join(','); }, getText: function () { return this.jqDrop('getTextArray').join(','); }, getValueArray: function () { return (this.jqDrop('getResult', 'valueField') || []).filterSelect(); }, getTextArray: function () { return (this.jqDrop('getResult', 'textField') || []).filterSelect(); }, getResult: function (property) { var selected = this.jqDrop('getSelected'); if (!selected) { return ''; } var field = this.jqDrop('getOptions')[property]; if (typeof selected == 'object' && selected.length > 0) { return $.map(selected, function (d) { return d[field]; }); } return selected[field]; }, setValue: function (val) { var dropObject = this[0]; val == "-1" ? dropObject.select.splice() : dropObject.select.splice(0, this[0].select.length); if (val || val == '0') { var valArr, dropText = [], dropOptions = this.jqDrop('getOptions'); valArr = dropOptions.multiple ? val.split(',') : [val + '']; $.each(dropOptions.data, function () { if (valArr.indexOf(this[dropOptions.valueField] + '') != -1) { dropObject.select.push(this); dropText.push(this[dropOptions.textField] + ''); } }); //如果设置的值没有在下拉绑定的值中,直接设置为空; val = dropText.join(','); } this.find('input:eq(0)').val(val); } }; })(jQuery); (function ($) { //添加全部项 Array.prototype.pushDefault = function (valueField, textField) { if (!valueField || !textField) { return []; } var defaultItem = {}; defaultItem[valueField] = -1; defaultItem[textField] = '全部'; this.splice(0, 0, defaultItem); } Array.prototype.filterSelect = function () { if (this.length == 0 || this[0] == '-1' || this[0] == '全部') { return []; } return this; }; })(jQuery); (function ($) { $.fn.layOutFileDefault = { data: [], handler: { fileChange: function () { }, browse: function () { } } }; $.fn.layOutFile = function (options, data) { if (typeof options == 'string') { return $.fn.layOutFile.methods[options].call(this, data); } var options = $.extend({}, $.fn.layOutFileDefault, options); return this.each(function () { var $this_file = $(this).addClass('select-upload-group'), $btn_group = $('
    '), $browseLibrary = $(''), $ul_items = $('
    '); $btn_group.append($browseLibrary); $this_file.append($btn_group).append($ul_items); $this_file.append($ul_items).append($btn_group); $browseLibrary.click(function () { options.browse.call(this, $this_file); }); if (options.data && options.data.length > 0) { $this_file.layOutFile('createFile', options.data); } $.data($this_file[0], 'data', options); return $this_file; }); }; $.fn.layOutFile.methods = { fileOptions: { append: false, data: [], saveImage: false, fileType: 'image', foots: null,//[{ text: '', handler: function () { }}], addFileUrls: '/Sys_ImageLibrary/AddImage' }, createImage: function ($file_items, _options) { var fileData = _options.data; var $this_file = this; for (var i = 0; i < fileData.length; i++) { var imageSrc = fileData[i]; if (!imageSrc) { continue; } if (imageSrc.indexOf('bcebos.com') != -1 && imageSrc.indexOf('@w_') == -1) { imageSrc += '@w_500'; } var $file = $('
  • '); $file_items.append($file); var $footerGroup = $(''); $file[0].src = imageSrc; if (_options.foots) { $.fn.layOutFile.methods.createFoot($footerGroup, imageSrc, $this_file, _options); } $file.append($footerGroup); $file_items.append($file); } }, createVideo: function ($file_items, _options) { var fileData = typeof _options.data == 'string' ? JSON.parse(_options.data) : _options.data; var $this_file = this; for (var i = 0; i < fileData.length; i++) { var fileInfo = typeof fileData[i] == 'string' ? { Id: 0, Cover: '', ImageUrls: fileData[i] } : fileData[i]; var $videos = $('
  • '); $.data($videos[0], 'data', fileInfo); if (_options.foots) { $.fn.layOutFile.methods.createFoot($videos.find('.video-footer'), fileData[i], $this_file, _options); } $file_items.append($videos); } }, createFoot: function ($footerGroup, _scr, $this_file,_options) { var _fileEventData = { fileType: $.fn.layOutFile.methods.fileOptions.fileType }; _options.foots && $.each(_options.foots, function () { var $footObj = $(this.text), handler = this.handler; $footObj.src = _scr; $footerGroup.append($footObj); handler && $footObj.click(function () { _fileEventData.src = $footObj.src; handler.call(this, $this_file, _fileEventData); }); }); }, createFile: function (options) { var _options = $.extend({}, $.fn.layOutFile.methods.fileOptions, options); var $this_file = $(this), $file_items = $('.ul-item-group', $this_file); if (_options.append && $file_items.length == 0) { if (_options.fileType == "image") { $this_file.append('
    \ \
    '); } else { $this_file.append('
    \ \
    '); } $file_items = $('.ul-item-group', $this_file); } if (_options.saveImage && _options.data) { $.post(_options.addFileUrls, { imageUrls: _options.data.join(','), table: gridParameters && gridParameters.queryParams.TableName }, function () { }); } //不是追加,直接清空数据 !_options.append && $file_items.text(''); var fileData = _options.data; if (!fileData || fileData.length == 0) return; if (_options.fileType == "image") { $.fn.layOutFile.methods.createImage.call($this_file,$file_items, _options); return; } $.fn.layOutFile.methods.createVideo.call($this_file,$file_items, _options); } } })(jQuery); var helper = { active: true, appnedFilter: function () { this.filterBox = $(''); $("body").append(this.filterBox); }, filterBox: null, ajax: function (parameters) { var _options = $.extend({ type: "type", data: "", success: function (data, textStatus) { helper.filterBox.hide(); fun(data, textStatus); }, error: function (XMLHttpRequest, textStatus, errorThrown) { helper.error(XMLHttpRequest); } }, parameters); $.ajax(_options); }, post: function (url, data, fun, async) { this.submit(url, data, fun, 'post', async); }, get: function (url, data, fun, async) { this.submit(url, data, fun, 'get', async); }, error: function (XMLHttpRequest) { helper.filterBox.hide(); try { $.message(JSON.parse(XMLHttpRequest.responseText).Desc); } catch (e) { if (XMLHttpRequest.responseText) { $.message(XMLHttpRequest.responseText); return; } if (XMLHttpRequest.status == 401) { $.message('登陆已超时,请刷新后重试!','red'); window.parent.location.href = '/'; return; } $.message(XMLHttpRequest.status==404?'未找服务器路径!':'服务器未响应,请刷新后重试!','red'); } }, submit: function (url, data, fun, type, async) { this.filterBox.show(); var sendOptions = { url: url, type: type, async: typeof async == 'boolean' ? async : true, data: data, success: function (data, textStatus) { helper.filterBox.hide(); fun(data, textStatus); }, error: function (XMLHttpRequest, textStatus, errorThrown) { helper.error(XMLHttpRequest); } }; $.ajax(sendOptions); } }; $(function () { helper.appnedFilter(); })