UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 9.57 kB
{"version":3,"file":"basic-year-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table class=\"el-year-table\" @click=\"handleYearTableClick\">\n <tbody>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 0)\">\n <a class=\"cell\">{{ startYear }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 1)\">\n <a class=\"cell\">{{ startYear + 1 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 2)\">\n <a class=\"cell\">{{ startYear + 2 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 3)\">\n <a class=\"cell\">{{ startYear + 3 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 4)\">\n <a class=\"cell\">{{ startYear + 4 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 5)\">\n <a class=\"cell\">{{ startYear + 5 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 6)\">\n <a class=\"cell\">{{ startYear + 6 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 7)\">\n <a class=\"cell\">{{ startYear + 7 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 8)\">\n <a class=\"cell\">{{ startYear + 8 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 9)\">\n <a class=\"cell\">{{ startYear + 9 }}</a>\n </td>\n <td />\n <td />\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInYear = (year: Dayjs, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n },\n\n emits: ['pick'],\n\n setup(props, ctx) {\n const { lang } = useLocale()\n const startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n })\n const getCellStyle = (year) => {\n const style = {} as any\n const today = dayjs().locale(lang.value)\n\n style.disabled = props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false\n\n style.current =\n castArray(props.parsedValue).findIndex((_) => _.year() === year) >= 0\n\n style.today = today.year() === year\n\n return style\n }\n\n const handleYearTableClick = (event: MouseEvent) => {\n const target = event.target as HTMLDivElement\n if (target.tagName === 'A') {\n if (hasClass((target as any).parentNode, 'disabled')) return\n const year = target.textContent || target.innerText\n ctx.emit('pick', Number(year))\n }\n }\n return {\n startYear,\n getCellStyle,\n handleYearTableClick,\n }\n },\n})\n</script>\n"],"names":["_createElementVNode","_createElementBlock","_normalizeClass","_toDisplayString"],"mappings":"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"}