SpringBoot+uniApp日历备忘录小程序系统 附带详细运行指导视频

文章目录

一、项目演示

项目演示地址: 视频地址

二、项目介绍

项目描述:这是一个基于SpringBoot+uniApp框架 开发的日历备忘录小程序系统。首先,这是一个前后端分离的项目,这项目代码简洁规范,注释说明详细,易于理解和学习,项目中的日历是纯代码手写,没借助现成的组件,非常适合SpringBoot+uniApp框架的初学者进行学习。

项目功能:此项目有查看日历、查看备忘录信息、添加备忘录信息、修改备忘录信息、删除备忘录信息的功能。

应用技术:SpringBoot + uniApp + Vue + MySQL + MyBatis + uView

运行环境:IntelliJ IDEA + MySQL + JDK1.8 + Maven3.6.3+ Node14.16.1+ 微信开发者工具+ Hbuilder(这些开发工具都会免费提供)

三、运行截图



四、主要代码

1.日历渲染代码:

java 复制代码
<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.保存备忘录代码:

java 复制代码
  @Override
  public 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.删除备忘录代码:

java 复制代码
  @Override
  public 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, "删除成功!");
  }
相关推荐
小徐_23332 天前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强
前端·微信小程序·uni-app
Flittly2 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
人活一口气2 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
Java陈序员3 天前
企业级!一个基于 Java 开发的开源 AI 应用开发平台!
spring boot·agent·mcp
宸翰3 天前
解决 uni-app App 端 vue-i18n 占位符丢失:封装跨端可用的 tf 格式化方法
前端·vue.js·uni-app
杨运交3 天前
[041][公共模块]分布式唯一ID生成器设计与实现:一款灵活可扩展的雪花算法框架
spring boot
时光足迹4 天前
uni-app 视频通话实战:康复师与患者视频问诊的 6 个致命 Bug 与解决方案
android·ios·uni-app
时光足迹4 天前
腾讯云 TRTC UniApp SDK 从入门到上线
前端·vue.js·uni-app
时光足迹4 天前
uni-app 里把加密视频嵌入页面播放?我分析了 4 种方案,只有 1 种接近完美
前端·vue.js·uni-app
时光足迹4 天前
JPush UniApp UTS 插件完全参考手册:API、事件与厂商通道一网打尽
vue.js·ios·uni-app