UNPKG

tdesign-vue-next

Version:
1 lines 36 kB
{"version":3,"file":"calendar.mjs","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["import { defineComponent, computed, watch } from 'vue';\n// 通用库\nimport dayjs from 'dayjs';\nimport { remove, isArray, isFunction } from 'lodash-es';\n\nimport props from './props';\nimport * as utils from './utils';\nimport { useConfig, useContent } from '@tdesign/hooks';\n\nimport { useState, useCalendarClass, userController, useColHeaders } from './hooks';\n\n// 组件的一些常量\nimport {\n COMPONENT_NAME,\n MIN_YEAR,\n FIRST_MONTH_OF_YEAR,\n LAST_MONTH_OF_YEAR,\n DEFAULT_YEAR_CELL_NUMINROW,\n} from './consts';\n\n// 子组件\nimport { Select as TSelect } from '../select';\nimport { RadioGroup as TRadioGroup, RadioButton as TRadioButton } from '../radio';\nimport { Button as TButton } from '../button';\nimport { CheckTag as TCheckTag } from '../tag';\nimport CalendarCellItem from './calendar-cell';\n\n// 组件相关类型\nimport { CalendarCell } from './type';\nimport { CalendarRange, YearMonthOption, ModeOption, CellEventOption } from './types';\n\n// 组件逻辑\nexport default defineComponent({\n name: 'TCalendar',\n props,\n setup(props, { slots }) {\n const renderContent = useContent();\n const { t, globalConfig } = useConfig(COMPONENT_NAME);\n // 组件内部状态管理\n const { state, toToday, checkDayVisible } = useState(props);\n\n // 样式\n const cls = useCalendarClass(props, state);\n\n // 日历主体头部(日历模式下使用)\n const { cellColHeaders } = useColHeaders(props, state);\n\n // 日历控件栏(右上角)\n const controller = userController(props, state);\n\n // 年\\月份下拉框\n const rangeFromTo = computed<CalendarRange>(() => {\n if (!props.range || props.range.length < 2) {\n return null;\n }\n const [v1, v2] = props.range;\n if (dayjs(v1).isBefore(dayjs(v2))) {\n return {\n from: v1,\n to: v2,\n };\n }\n return {\n from: v2,\n to: v1,\n };\n });\n function checkMonthAndYearSelectedDisabled(year: number, month: number): boolean {\n let disabled = false;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n if (year === beginYear) {\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n disabled = month < beginMon;\n } else if (year === endYear) {\n const endMon = parseInt(dayjs(rangeFromTo.value.to).format('M'), 10);\n disabled = month > endMon;\n }\n }\n return disabled;\n }\n // 当存在日期范围限制时,改变年份后应将月份调整为合法月份\n function adjustMonth(): void {\n if (rangeFromTo.value?.from && rangeFromTo.value?.to) {\n const beginYear = dayjs(rangeFromTo.value.from).year();\n const endYear = dayjs(rangeFromTo.value.to).year();\n const beginMon = parseInt(dayjs(rangeFromTo.value.from).format('M'), 10);\n if (checkMonthAndYearSelectedDisabled(state.curSelectedYear, state.curSelectedMonth)) {\n state.curSelectedMonth =\n state.curSelectedYear === beginYear\n ? beginMon\n : state.curSelectedYear === endYear\n ? 1\n : state.curSelectedMonth;\n }\n }\n }\n watch(\n () => {\n return {\n year: `${state.curSelectedYear}`,\n month: `${state.curSelectedMonth}`,\n };\n },\n (v: { month: string; year: string }) => {\n isFunction(props.onMonthChange) && props.onMonthChange({ ...v });\n controller.emitControllerChange();\n },\n );\n const dateSelect = {\n yearSelectOptionList: computed<YearMonthOption[]>(() => {\n const re: YearMonthOption[] = [];\n let begin: number = state.curSelectedYear - 10;\n let end: number = state.curSelectedYear + 10;\n if (rangeFromTo.value && rangeFromTo.value.from && rangeFromTo.value.to) {\n begin = dayjs(rangeFromTo.value.from).year();\n end = dayjs(rangeFromTo.value.to).year();\n }\n\n if (begin < MIN_YEAR) {\n begin = MIN_YEAR;\n }\n if (end < MIN_YEAR) {\n end = MIN_YEAR;\n }\n\n for (let i = begin; i <= end; i++) {\n re.push({\n value: i,\n label: t(globalConfig.value.yearSelection, { year: i }),\n disabled: false,\n });\n }\n return re;\n }),\n isYearSelectVisible: computed<boolean>(() => {\n return controller.checkControllerVisible('year');\n }),\n isYearSelectDisabled: computed<boolean>(() => {\n return controller.checkControllerDisabled('year', 'selectProps');\n }),\n monthSelectOptionList: computed<YearMonthOption[]>(() => {\n adjustMonth();\n const re: YearMonthOption[] = [];\n for (let i = FIRST_MONTH_OF_YEAR; i <= LAST_MONTH_OF_YEAR; i++) {\n const disabled = checkMonthAndYearSelectedDisabled(state.curSelectedYear, i);\n re.push({\n value: i,\n label: t(globalConfig.value.monthSelection, { month: i }),\n disabled,\n });\n }\n return re;\n }),\n isMonthSelectVisible: computed<boolean>(() => {\n return state.curSelectedMode === 'month' && controller.checkControllerVisible('month');\n }),\n isMonthSelectDisabled: computed<boolean>(() => {\n return controller.checkControllerDisabled('month', 'selectProps');\n }),\n };\n // 模式选项\n const modeSelect = {\n optionList: computed<ModeOption[]>(() => {\n return [\n { value: 'month', label: t(globalConfig.value.monthRadio) },\n { value: 'year', label: t(globalConfig.value.yearRadio) },\n ];\n }),\n isVisible: computed<boolean>(() => {\n return controller.checkControllerVisible('mode');\n }),\n isDisabled: computed<boolean>(() => {\n return controller.checkControllerDisabled('mode', 'radioGroupProps');\n }),\n };\n // 显示\\隐藏周末按钮\n const weekendBtn = {\n text: computed<string>(() => {\n return state.isShowWeekend ? t(globalConfig.value.hideWeekend) : t(globalConfig.value.showWeekend);\n }),\n vBind: computed<object>(() => {\n const c = controller.configData.value.weekend;\n return state.isShowWeekend ? c.hideWeekendButtonProps : c.showWeekendButtonProps;\n }),\n isVisible: computed<boolean>(() => {\n return (\n props.theme === 'full' &&\n controller.checkControllerVisible('current') &&\n controller.checkControllerVisible('weekend')\n );\n }),\n isDisabled: computed<boolean>(() => {\n const p = state.isShowWeekend ? 'hideWeekendButtonProps' : 'showWeekendButtonProps';\n return controller.checkControllerDisabled('weekend', p);\n }),\n };\n // 今天\\本月按钮\n const currentBtn = {\n text: computed<string>(() => {\n return state.curSelectedMode === 'month' ? t(globalConfig.value.today) : t(globalConfig.value.thisMonth);\n }),\n vBind: computed<object>(() => {\n const c = controller.configData.value.current;\n return state.curSelectedMode === 'month' ? c.currentDayButtonProps : c.currentMonthButtonProps;\n }),\n isVisible: computed<boolean>(() => {\n return props.theme === 'full' && controller.checkControllerVisible('current');\n }),\n isDisabled: computed(() => {\n const p = state.curSelectedMode === 'month' ? 'currentDayButtonProps' : 'currentMonthButtonProps';\n return controller.checkControllerDisabled('current', p);\n }),\n };\n const renderControl = () => {\n return (\n <div class={cls.control.value}>\n <div class={cls.title.value}>\n {renderContent('head', undefined, {\n params: { ...controller.options.value },\n })}\n </div>\n <div class={cls.controlSection.value}>\n {dateSelect.isYearSelectVisible.value && (\n <div class={cls.controlSectionCell.value}>\n <TSelect\n v-model={state.curSelectedYear}\n size={state.controlSize}\n autoWidth={true}\n {...controller.configData.value.year.selectProps}\n disabled={dateSelect.isYearSelectDisabled.value}\n options={dateSelect.yearSelectOptionList.value}\n ></TSelect>\n </div>\n )}\n {dateSelect.isMonthSelectVisible.value && (\n <div class={cls.controlSectionCell.value}>\n <TSelect\n autoWidth={true}\n v-model={state.curSelectedMonth}\n size={state.controlSize}\n {...controller.configData.value.month.selectProps}\n disabled={dateSelect.isMonthSelectDisabled.value}\n options={dateSelect.monthSelectOptionList.value}\n ></TSelect>\n </div>\n )}\n {modeSelect.isVisible.value && (\n <div class={cls.controlSectionCell.value} style=\"height: auto\">\n <TRadioGroup\n v-model={state.curSelectedMode}\n variant=\"default-filled\"\n size={state.controlSize}\n {...controller.configData.value.mode.radioGroupProps}\n disabled={modeSelect.isDisabled.value}\n onChange={controller.emitControllerChange}\n >\n {modeSelect.optionList.value.map((item) => (\n <TRadioButton key={item.value} value={item.value}>\n {item.label}\n </TRadioButton>\n ))}\n </TRadioGroup>\n </div>\n )}\n\n {weekendBtn.isVisible.value && (\n <div class={cls.controlSectionCell.value}>\n <TCheckTag\n class={cls.controlTag.value}\n theme={state.isShowWeekend ? 'default' : 'primary'}\n size=\"large\"\n {...weekendBtn.vBind.value}\n disabled={weekendBtn.isDisabled.value}\n onClick={() => {\n state.isShowWeekend = !state.isShowWeekend;\n controller.emitControllerChange();\n }}\n >\n {weekendBtn.text.value}\n </TCheckTag>\n </div>\n )}\n {currentBtn.isVisible.value && (\n <div class={cls.controlSectionCell.value}>\n <TButton\n size={state.controlSize}\n {...currentBtn.vBind.value}\n disabled={currentBtn.isDisabled.value}\n onClick={() => {\n toToday();\n }}\n >\n {currentBtn.text.value}\n </TButton>\n </div>\n )}\n </div>\n </div>\n );\n };\n\n const cellClickEmit = (eventPropsName: keyof typeof props, e: MouseEvent, cellData: CalendarCell): void => {\n if (isFunction(props[eventPropsName])) {\n const options: CellEventOption = {\n cell: {\n ...cellData,\n ...controller.options.value,\n },\n e,\n };\n (props[eventPropsName] as Function)(options);\n }\n };\n const clickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n const d = dayjs(cellData.date);\n if (props.multiple) {\n if (state.curDateList.find((item) => item.isSame(d))) {\n state.curDateList = remove(state.curDateList, (item) => !item.isSame(d));\n } else {\n state.curDateList.push(d);\n }\n } else {\n state.curDate = d;\n }\n cellClickEmit('onCellClick', e, cellData);\n };\n const doubleClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n cellClickEmit('onCellDoubleClick', e, cellData);\n };\n const rightClickCell = (e: MouseEvent, cellData: CalendarCell): void => {\n if (props.preventCellContextmenu) {\n e.preventDefault();\n }\n cellClickEmit('onCellRightClick', e, cellData);\n };\n\n const monthCellsData = computed<CalendarCell[][]>(() => {\n const daysArr: CalendarCell[][] = utils.createMonthCellsData(props, state);\n return daysArr;\n });\n const renderMonthBody = () => {\n return (\n <table class={cls.table.value}>\n <thead class={cls.tableHead.value}>\n <tr class={cls.tableHeadRow.value}>\n {cellColHeaders.value.map(\n (item, index) =>\n checkDayVisible(item.num) && (\n <th class={cls.tableHeadCell.value}>\n {isArray(props.week)\n ? props.week[index]\n : renderContent('week', undefined, {\n defaultNode: <span>{item.display}</span>,\n params: { day: item.num },\n })}\n </th>\n ),\n )}\n </tr>\n </thead>\n\n <tbody class={cls.tableBody.value}>\n {monthCellsData.value.map((week, weekIndex) => (\n <tr class={cls.tableBodyRow.value}>\n {week.map(\n (item, itemIndex) =>\n (state.isShowWeekend || item.day < 6) && (\n <CalendarCellItem\n key={`d-${weekIndex}-${itemIndex}`}\n item={item}\n theme={props.theme}\n t={t}\n global={globalConfig.value}\n cell={props.cell}\n cellAppend={props.cellAppend}\n fillWithZero={props.fillWithZero}\n onClick={(e: MouseEvent) => clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n ></CalendarCellItem>\n ),\n )}\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n const yearCellsData = computed<CalendarCell[][]>(() => {\n const re: CalendarCell[][] = [];\n const monthsArr: CalendarCell[] = utils.createYearCellsData(props, state);\n const rowCount = Math.ceil(monthsArr.length / DEFAULT_YEAR_CELL_NUMINROW);\n let index = 0;\n for (let i = 1; i <= rowCount; i++) {\n const row: CalendarCell[] = [];\n for (let j = 1; j <= DEFAULT_YEAR_CELL_NUMINROW; j++) {\n row.push(monthsArr[index]);\n index += 1;\n }\n re.push(row);\n }\n return re;\n });\n const renderYearBody = () => {\n return (\n <table class={cls.table.value}>\n <tbody class={cls.tableBody.value}>\n {yearCellsData.value.map((cell, cellIndex) => (\n <tr class={cls.tableBodyRow.value}>\n {cell.map((item, itemIndex) => (\n <CalendarCellItem\n key={`m-${cellIndex}-${itemIndex}`}\n item={item}\n theme={props.theme}\n t={t}\n global={globalConfig.value}\n cell={props.cell}\n cellAppend={props.cellAppend}\n fillWithZero={props.fillWithZero}\n onClick={(e: MouseEvent) => clickCell(e, item)}\n onDblclick={(e: MouseEvent) => doubleClickCell(e, item)}\n onRightclick={(e: MouseEvent) => rightClickCell(e, item)}\n v-slots={{ ...slots }}\n ></CalendarCellItem>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n return () => {\n return (\n <div class={cls.body.value}>\n {controller.visible.value && renderControl()}\n <div class={cls.panel.value}>{state.curSelectedMode === 'month' ? renderMonthBody() : renderYearBody()}</div>\n </div>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","setup","slots","_ref","renderContent","useContent","_useConfig","useConfig","COMPONENT_NAME","t","globalConfig","_useState","useState","state","toToday","checkDayVisible","cls","useCalendarClass","_useColHeaders","useColHeaders","cellColHeaders","controller","userController","rangeFromTo","computed","range","length","_props2$range","_slicedToArray","v1","v2","dayjs","isBefore","from","to","checkMonthAndYearSelectedDisabled","year","month","disabled","value","beginYear","endYear","beginMon","parseInt","format","endMon","adjustMonth","_rangeFromTo$value","_rangeFromTo$value2","curSelectedYear","curSelectedMonth","watch","concat","v","onMonthChange","emitControllerChange","dateSelect","yearSelectOptionList","re","begin","end","MIN_YEAR","i","push","label","yearSelection","isYearSelectVisible","checkControllerVisible","isYearSelectDisabled","checkControllerDisabled","monthSelectOptionList","FIRST_MONTH_OF_YEAR","LAST_MONTH_OF_YEAR","monthSelection","isMonthSelectVisible","curSelectedMode","isMonthSelectDisabled","modeSelect","optionList","monthRadio","yearRadio","isVisible","isDisabled","weekendBtn","text","isShowWeekend","hideWeekend","showWeekend","vBind","c","configData","weekend","hideWeekendButtonProps","showWeekendButtonProps","theme","p","currentBtn","today","thisMonth","current","currentDayButtonProps","currentMonthButtonProps","renderControl","_slot","_createVNode","control","title","params","_objectSpread","options","controlSection","controlSectionCell","TSelect","_mergeProps","controlSize","selectProps","onUpdateModelValue","$event","TRadioGroup","mode","radioGroupProps","map","item","TRadioButton","_default","TCheckTag","controlTag","onClick","TButton","cellClickEmit","eventPropsName","e","cellData","isFunction","cell","clickCell","d","date","multiple","curDateList","find","isSame","remove","curDate","doubleClickCell","rightClickCell","preventCellContextmenu","preventDefault","monthCellsData","daysArr","utils","renderMonthBody","table","tableHead","tableHeadRow","index","num","tableHeadCell","isArray","week","defaultNode","display","day","tableBody","weekIndex","tableBodyRow","itemIndex","CalendarCellItem","cellAppend","fillWithZero","onDblclick","onRightclick","yearCellsData","monthsArr","rowCount","Math","ceil","DEFAULT_YEAR_CELL_NUMINROW","row","j","renderYearBody","cellIndex","body","visible","panel"],"mappings":"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"}