Merge pull request #1036 from sunxiaobin89/main

修复部分 bug 以及新增一些功能
This commit is contained in:
贤心 2022-06-20 20:13:36 +08:00 committed by GitHub
commit e0619625fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 304 additions and 139 deletions

View File

@ -232,6 +232,21 @@
return that; return that;
}; };
Layui.prototype.unuse = function (apps) {
var that = this;
apps = that.isArray(apps) ? apps : [apps];
that.each(apps, function (index, item) {
if (!config.status[item]) {
return error('module ' + item + ' is not exist');
}
delete that[item];
delete modules[item];
delete that.modules[item];
delete config.status[item];
delete config.modules[item];
})
}
//获取节点的 style 属性值 //获取节点的 style 属性值
Layui.prototype.getStyle = function(node, name){ Layui.prototype.getStyle = function(node, name){
var style = node.currentStyle ? node.currentStyle : win.getComputedStyle(node, null); var style = node.currentStyle ? node.currentStyle : win.getComputedStyle(node, null);

View File

@ -145,18 +145,18 @@ layui.define('layer', function(exports){
}()) }())
,items = { ,items = {
//输入框 //输入框
input: function(){ input: function(elem){
var inputs = elemForm.find('input,textarea'); var inputs = elem || elemForm.find('input,textarea');
//初始化全局的 autocomplete //初始化全局的 autocomplete
options.autocomplete && inputs.attr('autocomplete', options.autocomplete); options.autocomplete && inputs.attr('autocomplete', options.autocomplete);
} }
//下拉选择框 //下拉选择框
,select: function(){ ,select: function(elem){
var TIPS = '请选择', CLASS = 'layui-form-select', TITLE = 'layui-select-title' var TIPS = '请选择', CLASS = 'layui-form-select', TITLE = 'layui-select-title'
,NONE = 'layui-select-none', initValue = '', thatInput ,NONE = 'layui-select-none', initValue = '', thatInput
,selects = elemForm.find('select') ,selects = elem || elemForm.find('select')
//隐藏 select //隐藏 select
,hide = function(e, clear){ ,hide = function(e, clear){
@ -489,12 +489,12 @@ layui.define('layer', function(exports){
} }
//复选框/开关 //复选框/开关
,checkbox: function(){ ,checkbox: function(elem){
var CLASS = { var CLASS = {
checkbox: ['layui-form-checkbox', 'layui-form-checked', 'checkbox'] checkbox: ['layui-form-checkbox', 'layui-form-checked', 'checkbox']
,_switch: ['layui-form-switch', 'layui-form-onswitch', 'switch'] ,_switch: ['layui-form-switch', 'layui-form-onswitch', 'switch']
} }
,checks = elemForm.find('input[type=checkbox]') ,checks = elem || elemForm.find('input[type=checkbox]')
,events = function(reElem, RE_CLASS){ ,events = function(reElem, RE_CLASS){
var check = $(this); var check = $(this);
@ -561,9 +561,9 @@ layui.define('layer', function(exports){
} }
//单选框 //单选框
,radio: function(){ ,radio: function(elem){
var CLASS = 'layui-form-radio', ICON = ['', ''] var CLASS = 'layui-form-radio', ICON = ['', '']
,radios = elemForm.find('input[type=radio]') ,radios = elem || elemForm.find('input[type=radio]')
,events = function(reElem){ ,events = function(reElem){
var radio = $(this), ANIM = 'layui-anim-scaleSpring'; var radio = $(this), ANIM = 'layui-anim-scaleSpring';
@ -620,31 +620,55 @@ layui.define('layer', function(exports){
}); });
} }
}; };
if (layui._typeof(type) === 'object') {
// jquery对象
type.each(function (index, item) {
var elem = $(item);
if (!elem.closest(ELEM).length) {
// 如果不是存在layui-form中的直接跳过
return;
}
if (item.tagName === 'SELECT') {
items['select'](elem);
} else if (item.tagName === 'INPUT') {
var itemType = item.type;
if (itemType === 'checkbox' || itemType === 'radio') {
items[itemType](elem);
} else {
items['input'](elem);
}
}
});
} else {
type ? ( type ? (
items[type] ? items[type]() : hint.error('不支持的 "'+ type + '" 表单渲染') items[type] ? items[type]() : hint.error('不支持的 "'+ type + '" 表单渲染')
) : layui.each(items, function(index, item){ ) : layui.each(items, function(index, item){
item(); item();
}); });
}
return that; return that;
}; };
//表单提交校验 // verifyElem: 要验证的节点或者范围 返回验证通过返回true否则返回false
var submit = function(){ Form.prototype.doVerify = function(verifyElem){
var stop = null //验证不通过状态 var stop = null //验证不通过状态
,verify = form.config.verify //验证规则 ,verify = form.config.verify //验证规则
,DANGER = 'layui-form-danger' //警示样式 ,DANGER = 'layui-form-danger' //警示样式
,field = {} //字段集合
,button = $(this) //当前触发的按钮
,elem = button.parents(ELEM).eq(0) //当前所在表单域
,verifyElem = elem.find('*[lay-verify]') //获取需要校验的元素
,formElem = button.parents('form')[0] //获取当前所在的 form 元素,如果存在的话
,filter = button.attr('lay-filter'); //获取过滤器
if (layui.type(verifyElem) !== 'object') { // 不符合要求的格式直接判通过
hint.error('doVerify: 参数错误');
return true;
}
if (!verifyElem.attr('lay-verify')) {
// 验证某个容器内的节点
verifyElem = verifyElem.find('*[lay-verify]');
}
//开始校验 //开始校验
layui.each(verifyElem, function(_, item){ layui.each(verifyElem, function(_, item){
var othis = $(this) var othis = $(this)
,vers = othis.attr('lay-verify').split('|') ,verifyStr = othis.attr('lay-verify') || ''
,vers = verifyStr.split('|')
,verType = othis.attr('lay-verType') //提示方式 ,verType = othis.attr('lay-verType') //提示方式
,value = othis.val(); ,value = othis.val();
@ -696,7 +720,7 @@ layui.define('layer', function(exports){
} else { //移动设备定位 } else { //移动设备定位
$dom.scrollTop(function(){ $dom.scrollTop(function(){
try { try {
return (isForm2Elem ? othis.next() : othis).offset().top - 15 return (isForm2Elem ? othis.next() : othis).focus().offset().top - 15
} catch(e){ } catch(e){
return 0; return 0;
} }
@ -711,7 +735,20 @@ layui.define('layer', function(exports){
if(stop) return stop; if(stop) return stop;
}); });
if(stop) return false; return !stop;
}
//表单提交校验
var submit = function(){
var field = {} //字段集合
,button = $(this) //当前触发的按钮
,elem = button.parents(ELEM).eq(0) //当前所在表单域
,verifyElem = elem.find('*[lay-verify]') //获取需要校验的元素
,formElem = button.parents('form')[0] //获取当前所在的 form 元素,如果存在的话
,filter = button.attr('lay-filter'); //获取过滤器
//开始校验
if(!form.doVerify(verifyElem)) return false;
//获取当前表单值 //获取当前表单值
field = form.getValue(null, elem); field = form.getValue(null, elem);

View File

@ -25,7 +25,9 @@
//外部调用 //外部调用
,laydate = { ,laydate = {
v: '5.3.1' //layDate 版本号 v: '5.3.1' //layDate 版本号
,config: {} //全局配置项 ,config: {
weekStart: 0, // 默认周日一周的开始
} //全局配置项
,index: (window.laydate && window.laydate.v) ? 100000 : 0 ,index: (window.laydate && window.laydate.v) ? 100000 : 0
,path: GLOBAL.laydate_dir || ready.getPath ,path: GLOBAL.laydate_dir || ready.getPath
@ -214,6 +216,15 @@
//将日期格式转化成数组 //将日期格式转化成数组
that.format = thisModule.formatArr(options.format); that.format = thisModule.formatArr(options.format);
// 设置了一周的开始是周几,此处做一个控制
if (options.weekStart) {
if (!/^[0-6]$/.test(options.weekStart)) {
var lang = that.lang();
options.weekStart = lang.weeks.indexOf(options.weekStart);
if (options.weekStart === -1) options.weekStart = 0;
}
}
//生成正则表达式 //生成正则表达式
that.EXP_IF = ''; that.EXP_IF = '';
that.EXP_SPLIT = ''; that.EXP_SPLIT = '';
@ -415,7 +426,7 @@
lay.each(new Array(7), function(j){ lay.each(new Array(7), function(j){
if(i === 0){ if(i === 0){
var th = lay.elem('th'); var th = lay.elem('th');
th.innerHTML = lang.weeks[j]; th.innerHTML = lang.weeks[(j + options.weekStart) % 7];
theadTr.appendChild(th); theadTr.appendChild(th);
} }
tr.insertCell(j); tr.insertCell(j);
@ -845,7 +856,7 @@
//计算当前月第一天的星期 //计算当前月第一天的星期
thisDate.setFullYear(dateTime.year, dateTime.month, 1); thisDate.setFullYear(dateTime.year, dateTime.month, 1);
startWeek = thisDate.getDay(); startWeek = (thisDate.getDay() + (7 - options.weekStart)) % 7;
prevMaxDate = laydate.getEndDate(dateTime.month || 12, dateTime.year); //计算上个月的最后一天 prevMaxDate = laydate.getEndDate(dateTime.month || 12, dateTime.year); //计算上个月的最后一天
thisMaxDate = laydate.getEndDate(dateTime.month + 1, dateTime.year); //计算当前月的最后一天 thisMaxDate = laydate.getEndDate(dateTime.month + 1, dateTime.year); //计算当前月的最后一天

View File

@ -53,6 +53,9 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
,reload: function(options, deep){ ,reload: function(options, deep){
that.reload.call(that, options, deep); that.reload.call(that, options, deep);
} }
,reloadData: function(options, deep){
table.reloadData(id, options, deep);
}
,setColsWidth: function(){ ,setColsWidth: function(){
that.setColsWidth.call(that); that.setColsWidth.call(that);
} }
@ -251,6 +254,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
,loading: true //请求数据时,是否显示 loading ,loading: true //请求数据时,是否显示 loading
,escape: true // 是否开启 HTML 编码功能,即转义 html 原文 ,escape: true // 是否开启 HTML 编码功能,即转义 html 原文
,cellMinWidth: 60 //所有单元格默认最小宽度 ,cellMinWidth: 60 //所有单元格默认最小宽度
,editTrigger: 'click' //单元格编辑的触发方式
,defaultToolbar: ['filter', 'exports', 'print'] //工具栏右侧图标 ,defaultToolbar: ['filter', 'exports', 'print'] //工具栏右侧图标
,autoSort: true //是否前端自动排序。如果否,则需自主排序(通常为服务端处理好排序) ,autoSort: true //是否前端自动排序。如果否,则需自主排序(通常为服务端处理好排序)
,text: { ,text: {
@ -394,39 +398,47 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
if(type === 'width') return options.clientWidth; if(type === 'width') return options.clientWidth;
//初始化列参数 // 封装对col的配置处理
layui.each(options.cols, function(i1, item1){ var initChildCols = function (i1, item1, i2, item2) {
layui.each(item1, function(i2, item2){
item2.colspan = item2.colspan || 1;
item2.rowspan = item2.rowspan || 1;
//如果列参数为空,则移除 //如果列参数为空,则移除
if(!item2){ if (!item2) {
item1.splice(i2, 1); item1.splice(i2, 1);
return; return;
} }
item2.key = i1 + '-' + i2; item2.key = i1 + '-' + i2;
item2.hide = item2.hide || false; item2.hide = item2.hide || false;
item2.colspan = item2.colspan || 1;
//设置列的父列索引 item2.rowspan = item2.rowspan || 1;
//如果是组合列,则捕获对应的子列
if(item2.colGroup || item2.colspan > 1){
var childIndex = 0;
layui.each(options.cols[i1 + item2.rowspan], function(i22, item22){
//如果子列已经被标注为{HAS_PARENT},或者子列累计 colspan 数等于父列定义的 colspan则跳出当前子列循环
if(item22.HAS_PARENT || (childIndex >= 1 && childIndex == item2.colspan)) return;
item22.HAS_PARENT = true;
item22.parentKey = i1 + '-' + i2;
childIndex = childIndex + parseInt(item22.colspan > 1 ? item22.colspan : 1);
});
item2.colGroup = true; //标注是组合列
}
//根据列类型,定制化参数 //根据列类型,定制化参数
that.initOpts(item2); that.initOpts(item2);
//设置列的父列索引
//如果是组合列,则捕获对应的子列
var indexChild = i1 + (parseInt(item2.rowspan) || 1);
if (indexChild < options.cols.length) { // 只要不是最后一层都会有子列
item2.colGroup = true;
var childIndex = 0;
layui.each(options.cols[indexChild], function (i22, item22) {
//如果子列已经被标注为{HAS_PARENT},或者子列累计 colspan 数等于父列定义的 colspan则跳出当前子列循环
if (item22.HAS_PARENT || (childIndex >= 1 && childIndex == (item2.colspan || 1))) return;
item22.HAS_PARENT = true;
item22.parentKey = i1 + '-' + i2;
childIndex = childIndex + parseInt(item22.colspan > 1 ? item22.colspan : 1);
initChildCols(indexChild, options.cols[indexChild], i22, item22);
});
} else {
item2.colGroup = false;
}
};
//初始化列参数
layui.each(options.cols, function(i1, item1){
if (i1) return true;
layui.each(item1, function(i2, item2){
initChildCols(i1, item1, i2, item2);
}); });
}); });
@ -687,6 +699,10 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
that.layMain.append(that.layNone = layNone); that.layMain.append(that.layNone = layNone);
// 异常情况下对page和total的内容处理
that.layPage && that.layPage.addClass(HIDE).find('>div').html('');
that.layTotal && that.layTotal.addClass(HIDE).find('tbody').html('');
table.cache[that.key] = []; //格式化缓存数据 table.cache[that.key] = []; //格式化缓存数据
}; };
@ -933,6 +949,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
//正常初始化数据渲染 //正常初始化数据渲染
render(); //渲染数据 render(); //渲染数据
that.renderTotal(data, totalRowData); //数据合计 that.renderTotal(data, totalRowData); //数据合计
that.layTotal && that.layTotal.removeClass(HIDE);
//同步分页状态 //同步分页状态
if(options.page){ if(options.page){
@ -1694,7 +1711,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
}); });
//单元格单击事件 //单元格单击事件
that.layBody.on('click', 'td', function(e){ that.layBody.on(options.editTrigger, 'td', function(e){
var othis = $(this) var othis = $(this)
,field = othis.data('field') ,field = othis.data('field')
,editType = othis.data('edit') ,editType = othis.data('edit')
@ -1896,6 +1913,26 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
thisTable.that = {}; //记录所有实例对象 thisTable.that = {}; //记录所有实例对象
thisTable.config = {}; //记录所有实例配置项 thisTable.config = {}; //记录所有实例配置项
var eachChildCols = function (index, cols, i1, item2) {
//如果是组合列,则捕获对应的子列
if (item2.colGroup) {
var childIndex = 0;
index++;
item2.CHILD_COLS = [];
// 找到它的子列所在cols的下标
var i2 = i1 + (parseInt(item2.rowspan) || 1);
layui.each(cols[i2], function (i22, item22) {
//如果子列已经被标注为{PARENT_COL_INDEX},或者子列累计 colspan 数等于父列定义的 colspan则跳出当前子列循环
if (item22.PARENT_COL_INDEX || (childIndex >= 1 && childIndex == (item2.colspan || 1))) return;
item22.PARENT_COL_INDEX = index;
item2.CHILD_COLS.push(item22);
childIndex = childIndex + parseInt(item22.colspan > 1 ? item22.colspan : 1);
eachChildCols(index, cols, i2, item22);
});
}
};
//遍历表头 //遍历表头
table.eachCols = function(id, callback, cols){ table.eachCols = function(id, callback, cols){
var config = thisTable.config[id] || {} var config = thisTable.config[id] || {}
@ -1905,25 +1942,9 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
//重新整理表头结构 //重新整理表头结构
layui.each(cols, function(i1, item1){ layui.each(cols, function(i1, item1){
if (i1) return true; // 只需遍历第一层
layui.each(item1, function(i2, item2){ layui.each(item1, function(i2, item2){
eachChildCols(index, cols, i1, item2);
//如果是组合列,则捕获对应的子列
if(item2.colGroup){
var childIndex = 0;
index++
item2.CHILD_COLS = [];
layui.each(cols[i1 + item2.rowspan], function(i22, item22){
//如果子列已经被标注为{PARENT_COL_INDEX},或者子列累计 colspan 数等于父列定义的 colspan则跳出当前子列循环
if(item22.PARENT_COL_INDEX || (childIndex >= 1 && childIndex == item2.colspan)) return;
item22.PARENT_COL_INDEX = index;
item2.CHILD_COLS.push(item22);
childIndex = childIndex + parseInt(item22.colspan > 1 ? item22.colspan : 1);
});
}
if(item2.PARENT_COL_INDEX) return; //如果是子列,则不进行追加,因为已经存储在父列中 if(item2.PARENT_COL_INDEX) return; //如果是子列,则不进行追加,因为已经存储在父列中
arrs.push(item2) arrs.push(item2)
}); });
@ -1978,8 +1999,6 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
//表格导出 //表格导出
table.exportFile = function(id, data, type){ table.exportFile = function(id, data, type){
var that = this;
data = data || table.clearCacheKey(table.cache[id]); data = data || table.clearCacheKey(table.cache[id]);
type = type || 'csv'; type = type || 'csv';
@ -2019,7 +2038,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
} }
var content = item1[item3.field] var content = item1[item3.field]
,td = that.layBody.find('tr[data-index="'+ i1 +'"]>td'); ,td = thatTable.layBody.find('tr[data-index="'+ i1 +'"]>td');
if(content === undefined || content === null) content = ''; if(content === undefined || content === null) content = '';
@ -2042,14 +2061,14 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
}); });
//表合计 //表合计
layui.each(that.dataTotal, function(key, value){ thatTable && layui.each(thatTable.dataTotal, function(key, value){
fieldsIsHide[key] || dataTotal.push(value); fieldsIsHide[key] || dataTotal.push(value);
}); });
return dataTitle.join(',') + '\r\n' + dataMain.join('\r\n') + '\r\n' + dataTotal.join(','); return dataTitle.join(',') + '\r\n' + dataMain.join('\r\n') + '\r\n' + dataTotal.join(',');
}()); }());
alink.download = (config.title || 'table_'+ (config.index || '')) + '.' + type; alink.download = (config.title || 'table_'+ (config.index || new Date().getTime())) + '.' + type;
document.body.appendChild(alink); document.body.appendChild(alink);
alink.click(); alink.click();
document.body.removeChild(alink); document.body.removeChild(alink);
@ -2082,6 +2101,51 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
return thisTable.call(that); return thisTable.call(that);
}; };
//需要重新render的参数名单
var dataParams = ['data', 'url', 'where', 'page', 'request', 'response', 'parseData'];
var dataParamsRegExp = new RegExp('^(' + dataParams.join('|') + ')$')
//重载数据 options只允许跟数据请求相关的配置信息
table.reloadData = function(id, options, deep){
var config = getThisTableConfig(id); //获取当前实例配置项
if (!config) return;
var that = thisTable.that[id];
options = options || {};
if (options.page !== undefined && !!options.page !== !!config.page) {
// 如果是否分页发生了改变
hint.error('reloadData不允许对是否分页进行切换从不分页到分页的切换反之亦然,如果需要请使用reload重载');
delete options.page;
}
//过滤options只留下跟数据请求相关的参数
layui.each(options, function (_key, _value) {
if (!dataParamsRegExp.test(_key)) {
delete options[_key];
}
});
if (options.page !== undefined) { // 针对page组件的特殊处理
if (typeof options.page === 'object') {
options.page.curr && (that.page = options.page.curr);
delete options.elem;
delete options.jump;
} else if (options.page) {
options.page = {};
}
$.extend(true, that.config, {page: options.page});
delete options.page;
}
if (options.data && options.data.constructor === Array) delete that.config.data;
deep ? $.extend(true, that.config, options) : $.extend(that.config, options);
if (!that.config.page) {
that.page = 1;
}
that.loading();
that.pullData(that.page);
return thisTable.call(that);
}
//核心入口 //核心入口
table.render = function(options){ table.render = function(options){
var inst = new Class(options); var inst = new Class(options);

View File

@ -323,6 +323,61 @@ layui.define(['laytpl', 'form'], function(exports){
return selectedData; return selectedData;
}; };
//执行穿梭
Class.prototype.transfer = function (_index, elem) {
var that = this
,options = that.config
,thisBoxElem = that.layBox.eq(_index)
,arr = []
if (!elem) {
//通过按钮触发找到选中的进行移动
thisBoxElem.each(function(_index){
var othis = $(this)
,thisDataElem = othis.find('.'+ ELEM_DATA);
thisDataElem.children('li').each(function(){
var thisList = $(this)
,thisElemCheckbox = thisList.find('input[type="checkbox"]')
,isHide = thisElemCheckbox.data('hide');
if(thisElemCheckbox[0].checked && !isHide){
thisElemCheckbox[0].checked = false;
thisBoxElem.siblings('.'+ ELEM_BOX).find('.'+ ELEM_DATA).append(thisList.clone());
thisList.remove();
//记录当前穿梭的数据
arr.push(thisElemCheckbox[0].value);
}
that.setValue();
});
});
} else {
//双击单条记录移动
var thisList = elem
,thisElemCheckbox = thisList.find('input[type="checkbox"]')
thisElemCheckbox[0].checked = false;
thisBoxElem.siblings('.'+ ELEM_BOX).find('.'+ ELEM_DATA).append(thisList.clone());
thisList.remove();
//记录当前穿梭的数据
arr.push(thisElemCheckbox[0].value);
that.setValue();
}
that.renderCheckBtn();
//穿梭时,如果另外一个框正在搜索,则触发匹配
var siblingInput = thisBoxElem.siblings('.'+ ELEM_BOX).find('.'+ ELEM_SEARCH +' input')
siblingInput.val() === '' || siblingInput.trigger('keyup');
//穿梭时的回调
options.onchange && options.onchange(that.getData(arr), _index);
}
//事件 //事件
Class.prototype.events = function(){ Class.prototype.events = function(){
var that = this var that = this
@ -344,47 +399,30 @@ layui.define(['laytpl', 'form'], function(exports){
}); });
} }
setTimeout(function () {
that.renderCheckBtn({stopNone: true}); that.renderCheckBtn({stopNone: true});
}, 0)
}); });
//双击记录
that.elem.on('dblclick', '.' + ELEM_DATA + '>li', function(event){
var elemThis = $(this)
,thisElemCheckbox = elemThis.children('input[type="checkbox"]')
,thisDataElem = elemThis.parent()
,thisBoxElem = thisDataElem.parent()
if(thisElemCheckbox[0].disabled) return;
that.transfer(thisBoxElem.data('index'), elemThis);
})
//按钮事件 //按钮事件
that.layBtn.on('click', function(){ that.layBtn.on('click', function(){
var othis = $(this) var othis = $(this)
,_index = othis.data('index') ,_index = othis.data('index')
,thisBoxElem = that.layBox.eq(_index)
,arr = [];
if(othis.hasClass(DISABLED)) return; if(othis.hasClass(DISABLED)) return;
that.layBox.eq(_index).each(function(_index){ that.transfer(_index);
var othis = $(this)
,thisDataElem = othis.find('.'+ ELEM_DATA);
thisDataElem.children('li').each(function(){
var thisList = $(this)
,thisElemCheckbox = thisList.find('input[type="checkbox"]')
,isHide = thisElemCheckbox.data('hide');
if(thisElemCheckbox[0].checked && !isHide){
thisElemCheckbox[0].checked = false;
thisBoxElem.siblings('.'+ ELEM_BOX).find('.'+ ELEM_DATA).append(thisList.clone());
thisList.remove();
//记录当前穿梭的数据
arr.push(thisElemCheckbox[0].value);
}
that.setValue();
});
});
that.renderCheckBtn();
//穿梭时,如果另外一个框正在搜索,则触发匹配
var siblingInput = thisBoxElem.siblings('.'+ ELEM_BOX).find('.'+ ELEM_SEARCH +' input')
siblingInput.val() === '' || siblingInput.trigger('keyup');
//穿梭时的回调
options.onchange && options.onchange(that.getData(arr), _index);
}); });
//搜索 //搜索