tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 7.92 kB
Source Map (JSON)
{"version":3,"file":"useController.mjs","sources":["../../../../components/calendar/hooks/useController.ts"],"sourcesContent":["import { isFunction } from 'lodash-es';\nimport { isBoolean } from 'lodash-es';\nimport { computed, nextTick } from 'vue';\nimport dayjs from 'dayjs';\nimport { COMPONENT_NAME } from '../consts';\nimport { CalendarState } from '../types';\nimport { TdCalendarProps, ControllerOptions } from '../type';\nimport { useConfig } from '../../hooks/useConfig';\n\nconst getDefaultControllerConfigData = (visible = true): Record<string, any> => ({\n visible, // 是否显示(全部控件)\n disabled: false, // 是否禁用(全部控件)\n // 模式切换单选组件设置\n mode: {\n visible: true, // 是否显示\n radioGroupProps: {}, // 用于透传props给该radioGroup组件\n },\n // 年份选择框组件相关设置\n year: {\n visible: true, // 是否显示\n selectProps: {}, // 用于透传props给该select组件\n },\n // 年份选择框组件相关设置\n month: {\n visible: true, // 是否显示(“year”模式下本身是不显示该组件的)\n selectProps: {}, // 用于透传props给该select组件\n },\n // 隐藏\\显示周末按钮组件相关设置\n weekend: {\n visible: true, // 是否显示\n showWeekendButtonProps: {}, // 用于透传props给显示周末按钮组件\n hideWeekendButtonProps: {}, // 用于透传props给隐藏周末按钮组件\n },\n // “今天\\本月”按钮组件相关设置\n current: {\n visible: true, // 是否显示\n currentDayButtonProps: {}, // 用于透传props给“今天”钮组件(“month”模式下有效)\n currentMonthButtonProps: {}, // 用于透传props给“本月”按钮组件(“year”模式下有效)\n },\n});\n\nexport function userController(props: TdCalendarProps, state: CalendarState) {\n const { globalConfig } = useConfig(COMPONENT_NAME);\n\n const options = computed<ControllerOptions>(() => {\n const dayJsFilterDate = dayjs(`${state.curSelectedYear}-${state.curSelectedMonth}`);\n const re = {\n isShowWeekend: state.isShowWeekend,\n filterDate: dayJsFilterDate.toDate(),\n formattedFilterDate: dayJsFilterDate.format(props.format),\n mode: state.curSelectedMode,\n };\n return re;\n });\n const configData = computed<Record<string, any>>(() => {\n const controllerConfig = props.controllerConfig ?? globalConfig.value.controllerConfig ?? true;\n if (isBoolean(controllerConfig)) {\n return getDefaultControllerConfigData(controllerConfig);\n }\n return {\n ...getDefaultControllerConfigData(),\n ...controllerConfig,\n };\n });\n const visible = computed<boolean>(() => {\n return !!configData.value && configData.value.visible;\n });\n /**\n * 判断某个控件是否显示\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @returns true表示显示\n */\n function checkControllerVisible(name: string): boolean {\n let re = true;\n const conf = configData.value;\n if (!conf || !conf.visible || conf[name] === false || (conf[name] && !conf[name].visible)) {\n re = false;\n }\n return re;\n }\n /**\n * 判断某个控件是否禁用\n * @param name 控件对应的配置节点名(对应controllerConfigData)\n * @param propsName 表示禁用的控件属性(对应controllerConfigData)\n * @returns true表示禁用\n */\n function checkControllerDisabled(name: string, propsName: string): boolean {\n let re = false;\n const conf = configData.value;\n if (conf && (conf.disabled || (conf[name] && conf[name][propsName] && conf[name][propsName].disabled))) {\n re = true;\n }\n return re;\n }\n function emitControllerChange() {\n nextTick(() => {\n isFunction(props.onControllerChange) && props.onControllerChange({ ...options.value });\n });\n }\n\n return {\n options,\n configData,\n visible,\n checkControllerVisible,\n checkControllerDisabled,\n emitControllerChange,\n };\n}\n"],"names":["getDefaultControllerConfigData","visible","arguments","length","undefined","disabled","mode","radioGroupProps","year","selectProps","month","weekend","showWeekendButtonProps","hideWeekendButtonProps","current","currentDayButtonProps","currentMonthButtonProps","userController","props","state","_useConfig","useConfig","COMPONENT_NAME","globalConfig","options","computed","dayJsFilterDate","dayjs","concat","curSelectedYear","curSelectedMonth","re","isShowWeekend","filterDate","toDate","formattedFilterDate","format","curSelectedMode","configData","_ref","_props$controllerConf","controllerConfig","value","isBoolean","_objectSpread","checkControllerVisible","name","conf","checkControllerDisabled","propsName","emitControllerChange","nextTick","isFunction","onControllerChange"],"mappings":"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"}