2021-06-15

1、仅展示,精确到分,时间格式:
(1)如果下次跟进时间是今天,展示:今天 15:12;
(2)如果是本周且非今天,展示:周三 15:12;
(3)如果是本周之后,展示:2021/03/10 12:12;
(4)如果当前时间已过设定的下次跟进时间,仍然按以上规则展示。
2、本周内需要跟进的数据,跟进时间高亮。
3、有值展示,无值展示–

需要的支持:
npm install fecha --save

1/组件jsx:

import fecha from 'fecha';
import styles from './show-date.less';

function ShowDate(props) {
  let { date, compareDate } = props;
  if (date && compareDate) {
    let todayTime = new Date(date.toDateString()).getTime(); //获取今天0点时间毫秒数
    let dayTime = 24 * 60 * 60 * 1000; // 定义一天毫秒数
    const today = ['日', '一', '二', '三', '四', '五', '六'];
    if (typeof compareDate == 'string') {
      compareDate = compareDate.replace(/-/g, '/');
      compareDate = new Date(compareDate).getTime();
    }
    let diffDay = (compareDate - todayTime) / dayTime; // 相差天数
    let day = date.getDay(); // 今天星期数
    let compareDay = new Date(compareDate).getDay(); // 任务星期数

    if (diffDay > 6 || diffDay < -6) {
      // 7天之外
      return fecha.format(new Date(compareDate), 'YYYY/MM/DD HH:mm');
    } else if (diffDay <= 6 || diffDay >= -6) {
      switch (day) {
        case 0:
          if (diffDay <= 1 && diffDay >= 0) {
            // 今天
            return (
              <span className={styles['emergency-time']}>
                {fecha.format(new Date(compareDate), '今天' + ' HH:mm')}
              </span>
            );
          } else {
            if (day + diffDay < -6 || day + diffDay > 0) {
              //下周
              return fecha.format(new Date(compareDate), 'YYYY/MM/DD HH:mm');
            } else {
              return (
                <span className={styles['emergency-time']}>
                  {fecha.format(
                    new Date(compareDate),
                    '周' + today[compareDay] + ' HH:mm',
                  )}
                </span>
              );
            }
          }
        default:
          if (day + diffDay > 8 || day + diffDay <= 1) {
            //下周
            return (
              <span>
                {fecha.format(new Date(compareDate), 'YYYY/MM/DD HH:mm')}
              </span>
            );
          } else {
            //本周
            if (diffDay <= 1 && diffDay >= 0) {
              // 今天
              return (
                <span className={styles['emergency-time']}>
                  {fecha.format(new Date(compareDate), '今天' + ' HH:mm')}
                </span>
              );
            } else {
              return (
                <span className={styles['emergency-time']}>
                  {fecha.format(
                    new Date(compareDate),
                    '周' + today[compareDay] + ' HH:mm',
                  )}
                </span>
              );
            }
          }
      }
    }
  } else {
    return <span>--</span>;
  }
}

export default ShowDate;

2、使用方法
在需要的组件引入

import ShowDate from '@/components/show-components/show-date/show-date';

传入需要的值
date={new Date()}//当前时间
compareDate={_.get(props.customerDetailData, ‘revisit_remind_at’, ‘’)}//要传入的时间,自己接口中获取

        <ShowDate
          date={new Date()}
          compareDate={_.get(props.customerDetailData, 'revisit_remind_at', '')}
          styles={{ color: 'red' }}
        ></ShowDate>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值