当前位置: 首页 > news >正文

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

  @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.删除备忘录代码:

  @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, "删除成功!");
  }

相关文章:

  • 459重复的子字符串(substr)
  • Word中的文档信息域
  • Java语言介绍
  • cap2:1000分类的ResNet的TensorRT部署指南(python版)
  • Linux:深入了解进程信号(上)
  • (7/100)每日小游戏平台系列
  • 力扣做题记录 (二叉树)
  • MySQL 插入替换语句(replace into statement)
  • 配置Open-R1,评测第三方蒸馏模型的性能1
  • 淘宝商品评论API接口概述,json数据示例返回
  • 高等代数笔记—欧几里得空间、双线性函数
  • Java运维实战:问题定位-CPU突增排查
  • C++ Primer 函数匹配
  • 车载音频架构图详解(精简)
  • 2025-02-16 学习记录--C/C++-PTA 7-20 打印九九口诀表
  • C++笔记之类型大小、变量大小,vector与string在栈上内存、堆上内存和总内存的关系
  • PHP培训机构教务管理系统小程序
  • 八大排序——简单选择排序
  • 提示工程实现数据质量评估
  • matlab飞行姿态pid控制
  • 西部航空回应飞机上卖彩票:与重庆福彩合作,仅部分航班售卖
  • 乌副总理:乌美签署矿产协议
  • 专访 | 杜普兰蒂斯:爱上中国文化,下一步努力提升速度
  • 建设银行南昌分行引金融“活水”,精准灌溉乡村沃土
  • 深入贯彻中央八项规定精神学习教育中央指导组培训会议召开
  • 北大深圳研究生院成立科学智能学院:培养交叉复合型人才