更新记录

1.0.0(2022-03-17)

公历/农历日期选择器发布,欢迎大家下载使用


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.2.2 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
×

better-calendar

介绍

uniapp、vue2日历组件
支持农历和公历日期选择器,包含年、月、日选择,支持农历公历切换

软件架构

│
├── components                        
│   ├── better-calendar.js            # 日期选择器公共方法
│   └── index.vue                     # 日期选择器组件
├── pages                             # 示例
│   └── index                         
│       └── index.vue     
│   ├── ……                            # 其余文件是uniapp常规文件,不具体介绍了        

安装教程

  1. 使用HbuilderX打开
  2. 运行到指定平台
  3. 可在DCloud下载插件:https://ext.dcloud.net.cn/plugin?id=7642

使用说明

  1. components/better-calendar里是组件,可复制引用
  2. 调用方式
    <better-calendar
      ref="betterCalendarRef"
      :showCalendar="showCalendar"
      @confirm="selectDate"
      @cancel="showCalendar = false"
    ></better-calendar>
import dayjs from "dayjs";
import BetterCalendar from "@/components/better-calendar";

components: { BetterCalendar },
data() {
  const INIT_DAY_TYPE = "solar";
  const INIT_DAY_TIMESTAMP = dayjs().valueOf();
  const INIT_DAY = dayjs().format("YYYY-MM-DD");
  return {
    showCalendar: false,
    date: {
      type: INIT_DAY_TYPE, // 类型
      timestamp: INIT_DAY_TIMESTAMP, // 时间戳
      solarDate: INIT_DAY, // 公历日期 - 文本(2000-1-1)
      lunarDate: "", // 农历日期 - 文本(己卯年冬月廿五(2000-1-1))
      lunarDateNumber: "", // 农历生日的数字写法(1999-12-25)
    },
  };
},
methods: {
  openBetterCalendar() {
    this.showCalendar = true;
  },
  async selectDate(e) {
    this.date = await {
      type: e.type,
      timestamp: dayjs(e.solarDate).valueOf(),
      solarDate: e.solarDate,
      lunarDate: e.lunarDate,
      lunarDateNumber: e.lunarDateNumber,
      isLeap: e.isLeap, // 一年里是否有闰月
    };
    this.showCalendar = false;
  },
},
  1. 传入参数说明
参数 必传 说明 类型 默认值 可选值
showCalendar 是否展开选择器 boolean false false/true
minYear 最小可选年份 number 1900 -
maxYear 最大可选年份 number 2100 -
defaultType 首次展开的类型,公历/农历 string solar solar/lunar
defaultValue 选择器的年月日默认值。minYear + y = 当前年,m + 1 = 当前月,d + 1 = 当前日。如想要默认选择为2020年1月3日,则需传[120, 0, 2] array [100, 0, 0] -
isSwitch 是否要农历公历切换功能 boolean true false/true
  1. 返回参数说明
参数 说明 类型
type 当前选择的类型 boolean
timestamp 选择日期对应的时间戳 number
solarDate 如果type为solar,则界面应使用这个字段 string
lunarDate 如果type为lunar,则界面应使用这个字段 string
lunarDateNumber 对应lunarDate字段的阿拉伯数字日期 string
isLeap 是否闰月 boolean

鸣谢

本项目基于 https://ext.dcloud.net.cn/plugin?id=3806 优化,在此感谢!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问