Layui关于如何添加连接数据库的选项卡(三)

目录

1.实现效果:

2.思路:

3.PermissionDao类(增加属性)

4.主页:jsp

5.简洁风格修改选项卡的样式:

6.关于style中的属性设置使用

7.关于Element 组件介绍:

8. Layui 中的页面进行更新和重新渲染介绍

9.关于项目重构:

9.1项目重构是什么?

9.2项目重构好处?

10.总结:

​​​​​​​


前言:我们在理解上篇的基础上,学习添加选项卡就会变得so easy,接下来我们继续实现我们的点击左侧实现添加选项卡功能。

1.实现效果:

2.思路:

       1.我们给二级的菜单设置点击事件打开对应的选项卡


       2.将内容进行改变成对应点击的内容(data中传递到方法中)

        注: 三个属性      1.title选项卡的名称对应左侧点击名称    
                                     2.content选项卡的内容        
                                     3.id选项卡的对应左侧点击id

       element这个方法是没有的,要给element扩大权限
       3.限定只能点击一次()
       4.点击左侧,选项卡能够对应的切换
       5.点击选项卡切换对应的内容

3.PermissionDao类(增加属性)

	public List<TreeVo<Permission>> menu(Permission Permission ) throws Exception {List<TreeVo<Permission>> treeov = new ArrayList<TreeVo<Permission>>();//数据库中的数据List<com.zking.entity.Permission> list = this.list(Permission, null);//循环外层for (Permission p : list) {TreeVo<Permission> treeVo = new TreeVo<>();//实例TreeVotreeVo.setId(p.getId()+"");//将p中的id添加到TreeVo中treeVo.setText(p.getName());//文本treeVo.setParentId(p.getPid()+"");Map<String, Object> map = new HashMap<String, Object>();map.put("solf", p);//(solf指的是Permission中的所有属性值)treeVo.setAttributes(map);//Attributes节点属性,这时候treeVo就有了所有属性treeov.add(treeVo);}//调用工具类buildreturn BuildTree.buildList(treeov, "0");}

4.主页:jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@include file="/common/public.jsp"%>
<!DOCTYPE>
<html>
<head>
<script type="text/javascript"></script>
<!-- 选项卡的css -->
<link rel="stylesheet" href="static/css/main.css" media="all">
<!-- 选项卡的js -->
<script type="text/javascript" src="static/js/main.js"></script>
</head><style type="text/css">.he{background-color: red;
}
body {background-image: url("static/images/R-C%20(2).jpg");background-size: cover;background-repeat: no-repeat;background-attachment: fixed; /*关键*/background-position: center;
}</style><body><div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo layui-hide-xs layui-bg-black">layoutdemo</div><!-- 头部区域(可配合layui 已有的水平导航) --><ul class="layui-nav layui-layout-left"><!-- 移动端显示 --><li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm"lay-header-event="menuLeft"><iclass="layui-icon layui-icon-spread-left"></i></li><!-- Top导航栏 --><li class="layui-nav-item layui-hide-xs"><a href="">nav 1</a></li><li class="layui-nav-item layui-hide-xs"><a href="">nav 2</a></li><li class="layui-nav-item layui-hide-xs"><a href="">nav 3</a></li><li class="layui-nav-item"><a href="javascript:;">navgroups</a><dl class="layui-nav-child"><dd><a href="">menu 11</a></dd><dd><a href="">menu 22</a></dd><dd><a href="">menu 33</a></dd></dl></li></ul><!-- 个人头像及账号操作 --><ul class="layui-nav layui-layout-right"><li class="layui-nav-item layui-hide layui-show-md-inline-block"><a href="javascript:;"> <imgsrc="//tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg"class="layui-nav-img"> tester</a><dl class="layui-nav-child"><dd><a href="">Your Profile</a></dd><dd><a href="">Settings</a></dd><dd><a href="login.jsp">Sign out</a></dd></dl></li><li class="layui-nav-item" lay-header-event="menuRight" lay-unselect><a href="javascript:;"> <iclass="layui-icon layui-icon-more-vertical"></i></a></li></ul></div><div class="layui-side layui-bg-black"><div class="layui-side-scroll"><!-- 左侧导航区域(可配合layui已有的垂直导航) --><ul id="menu" class="layui-nav layui-nav-tree" lay-filter="menu">	</ul></div></div><div class="layui-body"><!-- 内容主体区域 --><div style="padding: 15px;">
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 50px;">
</fieldset><!-- 这里的选项卡名称是demo -->
<div class="layui-tab" lay-filter="demo" lay-allowclose="true"><ul class="layui-tab-title"><li class="layui-this" lay-id="11" color:red>网站设置</li><li lay-id="22">用户管理</li><li lay-id="33">权限分配</li><li lay-id="44">商品管理</li><li lay-id="55">订单管理</li><li class="he" lay-id="55">订单管理</li></ul><div class="layui-tab-content"><div class="layui-tab-item layui-show">内容1</div><div class="layui-tab-item">内容2</div><div class="layui-tab-item">内容3</div><div class="layui-tab-item">内容4</div><div class="layui-tab-item">内容5</div></div>
</div>
</div></div><div class="layui-footer"><!-- 底部固定区域 -->底部固定区域</div></div></body>
</html>

5.简洁风格修改选项卡的样式:

思路:其实十分的简单,就是我们利用到JavaScript中类选择器的原理。

分析:在我们的jsp页面中的嵌套关系1包含了2包含了3。当我们点击了左侧的菜单,选项卡就会新增一个li标签,对应的css属性就会赋上去:

6.关于style中的属性设置使用

/*tab 选项卡*//* 去掉下边长灰色线 */
.layui-tab-title {border: none;
}/* 给tab选项加背景颜色,5个像素的圆角,每个选项隔开,字体为白式 */
.layui-tab>.layui-tab-title .layui-this {background-color: #5cb85c;border-radius: 5px;margin-left: 10px;color: white;
}
/* 去选中选项的下边线 */
.layui-tab>.layui-tab-title .layui-this:after {border: none;
}/* 选中后,背景颜色改变,5个像素的圆角 */
.layui-tab>.layui-tab-title .layui-this{background-color: #f0ad4e;border-radius: 50px;
}
/* 选中后,字体为白色 */
.layui-tab>.layui-tab-title .layui-this{color: white;
}
  1. 修改颜色值:在上述代码中,可以根据需求修改 background-color 和 color 的值来改变选中时的背景颜色和文字颜色。可以使用颜色名称、十六进制值或 RGB 值等形式来设置颜色。

这里我是使用的嵌入的css,此外还可以在jsp页面设置:

这样我们简单的选项卡样式就做好了!

7.关于Element 组件介绍:

  1. 元素选择器:Layui 使用 $ 函数作为元素选择器,类似于 jQuery 的使用方式。例如,$('#id') 通过 ID 选择元素,$('.class') 通过类选择元素等。

  2. 元素操作:Layui 提供了一些常用的操作方法,如 show() 和 hide() 用于显示和隐藏元素,addClass() 和 removeClass() 用于添加和移除类,attr() 和 removeAttr() 用于设置和移除属性等。

  3. 数据表格:通过 table.render() 方法可以渲染数据表格,并提供了一系列的配置选项,如表头、数据内容、分页等。可以使用 <table> 标签来定义表格的结构。

  4. 表单验证:Layui 提供了表单验证的方法,可以通过 form.verify() 来定义表单的验证规则,并通过 form.on() 方法监听表单提交事件,实现表单的验证和提交操作。

  5. 弹窗:通过 layer.open() 方法可以弹出一个窗口,可以设定窗口的标题、内容、按钮等属性。还可以通过 layer.alert()layer.confirm() 等方法来弹出不同类型的对话框。

  6. 标签页:Layui 提供了简单的标签页组件,可以使用 element.tabAdd() 方法添加标签页,element.tabChange() 方法切换标签页。需要在 HTML 页面中定义相应的标签结构。

  7. 分页:通过 laypage.render() 方法可以渲染分页器,并设置参数和事件回调函数。可以通过 layui.laypage 调用相关的分页操作。

  8. 模块化加载:Layui 使用模块化机制加载组件,通过 layui.use() 方法来加载和使用指定的模块。每个模块都有相应的功能,可以通过引入和使用模块来扩展 Layui 的功能。

以上是 Layui 组件库中的一些常用方法和组件,还有其他更多的功能和组件可供使用。

我们可以参考layui的官网在线示例 - Layui

8. Layui 中的页面进行更新和重新渲染介绍

在 Layui 中,如果需要对页面进行更新和重新渲染,可以使用 Layui 提供的一些方法和机制。以下是一些常用的更新渲染方法:

  1. 更新表格:如果需要更新数据表格,可以使用 table.reload() 方法。该方法可以重新加载表格数据、刷新表格样式,并支持一些参数来设置表格的重新加载行为,如重新读取接口数据、重载排序等。
// 重新加载表格数据
table.reload('tableId', {where: { // 设置参数key: value}
});

         2.更新表单:Layui 提供了 form.val() 方法来动态更新表单的值。可以通过该方法设置表单元素的值,包括输入框、下拉选择框、单选框等。

// 更新表单元素的值
form.val('formId', {field1: value1,field2: value2
});

        3.更新分页器:在使用 Layui 的分页组件时,可以使用 laypage.render() 方法来重新渲染分页器。可以通过该方法重新设置分页的参数和事件回调函数,从而更新分页器的显示和行为。

// 重新渲染分页器
laypage.render({elem: 'pageId',count: total,curr: current,jump: function(obj, first) {if (!first) {// 分页切换事件回调// 根据 obj.curr 获取当前页码进行数据加载或其他操作}}
});

       4. 刷新界面:如果需要刷新页面内容,可以使用 location.reload() 方法来进行页面的重新加载和刷新。

// 刷新页面
location.reload();

以上是一些常用的更新渲染方法,在实际的开发中,可以根据具体的需求和场景选择合适的方法来进行更新和重新渲染操作。需要注意的是,在使用 Layui 的组件时,可能需要根据具体的组件和使用方式查阅相应的文档来了解更详细的更新和渲染方法。

9.关于项目重构:

9.1项目重构是什么?

项目重构是指对现有项目进行结构和代码的重新设计和改造。

9.2项目重构好处?

以提高项目的可维护性、可扩展性和可读性。重构旨在改善软件的内部质量,而不改变其外部行为。

 

10.总结:

  1.  Layui 的选项卡组件使用 <ul> 和 <li> 标签结构来定义选项卡的标题,使用 <div> 标签结构来定义选项卡的内容。

  2. 使用 element.tabAdd() 方法来添加选项卡,通过指定标题和内容的方式来创建新的选项卡。

// 添加选项卡
element.tabAdd('tabId', {title: 'Tab Title',content: 'Tab Content'
});

        3.使用 element.tabChange() 方法来切换选项卡,通过指定选项卡的索引或ID来切换到对应的选项卡。

// 切换选项卡
element.tabChange('tabId', 'tabIndex'); // 使用索引切换
element.tabChange('tabId', 'tabId'); // 使用ID切换

好了,我们今天就分享到这里,希望这篇博文能对你的学习,工作有好的帮助!!!

​​​​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL基础篇第8章(聚合函数)

文章目录 1、聚合函数介绍1.1 AVG和SUM函数1.2 MIN和MAX函数1.3 COUNT函数 2、GROUP BY2.1 基本使用2.2 使用多个分组2.3 GROUP BY中使用WITH ROLLUP 3、HAVING3.1 基本使用3.2 WHERE和HAVING的对比 4、SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL的执行原理 1、…

Leetcode-每日一题【147.对链表进行插入排序】

题目 给定单个链表的头 head &#xff0c;使用 插入排序 对链表进行排序&#xff0c;并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。 每次迭代中&#xff0c;插入排序…

关于VUE报错“TypeError: Converting circular structure to JSON“

关于VUE报错“TypeError: Converting circular structure to JSON" 问题&#xff1a; [Vue warn]: Error in nextTick: "TypeError: Converting circular structure to JSON--> starting at object with constructor Vue| property $options -> object wit…

SonarQube安装、汉化及使用

一、环境准备 SonarQube下载&#xff1a;https://www.sonarqube.org/downloads/Java 11 或以上版本安装 多环境共存&#xff0c;指定 SonarQube 的java运行版本&#xff08;注意地址改为自己的java路径&#xff0c;最后面必须带java&#xff09;&#xff1a; 解压目录下 &#…

第二十八章:索引优化与优化查询

第二十八章&#xff1a;索引优化与优化查询 哪些维度可以进行数据库调优 索引失效、没有充分利用到索引 —— 索引建立关联查询太多JOIN(设计缺陷或不得已的需求) —— SQL优化服务器调优及各个参数设置(缓冲、线程数等) —— 调整my.cnf数据过多 —— 分库分表 虽然SQL查询…

Windows 操作系统架构介绍

Windows 操作系统架构介绍 4 种基本类型的用户模式进程用户进程服务进程系统进程环境子系统服务进程Windows 内核模式组件 重要的系统组件环境子系统和子系统 DLL子系统的启动Windows 子系统Windows 10 和 Win32k.sys 其他子系统执行体内核内核对象内核处理器控制区&#xff08…

力扣 239. 滑动窗口最大值

一、题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,5,3,6…

工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…

深入理解Linux网络——本机网络IO

文章目录 一、相关实际问题二、跨机网络通信过程1&#xff09;跨机数据发送2&#xff09;跨机数据接收3&#xff09;跨机网络通信汇总 三、本机发送过程1&#xff09;网络层路由2&#xff09;网络设备子系统3&#xff09;驱动程序 四、本机接收过程五、问题解答 系列文章&#…

Canal adapter同步MySQL到ES,部分时间字段始终同步不过来

1.需要看一下包含_date字段的映射类型&#xff0c;如果是date那么就需要格式化一下&#xff0c;如果不是直接字符串存进去就行了 DATE_FORMAT(a.IN_OUT_DATE, ‘%Y-%m-%d’) as IN_OUT_DATE, sql中也需要验证包含_date字段同时es中也是date类型的&#xff0c;是否都格式化 2.还…

0基础学习VR全景平台篇 第59篇:专业版功能-跨账号复制

功能位置示意 一、本功能将用在哪里&#xff1f; 跨账号复制&#xff0c;是指将本账号中已发布的VR漫游作品一键复制给其他账号使用。 复制成功后&#xff0c;其他账号中也会生成同样的作品以及获得相关的全景、音频、图片、视频等素材。 并且原作品和复制品可以独立编辑&am…

计算机网络实验报告——Wireshark 抓包分析

1. Wireshark软件下载 这里放一个蓝奏云下载链接&#xff1a; https://wwix.lanzoue.com/iEklv11klvje 密码:4g0n 2. Wireshark软件抓包使用 将该软件安装之后&#xff0c;双击打开&#xff0c;首先选择你的过滤器方式&#xff0c;我这里电脑连的是WiFi&#xff0c;就选择了这…