'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** * name: formSelects * 基于Layui Select多选 * version: 3.0.9.0607 * https://faysunshine.com/layui/template/formSelects-v3/formSelects-v3.js */ (function (layui, window, factory) { if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') { // 支持 CommonJS module.exports = factory(); } else if (typeof define === 'function' && define.amd) { // 支持 AMD define(factory); } else if (window.layui && layui.define) { //layui加载 layui.define(['jquery', 'form'], function (exports) { exports('formSelects', factory()); }); } else { window.formSelects = factory(); } })(layui, window, function () { //针对IE的一些处理 if (window.Map == undefined) { var _Map = function _Map() { this.value = {}; }; _Map.prototype.set = function (key, val) { this.value[key] = val; }; _Map.prototype.get = function (key) { return this.value[key]; }; _Map.prototype.has = function (key) { return this.value.hasOwnProperty(key); }; _Map.prototype.delete = function (key) { delete this.value[key]; }; window.Map = _Map; } var $ = layui.jquery || $, form = layui.form, select3 = { value: function value(name) { var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all'; var vals = arguments[2]; if (Array.isArray(type)) { vals = type; type = 'all'; } if (name && vals && Array.isArray(vals)) { var options = commons.data.confs.get(name); if (options) { var dl = commons.methods.getDiv(options).find('dl'); if (!options.repeat) { var map = {}, newVals = []; vals.forEach(function (val) { if (!map[val]) { newVals.push(val); map[val] = 1; } }); vals = newVals; } var on = options.on; options.on = null; commons.methods.removeAll(options); options.delete = false; vals.forEach(function (val) { dl.find('dd:not(.layui-disabled)[lay-value=\'' + val + '\']').click(); }); options.on = on; } return; } var arr = commons.data.values.get(name); if (!arr) { return vals; } if (type == 'val') { return arr.map(function (val) { return val.val; }); } if (type == 'valStr') { return arr.map(function (val) { return val.val; }).join(','); } if (type == 'name') { return arr.map(function (val) { return val.name; }); } if (type == 'nameStr') { return arr.map(function (val) { return val.name; }).join(','); } return arr; }, render: function render(options) { if (options) { if (commons.data.confs.get(options.name)) { options = commons.methods.cloneOptions(options, commons.data.confs.get(options.name)); commons.methods.init(options); } else { var dom = commons.methods.getDom(options, true); if (dom.length) { var hisOptions = commons.methods.cloneOptions(commons.methods.getOptions(dom), commons.data.DEFAULT_OPTIONS); options = commons.methods.cloneOptions(options, hisOptions); commons.methods.init(options); } } } else { commons.methods.autoInit(); } }, delete: function _delete(name, abs) { if (name && commons.data.confs.get(name)) { var dom = commons.methods.getDom({ name: name }); if (dom.parent().hasClass(commons.data.pclass)) { if (abs) { dom.removeAttr(commons.data.name); } dom.removeAttr('style'); dom.parent()[0].outerHTML = dom[0].outerHTML; } commons.data.confs.delete(name); for (var item in commons.data.temps) { commons.data.temps[item].delete(name); } commons.data.values.delete(name); } }, style: function style(name, colors) { if (name) { if (!colors) { commons.methods.loadCss(name, null); } else if (Array.isArray(colors)) { commons.methods.loadCss(name, colors); } else { var arr = [colors.labelBgColor, colors.labelColor, colors.labelIconBgColor, colors.labelIconColor, colors.labelLabelBorderColor, colors.thisBgColor, colors.thisColor]; commons.methods.loadCss(name, arr); } } } }, commons = { data: { name: 'xm-select', pclass: 'xm-select-parent', vclass: 'xm-select-validate', DEFAULT_OPTIONS: { name: null, //xm-select="xxx" type: 1, //显示模式, 1:layui-this, 2:checkbox, 3:icon icon: { class: 'layui-icon-ok', text: '' }, max: null, maxTips: null, init: null, //初始化的选择值, on: null, //select值发生变化 data: null }, DEFAULT_RENDER: { arr: null, name: 'name', val: 'val', selected: 'selected', disabled: 'disabled' }, confs: new Map(), temps: { dom: new Map(), div: new Map() }, resize: new Map(), values: new Map(), times: new Map() }, methods: { init: function init(options, clone) { if (!clone) { options = commons.methods.cloneOptions(options); } //原始dom添加一个filter var _ref = ['xm-' + options.name, commons.methods.getDom(options, true)], filter = _ref[0], dom = _ref[1]; if (dom.next().hasClass('layui-form-select')) { dom.next().remove(); } if (options.data && options.data.arr) { var os = $.extend({}, commons.data.DEFAULT_RENDER, options.data); var html = ''; for (var i in os.arr) { var db = os.arr[i]; if (db.arr && Array.isArray(db.arr)) { html += ''; for (var j in db.arr) { var gdb = db.arr[j]; html += ''; } html += ''; } else { html += ''; } } dom.html(html); } //判断dom中是否包含了空的option, 如果不包含, 添加 if (!dom.find('option[value=""]').length) { $('').insertBefore(dom.find('option:first')); } if (dom.parent().hasClass(commons.data.pclass)) { dom.parent().attr('lay-filter', filter).addClass('layui-form'); } else { dom.wrap('
'); } dom.attr('lay-filter', filter); options.type ? dom.attr('xm-select-type', options.type) : dom.removeAttr('xm-select-type'); options.max ? dom.attr('xm-select-max', options.max) : dom.removeAttr('xm-select-max'); commons.methods.formRender('select', filter, true); //1.去掉layui的原始渲染 commons.methods.getDom(options).next().addClass(commons.data.vclass); //2. commons.data.confs.set(options.name, options); for (var item in commons.data.temps) { commons.data.temps[item].delete(options.name); } commons.data.values.delete(options.name); //3.渲染input commons.methods.overrideInput(options); commons.methods.typeInit(options, filter); //4.初始化init var vals = commons.methods.getInitVal(options); vals.forEach(function (val) { commons.methods.valHandler(options, val, true); }); commons.methods.showPlaceholder(options); commons.methods.retop(options); commons.methods.removeDefaultClass(options); commons.methods.on(options, filter); }, addLabel: function addLabel(options, vals) { var ipt = commons.methods.getIpt(options); ipt.find('.xm-select-empty').remove(); vals.forEach(function (val) { var tips = 'fsw="' + options.name + '"'; var _ref2 = [$('' + val.name + ''), $('')], $label = _ref2[0], $close = _ref2[1]; $label.append($close); ipt.append($label); }); }, delLabel: function delLabel(options, vals) { var ipt = commons.methods.getIpt(options); vals.forEach(function (val) { ipt.find('span[value=\'' + val.val + '\']:first').remove(); }); }, showPlaceholder: function showPlaceholder(options) { var vals = commons.methods.getValues(options); if (!vals.length) { var _ref3 = ['fsw="' + options.name + '"', commons.methods.getIpt(options)], tips = _ref3[0], ipt = _ref3[1]; if (!ipt.find('.xm-select-empty').length) { var _tips = options.tips ? options.tips : ipt.prev().attr('placeholder'); var cls = 'fsw="' + options.name + '"'; var span = $('' + _tips + ''); ipt.append(span); } } }, valHandler: function valHandler(options, val, isAdd, isShow) { var vals = commons.methods.getValues(options); var dd = commons.methods.getDiv(options).find('dl dd[lay-value=\'' + val.val + '\']'); if (isAdd) { if (!options.max || options.max && vals.length < options.max) { vals.push(val); commons.methods.addLabel(options, [val]); commons.methods.typeHandler(options, dd, isAdd); } else { commons.methods.maxTips(options, val); commons.methods.typeHandler(options, dd, false); } } else { if (!dd.hasClass('layui-disabled')) { commons.methods.remove(vals, val); commons.methods.delLabel(options, [val]); if (commons.methods.indexOf(vals, val) == -1) { commons.methods.typeHandler(options, dd, isAdd); } } } commons.methods.retop(options); }, typeInit: function typeInit(options, filter) { var div = commons.methods.getDiv(options); if (options.type == 2) { //checkbox div.find('dl dd:not(.layui-select-tips)').each(function (index, target) { var $target = $(target); var text = $target.text(); var dis = $target.hasClass('layui-disabled') ? 'disabled' : ''; $target.text(''); $target.append('\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t'); }); form.render('checkbox', filter); div.find('dl dd .layui-form-checkbox').css('margin-top', '1px'); } else { div.find('dl dd:not(.layui-select-tips)').each(function (index, target) { $(target).css({ margin: '1px 0' }); }); } }, typeHandler: function typeHandler(options, dd, isAdd) { if (options.type == 3) { //对勾 if (isAdd) { var span = $('\n\t\t\t\t\t\t\t\t' + options.icon.text + '\t\n\t\t\t\t\t\t\t'); dd.append(span); } else { dd.find('span').remove(); } } else if (options.type == 2) { //checkbox if (isAdd) { dd.find('.layui-form-checkbox').addClass('layui-form-checked'); } else { dd.find('.layui-form-checkbox').removeClass('layui-form-checked'); } } isAdd ? dd.addClass(commons.data.name + '-this') : dd.removeClass(commons.data.name + '-this'); dd.removeClass('layui-this'); commons.methods.showPlaceholder(options); }, on: function on(options, filter) { form.on('select(' + filter + ')', function (data) { if (options.radio) { commons.methods.getDiv(options).find('dl').removeClass('xm-select-show').addClass('xm-select-hidn').css('display', 'none'); var selected = void 0, val = void 0; if (data.value) { val = { name: commons.methods.getDom(options).find('option[value=\'' + data.value + '\']').text(), val: data.value }; selected = commons.methods.indexOf(commons.methods.getValues(options), val) == -1; if (selected) { var hisVal = select3.value(options.name)[0]; if (hisVal) { commons.methods.valHandler(options, hisVal, false, false); commons.methods.setValues(options, []); } } commons.methods.valHandler(options, val, selected, false); } else { selected = false; val = select3.value(options.name)[0]; if (val) { commons.methods.valHandler(options, val, selected, false); commons.methods.setValues(options, []); } } if (val && options.on && options.on instanceof Function) { options.on(data, select3.value(options.name), val, selected); } return; } if (commons.methods.getDiv(options).hasClass('layui-form-selectup') || commons.methods.getDiv(options).find('dl').css('top').indexOf('-') == 0) { setTimeout(function () { commons.methods.getDiv(options).addClass('layui-form-selectup'); }, 50); } if (options.repeat) { if (data.value) { var ipt = commons.methods.getIpt(options); if (options.delete) { var arr = select3.value(options.name); var _val = arr[commons.methods.indexOf(arr, data.value)]; if (_val) { commons.methods.valHandler(options, _val, false); ipt.parent().next().find('dd[lay-value=\'' + data.value + '\'] .layui-form-checkbox > i').html(''); if (options.on && options.on instanceof Function) { options.on(data, select3.value(options.name), _val, false); } } options.delete = false; return; } else { var vals = commons.methods.getValues(options); var _val2 = { name: commons.methods.getDom(options).find('option[value=\'' + data.value + '\']').text(), val: data.value }; commons.methods.valHandler(options, _val2, true); if (options.on && options.on instanceof Function) { options.on(data, select3.value(options.name), _val2, true); } } setTimeout(function () { commons.methods.getDiv(options).addClass('layui-form-selected').find('dl dd.layui-this').removeClass('layui-this'); }, 3); return; } } if (data.value) { var _val3 = { name: commons.methods.getDom(options).find('option[value=\'' + data.value + '\']').text(), val: data.value }; var _selected = commons.methods.indexOf(commons.methods.getValues(options), _val3) == -1; commons.methods.valHandler(options, _val3, _selected, true); if (options.on && options.on instanceof Function) { options.on(data, select3.value(options.name), _val3, _selected); } setTimeout(function () { commons.methods.getDiv(options).addClass('layui-form-selected').find('dl dd.layui-this').removeClass('layui-this'); }, 3); } else { if (commons.methods.getDom(options).attr('xm-select-search') == undefined) { commons.methods.removeAll(options); setTimeout(function () { commons.methods.getDiv(options).addClass('layui-form-selected'); }, 3); } } }); }, maxTips: function maxTips(options, val) { if (options.maxTips && options.maxTips instanceof Function) { options.maxTips(select3.value(options.name), val, options.max); return; } var ipt = commons.methods.getIpt(options); if (ipt.parents('.layui-form-item[pane]').length) { ipt = ipt.parents('.layui-form-item[pane]'); } ipt.css('border-color', 'red'); setTimeout(function () { ipt.css('border-color', '#e6e6e6'); }, 300); }, indexOf: function indexOf(arr, val) { for (var i = 0; i < arr.length; i++) { if (arr[i].val == val || arr[i].val == (val ? val.val : val) || arr[i] == val || JSON.stringify(arr[i]) == JSON.stringify(val)) { return i; } } return -1; }, remove: function remove(arr, val) { var index = commons.methods.indexOf(arr, val ? val.val : val); if (index > -1) { arr.splice(index, 1); return true; } return false; }, removeAll: function removeAll(options) { var div = commons.methods.getDiv(options); var vals = div.find('.xm-select > span'); vals.each(function (index, item) { options.delete = true; div.find('dl dd.xm-select-this:not(.layui-disabled)[lay-value=\'' + item.getAttribute('value') + '\']').click(); }); return vals.length; }, removeDefaultClass: function removeDefaultClass(options) { var _ref4 = [commons.methods.getDom(options), commons.methods.getDiv(options)], dom = _ref4[0], div = _ref4[1]; div.find('dl').addClass('xm-select-hidn'); div.find('dl dd.layui-this').removeClass('layui-this'); div.find('dl').append('
x
'); var text = options.radio ? '请选择' : '清空已选择' + (options.max ? '. \u5F53\u524D\u914D\u7F6E: \u6700\u591A\u9009\u62E9 ' + options.max + ' \u4E2A' : ''); var html = '' + text + ''; var that = div.find('dl dd.layui-select-tips'); if (dom.attr('xm-select-search') != undefined) { var icon = ''; html = '' + icon + ''; that.addClass('xm-select-dd-search'); that.off('click'); } commons.methods.handlerDataTable(dom, '38px'); that.html(html); }, handlerDataTable: function handlerDataTable(dom, height) { if (dom.length == undefined) { dom = $(dom); } if (dom.parents('div.layui-table-cell').length) { var index = dom.parents('tr').attr('data-index'); dom.parents('.layui-table-box').find('tbody tr[data-index=\'' + index + '\'] div.layui-table-cell').css({ height: height, lineHeight: height, overflow: 'unset' }); } }, overrideInput: function overrideInput(options) { var _ref5 = [commons.methods.getDiv(options), commons.methods.getDom(options)], _div = _ref5[0], _dom = _ref5[1]; var _ref6 = [_div.find('.layui-select-title input:first'), $('
')], $input = _ref6[0], $orinput = _ref6[1]; $orinput.insertAfter($input); if ($input.parents('.layui-form-pane').length && $input.parents('.layui-form-item[pane]').length) { $orinput.css('border', 'none'); } if (options.height) { $orinput.addClass('.xm-select-height').css('height', options.height); } if (_dom.attr('disabled') != undefined) { $orinput.append($('
').addClass('layui-disabled')); } }, retop: function retop(options) { var div = commons.methods.getIpt(options); if (div.length) { var dl = div.parent('.layui-select-title').next(); var up = dl.parent().hasClass('layui-form-selectup') || dl.css('top').indexOf('-') == 0; var time = commons.data.times.get(options.name); if (time) { if (Date.now() - time.time < 100 || options.delete) { up = time.up; options.delete = false; } else { time.up = up; } time.time = Date.now(); } else { commons.data.times.set(options.name, { time: Date.now(), up: up }); } if (up) { div.parent('.layui-select-title').next().css({ top: 'auto', bottom: div[0].offsetTop + div.height() + 14 + 'px' }); } else { div.parent('.layui-select-title').next().css({ top: div[0].offsetTop + div.height() + 14 + 'px', bottom: 'auto' }); } } }, getElementTop: function getElementTop(element) { var actualTop = element.offsetTop; var current = element.offsetParent; while (current !== null) { actualTop += current.offsetTop; current = current.offsetParent; } return actualTop; }, getDom: function getDom(options, isNew) { var _ref7 = [commons.data.temps.dom, options.name], _dom = _ref7[0], _name = _ref7[1]; if (isNew) { _dom.set(_name, $('select[' + commons.data.name + '=\'' + _name + '\']')); } if (!_dom.has(_name)) { _dom.set(_name, $('select[' + commons.data.name + '=\'' + _name + '\']')); } return _dom.get(_name); }, getDiv: function getDiv(options) { var _ref8 = [commons.data.temps.div, options.name], _div = _ref8[0], _name = _ref8[1]; if (!_div.has(_name)) { _div.set(_name, $('select[' + commons.data.name + '=\'' + _name + '\']').next()); } return _div.get(_name); }, getIpt: function getIpt(options) { return commons.methods.getDiv(options).find('div .' + commons.data.name); }, getInitVal: function getInitVal(options) { var _dom = commons.methods.getDom(options); var vals = options.init ? options.init : _dom.find('option[selected]').map(function (index, target) { return $(target).attr('value'); }).toArray(); var result = void 0; if (options.radio) { var one = vals.map(function (val) { var opt = _dom.find('option[value=\'' + val + '\']'); return { name: opt.attr('disabled') != undefined ? null : opt.text(), val: val + "" }; }).filter(function (val) { return val.name && val.val; })[0]; result = one ? [one] : []; } else { result = vals.map(function (val) { return { name: _dom.find('option[value=\'' + val + '\']').text(), val: val + "" }; }).filter(function (val) { return val.name && val.val; }); } return result; }, getValues: function getValues(options) { var _ref9 = [commons.data.values, options.name], _arr = _ref9[0], _name = _ref9[1]; if (!_arr.has(_name)) { _arr.set(_name, []); } return _arr.get(_name); }, setValues: function setValues(options, vals) { var _ref10 = [commons.data.values, options.name], _arr = _ref10[0], _name = _ref10[1]; _arr.set(_name, vals); }, getOptions: function getOptions(sel) { return { name: sel.attr('' + commons.data.name), type: sel.attr(commons.data.name + '-type'), max: sel.attr(commons.data.name + '-max'), icon: sel.attr(commons.data.name + '-icon'), tips: sel.attr(commons.data.name + '-placeholder'), height: sel.attr(commons.data.name + '-height'), radio: sel.attr(commons.data.name + '-radio') != undefined, repeat: sel.attr(commons.data.name + '-repeat') != undefined }; }, cloneOptions: function cloneOptions(options, hisOptions) { if (!hisOptions) { hisOptions = commons.data.DEFAULT_OPTIONS; } if (options.icon && typeof options.icon == 'string') { var icon = options.icon; if (icon.indexOf('layui') == 0) { options.icon = { class: icon, text: '' }; } else { options.icon = { class: '', text: icon }; } } else { var v = layui.v.split('.'); if (v[0] < 2 || v[1] <= 2) { options.icon = { class: '', text: hisOptions.icon.text }; } else { options.icon = { class: hisOptions.icon.class, text: '' }; } } return $.extend({}, hisOptions, options); }, autoInit: function autoInit(repeat) { $('select[' + commons.data.name + ']').each(function (index, target) { var sel = $(target); sel.css('display', 'none'); var options = commons.methods.getOptions(sel); if (!repeat) { var hisOptions = commons.data.confs.get(options.name); options.init = select3.value(options.name, 'val'); commons.methods.init(commons.methods.cloneOptions(options, hisOptions), true); } else { commons.methods.init(options); } }); }, listenCloseHandler: function listenCloseHandler(e, that, block) { if (block.length) { var _ref11 = [block.find('.layui-form-select'), block.find('dl')], div = _ref11[0], dl = _ref11[1]; var name = block.find('select').attr('xm-select'); if (that.hasClass('layui-disabled')) { return; } if (that.attr('xm-select-clear') != undefined) { if (that.is('i')) { var options = commons.data.confs.get($(e.target).attr('xm-select-clear')); if (options) { var length = commons.methods.removeAll(options); if (options.radio && length) { return; } } div.addClass('layui-form-selected'); dl.find('.xm-select-input-search').focus(); return; } } if (that.hasClass('xm-select-dd-search') || that.hasClass('xm-select-input-search')) { div.addClass('layui-form-selected'); dl.find('.xm-select-input-search').focus(); return; } $('.xm-select-parent > select:not([xm-select=\'' + name + '\']) + div > dl').removeClass('xm-select-show').addClass('xm-select-hidn').css('display', 'none'); if (that.attr('fsw') != undefined) { if (that.is('i')) { var _ref12 = [$(e.target).parents('.layui-form-select').prev(), $(e.target).parent()], sel = _ref12[0], span = _ref12[1]; var val = { name: span.find('font').text(), val: span.attr('value') }; var _options = commons.methods.getOptions(sel); _options = commons.data.confs.get(_options.name); _options.delete = true; commons.methods.getDiv(_options).find('dl dd[lay-value=\'' + val.val + '\']').click(); setTimeout(function () { if (dl.hasClass('xm-select-show')) { div.addClass('layui-form-selected'); dl.find('.xm-select-input-search').focus(); } else { div.removeClass('layui-form-selected'); } }, 3); return; } } if (block.find('select').attr('xm-select-radio') != undefined) { setTimeout(function () { if (dl.hasClass('xm-select-show')) { div.removeClass('layui-form-selected'); dl.removeClass('xm-select-show').addClass('xm-select-hidn').css('display', 'none'); } else { div.addClass('layui-form-selected'); dl.removeClass('xm-select-hidn').addClass('xm-select-show').css('display', 'block'); dl.find('.xm-select-input-search').focus(); } }, 3); return; } if (dl.hasClass('xm-select-show')) { if (that.hasClass('xm-select') || that.hasClass('xm-select-empty')) { dl.removeClass('xm-select-show').addClass('xm-select-hidn').css('display', 'none'); div.removeClass('layui-form-selected'); } else { div.addClass('layui-form-selected'); dl.find('.xm-select-input-search').focus(); } return; } dl.removeClass('xm-select-hidn').addClass('xm-select-show').css('display', 'block'); div.addClass('layui-form-selected'); dl.find('.xm-select-input-search').focus(); } else { $('.xm-select-parent > .layui-form-select > dl.xm-select-show').removeClass('xm-select-show').addClass('xm-select-hidn').css('display', 'none'); } }, listenClose: function listenClose() { $(document).on('click', function (e) { var that = $(e.target); var block = that.parents('.xm-select-parent'); setTimeout(function () { commons.methods.listenCloseHandler(e, that, block); commons.methods.retop({ name: block.find('select[xm-select]').attr('xm-select') }); $('.xm-select-parent input.xm-select-input-search').each(function (index, item) { var that = $(item); if (that.parents('dl').hasClass('xm-select-hidn')) { that.val(''); that.parents('dl').find('.layui-hide').removeClass('layui-hide'); that.parents('dl').find('p').remove(); } }); }, 10); }); $(document).on({ 'input propertychange': function inputPropertychange(e) { var that = $(e.target); var dl = that.parents('dl'); that.parents('dl').find('p').remove(); dl.find('.layui-hide').removeClass('layui-hide'); dl.find('dd:not(.layui-select-tips):not(:contains(\'' + that.val() + '\'))').addClass('layui-hide'); if (!dl.find('dd:not(.layui-select-tips):not(.layui-hide)').length) { dl.append('

\u65E0\u5339\u914D\u9879

'); } dl.find('dt').each(function (index, item) { if (!$(item).nextUntil('dt', ':not(.layui-hide)').length) { $(item).addClass('layui-hide'); } }); } }, '.xm-select-parent input.xm-select-input-search'); }, formRender: null, rewriteRender: function rewriteRender() { commons.methods.formRender = form.render; form.render = function (type, filter, repeat) { commons.methods.formRender(type, filter); if (filter) { var sel = $('[lay-filter=' + filter + ']').find('select[' + commons.data.name + ']'); if (sel.length) { if (repeat) { commons.methods.init(commons.methods.getOptions(sel)); } } return; } commons.methods.autoInit(repeat); }; }, loadCss: function loadCss(skin, cs) { if (skin) { if (skin == 'default') { return; } var sn = void 0; if ($('style[skin]').length) { sn = $('style[skin]'); } else { sn = $(''); } var df = styles.colors[skin] ? styles.colors[skin] : styles.colors.default; var colors = $.extend([], df, cs); sn.html(styles.cssColor(skin, colors[0], colors[1], colors[2], colors[3], colors[4], colors[5], colors[6])); sn.insertAfter($('head style:last')); } else { $('').insertBefore($('head *:first')); var html = ''; for (var name in styles.colors) { var _colors = styles.colors[name]; if (_colors) { _colors = $.extend([], styles.colors.default, _colors); html += ''; } } if (html) { $(html).insertAfter($('head style[' + commons.data.name + ']')); } } }, loadLastStyle: function loadLastStyle() { $('head').append(''); }, resize: function resize(selector, fun) { var id = commons.data.resize.get(selector); if (id != undefined) { clearInterval(id); } if (fun && fun instanceof Function) { var hisize = new Map(); id = setInterval(function (e) { $(selector).each(function (index, item) { var thisize = [item.clientHeight, item.clientWidth]; if (hisize.get(item)) { var his = hisize.get(item); if (his[0] != thisize[0] || his[1] != thisize[1]) { fun(item); } } hisize.set(item, thisize); }); }, 250); commons.data.resize.set(selector, id); } }, run: function run() { commons.methods.rewriteRender(); commons.methods.listenClose(); commons.methods.loadCss(); commons.methods.loadLastStyle(); commons.methods.autoInit(); commons.methods.resize('.xm-select:not(.xm-select-height)', function (dom) { commons.methods.handlerDataTable(dom, dom.clientHeight + 'px'); }); } } }, styles = { colors: { //name, spanBgColor, spanColor, iBgColor, iColor, borderColor, tBgColor, tColor default: ['#F0F2F5', '#909399', '#C0C4CC', '#FFFFFF', '#F0F2F5', '#5FB878', '#FFFFFF'], primary: ['#009688', '#FFFFFF', '#009688', '#FFFFFF', '#009688', '#009688', '#FFFFFF'], normal: ['#1E9FFF', '#FFFFFF', '#1E9FFF', '#FFFFFF', '#1E9FFF', '#1E9FFF', '#FFFFFF'], warm: ['#FFB800', '#FFFFFF', '#FFB800', '#FFFFFF', '#FFB800', '#FFB800', '#FFFFFF'], danger: ['#FF5722', '#FFFFFF', '#FF5722', '#FFFFFF', '#FF5722', '#FF5722', '#FFFFFF'] }, css: function css() { return '\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > input{display: none!important;}\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > div.xm-select{\n\t\t\t\t\t\tline-height: normal;\n\t\t\t\t\t\theight: auto;\n\t\t\t\t\t\tpadding: 4px 10px;\n\t\t\t\t\t\toverflow: hidden;\n\t\t\t\t\t\tmin-height: 38px;\n\t\t\t\t\t\tleft: 0px;\n\t\t\t\t\t\tz-index: 99;\n\t\t\t\t\t\tposition: relative;\n\t\t\t\t\t\tbackground: none;\n\t\t\t\t\t\tpadding-right: 20px;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty){\n\t\t\t\t\t\tpadding: 2px 5px;\n\t\t\t\t\t\tbackground: #f0f2f5;\n\t\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\t\tcolor: #909399;\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t\tline-height: 18px;\n\t\t\t\t\t\theight: 18px;\n\t\t\t\t\t\tmargin: 2px 5px 2px 0px;\n\t\t\t\t\t\tfloat: left;\n\t\t\t\t\t\tcursor: initial;\n\t\t\t\t\t\tuser-select: none;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty) i{\n\t\t\t\t\t\tbackground-color: #c0c4cc;\n\t\t\t\t\t\tcolor: #ffffff;\n\t\t\t\t\t\tmargin-left: 8px;\n\t\t\t\t\t\tborder-radius: 20px;\n\t\t\t\t\t\tfont-size: 12px;\n\t\t\t\t\t\tcursor: initial;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty) i:hover{\n\t\t\t\t\t\tbackground-color: #909399;\n\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > div.xm-select > span.xm-select-empty{\n\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\theight: 28px;\n\t\t\t\t\t\tline-height: 28px;\n\t\t\t\t\t\tcolor: #999999\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div dl dd.xm-select-dd-search{\n\t\t\t\t\t\tbackground-color: #FFFFFF;\n\t\t\t\t\t\tpadding-bottom: 5px;\n\t\t\t\t\t\tmargin-right: 30px;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div dl dd.xm-select-dd-search > input{\n\t\t\t\t\t\tcursor: text;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div dl dd.xm-select-dd-search > span{\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t right: 8px;\n\t\t\t\t\t top: 5px;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div dl dd.xm-select-dd-search > span > i{\n\t\t\t\t\t\tfont-size: 22px;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div dl dd.xm-select-dd-search > span > i:hover{\n\t\t\t\t\t\tcolor: red;\n\t\t\t\t\t\topacity:.8;\n\t\t\t\t\t\tfilter:alpha(opacity=80);\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select] + div dl p.xm-select-search-empty{\n\t\t\t\t\t\tmargin: 10px 0;\n\t\t\t\t\t text-align: center;\n\t\t\t\t\t color: #999;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'1\'] + div dl dd.xm-select-this,select[xm-select]:not([xm-select-type]) + div dl dd.xm-select-this{\n\t\t\t\t\t\tbackground-color: #5FB878;\n\t\t\t\t\t\tcolor: #FFF;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'1\'] + div dl dd.layui-disabled,select[xm-select]:not([xm-select-type]) + div dl dd.layui-disabled{\n\t\t\t\t\t\tbackground-color: #FFFFFF;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'2\'] + div dl dd.layui-disabled i{\n\t\t\t\t\t\tborder-color: #C2C2C2;\n\t\t\t\t\t\tcolor: #FFFFFF;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'2\'] + div dl dd.xm-select-this.layui-disabled i{\n\t\t\t\t\t\tbackground-color: #D2D2D2;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'2\'] + div dl dd.xm-select-this:not(.layui-disabled) i{\n\t\t\t\t\t\tbackground-color: #5FB878;\n\t\t\t\t\t\tborder-color: #5FB878;\n\t\t\t\t\t\tcolor: #FFF;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'3\'] + div dl dd.xm-select-this:not(.layui-disabled){\n\t\t\t\t\t\tcolor: #5FB878;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'3\'] + div dl dd.xm-select-this i{\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\tright: 10px;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t'; }, cssColor: function cssColor(name, spanBgColor, spanColor, iBgColor, iColor, borderColor, tBgColor, tColor) { return '\n\t\t\t\t\tselect[xm-select][xm-select-skin=\'' + name + '\'] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty){\n\t\t\t\t\t\tbackground: ' + spanBgColor + ';\n\t\t\t\t\t\tcolor: ' + spanColor + ';\n\t\t\t\t\t\tborder: 1px solid ' + borderColor + '\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-skin=\'' + name + '\'] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty) i{\n\t\t\t\t\t\tbackground: ' + iBgColor + ';\n\t\t\t\t\t\tcolor: ' + iColor + ';\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-skin=\'' + name + '\'] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty) i:hover{\n\t\t\t\t\t\topacity:.8;\n\t\t\t\t\t\tfilter:alpha(opacity=80);\n\t\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-skin=\'' + name + '\'][xm-select-type=\'1\'] + div dl dd.xm-select-this:not(.layui-disabled),select[xm-select][xm-select-skin=\'' + name + '\']:not([xm-select-type]) + div dl dd.xm-select-this:not(.layui-disabled){\n\t\t\t\t\t\tbackground-color: ' + tBgColor + ';\n\t\t\t\t\t\tcolor: ' + tColor + ';\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-skin=\'' + name + '\'][xm-select-type=\'2\'] + div dl dd.xm-select-this:not(.layui-disabled) i{\n\t\t\t\t\t\tbackground-color: ' + tBgColor + ';\n\t\t\t\t\t\tborder-color: ' + tBgColor + ';\n\t\t\t\t\t\tcolor: ' + tColor + ';\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-skin=\'' + name + '\'][xm-select-type=\'3\'] + div dl dd.xm-select-this:not(.layui-disabled){\n\t\t\t\t\t\tcolor: ' + tBgColor + ';\n\t\t\t\t\t}\n\t\t\t\t\tselect[xm-select][xm-select-type=\'3\'] + div dl dd.xm-select-this i{\n\t\t\t\t\t\tposition: absolute;\n\t\t\t\t\t\tright: 10px;\n\t\t\t\t\t}\n\t\t\t\t'; }, renderCss: function renderCss() { return '\n\t\t\t\t\tselect[xm-select] + div .layui-select-title > div.xm-select > span:not(.xm-select-empty){\n\t\t\t\t\t\tbox-sizing: content-box;\n\t\t\t\t\t}\n\t\t\t\t\t.xm-select-parent .layui-form-select dl dd.layui-this{\n\t\t\t\t\t background-color: inherit;\n\t\t\t\t\t color: inherit;\n\t\t\t\t\t}\n\t\t\t\t\t.xm-select-parent .layui-form-select dl dd.layui-this.layui-select-tips {\n\t\t\t\t\t\tbackground-color: #FFFFFF;\n\t\t\t\t\t color: #999999;\n\t\t\t\t\t}\n\t\t\t\t\t.xm-select-parent .layui-form-selected dl {\n\t\t\t\t\t display: none;\n\t\t\t\t\t}\n\t\t\t\t\t.xm-select-show:{\n\t\t\t\t\t\tdisplay: block;\n\t\t\t\t\t}\n\t\t\t\t\t.xm-select-hidn:{\n\t\t\t\t\t\tdisplay: none;\n\t\t\t\t\t}\n\t\t\t\t'; } }; commons.methods.run(); return select3; });