文章目录
- 一、项目演示
- 二、项目介绍
- 三、运行截图
- 四、主要代码
- 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, "删除成功!");}