cursor批量增加法定节假日功能

背景

用户提出需要手动逐个填写明天的节假日,认为很麻烦。现在是条件反应,首先判断cursor是否可以方便实现,试一试也不用花太多时间那就试试。
主要花费的时间在提示词的编写上面,这里编写质量高了,其他执行也就是一两个小时。快速满足客户的需要带给人的乐趣,也不低于于亲自写代码的带来的快乐。

关键提示词

1、功能入口
  1)在myworklog-workdateset页面增加“批量增加法定节假日”按钮,点击后跳转到“批量增加法定节假日”页面。页面名称:批量增加法定节假日,编码:batchworkdateset
2、“批量增加法定节假日”页面功能描述
2.1 页面顶面显示2个按钮:加载{currYear}年法定节假日数据、加载{nextYear}年法定法定节假日数据。
  1) {currYear}就是今年,举例:2025;{nextYear}就是明年,举例:2026。
  2)页面初始化的时候,后端分别调用接口 https://timor.tech/api/holiday/year/{year}/ ,其中{year}就是{currYear}和{nextYear}去查询,判断接口返回是否有法定节假日的数据,如果有才显示对应的按钮;如果没有,就显示:暂无{year}年法定节假日数据,按钮禁用状态不给点击
  3) 点击按钮后调用接口 https://timor.tech/api/holiday/year/{year}/ ,其中{year}就是{currYear}或{nextYear}。刷新并显示列表。
2.2 列表数据
  1)调用接口,返回的数据接口见下面的“接口说明”
  2)如果接口无数据返回,页面显示:暂无{year}年的法定节假日数据
  3)如果接口有数据返回,显示字段:
     3.1)日期: 取返回的date字段的值
     3.2)类型:工作日、非工作日。其中"holiday":true表示这天是非工作日,"holiday":false表示这天是工作日。
     3.3)调整原因:取返回name的字段的值
     3.4)冲突说明:和数据库的记录进行比较,如果这天存在工作日志调整记录,就显示:数据已存在记录,类型为“XXX”;调整原因为“XXX”。并使用红色字体显示。如果没有就显示“-”。
  4)列表支持复选框,支持全选、反全选、单条选、单条反选。至少要选中一条才能提交数据
  5)底部显示按钮:提交。如果列表一条记录都没选择,显示按钮名称为:提交(至少选择一条),禁用效果,不给提交。
  6)点击提交后,后台将选择的数据插入或更新到数据库(如果原来这条已存在记录)。
  6)提交成功后返回上一个页面myworklog-workdateset
3、修改代码范围
  1)在\extension\custom\myworklog文件下新增或修改  js\css\lang\contrl\model的功能。不能修改此文件夹以外的代码
  2)工作日调整的后端新增或修改的逻辑,可以参考myworklog-workdatecreate、myworklog-workdateedit。要支持批量操作。
  3)列表风格可以参考:myworklog-workdateset,但是要增加批量选择的能力。列表第一列的复选框可以参考testcase-browse页面。
4、接口说明
https://timor.tech/api/holiday/year/{year}/
1)如果有数据返回是这样的:
  {"code":0,"holiday":{"01-01":{"holiday":true,"name":"元旦","wage":3,"date":"2026-01-01","rest":23},"01-02":{"holiday":true,"name":"元旦","wage":2,"date":"2026-01-02","rest":1},"01-03":{"holiday":true,"name":"元旦","wage":2,"date":"2026-01-03","rest":1},"01-04":{"holiday":false,"name":"元旦后补班","wage":1,"after":true,"target":"元旦","date":"2026-01-04","rest":1},"02-14":{"holiday":false,"name":"春节前补班","wage":1,"after":false,"target":"春节","date":"2026-02-14","rest":13},"02-15":{"holiday":true,"name":"春节","wage":2,"date":"2026-02-15","rest":14},"02-16":{"holiday":true,"name":"除夕","wage":3,"date":"2026-02-16","rest":1},"02-17":{"holiday":true,"name":"初一","wage":3,"date":"2026-02-17","rest":1},"02-18":{"holiday":true,"name":"初二","wage":3,"date":"2026-02-18","rest":1},"02-19":{"holiday":true,"name":"初三","wage":3,"date":"2026-02-19","rest":1},"02-20":{"holiday":true,"name":"初四","wage":2,"date":"2026-02-20","rest":1},"02-21":{"holiday":true,"name":"初五","wage":2,"date":"2026-02-21","rest":1},"02-22":{"holiday":true,"name":"初六","wage":2,"date":"2026-02-22","rest":1},"02-23":{"holiday":true,"name":"初七","wage":2,"date":"2026-02-23","rest":1},"02-28":{"holiday":false,"name":"春节后补班","wage":1,"target":"春节","after":true,"date":"2026-02-28","rest":5},"04-04":{"holiday":true,"name":"清明节","wage":2,"date":"2026-04-04","rest":3},"04-05":{"holiday":true,"name":"清明节","wage":3,"date":"2026-04-05","rest":1},"04-06":{"holiday":true,"name":"清明节","wage":2,"date":"2026-04-06","rest":1},"05-01":{"holiday":true,"name":"劳动节","wage":3,"date":"2026-05-01","rest":25},"05-02":{"holiday":true,"name":"劳动节","wage":3,"date":"2026-05-02","rest":1},"05-03":{"holiday":true,"name":"劳动节","wage":2,"date":"2026-05-03","rest":1},"05-04":{"holiday":true,"name":"劳动节","wage":2,"date":"2026-05-04","rest":1},"05-05":{"holiday":true,"name":"劳动节","wage":2,"date":"2026-05-05","rest":1},"05-09":{"holiday":false,"name":"劳动节后补班","wage":1,"after":true,"target":"劳动节","date":"2026-05-09","rest":4},"06-19":{"holiday":true,"name":"端午节","wage":3,"date":"2026-06-19","rest":45},"06-20":{"holiday":true,"name":"端午节","wage":2,"date":"2026-06-20","rest":1},"06-21":{"holiday":true,"name":"端午节","wage":2,"date":"2026-06-21","rest":1},"09-20":{"holiday":false,"name":"中秋节前补班","after":false,"wage":1,"target":"中秋节","date":"2026-09-20","rest":91},"09-25":{"holiday":true,"name":"中秋节","wage":3,"date":"2026-09-25","rest":96},"09-26":{"holiday":true,"name":"中秋节","wage":2,"date":"2026-09-26","rest":1},"09-27":{"holiday":true,"name":"中秋节","wage":2,"date":"2026-09-27","rest":1},"10-01":{"holiday":true,"name":"国庆节","wage":3,"date":"2026-10-01","rest":4},"10-02":{"holiday":true,"name":"国庆节","wage":3,"date":"2026-10-02","rest":1},"10-03":{"holiday":true,"name":"国庆节","wage":3,"date":"2026-10-03"},"10-04":{"holiday":true,"name":"国庆节","wage":2,"date":"2026-10-04"},"10-05":{"holiday":true,"name":"国庆节","wage":2,"date":"2026-10-05"},"10-06":{"holiday":true,"name":"国庆节","wage":2,"date":"2026-10-06"},"10-07":{"holiday":true,"name":"国庆节","wage":2,"date":"2026-10-07"},"10-10":{"holiday":false,"after":true,"wage":1,"name":"国庆节后补班","target":"国庆节","date":"2026-10-10"}}}

2) 如果没有数据返回是这样的:
{"code":0,"holiday":{}}

3)有数据返回,其中"holiday":true表示这天是非工作日,"holiday":false表示这天是工作日。

实现效果

输入图片说明

--B站/抖音:写代码的产品飞哥

--分享运营真实案例,用编程创造自己的产品

0 条评论