SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频
文章目录
- 一、项目演示
- 二、项目介绍
- 三、运行截图
- 四、主要代码
- 1.日历渲染代码:
- 2.保存备忘录代码:
- 3.删除备忘录代码:
一、项目演示
项目演示地址: 视频地址
二、项目介绍
项目描述:这是一个基于SpringBoot+uniApp框架开发的日历备忘录小程序系统。首先,这是一个前后端分离的项目,这项目代码简洁规范,注释说明详细,易于理解和学习,项目中的日历是纯代码手写,没借助现成的组件,非常适合SpringBoot+uniApp框架的初学者进行学习。
项目功能:此项目有查看日历、查看备忘录信息、添加备忘录信息、修改备忘录信息、删除备忘录信息的功能。
应用技术:SpringBoot + uniApp + Vue + MySQL + MyBatis + uView
运行环境:IntelliJ IDEA + MySQL + JDK1.8 + Maven3.6.3+ Node14.16.1+ 微信开发者工具+ Hbuilder(这些开发工具都会免费提供)
三、运行截图




四、主要代码
1.日历渲染代码:
<view class="calendar-area"><view class="thead"><view class="item" v-for="(item,index) in weekName" v-text="item"></view></view><view class="tbody" v-for="(item,index) in weeks" :key="index"><view class="day" v-for="(day, i) in item" :key="i" @click="clickDate(day)"><view :class="{ holiday: isHoliday(day), selected: isSelected(day), dayArea: true }"><view v-text="day"></view><u-badge v-if="isBadgeShow(day)" type="dot" :is-dot="true"></u-badge></view></view></view>
</view>initCalendar() {const startOfMonth = moment([this.year, this.month]).startOf('month');const endOfMonth = moment([this.year, this.month]).endOf('month');const daysInMonth = endOfMonth.date();const weeks = [];let currentWeek = [];let currentDay = startOfMonth.clone();// 填充当前月的第一周之前的空白单元格for (let i = 0; i < startOfMonth.day(); i++) {currentWeek.push("");}// 填充当前月的所有天数for (let i = 1; i <= daysInMonth; i++) {currentWeek.push(i);if (currentDay.day() === 6 || i === daysInMonth) {weeks.push(currentWeek);currentWeek = [];}currentDay.add(1, 'day');}// 填充当前月的最后一周之后的空白单元格while (currentWeek.length > 0 && currentWeek.length < 7) {currentWeek.push("");}if (currentWeek.length > 0) {weeks.push(currentWeek);}this.weeks = weeks;
}
2.保存备忘录代码:
@Overridepublic ResponseDTO<Boolean> saveMemo(MemoDTO memoDTO) {// 进行统一表单验证CodeMsg validate = ValidateEntityUtil.validate(memoDTO);if (!validate.getCode().equals(CodeMsg.SUCCESS.getCode())) {return ResponseDTO.errorByMsg(validate);}Memo memo = CopyUtil.copy(memoDTO, Memo.class);if(CommonUtil.isEmpty(memo.getId())) {// 添加操作memo.setId(UuidUtil.getShortUuid());memo.setCreateTime(new Date());if(memoMapper.insertSelective(memo) == 0) {return ResponseDTO.errorByMsg(CodeMsg.MEMO_ADD_ERROR);}} else {// 修改操作if(memoMapper.updateByPrimaryKeySelective(memo) == 0) {return ResponseDTO.errorByMsg(CodeMsg.MEMO_EDIT_ERROR);}}return ResponseDTO.successByMsg(true, "保存成功!");}
3.删除备忘录代码:
@Overridepublic ResponseDTO<Boolean> deleteMemo(MemoDTO memoDTO) {if(CommonUtil.isEmpty(memoDTO.getId())) {return ResponseDTO.errorByMsg(CodeMsg.DATA_ERROR);}// 删除备忘信息if(memoMapper.deleteByPrimaryKey(memoDTO.getId()) == 0) {return ResponseDTO.errorByMsg(CodeMsg.MEMO_DELETE_ERROR);}return ResponseDTO.successByMsg(true, "删除成功!");}
相关文章:
SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频
文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.日历渲染代码:2.保存备忘录代码:3.删除备忘录代码: 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootuniApp框架开…...
分类预测 | MFO-LSSVM飞蛾扑火算法优化最小二乘支持向量机多特征分类预测Matlab实现
分类预测 | MFO-LSSVM飞蛾扑火算法优化最小二乘支持向量机多特征分类预测Matlab实现 目录 分类预测 | MFO-LSSVM飞蛾扑火算法优化最小二乘支持向量机多特征分类预测Matlab实现分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现MFO-LSSVM飞蛾扑火算法优化最小二…...
Linux 和 Windows 区别
1. 文件组织 (1)目录结构 Linux:采用**单一根目录(/)**结构,所有文件和设备都挂载在这个目录下。 典型目录: /home/(用户目录)/etc/(配置文件)/bin/(系统可执行文件)/dev/(设备文件)/mnt/(挂载点)Windows:采用多个驱动器(C:\, D:\),每个分区是一个独立的…...
Android - Handler使用post之后,Runnable没有执行
问题:子线程创建的Handler。如果 post 之后,在Handler.removeCallbacks(run)移除了,下次再使用Handler.postDelayed(Runnable)接口或者使用post时,Runnable是没有执行。导致没有收到消息。 解决办法:只有主线程创建的…...
vscode通过ssh连接服务器实现免密登录+删除
文章目录 参考: 1、 vscode通过ssh连接服务器实现免密登录删除(吐血总结)...
Redis未授权访问漏洞原理
redis未授权访问漏洞 目录 redis未授权访问漏洞一、Redis介绍二、redis环境安装三、漏洞原理四、漏洞复现4.1 webshell提权4.2redis写入计划任务反弹shell4.3 ssh key免密登录4.4 Redis基于主从复制的RCE方式 五、Redis加固建议 一、Redis介绍 Redis,全称为Remote …...
喜报!博睿数据案例获经观传媒“2024年度数字转型创新案例”!
本文已在“经观”APP中发表,点击下方文章链接查看原文: 2024科技创变纪:创新破局 变量启新 近日,经济观察报“2024年度卓越创新实践案例”榜单评选结果正式公布。博睿数据选送的案例“从零到一:可观测体系建设的探索…...
【从0做项目】Java搜索引擎(4)——性能优化~烧脑~~~
本篇文章将对项目搜索引擎(1)~(3)进行性能优化,包括测试,优化思路,优化前后对比 目录 一:文件读取 二:实现多线程制作索引 1:代码分析 2:代码…...
什么是网络安全审计?网络安全审计的作用...
网络安全审计通过对网络数据的采集、分析、识别,实时动态监测通信内容、网络行为和网络流量,发现和捕获各种敏感信息、违规行为,实时报警响应,全面记录网络系统中的各种会话和事件,实现对网络信息的智能关联分析、评估…...
目前(2025年2月)计算机视觉(CV)领域一些表现优异的深度学习模型
按任务类型分类介绍: 图像分类 CoCa:结合对比学习和生成学习,通过对比损失对齐图像和文本嵌入,并使用标题生成损失预测文本标记。它在图像分类、跨模态检索和图像描述等任务中表现出色,且仅需极少的任务特定微调。 P…...
【核心算法篇十三】《DeepSeek自监督学习:图像补全预训练方案》
引言:为什么自监督学习成为AI新宠? 在传统监督学习需要海量标注数据的困境下,自监督学习(Self-Supervised Learning)凭借无需人工标注的特性异军突起。想象一下,如果AI能像人类一样通过观察世界自我学习——这正是DeepSeek图像补全方案的技术哲学。根据,自监督学习通过…...
【详解】神经网络的发展历程
在人工智能与机器学习的漫长演进史中,神经网络一直扮演着引领创新的关键角色。从最早的生物学启发到当代“深度学习”浪潮,神经网络的发展历程波澜壮阔。随着计算机硬件水平的提升与海量数据的激增,神经网络不仅在学术界受到高度关注…...
【Linux专栏】find命令+同步 实验
Linux & Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.实验背景 需要把一个目录中所有文件,按照目录把某个时间点之前的同步到一个盘中,之后的同步备份到另一个盘中,实现不同时间段的备份。 本次实现目标:把common文件夹中 2025年之后的含文件夹…...
【弹性计算】虚拟机云服务器
虚拟机云服务器 1.云计算技术概述2.虚拟机云服务器2.1 功能特点2.2 适用场景 “计算” 位居弹性计算的三大件之首,也是弹性计算的主题词。在公共云上,计算产品不仅有既基础又重要的 虚拟机云服务器,而且包含了近年来为了满足用户的多样化需求…...
C++ 中的public、private 和 protected
在 C 里,public、private 和 protected 是用于控制类成员(属性和方法)访问权限的访问修饰符。合理使用这些访问修饰符能实现数据封装和信息隐藏,增强代码的安全性和可维护性。下面详细介绍它们的特性和用法。 public(…...
vite配置scss全局变量
vite配置scss全局变量 创建单独文件variable.scss在其中定义变量 vite.config.ts中配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path// https://vite.dev/config/ export default defineConfig({plugins: [vue()],resolve:…...
Qt开发①Qt的概念+发展+优点+应用+使用
目录 1. Qt的概念和发展 1.1 Qt的概念 1.2 Qt 的发展史: 1.3 Qt 的版本 2. Qt 的优点和应用 2.1 Qt 的优点: 2.2 Qt 的应用场景 2.3 Qt 的应用案例 3. 搭建 Qt 开发环境 3.1 Qt 的开发工具 3.2 Qt SDK 的下载和安装 3.3 Qt 环境变量配置和使…...
FastGPT快速将消息发送至飞书
欢迎关注【AI技术开发者】 在很多企业内部场景下,都需要发送数据到内部交流软件,如飞书、钉钉、企业微信 本文就以飞书为例,企业内部其他同事上报故障后,自动发送消息到飞书, 并相关人员 前文中,使用coz…...
qsort介绍与实现
qsort qsort 是 C 标准库中的一个通用排序函数,位于 <stdlib.h> 头文件中。它可以对任意类型的数组进行排序,使用的是快速排序(Quick Sort)算法的变种。 参数说明 base:指向要排序的数组的第一个元素的指针。由…...
WPF创建自定义类和控件及打包成dll引用
WPF创建自定义类和控件及打包成dll引用 一、前言二、创建自定义类和控件并生成dll文件2.1创建类库项目2.2创建自定义类和控件2.3生成dll文件 三、在其他项目中引用3.1添加dll文件引用3.2cs文件中引用命名空间3.3XAML文件中引用命名空间 一、前言 出于一些代码复用的需求&#…...
DVWA-DOM型XSS全等级绕过方法
DOM型XSS全等级绕过 前言一、LOW级别二、Medium级别 图片插入语句法 三、High级别 字符 # 绕过服务端过滤 四、Impossible级别 前言 DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档…...
《[含文档+PPT+源码等]精品基于Python实现的Django中药材在线学习系统的设计与实现
基于Python实现的Django中药材在线学习系统的设计与实现背景,可以从以下几个方面进行阐述: 一、行业背景 随着中医药在全球范围内的不断推广和普及,中药材的知识普及和在线学习需求日益增长。传统的中药材学习方式往往受限于地域、时间和资…...
halcon激光三角测量(二十三)inspect_3d_surface_intersections
目录 一、inspect_3d_surface_intersections代码第一部分二、inspect_3d_surface_intersections代码第二部分三、inspect_3d_surface_intersections代码第三部分 一、inspect_3d_surface_intersections代码第一部分 1、创建一个未标定的激光三角测量模型 2、获得参考3D Model&…...
数组和指针常见笔试题(深度剖析)
strlen和sizeof的区别 strlen是统计\0之前的字符个数,传递的是地址 sizeof是计算类型的字节数,其实在编译期间会通过类型来确定大小 下边我来讲一下常见的面试题,过程很详细放心观看 #include<stdio.h>#include <string.h>int …...
【Python爬虫(21)】从0到1:Python与MySQL的深度融合
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
使用 Jetty 构建 HTTPS 服务入门指南
在互联网安全越来越重要的今天,使用 HTTPS 为 Web 服务提供安全传输成为标准配置。Jetty 是一个高性能、易用且功能丰富的开源 Java HTTP 服务器和 Servlet 容器,能够轻松实现 HTTPS 支持。本文将结合代码实例,引导您快速搭建一个基于 Jetty 的 HTTPS 服务。 一、Jetty 简介…...
网络通信-最大传输单元-MTU,网络安全零基础入门到精通实战教程!
文章目录 MTU 引用MTU 介绍 定义MTU 与 VLAN TagVLAN Tag 处理方式 IP分片可靠传输MTU 之 PMTUD PMTUD介绍IP头的DF分片位 DF 0 可以分片DF 1 不可以分片 注意事项 MTU 引用 以太网最初对报文长度没有限制,网络层最大可以接收65535个字节,但是以太…...
【如何学习商城源码】
学习商城源码是一个系统而深入的过程,需要掌握多种方法和技巧。以下是一些建议,帮助你有效地学习商城源码: 一、搭建学习环境 准备开发工具 编程语言相关:根据商城源码使用的编程语言,安装相应的集成开发环境…...
在nodejs中使用ElasticSearch(一)安装,使用
使用docker安装ElasticSearch和Kibana 1)创建相应的data文件夹和子文件夹用来持久化ElasticSearch和kibana数据 2)提前创建好elasticsearch配置文件 data/elasticsearch/config/elasticsearch.yml文件 # Elasticsearch Configuration # # NOTE: Elas…...
封装一个vue3控制并行任务数量的组合式函数
一. 使用场景 使用环境: vue3 当需要处理多个异步任务时,想要控制并行异步任务的数量,不想所有任务同时执行导致产生性能上的问题, 比如当需要同时发起多个网络请求,但又不想一次性发出过多请求导致服务器压力过大或…...
