@daysnap/horn-ui
Version:
hron ui
134 lines (115 loc) • 2.6 kB
Markdown
# HorCalendar
### 介绍
基础的 日历选择 组件
## 代码演示
### 基础用法
```html
<hor-cell label="提车日期(单选概念)" :value="takeDate" />
<hor-calendar
type="single"
:maxDate="new Date(2024, 3, 20)"
:minDate="new Date(2022, 3, 20)"
:formatDays="formatDays"
v-model="takeDate"
:initialValue="initialValue"
/>
<script setup lang="ts">
import { HorCalendar, HorCell } from '@daysnap/horn-ui'
import { ref } from 'vue'
// const takeDate = ref(['2023/05/24'])
const takeDate = ref([])
const initialValue = ref(new Date(2023, 2, 1))
const formatDays = (val: CalendarDay[]) => {
val.forEach((item, index) => {
if ([6, 0].includes(new Date(item.dateTime).getDay())) {
val[index].disable = true
}
})
return val
}
</script>
```
### 日期区间
```html
<hor-cell label="提车日期(时间段)" :formatter="(v) => v.join('-')" :value="takeDateRange" />
<hor-calendar
type="range"
:maxRange="3"
:maxDate="new Date(2023, 7, 20)"
:minDate="new Date(2023, 1, 20)"
v-model="takeDateRange"
/>
<script setup lang="ts">
import { HorCalendar, HorCell } from '@daysnap/horn-ui'
import { ref } from 'vue'
const takeDateRange = ref<string[]>([])
</script>
```
### 多选日期
```html
<hor-cell label="提车日期(多选概念)" :value="takeDateMulti" :formatter="(v) => v.join(',')" />
<hor-calendar
type="multiple"
:maxRange="10"
:maxDate="new Date(2023, 7, 20)"
:minDate="new Date(2023, 1, 20)"
v-model="takeDateMulti"
/>
<script setup lang="ts">
import { HorCalendar, HorCell } from '@daysnap/horn-ui'
import { ref } from 'vue'
const takeDateMulti = ref<string[]>([])
</script>
```
## API
### 属性 Props
<table>
<tr>
<td>名称</td>
<td>类型</td>
<td>默认值</td>
</tr>
<tr v-for="(item, key) in horCalendarProps" :key="key">
<td>{{ key }}</td>
<td>{{ parseType(item.type || item) }}</td>
<td>{{ reserve(item.default, '-') }}</td>
</tr>
</table>
<table>
<tr>
<td>名称</td>
<td>说明</td>
</tr>
<tr>
<td>xx</td>
<td>xxx</td>
</tr>
</table>
### 插槽 Slots
<table>
<tr>
<td>名称</td>
<td>说明</td>
</tr>
<tr>
<td>xx</td>
<td>xxx</td>
</tr>
</table>
### 实例方法
<table>
<tr>
<td>名称</td>
<td>说明</td>
</tr>
<tr>
<td>xx</td>
<td>xxx</td>
</tr>
</table>
<script setup lang="ts">
import { reserve } from '@daysnap/utils'
import { HorCell } from '../hor-cell'
import { HorCalendar, horCalendarProps } from '.'
import { parseType } from '../utils'
</script>