wm-date-vue2ts-picker-ui
Version:
vue2,日历面板组件,支持单选、多选、连续选中等功能, 汉语、字符、拼音混合搜索组件
197 lines (163 loc) • 7.62 kB
Markdown
# wm-vue2-js-calendar
### Vue2插件
```
需要vue2版本
```
## 更新
```shell
属性:isShowLunar - 是否展示农历及节假日和节气
全局配置:{ isShowLunar: true, lunarHolidays: [], gregorianHolidays: [] }
国际化配置:{ locale: 'zh-CN', messages: {} }
方法-切换组件内语言:Vue.prototype.$setPluginLocale = function(locale) { i18n.locale = locale; };
提供语言包:英语(en)、 越南语(vi)、 简体中文(zh-CN)、 繁体中文(zh-TW)
```
## Install
```shell
npm i wm-date-vue2ts-picker-ui -S
```
## Quick Start
``` javascript
import Vue from 'vue'
import 'wm-date-vue2ts-picker-ui/datePicker-ui.css'
import datePicker from 'wm-date-vue2ts-picker-ui'
Vue.use(datePicker, { isShowLunar: true, lunarHolidays: [], gregorianHolidays: [] })
```
## 日历组件
```
<date-picker />
```
## API
| 参数 | 说明 | 类型 | 默认值 |
|--------|--------|-------|---------|
| initMonth | 初始化日期 | String/Date | 当天 |
| calendarMode | 周起始日 | 'Sunday':周日, 'Monday':周一 | Monday |
| pickerOptions | 日历多选数据项配置 | Object | - |
| readOnly | 只读 | Boolean | false |
| isShowTitle | 是否展示日历标题 | Boolean | true |
| isShowLunar | 是否展示农历 | Boolean | true |
| selectMode | 选择模式 | 'single':单选, 'multiple':多选 , 'series':范围选择 | single |
| leftCornerText | 日期左上角文字提示, 值为null时,不做赋值处理 | String/null | '' |
| rightCornerText | 日期右上角文字提示 , 值为null时,不做赋值处理| String/null | '' |
| isShowCloseTip | 是否显示关闭图标(selectMode为'single'时,有效) | Boolean | false |
| startCornerText | 范围选择时,开始位置-日期底部提示(selectMode为'series'时,有效), 值为null时,不做赋值处理 | String/null | 开始 |
| endCornerText | 范围选择时,结束位置-日期底部提示(selectMode为'series'时,有效), 值为null时,不做赋值处理 | String/null | 结束 |
| startEndCornerText | 范围选择时,开始和结束位置相同-日期底部提示(selectMode为'series'时,有效), 值为null时,不做赋值处理 | String/null | 始/终 |
| lunarHolidays | 设置农历节假日 | Object{'0101':'春节'} | {} |
| gregorianHolidays | 设置公历节假日 | Object{'0101':'元旦'} | {} |
| defaultSingleCheckedDates | 设置默认选中日期 | Date[] , string[] , number[] , SetDateObjectType[] , string , Date , number,SetDateObjectType | '' |
| defaultSeriesCheckedDates | 设置默认范围选中日期 | SetDateObjectType[] , SetDateObjectType[][] | [] |
## Date options
| 参数 | 说明 | 类型 | 默认值 |
|-----|------|----|---------|
| disabledDate | 设置禁用状态,参数为当前日期,要求返回 Boolean | Function(Date) | - |
| cellClassName | 设置日期的自定义 className,参数为当前日期,要求返回 String | Function(Date) | - |
## datePicker Methods
| 方法名 | 说明 | 参数 |
|--------|------|-----|
| nextMonth | 下一个月 | - |
| prevMonth | 上一个月 | - |
| toTargetDate | 去到指定的月份 | 目标日期 (YYYY-MM-DD)String / Date / number |
| setCheckedDates | 设置要选中的日期 | dates:Date[] , YYYY-MM-DD[] , number[] , SetDateObjectType[] , ‘YYYY-MM-DD’ , Date , number , SetDateObjectType |
| getAllSelectedDate | 获取所有选中的日期 | - |
| clearSelectedDate | 参数为空时,请空所有选中日期;当参数为日期或日期数组时,清除指定的日期或数组中的日期 | dates ?: Date , ‘YYYY-MM-DD’ , number , Date[] , YYYY-MM-DD[] , number[] |
| updataDate | 更新日期数据信息 | dateOptionsType , dateOptionsType[] |
## datePicker Events
| 事件名称 | 说明 | 回调参数 |
|---------|------|--------|
| prevMonth | 点击上一个月按钮触发 | 上个月 - ‘YYYY-MM’ |
| nextMonth | 点击下一个月按钮触发 | 下个月 - ‘YYYY-MM’ |
| currentMonth | 点击今天按钮触发 | 当前月 - ‘YYYY-MM’ |
| singleSelect | 选中单个日期时触发 | 参数1: 当前选中的日期, 参数2: 已选中的所有单选日期数组 |
| seriesSelect | 选中日期范围时触发 | 参数1: 当前选中的日期, 参数2: 已选中的所有范围选中日期数组 |
| singleDelete | 取消选中的单个日期时触发 | 当前删除的日期 |
| seriesDelete | 取消选中的日期范围时触发 | 参数1:当前点击删除的日期, 参数2: 删除的范围日期数据数组 |
| selectDate | 选中单个日期时触发 | 参数:{ date: 当前点击选中的日期, seriesDate: 选中的范围日期数据数组 } |
| deleteDate | 取消选中的日期时触发 | 参数:{ date: 当前点击选中的日期, seriesDate: 选中的范围日期数据数组 } |
| beforeSelect | 选中日期前触发 | 参数1:{ date: 当前点击选中的日期, seriesDate: 选中的范围日期数据数组 }, 参数2: 回调函数(参数:true-继续执行选中,false-停止选中) |
| beforeDelete | 删除日期前触发 | 参数1:{ date: 当前点击删除的日期, seriesDate: 删除的范围日期数据数组 }, 参数2: 回调函数(参数:true-继续执行选中,false-停止选中) |
| change | 日期发生改变时触发 | 参数:{ date: 当前触发日期, seriesDate: 产生改变的日期范围 } |
| warningContainDate | 日期选择时,选择范围中包含已选或禁用日期时触发(selectMode为'series'时,有效) | 参数:{ status: 状态, message: 提示信息 } |
## 国际化
```
全局配置
Vue.use(datePicker, {
// 设置语言
locale: 'zh-CN',
// 设置语言包
messages: {
'zh-CN': {
'datePicker': {
'title': '日期选择器'
}
}
}
})
语言切换
Vue.prototype.$setPluginLocale = function(locale) {
i18n.locale = locale;
};
提供语言包
英语(en)、 越南语(vi)、 简体中文(zh-CN)、 繁体中文(zh-TW)
```
## 数据类型
```
interface SetDateObjectType {
day: string,
leftCornerText?: string,
rightCornerText?: string
}
interface dateOptionsType {
lYear?: number;
lMonth?: number;
lDay?: number;
Animal?: string;
IMonthCn?: string;
IDayCn?: string;
cYear?: number;
cMonth?: number;
cDay?: number;
gzYear?: string;
gzMonth?: string;
gzDay?: string;
isToday?: boolean;
isLeap?: boolean;
nWeek?: number;
ncWeek?: string;
weekOfYear?: string;
isTerm?: boolean;
Term?: string | null;
astro?: string;
vacation?: string | null;
disabled?: boolean;
customDateStyle?: string;
isSelected?: boolean;
checkDateStartStyle?: boolean;
checkDateStartEndStyle?: boolean;
readonly?: boolean;
leftTip?: string;
rightTip?: string;
customText?: string;
formatDay?: string;
day?: string;
month?: string;
year?: string;
isCurrentMonth?: boolean;
isSingleClick?: boolean;
leftCornerText?: string;
rightCornerText?: string;
bottomCornerText?: string;
isStartDate?: boolean;
isSeriesMiddle?: boolean;
cellClassName?: string;
}
```
## 汉语、字符、拼音混合搜索组件
```
<search-text
v-model="keyWord"
:data="dataArray(数据列表)"
:searchProperty="检索字符属性(默认text)"
:placeholder="placeholder"
@change="(list) => { list (检索后返回的数据列表)}"
/>
```