UNPKG

tdesign-mobile-vue

Version:
1 lines 32.9 kB
{"version":3,"file":"cascader.mjs","sources":["../../src/cascader/cascader.tsx"],"sourcesContent":["import { CloseIcon, ChevronRightIcon } from 'tdesign-icons-vue-next';\nimport { defineComponent, toRefs, computed, ref, toRaw, reactive, watch, onMounted, Transition } from 'vue';\nimport { get as lodashGet } from 'lodash-es';\nimport TPopup from '../popup';\nimport { Tabs } from '../tabs';\nimport { RadioValue, RadioGroup as TRadioGroup } from '../radio';\nimport config from '../config';\nimport props from './props';\nimport { TreeOptionData } from '../common';\nimport { useConfig } from '../config-provider/useConfig';\nimport useVModel from '../hooks/useVModel';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { CascaderTriggerSource } from './type';\n\nconst { prefix } = config;\nconst name = `${prefix}-cascader`;\n\ninterface ChildrenInfoType {\n value: string | number | boolean;\n level: number;\n}\n\nconst childrenInfo: ChildrenInfoType = {\n value: '',\n level: 0,\n};\n\ninterface KeysType {\n value?: string;\n label?: string;\n children?: string;\n disabled?: string;\n}\n\nexport default defineComponent({\n name,\n props,\n emits: ['update:visible', 'update:value', 'update:modelValue'],\n setup(props, { emit, expose }) {\n const renderTNodeJSX = useTNodeJSX();\n const cascaderClass = usePrefixClass('cascader');\n const { globalConfig } = useConfig('cascader');\n\n const { visible, value, modelValue } = toRefs(props);\n const [cascaderValue, setCascaderValue] = useVModel(value, modelValue, props.defaultValue, props.onChange);\n\n const open = ref(visible.value || false);\n const placeholder = computed(() => props.placeholder || globalConfig.value.placeholder);\n\n const stepIndex = ref(0);\n const selectedIndexes = reactive<number[]>([]);\n const selectedValue = reactive<Array<string | number>>([]);\n const items = computed<Array<Array<TreeOptionData>>>(() => [props.options ?? []]);\n const steps = reactive([placeholder.value]);\n\n const initWithValue = () => {\n // 清空所有状态\n steps.length = 0;\n selectedValue.length = 0;\n selectedIndexes.splice(0, selectedIndexes.length);\n items.value.splice(0, items.value.length, props.options ?? []);\n\n if (cascaderValue.value != null) {\n const path = getIndexesByValue(props.options, cascaderValue.value);\n path?.forEach((e: number) => {\n // @ts-ignore\n selectedIndexes.push(e);\n });\n watchSelectedIndexes();\n } else {\n // 如果 value 为空,重置为初始状态\n steps.push(placeholder.value);\n stepIndex.value = 0;\n }\n };\n\n const watchSelectedIndexes = () => {\n if (props.options && props.options.length > 0) {\n items.value.splice(0, items.value.length, ...[props.options]);\n\n const keys = props.keys as KeysType;\n for (let i = 0, size = selectedIndexes.length; i < size; i += 1) {\n const index = selectedIndexes[i];\n const next = items.value[i]?.[index];\n selectedValue.push(lodashGet(next, keys?.value ?? 'value'));\n steps.push(lodashGet(next, keys?.label ?? 'label'));\n const children = lodashGet(next, keys?.children ?? 'children');\n if (Array.isArray(children) && children.length > 0) {\n items.value.push(children);\n }\n }\n }\n\n if (steps.length < items.value.length) {\n steps.push(placeholder.value);\n }\n stepIndex.value = items.value.length - 1;\n };\n\n const getIndexesByValue = (options: any, value: any) => {\n const keys = props.keys as KeysType;\n for (let i = 0; i < options.length; i++) {\n if (lodashGet(options[i], keys?.value ?? 'value') === value) {\n return [i];\n }\n const children = lodashGet(options[i], keys?.children ?? 'children');\n if (Array.isArray(children) && children.length > 0) {\n const res: any = getIndexesByValue(children, value);\n if (res) {\n return [i, ...res];\n }\n }\n }\n };\n\n const chooseSelect = (value: RadioValue, level: number, index: number, item: any) => {\n const keys = props.keys as KeysType;\n selectedIndexes[level] = index;\n selectedIndexes.length = level + 1;\n selectedValue[level] = typeof value === 'number' ? value : String(value);\n selectedValue.length = level + 1;\n steps[level] = lodashGet(item, keys?.label ?? 'label');\n\n const children = lodashGet(item, keys?.children ?? 'children');\n if (children === true && props.load) {\n // 异步加载子节点\n const nodeModel = {\n data: item,\n value: lodashGet(item, keys?.value ?? 'value'),\n label: lodashGet(item, keys?.label ?? 'label'),\n } as any;\n props\n .load(nodeModel)\n .then((loadedChildren) => {\n // 将加载的数据与现有 options 结合\n items.value[level + 1] = loadedChildren;\n items.value.length = level + 2;\n stepIndex.value += 1;\n steps[level + 1] = placeholder.value;\n steps.length = level + 2;\n })\n .catch((error) => {\n console.error('Load children failed:', error);\n });\n } else if (Array.isArray(children) && children.length > 0) {\n items.value[level + 1] = children;\n items.value.length = level + 2;\n stepIndex.value += 1;\n steps[level + 1] = placeholder.value;\n steps.length = level + 2;\n } else {\n items.value.length = level + 1;\n steps.length = level + 1;\n stepIndex.value = level;\n\n setCascaderValue(\n lodashGet(item, keys?.value ?? 'value'),\n items.value.map((item, index) => toRaw(item?.[selectedIndexes[index]])),\n );\n close('finish');\n }\n };\n\n const cancelSelect = (value: RadioValue, level: number, index: number, item: any) => {\n const keys = props.keys as KeysType;\n selectedIndexes[level] = index;\n selectedIndexes.length = level;\n selectedValue.length = level;\n steps[level] = String(placeholder.value);\n steps[level + 1] = placeholder.value;\n steps.length = level + 1;\n\n const children = lodashGet(item, keys?.children ?? 'children');\n if (Array.isArray(children) && children.length > 0) {\n items.value[level + 1] = children;\n }\n };\n\n const handleSelect = (value: RadioValue, level: number, fromHandler = true) => {\n const keys = props.keys as KeysType;\n const index = items.value[level].findIndex((item: any) => lodashGet(item, keys?.value ?? 'value') === value);\n const item = items.value[level][index];\n if (lodashGet(item, keys?.disabled ?? 'disabled')) {\n return;\n }\n\n if (fromHandler) {\n props.onPick?.({\n value: lodashGet(item, keys?.value ?? 'value'),\n label: lodashGet(item, keys?.label ?? 'label'),\n level,\n index,\n });\n }\n\n if (props.checkStrictly && selectedValue.includes(String(value)) && fromHandler) {\n cancelSelect(value, level, index, item);\n } else {\n chooseSelect(value, level, index, item);\n }\n };\n\n const close = (trigger: CascaderTriggerSource) => {\n props.onClose?.(trigger);\n };\n\n const handleVisibleChange = (visible: boolean, e: any) => {\n if (e?.trigger !== 'overlay') return;\n close('overlay');\n };\n\n const updateCascaderValue = () => {\n setCascaderValue(\n selectedValue[selectedValue.length - 1],\n items.value\n .filter((item, index) => !!item && selectedIndexes.length > index)\n .map((item, index) => toRaw(item?.[selectedIndexes[index]])),\n );\n };\n\n const onClose = () => {\n open.value = false;\n close('close-btn');\n };\n\n const onCloseBtn = () => {\n if (props.checkStrictly) {\n updateCascaderValue();\n onClose();\n } else {\n onClose();\n }\n };\n\n const onStepClick = (index: number) => {\n stepIndex.value = index;\n };\n\n const onTabChange = (value: number | string) => {\n stepIndex.value = Number(value);\n };\n\n watch(open, () => {\n emit('update:visible', open.value);\n });\n\n watch(visible, () => {\n open.value = visible.value;\n if (visible.value) {\n initWithValue();\n }\n });\n\n watch(\n () => props.options,\n () => {\n initWithValue();\n\n if (open.value && cascaderValue.value) {\n handleSelect(childrenInfo.value, childrenInfo.level, false);\n }\n },\n {\n deep: true,\n },\n );\n\n watch(placeholder, (newValue, oldValue) => {\n const index = steps.indexOf(oldValue);\n if (index !== -1) {\n steps[index] = newValue;\n }\n });\n\n watch(\n cascaderValue,\n () => {\n initWithValue();\n },\n {\n deep: true,\n },\n );\n\n onMounted(() => {\n initWithValue();\n });\n\n const reset = () => {\n setCascaderValue(undefined, []);\n };\n\n expose({\n reset,\n });\n\n return () => {\n const title = renderTNodeJSX('title') || globalConfig.value.title;\n const closeBtn = renderTNodeJSX('closeBtn', { defaultNode: <CloseIcon size=\"24px\" /> });\n const PlaceholderNode = renderTNodeJSX('placeholder');\n\n const readerStep = () => {\n return (\n <div class={`${cascaderClass.value}__steps`}>\n {steps.map((step, index) => {\n return (\n <div\n class={`${cascaderClass.value}__step`}\n onClick={() => {\n onStepClick(index);\n }}\n >\n <div\n class={[\n `${cascaderClass.value}__step-dot`,\n {\n [`${cascaderClass.value}__step-dot--active`]: step !== placeholder.value,\n [`${cascaderClass.value}__step-dot--last`]: index === steps.length - 1,\n },\n ]}\n />\n <div\n class={[\n `${cascaderClass.value}__step-label`,\n {\n [`${cascaderClass.value}__step-label--active`]: index === stepIndex.value,\n },\n ]}\n >\n {PlaceholderNode && !(typeof PlaceholderNode === 'string') && step === placeholder.value\n ? PlaceholderNode\n : step}\n </div>\n <ChevronRightIcon class={`${cascaderClass.value}__step-arrow`} size=\"22\" />\n </div>\n );\n })}\n </div>\n );\n };\n\n const renderTabStep = () => {\n const _steps = steps.map((item, index) => ({ value: index, label: item }));\n return <Tabs value={stepIndex.value} spaceEvenly={false} list={_steps} onChange={onTabChange} />;\n };\n\n const readerSteps = () => {\n if (steps.length === 0) {\n return null;\n }\n if (props.theme === 'step') {\n return readerStep();\n }\n\n if (open.value && props.theme === 'tab') {\n return renderTabStep();\n }\n };\n return (\n <TPopup\n overlayProps={props.overlayProps}\n v-model={open.value}\n placement=\"bottom\"\n onVisibleChange={handleVisibleChange}\n >\n <div class={`${cascaderClass.value}`}>\n <div class={`${cascaderClass.value}__title`}>{title}</div>\n <div class={`${cascaderClass.value}__close-btn`} onClick={onCloseBtn}>\n {closeBtn}\n </div>\n {renderTNodeJSX('header')}\n <div class={`${cascaderClass.value}__content`}>\n {readerSteps()}\n {renderTNodeJSX('middleContent')}\n {props.subTitles && props.subTitles[stepIndex.value] && (\n <div class={`${cascaderClass.value}__options-title`}>{props.subTitles[stepIndex.value]}</div>\n )}\n <div\n class={`${cascaderClass.value}__options-container`}\n style={`width: ${items.value.length + 1}00vw; transform: translateX(-${stepIndex.value}00vw);`}\n >\n {items.value.map((options, index) => {\n return (\n <div class={`${cascaderClass.value}__options`}>\n <Transition appear name=\"slide\">\n <div class={`${cascaderClass.value}-radio-group-${index}`}>\n <TRadioGroup\n value={selectedValue[index] || ''}\n keys={props.keys}\n options={options}\n placement=\"right\"\n icon=\"line\"\n borderless\n onChange={(\n value: RadioValue,\n context: {\n e: Event;\n },\n ) => {\n handleSelect(value, index);\n }}\n />\n </div>\n </Transition>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </TPopup>\n );\n };\n },\n});\n"],"names":["prefix","config","name","childrenInfo","value","level","defineComponent","props","emits","setup","emit","_ref","expose","renderTNodeJSX","useTNodeJSX","cascaderClass","usePrefixClass","_useConfig","useConfig","globalConfig","_toRefs","toRefs","visible","modelValue","_useVModel","useVModel","defaultValue","onChange","_useVModel2","_slicedToArray","cascaderValue","setCascaderValue","open","ref","placeholder","computed","stepIndex","selectedIndexes","reactive","selectedValue","items","_props2$options","options","steps","initWithValue","_props2$options2","length","splice","path","getIndexesByValue","forEach","e","push","watchSelectedIndexes","_items$value","apply","keys","i","size","_items$value$i","_keys$value","_keys$label","_keys$children","index","next","lodashGet","label","children","Array","isArray","_keys$value2","_keys$children2","res","concat","_toConsumableArray","chooseSelect","item","_keys$label2","_keys$children3","String","load","_keys$value3","_keys$label3","nodeModel","data","then","loadedChildren","catch","error","console","_keys$value4","map","toRaw","close","cancelSelect","_keys$children4","handleSelect","_keys$disabled","fromHandler","findIndex","_keys$value5","disabled","_props2$onPick","_keys$value6","_keys$label4","onPick","checkStrictly","includes","trigger","_props2$onClose","onClose","handleVisibleChange","updateCascaderValue","filter","onCloseBtn","onStepClick","onTabChange","Number","watch","deep","newValue","oldValue","indexOf","onMounted","reset","title","closeBtn","defaultNode","_createVNode","CloseIcon","PlaceholderNode","readerStep","step","onClick","_defineProperty","ChevronRightIcon","renderTabStep","_steps","Tabs","readerSteps","theme","TPopup","overlayProps","onUpdateModelValue","$event","default","_default","subTitles","TRadioGroup","context"],"mappings":"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"}