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

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

http://www.kler.cn/a/553878.html

相关文章:

  • [Android]文件描述符的binder传送
  • 迅为iTOP-RK3576开发板/核心板6TOPS算力4K视频编解码
  • Redis 键对应的命令详解
  • mysql实现原理 - 字符集和排序规则
  • Python安装与环境配置全程详细教学(包含Windows版和Mac版)
  • [网络] 如何开机自动配置静态IP,并自动启动程序
  • 第六步:Python协议与模块——当字典化身数据库,import玩出花
  • python的类与对象。为什么有些东西要用到类和对象。普通的编程方式不行吗?
  • 项目管理工具Jira在营销工作管理中的应用与实践
  • BMS保护板测试仪:电池安全与性能的坚实守护者
  • ssm121基于ssm的开放式教学评价管理系统+vue(源码+包运行+LW+技术指导)
  • 关于项目证书登录流程
  • wps中的js开发
  • Vue 计算属性(computed)
  • 个人简历html网页模板,科技感炫酷html简历模板
  • 大数据的特点
  • vue单据打印 一维码、二维码实现
  • 告别卡关!XSS挑战之旅全关卡通关思路详解
  • notepad++右键菜单不见了
  • [c语言日寄]字符串的左旋与右旋