4 Star 34 Fork 7

凡繁烦/layfilter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index.html 20.80 KB
一键复制 编辑 原始数据 按行查看 历史
凡繁烦 提交于 2021-09-30 14:04 . 🐞 fix:修复禁用部分逻辑
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>layui扩展组件layFilter</title>
<link rel="stylesheet" href="/layui/css/layui.css" media="all">
<style>
*{
margin: 0;
padding: 0;
}
.container{
display: flex;
min-height: 100vh;
flex-direction: column;
background-color: #f5f7f9;
align-items: center;
padding: 60px 0;
}
.layfilter{
width: 80%;
margin-bottom: 60px;
background-color: #fff;
position: relative;
}
.layfilter .title{
position: absolute;
height: 30px;
line-height: 30px;
padding: 0 20px;
font-weight: bold;
left: 50%;
top: -30px;
border-radius: 30px 30px 0 0;
transform: translate(-50%,0);
background-color: #fff;
}
.btn-group{
margin-top: 20px;
padding: 0 20px;
}
.show-code{
margin-top: 20px;
border-top: 1px solid #e0e0e0;
text-align: center;
height: 60px;
line-height: 60px;
}
.show-code span{
cursor: pointer;
font-size: 16px;
color: #999;
}
</style>
</head>
<body>
<div class="container">
<div class="layfilter">
<div class="title">电商类</div>
<div id="layfilter1" lay-filter="layfilter"></div>
<div class="btn-group">
<button class="layui-btn layui-btn-primary" id="getValBtn1">获取选中值(直接获取)</button>
<button class="layui-btn layui-btn-primary" id="resetBtn1">全部重置</button>
<button class="layui-btn layui-btn-primary" id="setDisabledBtn1">设置禁用</button>
<a class="layui-btn layui-btn-danger" href="https://www.52fansite.com">个博客(建设ing)</a>
</div>
<div class="show-code"><span><i class="layui-icon layui-icon-down"></i> 查看代码</span></div>
<pre class="layui-code layui-hide" style="margin: 0;">
layui.use(['layer', 'layFilter'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var layfilter = layui.layFilter;
var dataSource1 = []; //太长了,就不展示了,直接看源码吧
var filter1 = layfilter.render({
elem: '#layfilter1',
itemWidth: 80 ,
labelWidth: 100,
dataSource:dataSource1,
color: "#FF5722",
success: (data)=>{
},
onChange: (status, data, dom)=>{
console.log("filter1 is change",status,data,dom);
}
});
//获取选中值(直接获取)
$('#getValBtn1').click(function () {
layer.alert(JSON.stringify(filter1.getValue()));
});
//全部重置
$("#resetBtn1").click(function(){
filter1.resetFilter(function(){
layer.msg('重置了!');
})
});
//设置禁用
$("#setDisabledBtn1").click(function() {
filter1.setDisabled('brand','chuizi')
});
})
</pre>
</div>
<div class="layfilter">
<div class="title">影视类</div>
<div id="layfilter2" lay-filter="layfilter2"></div>
<div class="btn-group">
<button class="layui-btn layui-btn-primary" id="getValBtn2">获取选中值(回调获取)</button>
<button class="layui-btn layui-btn-primary" id="resetBtn2">重置(指定类别)</button>
<button class="layui-btn layui-btn-primary" id="setDisabledBtn2">设置禁用</button>
</div>
<div class="show-code"><span><i class="layui-icon layui-icon-down"></i> 查看代码</span></div>
<pre class="layui-code layui-hide" style="margin: 0;">
layui.use(['layer', 'layFilter'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var layfilter = layui.layFilter;
var dataSource2 = []; //太长了,就不展示了,直接看源码吧
var filter2 = layfilter.render({
elem: '#layfilter2',
labelWidth: 80,
dataSource:dataSource2,
color: "#009688",
success: (data)=>{
data.setValue('category','123')
data.setValue('day','137','138')
data.setDisabled('category','aiqing')
},
onChange: (status, data, dom)=>{
console.log("filter2 is change",status,data);
}
});
//获取选中值(回调获取)
$('#getValBtn2').click(function () {
filter2.getValue(function (data) {
layer.alert(JSON.stringify(data));
})
});
//重置(指定类别)
$("#resetBtn2").click(function(){
filter2.resetFilter(function(){
layer.msg(`重置了[类别]!`);
},'category')
})
//设置禁用
$("#setDisabledBtn2").click(function() {
filter2.setDisabled('category','jingsong')
})
})
</pre>
</div>
<div class="layfilter">
<div class="title">社交类</div>
<div id="layfilter3" lay-filter="layfilter3"></div>
<div class="show-code"><span><i class="layui-icon layui-icon-down"></i> 查看代码</span></div>
<pre class="layui-code layui-hide" style="margin: 0;">
layui.use(['layer', 'layFilter'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var layfilter = layui.layFilter;
var filter3 = layfilter.render({
elem: '#layfilter3',
labelWidth: 180,
dataSource,
color: "#1E9FFF",
success: (data)=>{
},
onChange: (status, data, dom)=>{
console.log(status,data);
}
});
})
</pre>
</div>
</div>
<script src="layui/layui.js"></script>
<script src="js/common.js"></script>
<script>
layui.config({
version: '1545041465443' //为了更新 js 缓存,可忽略
});
layui.use(['layer','code', 'layFilter'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var layfilter = layui.layFilter;
layui.code({skin: 'notepad'});
var dataSource1 =
[
{
"title": "手机品牌",
"name": "brand",
"type": "checkbox",
"allValue": "ALL",
"allName": "所有",
"data": [
{
"value": "huawei",
"name": "华为",
},
{
"value": "xiaomi",
"name": "小米",
},
{
"value": "meizu",
"name": "魅族",
},
{
"value": "huashuo",
"name": "华硕",
},
{
"value": "chuizi",
"name": "锤子",
},
{
"value": "yijia",
"name": "一加",
},
{
"value": "vivo",
"name": "vivo",
},
{
"value": "oppo",
"name": "oppo",
},
{
"value": "iphone",
"name": "iphone",
"disabled": true
}
]
},
{
"title": "UI系统",
"name": "os",
"type": "radio",
"data": [
{
"value": "Hongmeng",
"name": "鸿蒙OS",
"disabled": true
},
{
"value": "MIUI",
"name": "MIUI"
},
{
"value": "IOS",
"name": "IOS"
}
]
},
{
"title": "配送范围",
"name": "city",
"type": "checkbox",
"allName": "不限",
"data": [
{
"value": "129",
"name": "武汉"
},
{
"value": "130",
"name": "宜昌"
},
{
"value": "131",
"name": "黄冈"
},
{
"value": "132",
"name": "咸宁"
},
{
"value": "133",
"name": "孝感"
},
{
"value": "134",
"name": "恩施"
},
{
"value": "135",
"name": "荆门"
},
{
"value": "136",
"name": "荆州"
},
{
"value": "137",
"name": "黄石"
},
{
"value": "138",
"name": "襄阳"
},
{
"value": "139",
"name": "鄂州"
},
{
"value": "140",
"name": "随州"
},
{
"value": "141",
"name": "神农架",
"disabled": true
},
{
"value": "142",
"name": "潜江"
},
{
"value": "143",
"name": "仙桃"
},
{
"value": "144",
"name": "天门"
},
{
"value": "145",
"name": "十堰"
}
]
},
{
"title": "价格区间",
"name": "price",
"type": "radio",
"data": [
{
"value": "<1000",
"name": "1000以下",
"disabled": true
},
{
"value": "1000~1999",
"name": "1000~1999元"
},
{
"value": "2000~2999",
"name": "2000~2999元"
},
{
"value": "3000~3999",
"name": "3000~3999元"
},
{
"value": "4000~4999",
"name": "4000~4999元"
},
{
"value": "5000~5999",
"name": "5000~5999元"
},
{
"value": "6000~6999",
"name": "6000~6999元"
},
{
"value": "7000~9999",
"name": "7000~9999元"
},
{
"value": ">=10000",
"name": "一万元以上"
}
]
}
];
var dataSource2 = [
{
"title": "类型",
"name": "type",
"type": "checkbox",
"data": [
{
"value": "dianying",
"name": "电影",
},
{
"value": "dianshiju",
"name": "电视剧",
},
{
"value": "dongman",
"name": "动漫",
},
{
"value": "zongyi",
"name": "综艺",
},
{
"value": "yinyue",
"name": "音乐",
},
{
"value": "jilupian",
"name": "纪录片",
},
]
},
{
"title": "类别",
"name": "area",
"type": "radio",
"data": [
{
"value": "huayu",
"name": "华语",
},
{
"value": "xianggang",
"name": "香港地区",
},
{
"value": "meiguo",
"name": "美国",
},
{
"value": "ouzhou",
"name": "欧洲",
},
{
"value": "hanguo",
"name": "韩国",
},
{
"value": "riben",
"name": "日本",
},
{
"value": "taiguo",
"name": "泰国",
},
{
"value": "yindu",
"name": "印度",
},
{
"value": "other",
"name": "其他",
},
]
},
{
"title": "类别",
"name": "category",
"type": "checkbox",
"data": [
{
"value": "xiju",
"name": "喜剧",
},
{
"value": "dongzuo",
"name": "动作",
},
{
"value": "kongbu",
"name": "恐怖",
},
{
"value": "xuanyi",
"name": "悬疑",
},
{
"value": "fanzui",
"name": "犯罪",
},
{
"value": "jingsong",
"name": "惊悚",
},
{
"value": "zhanzheng",
"name": "战争",
},
{
"value": "juqing",
"name": "剧情",
},
{
"value": "aiqing",
"name": "爱情",
},
]
},
{
"title": "规格",
"name": "spec",
"type": "radio",
"data": [
{
"value": "juzhi",
"name": "巨制",
},
{
"value": "yuanxian",
"name": "院线",
},
{
"value": "dubo",
"name": "独播",
},
{
"value": "wangluodianying",
"name": "网络电影",
},
]
},
{
"title": "年代",
"name": "year",
"type": "radio",
"data": [
{
"value": "jinnian",
"name": "今年",
},
{
"value": "2020",
"name": "2020",
},
{
"value": "2019",
"name": "2019",
},
{
"value": "2018",
"name": "2019",
},
{
"value": "2017",
"name": "2017",
},
{
"value": "gengzao",
"name": "更早",
},
]
},
{
"title": "付费",
"name": "pay",
"type": "radio",
"data": [
{
"value": "mianfei",
"name": "免费",
"disabled": true
},
{
"value": "huiyuanmianfei",
"name": "会员免费",
},
{
"value": "yongquan",
"name": "用券",
},
]
}
]
var dataSource3 = [
{
"title": "性别",
"name": "gender",
"type": "radio",
"data": [
{
"value": "nan",
"name": "",
},
{
"value": "nv",
"name": "",
},
{
"value": "other",
"name": "第三性别",
"disabled": true
},
]
},
{
"title": "年龄范围",
"name": "old",
"type": "radio",
"data": [
{
"value": "18-20",
"name": "18-20岁",
},
{
"value": "20-22",
"name": "20-22岁",
},
{
"value": "22-24",
"name": "22-24岁",
},
{
"value": "24-30",
"name": "24-30岁",
},
{
"value": "30-40",
"name": "30-40岁",
},
{
"value": ">40",
"name": "40岁以上",
},
]
},
{
"title": "国家地区",
"name": "country",
"type": "checkbox",
"data": [
{
"value": "China",
"name": "中国",
},
{
"value": "eluosi",
"name": "俄罗斯",
},
{
"value": "hanguo",
"name": "韩国",
},
{
"value": "riben",
"name": "小日本",
},
{
"value": "laji",
"name": "美国",
},
]
}
]
$('.show-code span').click(function(){
var $code = $(this).parent().siblings('.layui-code');
$code.toggleClass('layui-hide');
$(this).html($code.hasClass('layui-hide') ? '<i class="layui-icon layui-icon-down"></i> 显示代码':'<i class="layui-icon layui-icon-up"></i> 隐藏代码')
})
var filter1 = layfilter.render({
elem: '#layfilter1',
itemWidth: 80 ,
labelWidth: 100,
dataSource:dataSource1,
color: "#FF5722",
success: (data)=>{
},
onChange: (status, data, dom)=>{
console.log("filter1 is change",status,data,dom);
}
});
var filter2 = layfilter.render({
elem: '#layfilter2',
labelWidth: 80,
dataSource:dataSource2,
color: "#009688",
success: (data)=>{
data.setValue('category','123')
data.setValue('day','137','138')
data.setDisabled('category','aiqing')
},
onChange: (status, data, dom)=>{
console.log("filter2 is change",status,data);
}
});
var filter3 = layfilter.render({
elem: '#layfilter3',
labelWidth: 180,
dataSource:dataSource3,
color: "#1E9FFF",
success: (data)=>{
},
onChange: (status, data, dom)=>{
console.log(status,data);
}
});
//获取选中值(直接获取)
$('#getValBtn1').click(function () {
layer.alert(JSON.stringify(filter1.getValue()));
});
//全部重置
$("#resetBtn1").click(function(){
filter1.resetFilter(function(){
layer.msg('重置了!');
})
});
//设置禁用
$("#setDisabledBtn1").click(function() {
filter1.setDisabled('brand','chuizi')
});
filter1.on('click(layfilter)', function (obj) {
console.log(obj);
})
//获取选中值(回调获取)
$('#getValBtn2').click(function () {
filter2.getValue(function (data) {
layer.alert(JSON.stringify(data));
})
});
//重置(指定类别)
$("#resetBtn2").click(function(){
filter2.resetFilter(function(){
layer.msg(`重置了[类别]!`);
},'category')
})
//设置禁用
$("#setDisabledBtn2").click(function() {
filter2.setDisabled('category','jingsong')
})
});
</script>
</body>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/lyfweb/layfilter.git
git@gitee.com:lyfweb/layfilter.git
lyfweb
layfilter
layfilter
master

搜索帮助