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

news2024/11/24 8:57:03

目录

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<>();//实例TreeVo
			treeVo.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);
		}
		//调用工具类build
		return 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">layout
				demo</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"><i
					class="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:;">nav
						groups</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:;"> <img
						src="//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:;"> <i
						class="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.coloradmin.cn/o/745724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何解决git中拉取或提交代码出现的ssl证书问题?

问题描述 执行命令的时候&#xff0c;出现"…certificate problem…"报错&#xff0c;一般在执行"git push“ (推送分支) 或者 “git clone”(克隆仓库)时出现&#xff0c;原因时因为SSL安全验证问题&#xff0c;不能获取到本地的的证书。那么如何解决这个问题…

Linus再发飙:这就是一堆垃圾!

Linux 6.3 内核的合并窗口已开启&#xff0c;Linus Torvalds 也收到了大量的 PR&#xff0c;目前总体看来正在有序进行。但 Linus 对部分合并请求的日志信息非常不满&#xff1a;“我之前就已经说过&#xff0c;很显然现在我需要再重复一次&#xff0c;如果你懒得解释为什么会存…

【UE4 C++】根据指定路径生成静态网格体

在上一篇博客中&#xff08;【UE C】蓝图调用C函数&#xff09;&#xff0c;我们用C创建了一个蓝图函数库&#xff0c;本篇文章在这个蓝图函数库基础上增加一个方法&#xff0c;该方法只需输入一个文件目录路径&#xff0c;就可在场景中生成该目录下得所有静态网格体。&#xf…

Kafka学习笔记(高级篇)

目录 高级功能 高效读写 涉及技术 ZooKeeper 自定义拦截器 监控 延迟消费 一些改进手段 高级功能 高效读写 涉及技术 高吞吐量&#xff1a;Kafka 每秒可以处理数百万消息。这是因为 Kafka 消息的处理是以批处理&#xff08;Batching&#xff09;的方式来完成的&…

python+unittest+requests+HTMLRunner搭建接口测试框架,执行用例请求多个不同请求方式的接口

问题描述&#xff1a; 搭建接口测试框架&#xff0c;执行用例请求多个不同请求方式的接口 实现步骤&#xff1a; ① 创建配置文件config.ini&#xff0c;写入部分公用参数&#xff0c;如接口的基本url、测试报告文件路径、测试数据文件路径等配置项 1 [DATABASE] 2 data_addre…

一文带你快速了解如何在Linux上部署项目

文章目录 前言一、手工部署项目1.在IDEA中开发SpringBoot项目并打成jar包2. 将jar包上传到Linux服务器3. 输入指令启动SpringBoot程序4. 检查防火墙&#xff0c;确保80端口&#xff08;项目端口&#xff09;对外开放&#xff0c;访问SpringBoot项目5. 在windows访问项目6. 改为…

Layui选项卡Tab:完美实现网页内容分类与导航

目录 什么是Layui选项卡&#xff1f; Layui选项卡的作用 实现步骤 1、编写公共jsp&#xff08;header.jsp&#xff09; 2、jsp界面&#xff08;main.jsp&#xff09; 3、JS代码&#xff08;main.js&#xff09; 4、PermissionDao类的修改 5、最终运行结果 什么是Layui选…

数据备份与还原,(mysqldump,source)索引(index),创建视图(view)

一、备份与还原 /***************************样例表***************************/ CREATE DATABASE booksDB; use booksDB;CREATE TABLE books (bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL ); INSERT INTO books VALUES (11078…

【i阿极送书——第五期】《Python机器学习:基于PyTorch和Scikit-Learn》

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;…

【CANN训练营】Atlas 200I DK A2开发板运行ChatYuan-large对话机器人应用

环境介绍 PC 操作系统&#xff1a;Ubuntu 22 内存&#xff1a;32GB Python&#xff1a;3.8 开发板 华为Atlas 200I DK A2 内存&#xff1a;4G NPU&#xff1a;昇腾310B 环境准备 只需要一台Linux 系统的PC机即可 Python版本需要3.7、3.8、3.9 准备CANN ToolKit 下载CANN T…

Centos6.5 用户权限例题

例题一&#xff1a;为网站管理员创建一个FTP帐户webmaster&#xff0c;将其加入到ftp组中&#xff0c;其登录的主目录为WEB站点的主目录/var/www/jnds.net&#xff0c;设置其为系统帐户&#xff0c;但却没有登录系统的权限&#xff0c;备注该用户为“FTP User” 解&#xff1a…

【RocketMQ】005-Docker 部署 RocketMQ

【RocketMQ】005-Docker 部署 RocketMQ 文章目录 【RocketMQ】005-Docker 部署 RocketMQ一、部署1、拉取镜像MQ 镜像可视化平台镜像 2、创建挂载目录创建 nameserver 挂载目录创建 broker 目录创建 broker 配置文件目录 3、编辑配置文件4、启动服务启动 nameserver启动 broker启…

pytorch保存、加载和解析模型权重

1、模型保存和加载 主要有两种情况&#xff1a;一是仅保存参数&#xff0c;二是保存参数及模型结构。 保存参数&#xff1a; torch.save(net.state_dict()) 加载参数&#xff08;加载参数前需要先实例化模型&#xff09;&#xff1a; param torch.load(param.pth) net.load_…

AWS 中文入门开发教学 47- S3 - 基本的使用

知识点 S3 - 基本的使用方法实战演习 创建存储桶 阻止所有公网访问: 打开版本控制、添加标签: KMS是收费的: 创建成功: 上传文件 选择存储类:

这是中国人工智能AI激情澎湃的一周

融资 贝联珠贯完成 5000 万元天使轮融资&#xff0c;业务涵盖 AI 型算力市场据投中网报道&#xff0c;近日&#xff0c;云资源管理服务提供商浙江贝联珠贯宣布完成 5000 万元天使轮融资&#xff0c;由元璟资本、红杉中国种子基金和舟轩股权投资。 盛大网络 CEO 陈天桥再投 1…

springboot就业信息管理系统

本次设计任务是要设计一个就业信息管理系统&#xff0c;通过这个系统能够满足就业信息管理功能。系统的主要功能包括&#xff1a;首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;导师管理&#xff0c;企业管理&#xff0c;招聘信息管理&#xff0c;应聘信息管理&…

DMA是一个超级简化版的cpu吗?

来自群友的讨论 我的理解是DMA某种程度相当于一个CPU是因为DMA拥有访问其他地址空间的权利。 从系统角度考虑&#xff0c;对整个系统的观测者一般CPU DSP GPU DMA是一个级别&#xff0c;其他都是slave。cache一致性POC是要保证所有观测者&#xff0c;包括DMA观测到相同数据。 …

【学习bubbliiiing代码-2】从txt中获取类别名称以及类别数量

本系列主要用于自我学习&#xff0c;参考的为bubbliiiing的代码 写一个优雅的&#xff1a;从txt文件中获得类别名与类别数的函数&#xff0c;如下&#xff1a; #---------------------------------------------------# # 获得类别名与类别数 #-----------------------------…

Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接

Python爬虫:利用JS逆向抓取携程网景点评论区图片的下载链接 1. 前言2. 实现过程3. 运行结果 1. 前言 文章内容可能存在版权问题&#xff0c;为此&#xff0c;小编不提供相关实现代码&#xff0c;只是从js逆向说一说到底怎样实现这个的过程&#xff0c;希望能够帮助到那些正在做…

主动配电网故障恢复的重构与孤岛划分统一模型(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…