news 2026/7/1 20:31:00

医院批量排班实战指南(二)日期与时段设置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
医院批量排班实战指南(二)日期与时段设置

目录

  • 前言
  • 一 步骤跳转
  • 二 日期与时段设置
    • 2.1 变量定义
    • 2.2 布局搭建
      • 2.2.1 日期范围选择区域
      • 2.2.2 重复规则配置区域
      • 2.2.3 日期生成操作区域
    • 2.3 显示自定义规则
  • 最终效果
  • 总结

前言

在上一篇《批量排班功能实现指南(一):医生选择》中,我们完成了批量排班的第一步——医生选择功能的搭建。通过可视化的医生选择界面,管理员可以轻松地批量选择跨科室的医生,为后续的排班配置奠定了基础。

本篇将继续深入批量排班的核心功能——第二步:日期与时段设置。这一步是整个批量排班功能的关键环节,涉及:

  • 灵活的日期范围选择
  • 智能的重复规则配置
  • 高效的时段批量操作
  • 直观的日期列表预览

通过本篇的学习,你将掌握如何构建一个既灵活又高效的日期时段选择系统,让管理员能够快速配置复杂的排班日期规则。


一 步骤跳转

我们上一篇只是搭建了视图,还没有功能可以从第一歩切换到第二步,我们先把这个功能实现一下。在第一个选项卡里,继续添加普通容器,里边添加两个按钮,按钮内容改为取消和下一步选择日期

取消按钮的点击事件,设置为关闭弹窗即可

下一步按钮点击的时候我们需要校验是否有选择医生,新建一个javascript方法

exportdefault function({event, data}){const selectedDoctors=$w.page.dataset.state.selectedDoctors;// 校验医生选择if(!selectedDoctors||selectedDoctors.length===0){$w.utils.showToast({title:'请至少选择一位医生', icon:'error', duration:1000});return;}// 校验通过提示$w.utils.showToast({title:`已选择 ${selectedDoctors.length}位医生`, icon:'success'});// ✅ 校验通过,切换到第二步$w.topTab1.selectTab({value:"2"});}

然后给按钮配置点击事件,调用我们这个方法

二 日期与时段设置

2.1 变量定义

在代码区继续定义第二步所需的页面变量:

// 变量名:dateRange// 类型:对象// 说明:日期范围选择$w.page.dataset.state.dateRange={startDate:"",endDate:""}// 变量名:repeatRule// 类型:文字// 说明:重复规则 daily/workdays/weekends/custom$w.page.dataset.state.repeatRule="workdays"// 变量名:customWeekdays// 类型:数组// 说明:自定义星期选择 [0,1,2,3,4,5,6] (0=周日,1=周一...)$w.page.dataset.state.customWeekdays=[]// 变量名:selectedDates// 类型:数组// 说明:生成的日期列表,每项包含date和timeSlots$w.page.dataset.state.selectedDates=[]// 变量名:isGeneratingDates// 类型:布尔值// 说明:是否正在生成日期(用于显示加载状态)$w.page.dataset.state.isGeneratingDates=false// 变量名:showCustomWeekdays// 类型:布尔值// 说明:是否显示自定义星期选择器$w.page.dataset.state.showCustomWeekdays=false





2.2 布局搭建

2.2.1 日期范围选择区域

添加一个网格布局,改为6:6布局

列里添加日期选择组件

这里要重设一下组件的宽度,改为100%,要不然就会出现横向的滚动条

2.2.2 重复规则配置区域

继续添加行,列的数量改为1

添加单选组件,修改选项

2.2.3 日期生成操作区域

继续添加行,在列里添加普通容器,放入按钮组件

2.3 显示自定义规则

在重复规则中,前两个选项是默认规则,我们需要在算法中实现。第三个规则需要用户勾选星期,我们定义一个方法来控制视图的显隐。

首先需要在单选下添加一个普通容器,里边添加文本组件,文本内容设置为选择星期。然后添加一个多选组件设置为周日到周六

多选组件默认是从上到下排列,不符合我们的要求,我们需要覆盖一下组件样式,输入如下样式

:root{}:scope .wd-checkbox-group{display: flex;flex-direction: row;align-items: center;}:scope .wd-checkbox-wrap{margin:0005px;}

究竟覆盖哪个样式类,也是非常耗时间的一件事,还是那么一个原则,厂商总是把困难留给用户,把方便留给自己。

样式调好了之后,就需要我们通过单选来控制多选是否显示,输入如下控制代码

exportdefault function({event, data}){const selectedRule=$w.radio1.value;//1=每天,2=仅工作日,3=自定义 // 处理重复规则切换if(selectedRule==="3"){// 选择自定义,显示星期选择器$w.page.dataset.state.showCustomWeekdays=true;}else{// 选择其他规则,隐藏星期选择器并清空选择$w.page.dataset.state.showCustomWeekdays=false;$w.page.dataset.state.customWeekdays=[];}}

然后给单选组件设置值改变事件,调用我们的方法

在方法切换好布尔值变量的值后,我们给普通容器绑定条件展示,这样就可以看到组件的显示和隐藏

最终效果

点击批量排班,需要选择医生,选好医生点击下一步

显示日期设置界面,默认不显示周日到周六

切换到自定义周几,显示复选

总结

本篇我们介绍了日期与时段设置的功能。先是讲解如果通过顶部选项卡的API方法调用切换选中标签,接着搭建了视图,创建了控制显示的方法。这里难点是如何覆盖组件样式达到我们的目标,核心在你要吃透CSS的布局样式才能面对困难。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 12:25:21

M2FP模型在医疗影像分析中的创新应用

M2FP模型在医疗影像分析中的创新应用 🧩 M2FP 多人人体解析服务:从通用视觉到医疗场景的延伸 随着深度学习在计算机视觉领域的持续突破,语义分割技术正逐步从基础图像理解迈向高精度、细粒度的应用场景。其中,M2FP(M…

作者头像 李华
网站建设 2026/7/1 12:25:21

M2FP模型优化:使用ONNX加速推理

M2FP模型优化:使用ONNX加速推理 📖 项目背景与技术挑战 在当前计算机视觉应用中,多人人体解析(Multi-person Human Parsing)正成为智能服装推荐、虚拟试衣、人机交互等场景的核心支撑技术。M2FP(Mask2Forme…

作者头像 李华
网站建设 2026/7/1 12:25:36

M2FP对发型变化的鲁棒性测试:染发/戴帽场景解析准确

M2FP对发型变化的鲁棒性测试:染发/戴帽场景解析准确 🧩 M2FP 多人人体解析服务 在当前计算机视觉领域,人体语义解析(Human Parsing)作为图像理解的重要分支,广泛应用于虚拟试衣、智能安防、AR互动和人物编辑…

作者头像 李华
网站建设 2026/6/18 20:28:23

初学者也能成功部署:M2FP图文教程带你看懂每个操作步骤

初学者也能成功部署:M2FP图文教程带你看懂每个操作步骤 🧩 M2FP 多人人体解析服务 在计算机视觉领域,人体解析(Human Parsing) 是一项关键的细粒度语义分割任务,旨在将图像中的人体分解为多个语义明确的身…

作者头像 李华
网站建设 2026/7/1 8:59:29

2026:当人工智能从屏幕走向街头,我们正在见证一场认知的重塑

如果你在2024年惊叹于视频生成的逼真,在2025年感慨于大模型的无处不在,那么刚刚拉开帷幕的2026年,正在用一种更为深沉且彻底的方式,推翻我们对科技的过往认知。在拉斯维加斯刚刚结束的CES 2026上,科技巨头们不再执着于…

作者头像 李华
网站建设 2026/7/1 12:25:27

博客写作素材:用M2FP生成人体解析可视化插图

博客写作素材:用M2FP生成人体解析可视化插图 🧩 M2FP 多人人体解析服务概述 在内容创作、时尚设计、虚拟试衣乃至医学图像分析等领域,人体解析(Human Parsing) 正成为一项关键的底层技术。它超越了传统的人体姿态估计…

作者头像 李华