基于日历实现预约设置
本章节要完成的功能为通过点击日历中的设置按钮来设置对应日期的可预约人数。效果如下:
完善页面#
为设置按钮绑定事件#
为日历中的设置按钮绑定单击事件,当前日期作为参数
<button v-if="dayobject.day > today" @click="handleOrderSet(dayobject.day)" class="orderbtn">设置</button>
//预约设置 handleOrderSet(day){ alert(day); }
弹出预约设置窗口并发送ajax请求#
完善handleOrderSet方法,弹出预约设置窗口,用户点击确定按钮则发送ajax请求

//预约设置 handleOrderSet(day){ this.$prompt('请输入可预约人数', '预约设置', { confirmButtonText: '确定', cancelButtonText: '取消', inputPattern: /^[0-9]*[1-9][0-9]*$/, inputErrorMessage: '只能输入正整数' }).then(({ value }) => { //发送ajax请求根据日期修改可预约人数 axios.post("/ordersetting/editNumberByDate.do",{ orderDate:this.formatDate(day.getFullYear(),day.getMonth()+1,day.getDate()), //日期 number:value //可预约人数 }).then((response)=>{ if(response.data.flag){ this.initData(this.formatDate(day.getFullYear(), day.getMonth() + 1, 1)); this.$message({ type: 'success', message: response.data.message }); }else{ this.$message.error(response.data.message); } }); }).catch(() => { this.$message({ type: 'info', message: '已取消' }); }); }
后台代码#
Controller#
在OrderSettingController中提供方法editNumberByDate
/** * 根据指定日期修改可预约人数 * @param orderSetting * @return */ @RequestMapping("/editNumberByDate") public Result editNumberByDate(@RequestBody OrderSetting orderSetting){ try{ orderSettingService.editNumberByDate(orderSetting); //预约设置成功 return new Result(true,MessageConstant.ORDERSETTING_SUCCESS); }catch (Exception e){ e.printStackTrace(); //预约设置失败 return new Result(false,MessageConstant.ORDERSETTING_FAIL); } }
服务接口#
在OrderSettingService服务接口中提供方法editNumberByDate
public void editNumberByDate(OrderSetting orderSetting);
服务实现类#
在OrderSettingServiceImpl服务实现类中实现editNumberByDate
//根据日期修改可预约人数 public void editNumberByDate(OrderSetting orderSetting) { long count = orderSettingDao.findCountByOrderDate(orderSetting.getOrderDate()); if(count > 0){ //当前日期已经进行了预约设置,需要进行修改操作 orderSettingDao.editNumberByOrderDate(orderSetting); }else{ //当前日期没有进行预约设置,进行添加操作 orderSettingDao.add(orderSetting); } }
Dao接口#
在OrderSettingDao接口中提供方法
public void editNumberByOrderDate(OrderSetting orderSetting); public long findCountByOrderDate(Date orderDate);
Mapper映射文件#
在OrderSettingDao.xml映射文件中提供SQL
<!--根据日期更新可预约人数--> <update id="editNumberByOrderDate" parameterType="com.itheima.pojo.OrderSetting"> update t_ordersetting set number = #{number} where orderDate = #{orderDate} </update> <!--根据预约日期查询--> <select id="findCountByOrderDate" parameterType="java.util.Date" resultType="long"> select count(*) from t_ordersetting where orderDate = #{orderDate} </select>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)