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', // 请求的URL
                 type: 'GET', // 请求类型为GET
                 success: 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', // 请求的URL
                type: 'GET', // 请求类型为GET
                success: 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和value
                        return {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
 /*
    * 查询所有角色信息用于下拉框
    * */
    @Override
    public List<RoleEntity> getRoleIdInfoData() {
        return roleMapper.getRoleIdInfoData();
    }

    /*
    * 查询所有岗位信息用于下拉框
    * */
    @Override
    public 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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux 使用 yum安装 ELK服务,yum 安装elasticsearch和Kibana(未写完)

文章目录 环境准备ELK组件介绍安装Elasticsearch安装Kibana 丢弃下载ELK 服务安装包Elasticsearch安装 Tips:关闭elasticsearch https 环境准备 ELK组件介绍 ElasticSearch &#xff1a; 是一个近实时&#xff08;NRT&#xff09;的分布式搜索和分析引擎&#xff0c;它可以用…

Chrome谷歌浏览器如何打开不安全页面的禁止权限?

目录 一、背景二、如何打开不安全页面被禁止的权限&#xff1f;2.1 第一步&#xff0c;添加信任站点2.2 第二步&#xff0c;打开不安全页面的权限2.3 结果展示 一、背景 在开发过程中&#xff0c;由于测试环境没有配置 HTTPS 请求&#xff0c;所以谷歌浏览器的地址栏会有这样一…

K8S-pod资源 探针

一.pod资源限制&#xff1a; 对pod资源限制原因&#xff1a;高并发占用所有的cpu资源、内存资源、会造成雪崩 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 方式&#xff1a; 对pod做…

金锋关晓柔短视频:成都鼎茂宏升文化传媒公司

金锋关晓柔短视频&#xff1a;情感与创意的交织 在短视频的浪潮中&#xff0c;无数创作者凭借独特的视角和创意脱颖而出。其中&#xff0c;金锋和关晓柔共同打造的短视频系列以其深厚的情感内涵和精湛的创意表达&#xff0c;成都鼎茂宏升文化传媒公司吸引了大量观众的关注&…

leetcode 1241每个帖子的评论数(postgresql)

需求 编写 SQL 语句以查找每个帖子的评论数。 结果表应包含帖子的 post_id 和对应的评论数 number_of_comments 并且按 post_id 升序排列。 Submissions 可能包含重复的评论。您应该计算每个帖子的唯一评论数。 Submissions 可能包含重复的帖子。您应该将它们视为一个帖子。…

C语言常用字符串处理函数

C语言中包含了很多对字符串处理的函数,要使用这些函数&#xff0c; 首先需要导入头文件#include <string.h> 1. strlen() -- 计算字符串长度 原型: size_t strlen(char const *string); 例: char *str "abcde"; size_t len strlen(str); // 结果为…

应用程序中的会话管理和Cookie安全指南

应用程序中的会话管理和Cookie安全指南 在现代应用程序中&#xff0c;会话管理和Cookie安全是确保用户信息和数据安全的重要组成部分。本文将详细介绍会话管理的最佳实践以及如何通过安全的Cookie设置来保护会话ID的交换。 单点登录&#xff08;SSO&#xff09;及会话管理机制…

Ubuntu24.04安装tabby-terminal-1.0.207并处理依赖

1 下载 tabby-terminal-1.0.207 地址&#xff1a; https://github.com/Eugeny/tabby/releases 点击show all 36 assets 选择 tabby-1.0.207-linux-x64.deb 并下载。 2 依赖下载 gconf2_3.2.6-3ubuntu6_amd64.deb gconf2-common_3.2.6-3ubuntu6_all.deb gconf-service_3.2.6-…

【软件设计师】网络安全

1.网络安全基础信息 网络安全的五个基本要素&#xff1a; 机密性&#xff1a;确保信息不暴露给未授权的实体或进程 完整性&#xff1a;只有得到允许的人才能修改数据&#xff0c;并且能判断出数据是否已被修改 可用性&#xff1a;得到授权的实体在需要时可以访问数据&#xff0…

视频汇聚管理安防监控平台EasyCVR程序报错“create jwtSecret del server class:0xf98b6040”的原因排查与解决

国标GB28181协议EasyCVR安防视频监控平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力&#xff0c;平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流…

整理前端新出的操作工具好用又好玩(Custom Formatter,Oxlint,Nuxt DevTools,component-party)

1.使用Custom Formatter 使vue3中的reactive object 在Chrome在console中更易理解的方式展现 启用步骤&#xff1a; 1.打开控制台&#xff0c;然后打开console设置 2.前往proferences中的Console&#xff0c;勾选Enable custom formatters选项 3.刷新页面 2.使用css Overv…

网络编程基础(一)

目录 前言 一、网络体系架构 1.1 OSI 1.2 TCP/IP协议簇体系架构 二、TCP和UDP的不同 1.TCP 2.UDP 三、网络编程基础相关概念 1.字节序 1.在计算机中有关多字节整数的存储方式&#xff0c;根据主机CPU处理数据的方式不同&#xff0c;我们将主机分为大端存储和小端存储…

(免费领源码)java#SSM#mysql第三方物流系统37852-计算机毕业设计项目选题推荐

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

Kruskal算法求最小生成树(加边法)

一、算法逻辑 想要轻松形象理解Kruskal算法的算法逻辑&#xff0c;视频肯定比图文好。 小编看过很多求相关的教学视频&#xff0c;这里选出一个我认为最好理解的这一款安利给大家。 因为他不仅讲解细致&#xff0c;而且还配合了动画演示&#xff0c;可以说把一个抽象的东西讲…

STM32高级控制定时器(STM32F103):输入捕获模式

目录 概述 1 输入捕获模式 1.1 原理介绍 1.2 实现步骤 1.3 发生输入捕获流程 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM调制占空比函数 3.2 应用函数库 4 测试 4.1 功能框图 4.2 运行结果 源代码下载地址&#xf…

微软联手清华,AI注释让文本到图像生成更符合人类偏好

获取本文论文原文PDF&#xff0c;请在公众号【AI论文解读】留言&#xff1a;论文解读 摘要 本研究展示了利用人类偏好数据集来精细调整文本到图像生成模型的潜力&#xff0c;增强了生成图像与文本提示之间的一致性。尽管取得了进展&#xff0c;现有的人类偏好数据集要么构建成…

【网络协议】划重点啦!TCP与UDP的重点面试题!!!

1. 为什么建立TCP连接是三次握手&#xff0c;而关闭连接却是四次挥手呢&#xff1f; 这是因为服务端的 LISTEN 状态下的 SOCKET 当收到 SYN 报文的建连请求后&#xff0c;它可以把 ACK和 SYN&#xff08;ACK 起应答作用&#xff0c; 而 SYN 起同步作用&#xff09; 放在一个报文…

飞控如何连接地面站

飞控连接地面站有两种方法&#xff0c;一种是USB线&#xff0c;一种是数传。 一.USB线连接 usb连接线使用安卓手机线&#xff08;一般人都有吧&#xff0c;没有很容易买和借到&#xff09; 电脑打开地面站软件。 端口选择C OM口&#xff0c;不要选择auto&#xff0c;如果你…

详细分析 tar: xx:无法 open: 没有那个文件或目录 的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法 1. 问题所示 对于此问题处理起来比较简易&#xff0c;对此放置在运维的专栏模块 在执行解压的时候出现如下问题&#xff1a; (pgm37) l228l228:~/huoyanhao/pytorch-glow-master/pytorch-glow-master$ tar -xvf celeb-tfr.tar tar: …

计算机网络路由协议之内部网关协议RIP例题与详解

互联网的路由选择协议 路由器转发表的路由协议如何得出呢&#xff1f; 使用路由算法进行&#xff0c;路由算法可以分为两类&#xff1a; 静态路由选择策略和动态路由选择策略。 静态路由选择策略&#xff1a; 非自适应路由选择&#xff0c;人工配置每一条路由。 动态路由选…