xm-select下拉框,下拉树
使用案例
先上图
layui中使用xm-select下拉选择树
1.引入js
<script src="../static/res/bootstrap/js/jquery-3.4.1.min.js"></script><script src="../static/res/layui/layui.js"></script><script src="../static/res/layui/lay/modules/xm-select.js"></script>
2、html选择框位置
<div id="search_content"><div class="layui-form layui-card-header layuiadmin-card-header-auto"><div class="layui-form-item"><label class="layui-form-label">请选择学生:</label><div class="layui-input-inline"><ul id="user_sel" data-id="0"></ul></div></div></div></div>
3、js代码,渲染下拉树
//渲染下拉框var idSelectTreeRadioValue = xmSelect.render({el: "#user_sel",clickClose: true, //单选完关闭下拉框filterable: true, //搜索direction: 'down', // 展开方向 下//radio: true, //单选tree: {show: true,showFolderIcon: true,showLine: true,expandedKeys: true},height: "auto",data: [],model: {label: {type: 'text'}//, icon: 'hidden'}, //文本显示模式//处理方式on: function (data) {if (data.isAdd) {return data.change.slice(0, 1)}},});//获取下拉数据 渲染下拉树$.ajax({url: "/getSelectUsers",type: "get",//data: { },//async: false,success: function (res) {if (res.code == 200) {idSelectTreeRadioValue.update({data: res.data,autoRow: true,})}}});/********方法封装***********/
/**** @param id 要渲染的dom* @param tips 下拉框默认显示字样* @param clickClose 是否开启单选完关闭下拉框* @param filterable 是否开启搜索* @param radio 是否开启单选* @param height 高度 "auto"* @returns {*}*/
function renderselect(id,tips,clickClose,filterable,radio,height){return xmSelect.render({el: "#"+id,tips: tips,clickClose: clickClose, //单选完关闭下拉框filterable: filterable, //搜索direction: 'down', // 展开方向 下radio: radio, //单选tree: {//把tree删掉就是下拉框show: true, //是否显示树状结构showFolderIcon: true, //是否展示三角图标showLine: true, //是否显示虚线expandedKeys: true , 默认展开节点的数组, 为 true 时, 展开所有节点},height: height, //"auto"data: [],model: {label: {type: 'text'}} //文本显示模式, on: function (data) {// console.log(data)if (data.isAdd) {//$("#"+id+"input").val(data.arr[0].value)return data.change.slice(0, 1)}},});
}
4、数据格式:
data : [{value : "",name : "",selected : false,disabled : false,parent : "",children : []
}]
完整代码::
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:my_th><head><title>学生成绩管理</title><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="../static/res/layui/css/layui.css"><link rel="stylesheet" href="../static/res/layui/css/admin.css"><link rel="stylesheet" href="../static/res/css/base.css"><link rel="stylesheet" href="../static/res/css/style.css"><script src="../static/res/bootstrap/js/jquery-3.4.1.min.js"></script><script src="../static/res/layui/layui.js"></script><script src="../static/res/nav/nav.js"></script><script src="../static/res/layui/lay/modules/xm-select.js"></script></head><body class="layui-layout-body"><div class="layui-fluid layui-card" id="data_content"><!----><div id="search_content"><div class="layui-form layui-card-header layuiadmin-card-header-auto"><div class="layui-form-item"><label class="layui-form-label">请选择学生:</label><div class="layui-input-inline"><ul id="user_sel" data-id="0"></ul></div><div class="layui-inline"> <button class="layui-btn layuiadmin-btn-useradmin" id="search_btn"><!--<i class="layui-icon layui-icon-ok layuiadmin-button-btn"></i>-->选择</button><button class="layui-btn layuiadmin-btn-useradmin layui-btn-warm" id="reset_btn"><!--<i class="layui-icon layui-icon-refresh layuiadmin-button-btn"></i>-->重置</button></div></div></div></div><div id="btn_content " style="padding: 5px 5px;"></div></div><script th:inline="none">layui.use(['layer',"xmSelect","form"], function () {$ = layui.jquery;var layer = layui.layer;var xmSelect = layui.xmSelect;var form = layui.form;var selectValue = ""; //记录选择的数据//渲染下拉框var idSelectTreeRadioValue = xmSelect.render({el: "#user_sel",clickClose: true, //单选完关闭下拉框filterable: true, //搜索direction: 'down', // 展开方向 下//radio: true, //单选tree: {//把tree删掉就是下拉框show: true,showFolderIcon: true,showLine: true,expandedKeys: true},height: "auto",data: [],model: {label: {type: 'text'}//, icon: 'hidden'}, //文本显示模式//处理方式on: function (data) {if (data.isAdd) {return data.change.slice(0, 1)}},});//获取下拉数据 渲染下拉树$.ajax({url: "/getSelectUsers",type: "get",//data: { },//async: false,success: function (res) {if (res.code == 200) {idSelectTreeRadioValue.update({data: res.data,autoRow: true,})}}});//选择$('#search_btn').click(function () {selectValue = idSelectTreeRadioValue.getValue('valueStr'); //获取选中值console.log(selectValue);getlist(selectValue,1,5);});//重置$("#reset_btn").click(function(){//下拉树置空idSelectTreeRadioValue.setValue([]);//选择数据置空selectValue = "";});});</script>
</body>
</html>
下面为部分代码,不完整
单选下拉树
html页面
<ul id="bsId1" data-id="0"></ul>
渲染xm-select树方法:包含ajax请求数据
//单选下拉树
var idSelectTreeRadioValue;//code:参数 id:要渲染的dom位置 url:请求url check:默认选中的项的id flag:是否展开下拉树 disable:是否禁用
function renderSelectRadioTree(code, id, url, check, flag, disable) {var a;$.ajax({url: url,type: "post",data: {code: code},async: false,success: function (res) {if (res.code == 200) {//资金用途树形下拉框idSelectTreeRadioValue = xmSelect.render({el: "#" + id + "",disabled: disable ? disable : false, //禁用clickClose: true, //单选完关闭下拉框filterable: true, //搜索initValue: [check], //默认选中direction: 'down', // 展开方向 下tree: {show: true,showFolderIcon: true,showLine: true,expandedKeys: flag == true ? true : [-1, -3]},model: {icon: 'hidden',},height: "300px",data: res.data,model: {label: {type: 'text'}, icon: 'hidden'}, //文本显示模式//处理方式on: function (data) {if (data.isAdd) {return data.change.slice(0, 1)}},});}a = idSelectTreeRadioValue;}})return a;
}
调用方法渲染树:
var editPreBill = new Object(); //存放修改时,回显基本表信息var url = "/elementDetail/getDetailByAllTree";// 功能分类 树var bsIdSelect = renderSelectRadioTree('BUDGET_SUBJECT',"bsId1",url,editPreBill.bsId,false);
获取选中的值:
var bsidSelCheck = bsIdSelect.getValue('valueStr'); //获取选中值params['bsId'] = bsidSelCheck;$("#bsName").val(bsIdSelect.getValue('nameStr')); //选中值的名字
下拉框
html:
<select name="pttId" id="pttId" lay-filter="pttId" lay-verify="required"><option value=""></option>
</select>
js:
// 项目类别-时间分类renderSelectCheck('PROJ_TIME_TYPE','pttId',editPreBill.pttId);//获取要素数据 下拉框渲染 可以默认选中的下拉框function renderSelectCheck(code,id,check){$.ajax({url:"/elementDetail/getDetailByCode",type:"post",data:{code:code},success:function(res){if (res.code==200){for (var i = 0; i < res.data.length ; i++) {if (check == res.data[i].id){$("#"+id+"").append("<option value=\""+res.data[i].id+"\" selected>"+res.data[i].name+"</option>");}else{$("#"+id+"").append("<option value=\""+res.data[i].id+"\">"+res.data[i].name+"</option>");}}//重新渲染layui.form.render("select");}else{//layer.msg(res.msg);}}})}
复选下拉树 多选下拉树
//复选框下拉树
var Tree;function Trees(code, id, flag) {var a;$.ajax({url: "/elementDetail/getDetailByAllTree",type: "post",data: {code: code},async: true,success: function (res) {if (res.code == 200) {//资金用途树形下拉框Tree = xmSelect.render({el: "#" + id + "",filterable: true,language: 'zn',tree: {show: true,showFolderIcon: true,showLine: true,expandedKeys: flag ? [-1, -3] : true},height: "300px",data: res.data});}a = Tree;}})return a;
}
下拉树批量初始化,获取值方法
HTML:
<label class="layui-form-label">功能分类</label>
<div class="layui-input-inline" id="bsId"></div><label class="layui-form-label">资金用途</label>
<div class="layui-input-inline" id="muId"></div>
JS:
//顶部搜索 xmlSelect下拉框 属性
var searchSelectOption = {//资金用途moneyUse: {requestUrl: '/elementDetail/getDetailByAllTree',requestParam: {code: 'MONEY_USE'},requestName: 'muId',elementId: 'muId',instance: null},//功能分类budgetSubject: {//获取数据的地址requestUrl: '/elementDetail/getDetailByAllTree',//请求携带参数requestParam: {code: 'BUDGET_SUBJECT'},//表格搜索查询时请求的name属性(后端controller接收的名字)requestName: 'bsId',//html标签idelementId: 'bsId',//xmSelect下拉框组件实例instance: null}
}
//初始化xm下拉框
xmSelectBatchInitialization(searchSelectOption);//提交的时候在去获取值
//获取xmSelect下拉框选中的值xmSelectBatchGetValueList(searchSelectOption, requestParam);
JS:
/*** xmSelect 下拉框批量初始化* xmSelectOptioin结构例子:* var xmSelectOption = {* moneyUse : {* ignoreInit: {Boolean} , //批量初始化时是否忽略,你自己手动初始化* requestUrl: {String} , //初始化时 Ajax请求 的地址* requestParam: {Object} , //初始化时 Ajax请求 的参数* elementId: {String} , //页面上元素id* fmtResult: {Function} , //对请求响应的结果集进行过滤,格式化等 处理函数* requestName: {String} , //表单提交时此下拉框的 name属性* option: {Object} , //XmSelect初始化可配置属性* instance: null, //初始化完成后,存储 XmSelect实例* },* idxSystem : {* ...* }* }* @param xmSelectOption 初始化属性* @author GongLiHai* @date 2020/8/31 18:47*/
function xmSelectBatchInitialization(xmSelectOption) {$.each(xmSelectOption, function (key, value) {//忽略初始化的,直接返回if (value.ignoreInit) {return true;}//请求数据$.get(value.requestUrl, value.requestParam, function (result) {var option = {el: '#' + value.elementId,data: value.fmtResult ? value.fmtResult(result) : result.data,name: value.requestName,filterable: true, //搜索tree: {show: true //可折叠结构}}//添加设置的属性$.each(value.option, function (optionKey, optionValue) {option[optionKey] = optionValue;});//生成下拉框实例value.instance = xmSelect.render(option);});});
}/*** xmSelect 下拉框批量获取 选择的值* @param xmSelectOption 初始化属性* @param xmSelectValues 选择的值* @author GongLiHai* @date 2020/8/31 18:47*/
function xmSelectBatchGetValue(xmSelectOption, xmSelectValues) {$.each(xmSelectOption, function (key, value) {xmSelectValues[value.requestName] = value.instance.getValue('value').toString();});
}
//获取select框值function xmSelectBatchGetValueList(xmSelectOption, xmSelectValues) {$.each(xmSelectOption, function (key, value) {xmSelectValues[value.requestName] = value.instance.getValue('value');});}
xm-select下拉框,下拉树相关推荐
- 除了下拉框/下拉联想词优化推广,还可以做那些网络推广?
现在的企业,不能像几年前,单纯的搭建好网站或网络平台,具备了网络推广完善的功能,做做SEOer就万事大吉了. 因为这几年网络变化太大了,自媒体.小视频的爆发,所以现在我们更需要结合多平台多渠道多方位的 ...
- php select下拉框,下拉框处理(select)
在UI自动化测试过程中,经常会遇到一些下拉框,我们有三种可选方式来操作下拉框. 第一种方法 基于webdriver的两次click,很容易出现问题,不建议使用.(由于部分下拉框在点击一次后,失去焦点再 ...
- vxe-table可编辑表格使用下拉框时下拉框层级问题
在vue项目中,对于表格的复杂操作,使用vxe-table会带给我们很多很多的方便. 现在记录一个使用vxe-table时可编辑表格的下拉框的层级问题 vxe-table提供了两种选择 :edit-r ...
- html5日期不联动下拉框,下拉框联动问题 赋值时候失效
我想将三个下拉框变成一个组件 初始是没问题的 下拉福州市可以读取接口获取福州市的几个区 然后选区 查到街道 但是直接传值的时候一次性把三个都传进去导致第一个读取了 后面两个被重置了 一个一个传又破坏了 ...
- css 下拉框 下三角形
css 用border属性实现下拉框三角形 效果如图 思路 设置一个空元素,设置左右边框以及上边框,其宽度即为三角形的高, 效果如图: 1.当设置上边框以及左右边框,再将左右边框颜色透明,则为下三角 ...
- bootstrap-select 插件 搜索下拉框 下拉选项太多导致下拉不显示
用bootstrap-select的做搜索下拉框的时候,如果下拉的选项太多的话,初次就会显示不出来,只有输入搜索内容时候才会显示内容.使用体验极为不佳.我用到的是1000+选项就会出现这问题. 看了源 ...
- select下拉框下拉跳转代码
2019独角兽企业重金招聘Python工程师标准>>> <select name="dh" onchange="javascript:locati ...
- zTree(二)树状图下拉框
需求 添加.修改终端需要选择组织,组织是多级架构(树状图显示). 思路 1.因为下拉框需要树状图显示,所以排除使用select做下拉框,改用input 模拟下拉框 2.树状图采用zTree插件 开工 ...
- html6+树状下拉列表,layui+ztree 树状下拉框
一.效果图 [关闭] [展开] 二.代码 [HTML]注:布局一定要用DIV不是select否则效果···· 部门 @* *@ [js] ① 以下为固定方法 function initSelectTr ...
- element 下拉框中树节点选中之后不收回下拉框
element UI 下拉框选项包含树节点 <sg-selectref="select"size="small"clearableplaceholder= ...
最新文章
- 在Android使用XML文件控制按钮文字在各种状态下的颜色
- 16个概念带你入门 Kubernetes
- iOS培训章节——C++函数的重载
- 使用Oracle验证外部数据
- Linux namespace之:network namespace
- 一阶电路中的时间常数_你知道RC电路和RL电路中时间常数的来源么?
- cdh中hue集成hbase_HBase版本 | Cloudera Enterprise 6.2.0发布
- C++支持参数个数不确定的函数
- 计算机一级天文小知识,不得了,天文知识增加了! | 第20期
- m_map投影_MATLAB——m_map指南(1)
- 雷士灯wifi控制方法_雷士照明驱动 WiFi 可调光 怎么设置
- C语言——数组定义及使用
- 开源python语音助手_python实现语音助手小思同学
- macOS 上都有哪些既免费、又实用的工具?| 新手问号
- BootCamp Intel Mac上安装Windows全教程
- 机器学习分享——反向传播算法推导
- (转)世界上最美丽的英文
- (个人)AR电子书系统创新实训第一周(1)
- 行之有效:第一章观后有感
- 最新地铁路线图云开发小程序源码+实测可用
热门文章
- nodejs 学习笔记
- 一个和CSDN类似的博客网站
- .NET Framework 概述
- 记录一次nodejs爬取《17吉他》所有吉他谱
- 倾听用户呼吁 Skype决定开源
- 可口可乐造型设计_一组可口可乐创意海报设计和标识视觉形象设计
- Yocto Issues | The TMPDIR: /home12/calm.xia/poky/qemuarm/tmp can't be located on nfs.
- modelsim ddr3仿真lattice diamond
- Threadx tx_thread_create创建线程
- 如何从screen Attached 恢复