更新记录
1.0.0(2022-03-17)
下载此版本
公历/农历日期选择器发布,欢迎大家下载使用
平台兼容性
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常规文件,不具体介绍了
安装教程
- 使用HbuilderX打开
- 运行到指定平台
- 可在DCloud下载插件:https://ext.dcloud.net.cn/plugin?id=7642
使用说明
- components/better-calendar里是组件,可复制引用
- 调用方式
<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;
},
},
- 传入参数说明
参数 |
必传 |
说明 |
类型 |
默认值 |
可选值 |
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 |
- 返回参数说明
参数 |
说明 |
类型 |
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
优化,在此感谢!