值班日历实现不同人显示不同的颜色区别

前端UI用的移动端的vantUI。这里只是我的思路总结,和用什么UI框架关系不大。
先看效果图:
在这里插入图片描述

    <van-calendar
      ref="calendar"
      :poppable="false"
      :show-confirm="false"
      :style="{ height: '580px' }"
      :min-date="minDate"
      :max-date="maxDate"
      :default-date="new Date()"
      :formatter="calendarFormatter"
      color="#dfdfdf"
    >
    </van-calendar>

this.dutyArray 在获取到所有的值班人员的时候,过滤好的,里面是没有重复的值班人

this.dutyArray.forEach((it) => {
  if (this.dutySet.indexOf(it.dutyPerson) == -1) {
     this.dutySet.push(it.dutyPerson);
   }
 });

重点来了!!!!

    calendarFormatter(day) {
      const month = day.date.getMonth() + 1;
      const date = (day.date.getDate() + "").padStart(2, "0");
      const year = day.date.getFullYear();
      const dateStr = `${year}-${month}-${date}`;
      // 当前day和dutyArray中的日期按顺序匹配,如果匹配上了,就显示值班人员
      const curDuty = this.dutyArray.find((it, idx) => {
        return it.dutyDate == dateStr;
      });
      if (curDuty) {
        day.bottomInfo = curDuty.dutyPerson;
      }

      // 判断当前的值班人,返回所在this.dutySet中的索引
      let index = this.dutySet.findIndex((it) => {
        return it == curDuty.dutyPerson;
      });
      if (index != -1) {
        if(index > 18){//防止溢出
          index = index % 18;
        }
        day.className = `cus-day-class${index}`;
      } else {
        day.className = `cus-day-class`;
      }
      return day;
    },

优雅实现css

<style lang="scss" scoped>
$colorArr: #1989fa, #6f7ad3, #f56c6c, #07c160, #e6a23c, #67c23a, #f06b49,
  #ecc2f1, #82c7c3, #e3698a, #d92b45, #60c9ff, #ba217d, #d2691e, #d2b48c,
  #ffa500, #ffc0cb, #ba55d3, #909399;

@each $colorItem in $colorArr {
  $index: index($colorArr, $colorItem);//当前索引
  .van-calendar
    ::v-deep
    .van-calendar__body
    .van-calendar__month
    .cus-day-class#{$index - 1}
    .van-calendar__bottom-info {
    background-color: $colorItem !important;
  }
}

</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/216941.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

01 高等数学.武忠祥.0基础

第一章 函数与极限 01映射与函数 02 函数概念 对应法则 定义域 常见函数 函数的几种特性 周期函数不一定有最小周期。 涉及额外与复习 存在与任意的关系

专业爬虫框架 _scrapy进阶使用详解

⑴ 中间件 中间件基本介绍 在Scrapy中&#xff0c;中间件是一种插件机制 它允许你在发送请求和处理响应的过程中对Scrapy引擎的行为进行干预和定制。 Scrapy中间件的用途&#xff1a; 修改请求、处理响应、处理异常、设置代理、添加自定义的HTTP头部等等。 Scrapy中间件主要分…

P1025 [NOIP2001 提高组] 数的划分

暴搜 剪枝 枚举固定的位置 #include<bits/stdc.h> using namespace std; using ll long long; const int N 1e310; int n,k; int res; void dfs(int last,int sum,int cur){if(curk){if(sumn)res;return;}for(int ilast;isum<n;i)dfs(i,sumi,cur1); } int main() {c…

【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.键值对二.关联式容器&#xff06;序列…

Pygame游戏实战六:飞机大战

介绍模块 本游戏使用的是由Pycharm中的pygame模块来实现的&#xff0c;也可以在python中运行。通过Pygame制作一个飞机大战&#xff0c;通过控制自己的飞机来攻击敌机&#xff0c;敌机的速度也忽快忽慢&#xff0c;看看这个是你小时候玩的游戏吗&#xff1f; 最小开发框架 详…

JDBC常见的几种连接池使用(C3P0、Druid、HikariCP 、DBCP)(附上代码详细讲解)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍JDBC常见的几种连接池使用&#xff08;C3P0、Druid、HikariCP 、DBCP&#xff09;以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学…

kubectl获取ConfigMap导出YAML时如何忽略某些字段

前言&#xff1a; 当我们在使用Kubernetes时&#xff0c;常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件&#xff0c;这样做有助于版本控制和资源的迁移。然而&#xff0c;默认情况下&#xff0c;使用kubectl get命令导出资源配置会包…

【c】有序数列插入一个整数

#include<stdio.h> int main() {int n;scanf("%d",&n);int arr[n1];for(int i0;i<n;i){scanf("%d",&arr[i]);}int a;scanf("%d",&a);arr[n]a;for(int j0;j<n;j){if(arr[j]>arr[n])//交换元素位置{int temparr[j];arr…

JFrog----常见的开源协议以及应用注意点

文章目录 1. MIT 许可证2. GPL&#xff08;通用公共许可证&#xff09;3. LGPL&#xff08;较宽松的通用公共许可证&#xff09;4. Apache 许可证 2.05. BSD 许可证开源协议的选择和注意点结论 开源软件近年来在软件开发中变得越来越流行。使用开源软件可以节省时间和资源&…

拼多多电商平台API接口,获取拼多多实时准确数据,获取产品销量、价格,sku图片及sku库存数据演示

拼多多商品详情API接口的作用是让开发者可以获取拼多多平台上特定商品的详细信息&#xff0c;包括商品的标题、价格、图片、规格、参数以及店铺信息等。通过这个接口&#xff0c;开发者可以轻松地获取商品的原始数据&#xff0c;便于进行数据分析、价格比较、爬取等操作。这为电…

算法基础六

搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2 示例 2: 输入: nums [1,3,5,6], target 2 输…

ITSM变更管理,有效降低IT管理风险!

在当今数字化时代&#xff0c;信息技术的快速发展使企业面临着不断变化的需求和挑战。为了适应和应对这些变化&#xff0c;企业需要进行各种IT系统和应用的变更。然而&#xff0c;不加控制的变更可能带来潜在的风险和不良影响。因此&#xff0c;ITSM变更管理成为了一项必不可少…

贝叶斯网络 (人工智能期末复习)

文章目录 贝叶斯网络&#xff08;概率图模型&#xff09;定义主要考点例题- 要求画出贝叶斯网络图- 计算各节点的条件概率表- 计算概率- 分析独立性 贝叶斯网络&#xff08;概率图模型&#xff09; 定义 一种简单的用于表示变量之间条件独立性的有向无环图&#xff08;DAG&am…

iOS ------ UICollectionView

一&#xff0c;UICollectionView的简介 UICollectionView是iOS6之后引入的一个新的UI控件&#xff0c;它和UITableView有着诸多的相似之处&#xff0c;其中许多代理方法都十分类似。简单来说&#xff0c;UICollectionView是比UITbleView更加强大的一个UI控件&#xff0c;有如下…

GVIM 配置 for begin/end class/endclass 等配对

有时候我们的代码很长&#xff0c;或者结构比较复杂&#xff0c;多个if/else 或者begin/end 快嵌套&#xff0c;为了阅读方便&#xff0c;利用gvim插件实现块跳转还是很有实用性的&#xff0c;下面的.vimrc的配置&#xff0c;简单方便。 使用方式&#xff1a; 将光标定位到块头…

人工智能学习7(决策树算法)

编译工具&#xff1a;PyCharm 文章目录 编译工具&#xff1a;PyCharm 决策树算法信息熵信息熵例题计算&#xff1a; 信息增益&#xff08;决策树划分依据之一ID3&#xff09;信息增益例题计算&#xff1a; 信息增益率(决策树划分依据之一C4.5)基尼值和基尼指数(决策树划分依据之…

使用Serv-U FTP服务器共享文件,实现无公网IP环境下远程访问

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天&#xff0c;移动电子设备似乎成了我们生活的主角&#xff0c;智能…

bad_python

攻防世界 (xctf.org.cn) 前戏 下载文件&#xff0c;解压完成后是这个 一个pyc文件 这里要用到python的反编译 要用到的工具有两个 1.python自带的uncompyle6 2.pycdc文件——比uncompyle6强大一点 我们一个一个来尝试一下 uncompyle6&#xff1a; 我是直接在pycharm里面…

Python字符串模糊匹配工具:TheFuzz 库详解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在处理文本数据时&#xff0c;常常需要进行模糊字符串匹配来找到相似的字符串。Python的 TheFuzz 库提供了强大的方法用于解决这类问题。本文将深入介绍 TheFuzz 库&#xff0c;探讨其基本概念、常用方法和示例代…

matlab实践(九):分段线性插值与三次样条插值

题目 用matlab对572所在区间分别进行分段线性插值、三次样条插值&#xff0c;计算出151&#xff0c;159&#xff0c;984&#xff0c;995的对数值&#xff0c;画出图形并在图形上用红色圆圈标记151&#xff0c;159&#xff0c;984&#xff0c;995所在的点,同时在图形中显示这些…