layui扩展件(xm-select)实现下拉框

2024-05-25 04:04

本文主要是介绍layui扩展件(xm-select)实现下拉框,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

layui扩展件(xm-select)实现下拉框

扩展组件 xm-select

效果图

在这里插入图片描述

html代码
									 <div class="layui-inline"><label class="layui-form-label">职位</label><div class="layui-input-inline" style="width: 150px"><input type="hidden" name="postId" id="postId"><div id="postSelect" class="xm-select-demo"></div></div></div><div class="layui-inline"><label class="layui-form-label">账户类型</label><div class="layui-input-inline" style="width: 150px"><input type="hidden" name="roleId" id="roleId"><div id="roleSelect" class="xm-select-demo"></div></div></div>
js代码
  /** 职位搜索框下拉选中框* @方法名称:postSelect* @方法:渲染职位下拉框* @方法:1方法* */var postSelect = xmSelect.render({el: '#postSelect',//渲染对象, css选择器, dom元素radio: true,//单选filterable: true,   //是否开启搜索clickClose: true,//点击是否关闭paging: true,//是否开启分页pageSize: 5,//每页显示数量searchTips: '请选择职位',//搜索提示theme: {//主题颜色color: '#78a9c0',},on: function (data) {//arr:  当前多选已选中的数据var arr = data.arr;if (arr.length > 0) {// 从选中数据中提取value值var value = arr[0].value;console.log(arr);console.log(value);// 存储所选数据的值,这里是在前端隐藏了书籍类别输入框,将提出出来的值写入到表单中便于提交到数据库中document.getElementById('postId').value = value;// 将所选数据的值写入到表单中} else {document.getElementById('postId').value = "";// 将所选数据的值写入到表单中}},data: [] //数据源})/*  /!** 像后端发送请求,获取数据来刷新账户类型数据* @方法名称:postSelect* @方法:渲染职位下拉框* @方法:1方法* *!/function getSelectInfoData() {$.ajax({url: '/user/getPostInfoData', // 请求的URLtype: 'GET', // 请求类型为GETsuccess: function (data) { // 请求成功后执行的回调函数// 将后端返回的数据转换为前端需要的格式var newData = data.map(function (item) {return {name: item.postName, value: item.id};});// 更新下拉选择框的数据postSelect.update({data: newData});}, error: function (error) { // 请求失败后执行的回调函数console.log('Error fetching data from backend: ' + error); // 在控制台输出错误信息}})}*//** 账户类型搜索框下拉选中框* @方法名称:roleSelect* @方法:渲染职位下拉框* @方法:1方法* */var roleSelect = xmSelect.render({el: '#roleSelect',//渲染对象, css选择器, dom元素filterable: true,//是否开启搜索paging: true,//是否开启分页pageSize: 5,//每页显示数量searchTips: '请选择账户类型',//搜索提示max: 1,//最大选择数量maxMethod() {//超过最大选择数量弹出提示notify.info("只能选择一个账户类型", "vcenter", "shadow", false, 1000)},clickClose: true,//点击是否关闭theme: {//主题颜色color: '#aaaaaa',maxColor: 'orange',},on: function (data) {//arr:  当前多选已选中的数据var arr = data.arr;if (arr.length > 0) {// 从选中数据中提取value值var value = arr[0].value;console.log(value);// 存储所选数据的值,这里是在前端隐藏了书籍类别输入框,将提出出来的值写入到表单中便于提交到数据库中document.getElementById('roleId').value = value;// 将所选数据的值写入到表单中} else {document.getElementById('roleId').value = "";// 将所选数据的值写入到表单中}},data: [] //数据源})/*   /!** 像后端发送请求,获取数据来刷新账户类型数据* @方法名称:roleSelect* @方法:渲染职位下拉框* @方法:1方法* *!/$.ajax({url: '/user/getRoleIdInfoData', // 请求的URLtype: 'GET', // 请求类型为GETsuccess: function (data) { // 请求成功后执行的回调函数// 将后端返回的数据转换为前端需要的格式var newData = data.map(function (item) {return {name: item.roleName, value: item.roleId};});// 更新下拉选择框的数据roleSelect.update({data: newData});}, error: function (error) { // 请求失败后执行的回调函数console.log('Error fetching data from backend: ' + error); // 在控制台输出错误信息}})*//** @方法名称:postSelect* @方法:渲染职位下拉框* @方法:2方法* *//*  var postSelect = renderSelect('#postSelect', true, true, true, 5, '请选择职位', '#78a9c0', function (data) {updateSelectValue(data, 'postId');});*//** @方法名称:roleSelect* @方法:渲染职位下拉框* @方法:2方法* *//*var roleSelect = renderSelect('#roleSelect', true, true, true, 5, '请选择账户类型', '#aaaaaa', function (data) {updateSelectValue(data, 'roleId');});*//** 公用方法renderSelect* @方法名称:renderSelect* @方法:渲染职位下拉框* @方法:2方法* *//* function renderSelect(el, radio, filterable, paging, pageSize, searchTips, color, callback) {return xmSelect.render({el: el,radio: radio,filterable: filterable,paging: paging,pageSize: pageSize,searchTips: searchTips,theme: {color: color,},on: callback,data: []});}*//** @方法名称:updateSelectValue* @方法:更新下拉选择框的数据* @方法:2方法* *//* function updateSelectValue(data, id) {var arr = data.arr;if (arr.length > 0) {var value = arr[0].value;console.log(value);document.getElementById(id).value = value;} else {document.getElementById(id).value = "";}}*//** @方法名称:getData* @方法:获取职位,账户类型数据* @方法:2方法* */getData('/user/getPostInfoData', postSelect);getData('/user/getRoleIdInfoData', roleSelect);/** @方法名称:getData* @方法:获取职位,账户类型数据* @方法:2方法* */function getData(url, select) {$.ajax({url: url, type: 'GET', success: function (data) {var newData = data.map(function (item) {// 根据不同的数据类型,设置不同的name和valuereturn {name: item.roleName || item.postName, value: item.roleId || item.id};});select.update({data: newData});//更新下拉选择框的数据}, error: function (error) {console.log('Error fetching data from backend: ' + error);}});}

后端代码

controller
    /** 下拉选项框查询* @getRoleIdInfoData* */@GetMapping("/getRoleIdInfoData")public List<RoleEntity> getRoleIdInfoData() {// 调用userInfoService的getRoleIdInfoData方法获取角色实体列表List<RoleEntity> roleEntities = userInfoService.getRoleIdInfoData();// 返回角色实体列表return roleEntities;}/** 查询职位下拉框数据* @getPostInfoData* */@GetMapping("/getPostInfoData")public List<PostEntity> getPostInfoData() {// 调用userInfoService的getPostInfoData方法获取帖子实体列表List<PostEntity> postEntities = userInfoService.getPostInfoData();// 返回帖子实体列表return postEntities;}
Service
/** 查询所有角色信息* */List<RoleEntity> getRoleIdInfoData();/** 查询所有岗位信息* */List<PostEntity> getPostInfoData();
ServiceImpl
 /** 查询所有角色信息用于下拉框* */@Overridepublic List<RoleEntity> getRoleIdInfoData() {return roleMapper.getRoleIdInfoData();}/** 查询所有岗位信息用于下拉框* */@Overridepublic List<PostEntity> getPostInfoData() {return postMapper.getPostInfoData();}
mapper
    /** 查询所有的角色信息* */List<RoleEntity> getRoleIdInfoData();/** 查询岗位信息,用于下拉框* */List<PostEntity> getPostInfoData();
xml
<!--查询所有角色信息getRoleIdInfoData--><select id="getRoleIdInfoData" resultType="RoleEntity">select roleId,role_name as roleName from sys_role</select><!--查询所有岗位信息getPostInfoData--><select id="getPostInfoData" parameterType="PostEntity">select id,post_name as postName from tb_post</select>

这篇关于layui扩展件(xm-select)实现下拉框的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1000429

相关文章

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键