| | |
| | | <template> |
| | | <div class="bole-calendar-wrapper"> |
| | | <div class="bole-calendar-inner"> |
| | | <div :class="['bole-calendar-inner', { isCollapse }]"> |
| | | <nut-calendar-card v-model="model" class="bole-calendar"></nut-calendar-card> |
| | | </div> |
| | | <div class="bole-calendar-arrow"> |
| | | <DownArrow :size="12" /> |
| | | <div :class="['bole-calendar-arrow', { active: !isCollapse }]" @click="toggle"> |
| | | <DownArrow :size="12" :class="['bole-calendar-arrow-icon']" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { DownArrow } from '@nutui/icons-vue-taro'; |
| | | import { useToggle } from 'senin-mini/hooks'; |
| | | |
| | | defineOptions({ |
| | | name: 'Calendar', |
| | |
| | | |
| | | // const props = withDefaults(defineProps<Props>(), {}); |
| | | const model = defineModel<Date | Date[]>(); |
| | | |
| | | const { isCollapse, toggle } = useToggle(true); |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | |
| | | } |
| | | |
| | | .bole-calendar-inner { |
| | | height: 500px; |
| | | overflow: hidden; |
| | | overflow: auto; |
| | | transition: all 1s ease; |
| | | max-height: 2000px; |
| | | |
| | | &.isCollapse { |
| | | max-height: 500px; |
| | | } |
| | | } |
| | | |
| | | .bole-calendar-arrow { |
| | | display: flex; |
| | | justify-content: center; |
| | | |
| | | .bole-calendar-arrow-icon { |
| | | transition: all 0.2s linear; |
| | | } |
| | | |
| | | &.active { |
| | | .bole-calendar-arrow-icon { |
| | | transform: rotate(180deg); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |