layui-form+open+table

重点在于把open的提交按钮变为与form表单内的提交按钮样式一样

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Layui</title>
		<meta name="renderer" content="webkit">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
		<link rel="stylesheet" href="layui/css/layui.css" media="all">
		<!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
	</head>
	<body>
		<form id="form" class="layui-form" action="" lay-filter="example" style="display: none;">
			<div class="layui-form-item">
				<label class="layui-form-label">姓名</label>
				<div class="layui-inline">
					<input type="text" name="name" lay-verify="name" autocomplete="off" placeholder="请输入姓名" class="layui-input">
				</div>
			</div>

			<div class="layui-form-item">
				<label class="layui-form-label">账户</label>
				<div class="layui-inline">
					<input type="text" name="username" lay-verify="username" autocomplete="off" placeholder="请输入姓名" class="layui-input">
				</div>
			</div>

			<div class="layui-form-item">
				<label class="layui-form-label">密码</label>
				<div class="layui-inline">
					<input type="text" name="password" lay-verify="password" placeholder="请输入密码" autocomplete="off" class="layui-input">
				</div>
			</div>



			<div class="layui-form-item">
				<label class="layui-form-label">性别</label>
				<div class="layui-inline">
					<input type="radio" name="sex" value="1" title="男" checked="">
					<div class="layui-unselect layui-form-radio layui-form-radioed"><i class="layui-anim layui-icon"></i>
					</div>
					<input type="radio" name="sex" value="0" title="女">
					<div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon"></i>
					</div>
				</div>
			</div>

			<div class="layui-form-item">
				<label class="layui-form-label">出生日期</label>
				<div class="layui-input-inline">
					<input type="text" name="birthday" readonly="readonly" id="birthday" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off"
					 class="layui-input">
				</div>
			</div>

			<div class="layui-form-item">
				<label class="layui-form-label">创建时间</label>
				<div class="layui-input-inline">
					<input type="text" name="createTime" readonly="readonly" id="createTime" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off"
					 class="layui-input">
				</div>
			</div>

<!-- 			<div class="layui-form-item">
				<div class="layui-input-block">
					<button type="submit" class="layui-btn  " lay-submit="" lay-filter="demo1">立即提交</button>
				</div>
			</div> -->
		</form>



		<table class="layui-hide" id="test" lay-filter="test"></table>

		<script type="text/html" id="toolbarDemo">
			<div class="layui-btn-container">
    <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
    <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
    <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
  </div>
</script>
		<script type="text/html" id="barDemo">
			<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>


		<script src="layui/layui.js" charset="utf-8"></script>
		<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->

		<script>
			layui.use(['table', 'layer', 'jquery', 'laydate', 'form'], function() {
				var table = layui.table;
				var layer = layui.layer;
				var $ = layui.jquery;
				var laydate = layui.laydate;
				var form = layui.form;
				//日期
				laydate.render({
					elem: '#birthday'
				});
				laydate.render({
					elem: '#createTime'
				});
				//温馨提示:默认由前端自动合计当前行数据。从 layui 2.5.6 开始: 若接口直接返回了合计行数据,则优先读取接口合计行数据。
				//详见:https://www.layui.com/doc/modules/table.html#totalRow
				table.render({
					elem: '#test',
					url: 'data.json',
					toolbar: '#toolbarDemo',
					title: '用户数据表',
					totalRow: true,
					cols: [
						[{
							type: 'checkbox',
							fixed: 'left'
						}, {
							field: 'id',
							title: 'ID',
							fixed: 'left',
							unresize: true,
							sort: true,
							totalRowText: '合计'
						}, {
							field: 'name',
							title: '用户名',
							edit: 'text'
						}, {
							field: 'username',
							title: '账户',
							edit: 'text'
						}, {
							field: 'password',
							title: '密码',
							sort: true
						}, {
							field: 'sex',
							title: '性别',
							width: 80,
							edit: 'text',
							sort: true,
							templet: function(d) {
								return d.sex == 1 ? "男" : "女"
							}
						}, {
							field: 'age',
							title: '年龄',
							sort: true,
							totalRow: true
						}, {
							field: 'birthday',
							title: '生日',
						}, {
							field: 'createTime',
							title: '创建时间',
						}, {
							fixed: 'right',
							title: '操作',
							toolbar: '#barDemo',
						}]
					],
					page: true
				});

				//工具栏事件
				table.on('toolbar(test)', function(obj) {
					var checkStatus = table.checkStatus(obj.config.id);
					switch (obj.event) {
						case 'getCheckData':
							var data = checkStatus.data;
							layer.alert(JSON.stringify(data));
							break;
						case 'getCheckLength':
							var data = checkStatus.data;
							layer.msg('选中了:' + data.length + ' 个');
							break;
						case 'isAll':
							layer.msg(checkStatus.isAll ? '全选' : '未全选')
							break;
					};
				});

				//监听行工具事件
				table.on('tool(test)', function(obj) {
					var data = obj.data;
					//console.log(obj)
					if (obj.event === 'del') {
						layer.confirm('真的删除行么', function(index) {
							obj.del();
							layer.close(index);
						});
					} else if (obj.event === 'edit') {
						layer.open({
							title: "用户信息编辑",
							type: 1,
							content: $("#form"),
							area: ['400px', '450px'],
							btn: ["提交", "取消"],
							success: function(layeror, index) {
								indexaa = index;
								form.val("example", { //formTest 即 class="layui-form" 所在元素属性 lay-filter="" 对应的值
									name: data.name, // "name": "value"
									username: data.username,
									password: data.password,
									sex: data.sex,
									age: data.age,
									birthday: data.birthday,
									createTime: data.createTime
								});
								//添加样式,与要提交的form表单的样式一样。
								layeror.addClass("layui-form")
								//添加lay-submit属性才能对提交事件进行处理
								layeror.find(".layui-layer-btn0").attr("lay-filter", "demo1").attr("lay-submit", "");
							},
							yes: function(index, layeror) {
								//对那个按钮进行提交
								form.on("submit(demo1)", function(data) {
									obj.update({
										name: data.field.name,
										username: data.field.username,
										password: data.field.password,
										sex: data.field.sex,
										age: data.field.age,
										birthday: data.field.birthday,
										creatTime: data.field.creatTime
									})
									layer.close(indexaa);
									return false;
								})
							}
						})
					}
				});
			});
		</script>

	</body>
</html>

以下是基于Spring Boot、FullCalendar和Layui的增删改查完整案例。 1. 创建Spring Boot项目 首先,我们需要创建一个Spring Boot项目。你可以使用Spring Initializr,也可以手动创建项目。 2. 添加依赖 在pom.xml文件中添加以下依赖: ``` <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.6.0</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>fullcalendar</artifactId> <version>3.10.2</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>layui</artifactId> <version>2.5.7</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> </dependencies> ``` 3. 创建实体类 创建一个实体类Event,用于表示日历事件: ``` @Entity @Table(name = "event") public class Event { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private Date start; private Date end; private String color; private String description; // getter and setter } ``` 4. 创建Repository 创建一个Repository类EventRepository,用于与数据库进行交互: ``` @Repository public interface EventRepository extends JpaRepository<Event, Long> { } ``` 5. 创建Controller 创建一个Controller类EventController,用于处理HTTP请求: ``` @Controller public class EventController { @Autowired private EventRepository eventRepository; @GetMapping("/") public String index() { return "index"; } @GetMapping("/events") @ResponseBody public List<Event> getEvents() { return eventRepository.findAll(); } @PostMapping("/events") @ResponseBody public Event addEvent(@RequestBody Event event) { return eventRepository.save(event); } @PutMapping("/events/{id}") @ResponseBody public Event updateEvent(@PathVariable Long id, @RequestBody Event event) { event.setId(id); return eventRepository.save(event); } @DeleteMapping("/events/{id}") @ResponseBody public void deleteEvent(@PathVariable Long id) { eventRepository.deleteById(id); } } ``` 6. 创建Thymeleaf模板 创建一个Thymeleaf模板index.html,用于显示日历和表单: ``` <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>FullCalendar + Layui Demo</title> <link href="/webjars/fullcalendar/3.10.2/fullcalendar.min.css" rel="stylesheet"/> <link href="/webjars/layui/2.5.7/css/layui.css" rel="stylesheet"/> <script src="/webjars/jquery/3.6.0/jquery.min.js"></script> <script src="/webjars/fullcalendar/3.10.2/fullcalendar.min.js"></script> <script src="/webjars/layui/2.5.7/layui.all.js"></script> <script th:inline="javascript"> $(document).ready(function () { var calendar = $('#calendar').fullCalendar({ height: 600, editable: true, eventLimit: true, events: { url: '/events', error: function () { alert('there was an error while fetching events!'); } }, eventDrop: function (event, delta, revertFunc) { updateEvent(event); }, eventResize: function (event, delta, revertFunc) { updateEvent(event); }, eventClick: function (event, jsEvent, view) { layer.open({ type: 1, area: ['500px', '400px'], title: '编辑事件', content: $('#eventForm'), btn: ['保存', '取消'], yes: function (index, layero) { var title = $('#title').val(); var start = $('#start').val(); var end = $('#end').val(); var color = $('#color').val(); var description = $('#description').val(); var eventData; if (title) { eventData = { title: title, start: start, end: end, color: color, description: description }; updateEvent(eventData, event.id); calendar.fullCalendar('renderEvent', eventData, true); } else { alert('请填写标题'); return false; } layer.close(index); } }); $('#title').val(event.title); $('#start').val(moment(event.start).format('YYYY-MM-DD HH:mm:ss')); $('#end').val(moment(event.end).format('YYYY-MM-DD HH:mm:ss')); $('#color').val(event.color); $('#description').val(event.description); } }); $('#addEvent').on('click', function () { layer.open({ type: 1, area: ['500px', '400px'], title: '添加事件', content: $('#eventForm'), btn: ['保存', '取消'], yes: function (index, layero) { var title = $('#title').val(); var start = $('#start').val(); var end = $('#end').val(); var color = $('#color').val(); var description = $('#description').val(); var eventData; if (title) { eventData = { title: title, start: start, end: end, color: color, description: description }; $.ajax({ url: '/events', type: 'POST', contentType: 'application/json', data: JSON.stringify(eventData), success: function (event) { eventData.id = event.id; calendar.fullCalendar('renderEvent', eventData, true); } }); } else { alert('请填写标题'); return false; } layer.close(index); } }); }); function updateEvent(eventData, eventId) { if (eventId) { $.ajax({ url: '/events/' + eventId, type: 'PUT', contentType: 'application/json', data: JSON.stringify(eventData), success: function () { calendar.fullCalendar('refetchEvents'); } }); } else { $.ajax({ url: '/events', type: 'POST', contentType: 'application/json', data: JSON.stringify(eventData), success: function (event) { eventData.id = event.id; calendar.fullCalendar('renderEvent', eventData, true); } }); } } }); </script> </head> <body> <div id="calendar"></div> <div id="eventForm" style="display: none;"> <div class="layui-form-item"> <label class="layui-form-label">标题</label> <div class="layui-input-inline"> <input type="text" id="title" name="title" lay-verify="required" placeholder="请输入标题" autocomplete="off" class="layui-input"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">开始时间</label> <div class="layui-input-inline"> <input type="text" id="start" name="start" lay-verify="required" placeholder="请选择开始时间" autocomplete="off" class="layui-input"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">结束时间</label> <div class="layui-input-inline"> <input type="text" id="end" name="end" lay-verify="required" placeholder="请选择结束时间" autocomplete="off" class="layui-input"/> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">颜色</label> <div class="layui-input-inline"> <input type="color" id="color" name="color" value="#3788d8" class="layui-input"/> </div> </div> <div class="layui-form-item layui-form-text"> <label class="layui-form-label">备注</label> <div class="layui-input-block"> <textarea id="description" name="description" placeholder="请输入备注" class="layui-textarea"></textarea> </div> </div> </div> <div class="layui-btn-group"> <button class="layui-btn" id="addEvent">添加事件</button> </div> </body> </html> ``` 7. 运行项目 运行项目,访问http://localhost:8080,即可看到一个包含日历和表单的页面。 现在,你可以添加、编辑和删除日历事件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值