自己学习中用到了Layui穿梭框的使用;
1.页面
注意:需要引入layui的layui.css和layui.all.js文件;
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>穿梭框使用</legend>
</fieldset>
<div class="layui-btn-container">
<button type="button" class="layui-btn" lay-demotransferactive="getData">获取右侧数据</button>
<button type="button" class="layui-btn" lay-demotransferactive="reload">重新加载</button>
</div>
<div id="test1" class="demo-transfer" align="left"></div>
</body>
2.js代码
<script type="text/javascript">
layui.use(['transfer','util'],function(){
var $=layui.$;
var transfer=layui.transfer;
var util=layui.util;
//1.模拟数据
var data1=[
{"value": "1", "title": "张三"},
{"value": "2", "title": "李四"},
{"value": "3", "title": "王五","disabled": true},
{"value": "4", "title": "赵六"},
{"value": "5", "title": "王子"},
{"value": "6", "title": "小红"},
{"value": "7", "title": "小zhang","checked": true},
];
//2.数据格式解析
transfer.render({
elem: '#test1'
,title: ['未选数据', '已选数据']//自定义标题
,width: 200 //定义宽度
,height: 300 //定义高度
,parseData: function(res){//数据参数来源data1转换处理
return {
"value": res.value //data1属性
,"title": res.title//data1属性
,"disabled":res.disabled // false //是否禁用
,"checked":res.checked// false //是否选中
}
}
,data: data1//数据参数来源
,showSearch: true//显示搜索框
,id:"keyPro"//唯一标识
,value:['6']//用于回显或默认选中
});
//3.util监听事件
util.event('lay-demotransferactive',{
getData:function(othis){//获取右侧数据
var getData = transfer.getData('keyPro'); //唯一标识
layer.alert(JSON.stringify(getData));
},
reload:function(){//重新加载
transfer.reload('keyPro',{
value: ['6']
});
}
});
})
</script>
3.展示
4.案例
<body>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend><i class="layui-icon layui-icon-util" style="font-size: 22px; color: gray;"></i>穿梭配置</legend>
</fieldset>
<div id="TEST" class="demo-transfer" align="left"></div><br>
<div class="layui-btn-container" style="margin-left: 40%">
<button type="button" class="layui-btn" lay-demotransferactive="getData">保存</button>
</div>
<script type="text/javascript">
layui.use(['transfer','util','layer'],function(){
var $=layui.$;
var transfer=layui.transfer;
var layer = layui.layer;
var util=layui.util;
//1.模拟数据
var demo1='${demo1}';//后台json串
demo1 = JSON.parse(demo1);
var values=new Array();
var demo2='${demo2}';//后台json串
demo2 = JSON.parse(demo2);
for(var i=0;i<demo2.length;i++){
values.push(demo2[i].demo1Id);
}
//2.数据格式解析
transfer.render({
elem: '#TEST'
,title: ['左侧数据', '右侧数据']//自定义标题
,width: 280 //定义宽度
,height: 340 //定义高度
,parseData: function(res){//数据参数来源data转换处理
return {
"value": res.id //data属性
,"title": res.name//data属性
}
}
,data: demo1//数据参数来源
,showSearch: true//显示搜索框
,id:"keyPro"//唯一标识
,value:values //用于回显或默认选中
});
//3.util监听事件
util.event('lay-demotransferactive',{
getData:function(othis){//获取右侧数据
var getData = transfer.getData('keyPro'); //唯一标识
var ids=new Array();
for(var i=0;i<getData.length;i++){
ids.push(getData[i].value);
}
if(ids.sort().toString()==values.sort().toString()){
return layer.msg("穿梭配置没有改变,请勿重复提交!", {icon: 5});
}
layer.confirm('确定要修改穿梭配置吗?',function(index){
editVerify(ids);
})
}
});
//提交后台
function editVerify(ids){
$.ajax({
type : 'POST',
traditional:true,
data : {ids:ids},
url : "${pageContext.request.contextPath}/autoVerify/editVerify",
success : function(result) {
var resultContent = result.msg;
var resultSuccess = result.success;
layer.open({
content : resultContent,
btn : [ '确定' ],
yes : function(index,layero) {
if (true == resultSuccess) {
window.location.reload();//刷新页面
}
layer.close(index);
}
});
}
});
}
})
</script>
</body>