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