fast-element-plus 2.0.6 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/components/inputDialogPage/src/inputDialogPage.d.ts +3 -3
- package/dist/components/inputDialogPage/src/inputDialogPage.mjs +5 -2
- package/dist/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -1
- package/dist/components/select/src/select.d.ts +4 -4
- package/dist/components/select/src/select.mjs +53 -47
- package/dist/components/select/src/select.mjs.map +1 -1
- package/dist/components/selectPage/src/selectPage.d.ts +4 -4
- package/dist/components/selectPage/src/selectPage.mjs +65 -51
- package/dist/components/selectPage/src/selectPage.mjs.map +1 -1
- package/dist/components/selectV2/src/selectV2.d.ts +4 -4
- package/dist/components/selectV2/src/selectV2.mjs +80 -48
- package/dist/components/selectV2/src/selectV2.mjs.map +1 -1
- package/dist/components/table/src/table.mjs +2 -2
- package/dist/components/table/src/table.mjs.map +1 -1
- package/dist/components/table/src/tableSearchForm.mjs +4 -4
- package/dist/components/table/src/tableSearchForm.mjs.map +1 -1
- package/dist/components/tree/src/tree.d.ts +5 -5
- package/dist/components/tree/src/tree.mjs +11 -7
- package/dist/components/tree/src/tree.mjs.map +1 -1
- package/dist/components/treeSelect/src/treeSelect.d.ts +13 -13
- package/dist/components/treeSelect/src/treeSelect.mjs +61 -56
- package/dist/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/dist/components/upload/src/upload.d.ts +0 -5
- package/dist/components/upload/src/upload.mjs +6 -6
- package/dist/components/upload/src/upload.mjs.map +1 -1
- package/dist/components/upload/src/useUpload.d.ts +1 -1
- package/dist/components/upload/src/useUpload.mjs +4 -17
- package/dist/components/upload/src/useUpload.mjs.map +1 -1
- package/dist/components/uploadImage/src/uploadImage.d.ts +0 -5
- package/dist/components/uploadImage/src/uploadImage.mjs +1 -3
- package/dist/components/uploadImage/src/uploadImage.mjs.map +1 -1
- package/dist/components/uploadImages/src/uploadImages.d.ts +0 -5
- package/dist/components/uploadImages/src/uploadImages.mjs +3 -3
- package/dist/components/uploadImages/src/uploadImages.mjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.global.min.js +4 -4
- package/dist/index.global.min.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableSearchForm.mjs","names":[],"sources":["../../../../src/components/table/src/tableSearchForm.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { ArrowDown, ArrowUp, Eleme, Refresh, Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElIcon, useGlobalSize } from \"element-plus\";\nimport { Brush } from \"@fast-element-plus/icons-vue\";\nimport { definePropType, makeSlots, useRender, withDefineType } from \"../../../utils\";\nimport { FaDrawer } from \"../../drawer\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"../../layoutGrid\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableSearchFormItem from \"./tableSearchFormItem\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaDrawerInstance } from \"../../drawer\";\nimport type { FaLayoutGridBreakPoint, FaLayoutGridInstance, FaLayoutGridItemResponsive } from \"../../layoutGrid\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableSearchColumnCtx } from \"./table.type\";\n\ntype FaTableSearchFormSlots = Record<\n\tstring,\n\tFaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => Promise<void>;\n\t}\n>;\n\nexport default defineComponent({\n\tname: \"FaTableSearchForm\",\n\tprops: {\n\t\t/** @description 显示 */\n\t\tshow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true as const,\n\t\t},\n\t\t/** @description 折叠搜素 */\n\t\tcollapsedSearch: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** @description 高级搜素抽屉 */\n\t\tadvancedSearchDrawer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** @description Grid布局列配置 */\n\t\tcols: {\n\t\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakPoint, number>>([String, Number, Object]),\n\t\t\tdefault: () => ({ xs: 1, sm: 2, md: 4, lg: 5, xl: 6 }),\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true as const,\n\t\t},\n\t\t/** @description 重置 */\n\t\treset: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true as const,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\t// 获取响应式断点\n\t\tconst gridRef = ref<FaLayoutGridInstance>();\n\n\t\tconst tableState = inject(tableStateKey);\n\t\tif (tableState === undefined) throw new Error(\"FaTableSearchForm 必须在 FaTable 内部渲染。\");\n\n\t\tconst breakPoint = computed<FaLayoutGridBreakPoint>(() => gridRef.value?.breakPoint ?? \"xl\");\n\t\tconst getColumnCount = (value: FaLayoutGridBreakPoint): number => {\n\t\t\tif (typeof props.cols === \"number\") return props.cols;\n\t\t\tif (typeof props.cols === \"object\") return props.cols[value] ?? 1;\n\t\t\treturn Number(props.cols) || 1;\n\t\t};\n\n\t\tconst state = reactive({\n\t\t\trefreshing: false,\n\t\t\theight: \"auto\",\n\t\t\t/** 折叠 */\n\t\t\tcollapsed: true,\n\t\t\t/** 显示折叠 */\n\t\t\tshowCollapsed: computed(() => {\n\t\t\t\tlet show = false;\n\t\t\t\ttableState.searchColumns.reduce((prev, current) => {\n\t\t\t\t\tconst search = current.search;\n\t\t\t\t\tif (search === undefined) return prev;\n\t\t\t\t\tprev += (search[breakPoint.value]?.span ?? search.span ?? 1) + (search[breakPoint.value]?.offset ?? search.offset ?? 0);\n\t\t\t\t\tif (prev >= getColumnCount(breakPoint.value)) show = true;\n\t\t\t\t\treturn prev;\n\t\t\t\t}, 0);\n\t\t\t\treturn show;\n\t\t\t}),\n\t\t\tsearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tadvancedSearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tbreakPoint: 0,\n\t\t});\n\n\t\tconst faTableSearchFormRef = ref<HTMLElement>();\n\t\tconst advancedSearchRef = ref<FaDrawerInstance>();\n\n\t\t// 获取响应式设置\n\t\tconst getResponsive = (\n\t\t\titem: FaTableSearchColumnCtx\n\t\t): { span: number; offset: number } & Partial<Record<FaLayoutGridBreakPoint, FaLayoutGridItemResponsive>> => {\n\t\t\treturn {\n\t\t\t\tspan: item.span ?? 1,\n\t\t\t\toffset: item?.offset ?? 0,\n\t\t\t\txs: item?.xs,\n\t\t\t\tsm: item?.sm,\n\t\t\t\tmd: item?.md,\n\t\t\t\tlg: item?.lg,\n\t\t\t\txl: item?.xl,\n\t\t\t};\n\t\t};\n\n\t\tconst handleBreakPointChange = ({ breakPoint }: { breakPoint: FaLayoutGridBreakPoint }): void => {\n\t\t\t// 这里 -1 是排除固定的\n\t\t\tstate.breakPoint = getColumnCount(breakPoint) - 1;\n\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t};\n\n\t\twatch(\n\t\t\t() => tableState.searchColumns,\n\t\t\t() => {\n\t\t\t\tif (state.breakPoint) {\n\t\t\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\t// @ts-expect-error Element Plus 的递归 Props 在此处触发类型实例化深度限制。\n\t\tconst searchColumns = computed(() => (props.advancedSearchDrawer ? state.searchColumns : tableState.searchColumns));\n\n\t\twatch(\n\t\t\t() => props.advancedSearchDrawer,\n\t\t\t(newValue) => {\n\t\t\t\tif (newValue) {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t} else {\n\t\t\t\t\tstate.collapsed = props.collapsedSearch;\n\t\t\t\t}\n\t\t\t\tstate.refreshing = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tstate.refreshing = false;\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.collapsedSearch,\n\t\t\t(newValue) => {\n\t\t\t\tif (!props.collapsedSearch) {\n\t\t\t\t\tstate.collapsed = newValue;\n\t\t\t\t} else {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() =>\n\t\t\ttableState.searchColumns.length > 0 ? (\n\t\t\t\t<div\n\t\t\t\t\tref={faTableSearchFormRef}\n\t\t\t\t\tclass={[\n\t\t\t\t\t\t\"el-card fa-table__search\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"fa-table__search-hidden\": !props.show,\n\t\t\t\t\t\t\t\"fa-table__search__disable\": tableState.loading,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-right\">\n\t\t\t\t\t\t{!state.refreshing && (\n\t\t\t\t\t\t\t<FaLayoutGrid\n\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\tcollapsed={state.collapsed}\n\t\t\t\t\t\t\t\tgap={_globalSize.value === \"small\" ? [20, 0] : [20, 10]}\n\t\t\t\t\t\t\t\tcols={props.cols}\n\t\t\t\t\t\t\t\tonBreakPointChange={handleBreakPointChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{searchColumns.value.map((item, index) =>\n\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.search.key ?? item.prop} data-index={index} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search?.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<FaLayoutGridItem suffix>\n\t\t\t\t\t\t\t\t\t<div class=\"fa-table__search-operation\">\n\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"搜索\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tvoid props.search();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t搜索\n\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t\t\t\t\t\t\ticon={Brush}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tvoid props.reset();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t重置\n\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t{props.advancedSearchDrawer\n\t\t\t\t\t\t\t\t\t\t\t? state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid advancedSearchRef.value?.open();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t高级搜索\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t: state.showCollapsed && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlink\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.collapsed = !state.collapsed;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElIcon>{state.collapsed ? <ArrowDown /> : <ArrowUp />}</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</form>\n\t\t\t\t\t{props.advancedSearchDrawer && state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t<FaDrawer\n\t\t\t\t\t\t\tref={advancedSearchRef}\n\t\t\t\t\t\t\tclass=\"fa-table__search-advanced\"\n\t\t\t\t\t\t\tsize=\"20%\"\n\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\tappendToBody={false}\n\t\t\t\t\t\t\tshowCloseButton={false}\n\t\t\t\t\t\t\tshowConfirmButton={false}\n\t\t\t\t\t\t\tshowFullscreen={false}\n\t\t\t\t\t\t\tshowRefresh={false}\n\t\t\t\t\t\t\tonConfirmClick={() => props.search()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-top\">\n\t\t\t\t\t\t\t\t<FaLayoutGrid gap={[20, 0]} cols={{ xs: 1, sm: 2, md: 4, lg: 5, xl: 6 }}>\n\t\t\t\t\t\t\t\t\t{state.advancedSearchColumns.map((item) =>\n\t\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.prop ?? item.search.key} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-top\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</FaDrawer>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div />\n\t\t\t)\n\t\t);\n\t},\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tableSearchForm.mjs","names":[],"sources":["../../../../src/components/table/src/tableSearchForm.tsx"],"sourcesContent":["import { computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { ArrowDown, ArrowUp, Eleme, Refresh, Search } from \"@element-plus/icons-vue\";\nimport { ElButton, ElIcon, useGlobalSize } from \"element-plus\";\nimport { Brush } from \"@fast-element-plus/icons-vue\";\nimport { definePropType, makeSlots, useRender, withDefineType } from \"../../../utils\";\nimport { FaDrawer } from \"../../drawer\";\nimport { FaLayoutGrid, FaLayoutGridItem } from \"../../layoutGrid\";\nimport { getTableDefaultSlots } from \"./table.type\";\nimport FaTableSearchFormItem from \"./tableSearchFormItem\";\nimport { tableStateKey } from \"./useTable\";\nimport type { FaDrawerInstance } from \"../../drawer\";\nimport type { FaLayoutGridBreakPoint, FaLayoutGridInstance, FaLayoutGridItemResponsive } from \"../../layoutGrid\";\nimport type { FaTableColumnCtx, FaTableDefaultSlotsResult, FaTableSearchColumnCtx } from \"./table.type\";\n\ntype FaTableSearchFormSlots = Record<\n\tstring,\n\tFaTableDefaultSlotsResult & {\n\t\tcolumn?: FaTableColumnCtx;\n\t\tsearch?: () => Promise<void>;\n\t}\n>;\n\nexport default defineComponent({\n\tname: \"FaTableSearchForm\",\n\tprops: {\n\t\t/** @description 显示 */\n\t\tshow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true as const,\n\t\t},\n\t\t/** @description 折叠搜素 */\n\t\tcollapsedSearch: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** @description 高级搜素抽屉 */\n\t\tadvancedSearchDrawer: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/** @description Grid布局列配置 */\n\t\tcols: {\n\t\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakPoint, number>>([String, Number, Object]),\n\t\t\tdefault: () => ({ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }),\n\t\t},\n\t\t/** @description 搜索 */\n\t\tsearch: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true as const,\n\t\t},\n\t\t/** @description 重置 */\n\t\treset: {\n\t\t\ttype: definePropType<() => Promise<void>>(Function),\n\t\t\trequired: true as const,\n\t\t},\n\t},\n\tslots: makeSlots<FaTableSearchFormSlots>(),\n\tsetup(props, { slots }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\t// 获取响应式断点\n\t\tconst gridRef = ref<FaLayoutGridInstance>();\n\n\t\tconst tableState = inject(tableStateKey);\n\t\tif (tableState === undefined) throw new Error(\"FaTableSearchForm 必须在 FaTable 内部渲染。\");\n\n\t\tconst breakPoint = computed<FaLayoutGridBreakPoint>(() => gridRef.value?.breakPoint ?? \"xl\");\n\t\tconst getColumnCount = (value: FaLayoutGridBreakPoint): number => {\n\t\t\tif (typeof props.cols === \"number\") return props.cols;\n\t\t\tif (typeof props.cols === \"object\") return props.cols[value] ?? 1;\n\t\t\treturn Number(props.cols) || 1;\n\t\t};\n\n\t\tconst state = reactive({\n\t\t\trefreshing: false,\n\t\t\theight: \"auto\",\n\t\t\t/** 折叠 */\n\t\t\tcollapsed: true,\n\t\t\t/** 显示折叠 */\n\t\t\tshowCollapsed: computed(() => {\n\t\t\t\tlet show = false;\n\t\t\t\ttableState.searchColumns.reduce((prev, current) => {\n\t\t\t\t\tconst search = current.search;\n\t\t\t\t\tif (search === undefined) return prev;\n\t\t\t\t\tprev += (search[breakPoint.value]?.span ?? search.span ?? 1) + (search[breakPoint.value]?.offset ?? search.offset ?? 0);\n\t\t\t\t\tif (prev >= getColumnCount(breakPoint.value)) show = true;\n\t\t\t\t\treturn prev;\n\t\t\t\t}, 0);\n\t\t\t\treturn show;\n\t\t\t}),\n\t\t\tsearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tadvancedSearchColumns: withDefineType<FaTableColumnCtx[]>([]),\n\t\t\tbreakPoint: 0,\n\t\t});\n\n\t\tconst faTableSearchFormRef = ref<HTMLElement>();\n\t\tconst advancedSearchRef = ref<FaDrawerInstance>();\n\n\t\t// 获取响应式设置\n\t\tconst getResponsive = (\n\t\t\titem: FaTableSearchColumnCtx\n\t\t): { span: number; offset: number } & Partial<Record<FaLayoutGridBreakPoint, FaLayoutGridItemResponsive>> => {\n\t\t\treturn {\n\t\t\t\tspan: item.span ?? 1,\n\t\t\t\toffset: item?.offset ?? 0,\n\t\t\t\txs: item?.xs,\n\t\t\t\tsm: item?.sm,\n\t\t\t\tmd: item?.md,\n\t\t\t\tlg: item?.lg,\n\t\t\t\txl: item?.xl,\n\t\t\t};\n\t\t};\n\n\t\tconst handleBreakPointChange = ({ breakPoint }: { breakPoint: FaLayoutGridBreakPoint }): void => {\n\t\t\t// 这里 -1 是排除固定的\n\t\t\tstate.breakPoint = getColumnCount(breakPoint) - 1;\n\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t};\n\n\t\twatch(\n\t\t\t() => tableState.searchColumns,\n\t\t\t() => {\n\t\t\t\tif (state.breakPoint) {\n\t\t\t\t\tstate.searchColumns = tableState.searchColumns.filter((f) => f?.show).slice(0, state.breakPoint);\n\t\t\t\t\tstate.advancedSearchColumns = tableState.searchColumns.filter((f) => f?.show).slice(state.breakPoint);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\t// @ts-expect-error Element Plus 的递归 Props 在此处触发类型实例化深度限制。\n\t\tconst searchColumns = computed(() => (props.advancedSearchDrawer ? state.searchColumns : tableState.searchColumns));\n\n\t\twatch(\n\t\t\t() => props.advancedSearchDrawer,\n\t\t\t(newValue) => {\n\t\t\t\tif (newValue) {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t} else {\n\t\t\t\t\tstate.collapsed = props.collapsedSearch;\n\t\t\t\t}\n\t\t\t\tstate.refreshing = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tstate.refreshing = false;\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t);\n\n\t\twatch(\n\t\t\t() => props.collapsedSearch,\n\t\t\t(newValue) => {\n\t\t\t\tif (!props.collapsedSearch) {\n\t\t\t\t\tstate.collapsed = newValue;\n\t\t\t\t} else {\n\t\t\t\t\t// 抽屉默认折叠\n\t\t\t\t\tstate.collapsed = true;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tuseRender(() =>\n\t\t\ttableState.searchColumns.length > 0 ? (\n\t\t\t\t<div\n\t\t\t\t\tref={faTableSearchFormRef}\n\t\t\t\t\tclass={[\n\t\t\t\t\t\t\"el-card fa-table__search\",\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"fa-table__search-hidden\": !props.show,\n\t\t\t\t\t\t\t\"fa-table__search__disable\": tableState.loading,\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t>\n\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-right\">\n\t\t\t\t\t\t{!state.refreshing && (\n\t\t\t\t\t\t\t<FaLayoutGrid\n\t\t\t\t\t\t\t\tref={gridRef}\n\t\t\t\t\t\t\t\tcollapsed={state.collapsed}\n\t\t\t\t\t\t\t\tgap={_globalSize.value === \"small\" ? [20, 0] : [20, 10]}\n\t\t\t\t\t\t\t\tcols={props.cols}\n\t\t\t\t\t\t\t\tonBreakPointChange={handleBreakPointChange}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{searchColumns.value.map((item, index) =>\n\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.search.key ?? item.prop} data-index={index} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-right\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search?.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<FaLayoutGridItem suffix>\n\t\t\t\t\t\t\t\t\t<div class=\"fa-table__search-operation\">\n\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"搜索\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\ticon={Refresh}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tvoid props.search();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t搜索\n\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\ttitle=\"重置\"\n\t\t\t\t\t\t\t\t\t\t\ticon={Brush}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tvoid props.reset();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t重置\n\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t{props.advancedSearchDrawer\n\t\t\t\t\t\t\t\t\t\t\t? state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"info\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplain\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={Search}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid advancedSearchRef.value?.open();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t高级搜索\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t: state.showCollapsed && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading={tableState.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle={state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlink\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.collapsed = !state.collapsed;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{state.collapsed ? \"展开\" : \"折叠\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ElIcon>{state.collapsed ? <ArrowDown /> : <ArrowUp />}</ElIcon>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</form>\n\t\t\t\t\t{props.advancedSearchDrawer && state.advancedSearchColumns.length > 0 && (\n\t\t\t\t\t\t<FaDrawer\n\t\t\t\t\t\t\tref={advancedSearchRef}\n\t\t\t\t\t\t\tclass=\"fa-table__search-advanced\"\n\t\t\t\t\t\t\tsize=\"20%\"\n\t\t\t\t\t\t\ttitle=\"高级搜索\"\n\t\t\t\t\t\t\tappendToBody={false}\n\t\t\t\t\t\t\tshowCloseButton={false}\n\t\t\t\t\t\t\tshowConfirmButton={false}\n\t\t\t\t\t\t\tshowFullscreen={false}\n\t\t\t\t\t\t\tshowRefresh={false}\n\t\t\t\t\t\t\tonConfirmClick={() => props.search()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<form class=\"el-form el-form--default el-form--label-top\">\n\t\t\t\t\t\t\t\t<FaLayoutGrid gap={[20, 0]} cols={{ xs: 2, sm: 3, md: 4, lg: 5, xl: 6 }}>\n\t\t\t\t\t\t\t\t\t{state.advancedSearchColumns.map((item) =>\n\t\t\t\t\t\t\t\t\t\titem.search ? (\n\t\t\t\t\t\t\t\t\t\t\t<FaLayoutGridItem key={item.prop ?? item.search.key} {...getResponsive(item.search)}>\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item el-form-item--default el-form-item--label-top\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<label class=\"el-form-item__label\">{item.search.label}</label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"el-form-item__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.search.slot ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tslots[item.search.slot]?.({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolumn: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearch: props.search,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...getTableDefaultSlots(tableState),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FaTableSearchFormItem column={item} search={props.search} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</FaLayoutGridItem>\n\t\t\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t</FaDrawer>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<div />\n\t\t\t)\n\t\t);\n\t},\n});\n"],"mappings":"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"}
|
|
@@ -153,10 +153,10 @@ export declare const faTreeEmits: {
|
|
|
153
153
|
"update:label": (value: string) => boolean;
|
|
154
154
|
/** @description 数据改变 */
|
|
155
155
|
dataChangeCallBack: (data: ElTreeOutput[]) => boolean;
|
|
156
|
-
/** @description
|
|
156
|
+
/** @description 选中数据改变 */
|
|
157
157
|
change: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => boolean;
|
|
158
158
|
/** @description 节点点击 */
|
|
159
|
-
"node-click": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => boolean;
|
|
159
|
+
"node-click": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => boolean;
|
|
160
160
|
'check-change': (data: any, checked: boolean, indeterminate: boolean) => any;
|
|
161
161
|
'current-change': (data: any | null, node: import("element-plus/es/components/tree/src/model/node.mjs").default | null) => boolean;
|
|
162
162
|
'node-contextmenu': (evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any;
|
|
@@ -377,10 +377,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
377
377
|
"update:label": (value: string) => boolean;
|
|
378
378
|
/** @description 数据改变 */
|
|
379
379
|
dataChangeCallBack: (data: ElTreeOutput[]) => boolean;
|
|
380
|
-
/** @description
|
|
380
|
+
/** @description 选中数据改变 */
|
|
381
381
|
change: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => boolean;
|
|
382
382
|
/** @description 节点点击 */
|
|
383
|
-
"node-click": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => boolean;
|
|
383
|
+
"node-click": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => boolean;
|
|
384
384
|
'check-change': (data: any, checked: boolean, indeterminate: boolean) => any;
|
|
385
385
|
'current-change': (data: any | null, node: import("element-plus/es/components/tree/src/model/node.mjs").default | null) => boolean;
|
|
386
386
|
'node-contextmenu': (evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any;
|
|
@@ -539,7 +539,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
539
539
|
"onCurrent-change"?: ((data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default | null) => any) | undefined;
|
|
540
540
|
"onUpdate:label"?: ((value: string) => any) | undefined;
|
|
541
541
|
onDataChangeCallBack?: ((data: ElTreeOutput<import("./tree.type").ElTreeValue, any>[]) => any) | undefined;
|
|
542
|
-
"onNode-click"?: ((_data: ElTreeOutput<import("./tree.type").ElTreeValue, any>, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent) => any) | undefined;
|
|
542
|
+
"onNode-click"?: ((_data: ElTreeOutput<import("./tree.type").ElTreeValue, any>, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent) => any) | undefined;
|
|
543
543
|
"onCheck-change"?: ((data: any, checked: boolean, indeterminate: boolean) => any) | undefined;
|
|
544
544
|
"onNode-contextmenu"?: ((evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any) | undefined;
|
|
545
545
|
"onNode-collapse"?: ((data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any) | undefined;
|
|
@@ -8,7 +8,7 @@ import { withDefineType } from "../../../utils/vue/with.mjs";
|
|
|
8
8
|
import { computed, createTextVNode, createVNode, defineComponent, mergeProps, nextTick, onMounted, reactive, ref, resolveDirective, watch, withDirectives } from "vue";
|
|
9
9
|
import { Expand, Fold } from "@element-plus/icons-vue";
|
|
10
10
|
import { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from "element-plus";
|
|
11
|
-
import { isArray, isBoolean, isNull, isNumber, isObject, isString, isUndefined } from "lodash-unified";
|
|
11
|
+
import { isArray, isBoolean, isEqual, isNull, isNumber, isObject, isString, isUndefined } from "lodash-unified";
|
|
12
12
|
import { useVModel } from "@vueuse/core";
|
|
13
13
|
//#region src/components/tree/src/tree.tsx
|
|
14
14
|
/** FaTree 的运行时 Props 定义。 */
|
|
@@ -103,7 +103,7 @@ const faTreeEmits = {
|
|
|
103
103
|
"update:label": (value) => isString(value) || isNull(value),
|
|
104
104
|
/** @description 数据改变 */
|
|
105
105
|
dataChangeCallBack: (data) => isArray(data),
|
|
106
|
-
/** @description
|
|
106
|
+
/** @description 选中数据改变 */
|
|
107
107
|
change: (_data, _node, _instance, _event) => true,
|
|
108
108
|
/** @description 节点点击 */
|
|
109
109
|
"node-click": (_data, _node, _instance, _event) => true
|
|
@@ -206,11 +206,15 @@ var tree_default = defineComponent({
|
|
|
206
206
|
if (!node.expanded) node.expand();
|
|
207
207
|
else if (node.expanded && props.collapseOnClickNode) node.collapse();
|
|
208
208
|
}
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
if (data["all"] || node.key !== void 0 && node.key !== null) {
|
|
210
|
+
const value = data["all"] ? props.allValue : node.key;
|
|
211
|
+
if (!isEqual(state.value, value)) {
|
|
212
|
+
state.value = value;
|
|
213
|
+
selectedLabel.value = node.label;
|
|
214
|
+
emit("update:modelValue", value);
|
|
215
|
+
emit("change", data, node, instance, event);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
214
218
|
emit("node-click", data, node, instance, event);
|
|
215
219
|
};
|
|
216
220
|
onMounted(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.mjs","names":["update:modelValue","update:label","node-click"],"sources":["../../../../src/components/tree/src/tree.tsx"],"sourcesContent":["import { useVModel } from \"@vueuse/core\";\nimport { computed, defineComponent, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from \"element-plus\";\nimport { isArray, isBoolean, isNull, isNumber, isObject, isString, isUndefined } from \"lodash-unified\";\nimport { addCssUnit, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport type { FilterValue, TreeNodeData } from \"element-plus\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\nimport type { PagedInput } from \"../../table\";\nimport type { FilterNodeMethodFunction, TreeNode } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\n\n/** FaTree 的运行时 Props 定义。 */\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 树节点筛选方法。 */\n\tfilterNodeMethod: {\n\t\ttype: definePropType<FilterNodeMethodFunction>(Function),\n\t},\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** @description 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 折叠 */\n\thamburger: Boolean,\n\t/** @description 隐藏全部 */\n\thideAll: Boolean,\n\t/** @description 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** @description 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: (): ElTreeOutput[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput>([String, Number, Object]),\n};\n\n/** FaTree 的运行时 Emits 定义。 */\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | null | undefined): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isNull(value) || isUndefined(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string): boolean => isString(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElTreeOutput[]): boolean => isArray(data),\n\t/** @description 改变 */\n\tchange: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent): boolean => true,\n\t/** @description 节点点击 */\n\t\"node-click\": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent): boolean => true,\n};\n\n/** FaTree 的插槽参数。 */\nexport interface FaTreeSlots extends Record<string, unknown> {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: TreeNode; data: ElTreeOutput };\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 显示内容插槽 */\n\tlabel: { node: TreeNode; data: ElTreeOutput };\n}\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | null | undefined>(props.modelValue),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\torgTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: props.hamburger || false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addCssUnit(props.width);\n\t\t\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\n\t\t/** @description 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => {\n\t\t\tconst childrenKey = props.props.children ?? \"children\";\n\t\t\treturn state.orgTreeData.every((item) => !Array.isArray(item[childrenKey]) || item[childrenKey].length === 0);\n\t\t});\n\n\t\tconst treeRef = ref<InstanceType<typeof ElTree>>();\n\t\tlet requestVersion = 0;\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tlet curSelectedData: string | number | undefined;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tconst currentKey = treeRef.value?.getCurrentKey();\n\t\t\t\tif (typeof currentKey === \"string\" || typeof currentKey === \"number\") curSelectedData = currentKey;\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = {\n\t\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\t\tsearchValue: state.searchValue,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst responseData = await props.requestApi(params);\n\t\t\t\t\ttreeData = responseData.map((item) => ({ ...item }));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t\tthrow error;\n\t\t\t\t} finally {\n\t\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data.map((item) => ({ ...item }));\n\t\t\t}\n\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true });\n\t\t\t}\n\t\t\tstate.orgTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChangeCallBack\", state.treeData);\n\t\t\tconst selectedKey = curSelectedData ?? props.modelValue ?? props.defaultSelection;\n\t\t\tif (props.nodeKey && (typeof selectedKey === \"string\" || typeof selectedKey === \"number\")) {\n\t\t\t\tvoid nextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value?.setCurrentKey(selectedKey);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = (): void => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.orgTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.orgTreeData.map((item) => ({ ...item, [props.props.children ?? \"children\"]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: TreeNode): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tconst isAll: unknown = data[\"all\"];\n\t\t\tconst dataLabel: unknown = data[\"label\"];\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels: unknown[] = isAll ? [dataLabel] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level && parentNode) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst filterText = typeof value === \"string\" || typeof value === \"number\" ? String(value) : \"\";\n\t\t\tconst result = labels.some((label) =>\n\t\t\t\ttypeof label === \"string\" || typeof label === \"number\" ? String(label).includes(filterText) : false\n\t\t\t);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: TreeNode, instance: ComponentInternalInstance | null, event: MouseEvent): void => {\n\t\t\tif (!instance) return;\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!data[\"all\"] && (node.key === undefined || node.key === null)) return;\n\t\t\tstate.value = data[\"all\"] ? props.allValue : (node.key ?? null);\n\t\t\tselectedLabel.value = node.label;\n\t\t\temit(\"update:modelValue\", state.value);\n\t\t\temit(\"change\", data, node, instance, event);\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\t() => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\treturn loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue;\n\t\t\t\tif (typeof newValue === \"string\" || typeof newValue === \"number\") treeRef.value?.setCurrentKey(newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${_globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title !== undefined || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\tonInput={(value) => treeRef.value?.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNode-click={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: TreeNode; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label\"\n\t\t\t\t\t\t\t\t\ttitle={data[\"all\"] ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data[\"all\"] ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data[\"all\"] && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty?.() ?? [] }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** @description 获取节点的唯一标识。 */\n\t\t\tgetNodeKey: computed(() => treeRef.value?.getNodeKey),\n\t\t\t/** @description 获取指定节点的路径数据。 */\n\t\t\tgetNodePath: computed(() => treeRef.value?.getNodePath),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** @description \t若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree.mjs","names":["update:modelValue","update:label","node-click"],"sources":["../../../../src/components/tree/src/tree.tsx"],"sourcesContent":["import { useVModel } from \"@vueuse/core\";\nimport { computed, defineComponent, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { Expand, Fold } from \"@element-plus/icons-vue\";\nimport { ElIcon, ElInput, ElScrollbar, ElTree, treeEmits, treeProps, useGlobalSize } from \"element-plus\";\nimport { isArray, isBoolean, isEqual, isNull, isNumber, isObject, isString, isUndefined } from \"lodash-unified\";\nimport { addCssUnit, definePropType, makeSlots, useEmits, useExpose, useProps, useRender, withDefineType } from \"../../../utils\";\nimport type { FilterValue, TreeNodeData } from \"element-plus\";\nimport type { ComponentInternalInstance, VNode } from \"vue\";\nimport type { PagedInput } from \"../../table\";\nimport type { FilterNodeMethodFunction, TreeNode } from \"./tree.props\";\nimport type { ElTreeOutput } from \"./tree.type\";\n\n/** FaTree 的运行时 Props 定义。 */\nexport const faTreeProps = {\n\t...treeProps,\n\t/** 树节点筛选方法。 */\n\tfilterNodeMethod: {\n\t\ttype: definePropType<FilterNodeMethodFunction>(Function),\n\t},\n\t/** @description whether Select is disabled 重载使其支持 ElForm*/\n\tdisabled: {\n\t\ttype: Boolean,\n\t\tdefault: undefined,\n\t},\n\t/** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */\n\tnodeKey: {\n\t\ttype: String,\n\t\tdefault: \"value\",\n\t},\n\t/** @description 是否默认展开所有节点 */\n\tdefaultExpandAll: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否在点击节点的时候选中节点 */\n\tcheckOnClickNode: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 是否高亮当前选中节点 */\n\thighlightCurrent: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 点击折叠节点,需要开启 'expandOnClickNode' */\n\tcollapseOnClickNode: Boolean,\n\t/** @description v-model绑定值 */\n\tmodelValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description v-model:label绑定值 */\n\tlabel: String,\n\t/** @description 宽度 */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: 180,\n\t},\n\t/** @description 默认选择 */\n\tdefaultSelection: [String, Number],\n\t/** @description 标题 */\n\ttitle: String,\n\t/** @description 折叠 */\n\thamburger: Boolean,\n\t/** @description 隐藏全部 */\n\thideAll: Boolean,\n\t/** @description 隐藏过滤 */\n\thideFilter: Boolean,\n\t/** @description 全部值 */\n\tallValue: {\n\t\ttype: definePropType<string | number | boolean | object | null>([String, Number, Boolean, Object]),\n\t\tdefault: undefined,\n\t},\n\t/** @description 树形数据 */\n\tdata: {\n\t\ttype: definePropType<ElTreeOutput[]>(Array),\n\t\tdefault: (): ElTreeOutput[] => [],\n\t},\n\t/** @description 请求api */\n\trequestApi: {\n\t\ttype: definePropType<(params?: string | number | PagedInput) => Promise<ElTreeOutput[]>>(Function),\n\t},\n\t/** 初始化参数 */\n\tinitParam: definePropType<string | number | PagedInput>([String, Number, Object]),\n};\n\n/** FaTree 的运行时 Emits 定义。 */\nexport const faTreeEmits = {\n\t...treeEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: string | number | boolean | object | null | undefined): boolean =>\n\t\tisString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isNull(value) || isUndefined(value),\n\t/** @description v-model:label 回调 */\n\t\"update:label\": (value: string): boolean => isString(value) || isNull(value),\n\t/** @description 数据改变 */\n\tdataChangeCallBack: (data: ElTreeOutput[]): boolean => isArray(data),\n\t/** @description 选中数据改变 */\n\tchange: (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance, _event: MouseEvent): boolean => true,\n\t/** @description 节点点击 */\n\t\"node-click\": (_data: ElTreeOutput, _node: TreeNode, _instance: ComponentInternalInstance | null, _event: MouseEvent): boolean => true,\n};\n\n/** FaTree 的插槽参数。 */\nexport interface FaTreeSlots extends Record<string, unknown> {\n\t/** @description 默认内容插槽 */\n\tdefault: { node: TreeNode; data: ElTreeOutput };\n\t/** @description 当数据为空时自定义的内容 */\n\tempty: never;\n\t/** @description 显示内容插槽 */\n\tlabel: { node: TreeNode; data: ElTreeOutput };\n}\n\nexport default defineComponent({\n\tname: \"FaTree\",\n\tprops: faTreeProps,\n\temits: faTreeEmits,\n\tslots: makeSlots<FaTreeSlots>(),\n\tsetup(props, { slots, emit, expose }) {\n\t\tconst selectedLabel = useVModel(props, \"label\", emit, { passive: true });\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string | number | boolean | object | null | undefined>(props.modelValue),\n\t\t\tloading: false,\n\t\t\tsearchValue: withDefineType<string>(),\n\t\t\torgTreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\ttreeData: withDefineType<ElTreeOutput[]>([]),\n\t\t\thamburger: props.hamburger || false,\n\t\t\twidth: computed(() => {\n\t\t\t\tif (state.hamburger) {\n\t\t\t\t\treturn \"130px\";\n\t\t\t\t} else {\n\t\t\t\t\tconst width = addCssUnit(props.width);\n\t\t\t\t\tif (_globalSize.value === \"small\") {\n\t\t\t\t\t\treturn `calc(${width} * 0.9)`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn width;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t});\n\n\t\t/** @description 只有一层节点 */\n\t\tconst fold = computed<boolean>(() => {\n\t\t\tconst childrenKey = props.props.children ?? \"children\";\n\t\t\treturn state.orgTreeData.every((item) => !Array.isArray(item[childrenKey]) || item[childrenKey].length === 0);\n\t\t});\n\n\t\tconst treeRef = ref<InstanceType<typeof ElTree>>();\n\t\tlet requestVersion = 0;\n\n\t\tconst loadData = async (): Promise<void> => {\n\t\t\tconst currentRequestVersion = ++requestVersion;\n\t\t\tlet curSelectedData: string | number | undefined;\n\t\t\tif (props.nodeKey) {\n\t\t\t\t// 记录原本选中的值\n\t\t\t\tconst currentKey = treeRef.value?.getCurrentKey();\n\t\t\t\tif (typeof currentKey === \"string\" || typeof currentKey === \"number\") curSelectedData = currentKey;\n\t\t\t}\n\t\t\tlet treeData: ElTreeOutput[];\n\t\t\t// 判断是否需要自动请求\n\t\t\tif (props.requestApi) {\n\t\t\t\tstate.loading = true;\n\t\t\t\tconst params = {\n\t\t\t\t\t...(typeof props.initParam === \"object\" && props.initParam !== null ? props.initParam : {}),\n\t\t\t\t\tsearchValue: state.searchValue,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst responseData = await props.requestApi(params);\n\t\t\t\t\ttreeData = responseData.map((item) => ({ ...item }));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\t\t\tthrow error;\n\t\t\t\t} finally {\n\t\t\t\t\tif (currentRequestVersion === requestVersion) state.loading = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttreeData = props.data.map((item) => ({ ...item }));\n\t\t\t}\n\t\t\tif (currentRequestVersion !== requestVersion) return;\n\t\t\tif (!props.hideAll) {\n\t\t\t\ttreeData.unshift({ [props.nodeKey]: props.allValue, label: \"全部\", value: null, all: true });\n\t\t\t}\n\t\t\tstate.orgTreeData = treeData;\n\t\t\tstate.treeData = treeData;\n\t\t\temit(\"dataChangeCallBack\", state.treeData);\n\t\t\tconst selectedKey = curSelectedData ?? props.modelValue ?? props.defaultSelection;\n\t\t\tif (props.nodeKey && (typeof selectedKey === \"string\" || typeof selectedKey === \"number\")) {\n\t\t\t\tvoid nextTick(() => {\n\t\t\t\t\t// 设置原本选中的值\n\t\t\t\t\ttreeRef.value?.setCurrentKey(selectedKey);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tconst handleHamburgerClick = (): void => {\n\t\t\tif (state.hamburger) {\n\t\t\t\tstate.treeData = state.orgTreeData;\n\t\t\t} else {\n\t\t\t\t// 折叠只显示一级数据\n\t\t\t\tstate.treeData = state.orgTreeData.map((item) => ({ ...item, [props.props.children ?? \"children\"]: [] }));\n\t\t\t}\n\t\t\tstate.hamburger = !state.hamburger;\n\t\t};\n\n\t\tconst handleFilterNode = (value: FilterValue, data: TreeNodeData, child: TreeNode): boolean => {\n\t\t\tif (!value) return true;\n\t\t\tconst isAll: unknown = data[\"all\"];\n\t\t\tconst dataLabel: unknown = data[\"label\"];\n\t\t\tlet parentNode = child.parent,\n\t\t\t\tlabels: unknown[] = isAll ? [dataLabel] : [child.label],\n\t\t\t\tlevel = 1;\n\t\t\twhile (level < child.level && parentNode) {\n\t\t\t\tlabels = [...labels, parentNode.label];\n\t\t\t\tparentNode = parentNode.parent;\n\t\t\t\tlevel++;\n\t\t\t}\n\t\t\tconst filterText = typeof value === \"string\" || typeof value === \"number\" ? String(value) : \"\";\n\t\t\tconst result = labels.some((label) =>\n\t\t\t\ttypeof label === \"string\" || typeof label === \"number\" ? String(label).includes(filterText) : false\n\t\t\t);\n\t\t\tif (props.filterNodeMethod) {\n\t\t\t\treturn result && props.filterNodeMethod(value, data, child);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tconst handleNodeClick = (data: ElTreeOutput, node: TreeNode, instance: ComponentInternalInstance | null, event: MouseEvent): void => {\n\t\t\tif (!instance) return;\n\t\t\t// 判断是否开启点击展开节点,并且节点是折叠状态,则自动展开,否则需要点击箭头图标才能折叠或开启 'collapseOnClickNode'\n\t\t\tif (props.expandOnClickNode) {\n\t\t\t\tif (!node.expanded) {\n\t\t\t\t\tnode.expand();\n\t\t\t\t} else if (node.expanded && props.collapseOnClickNode) {\n\t\t\t\t\tnode.collapse();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (data[\"all\"] || (node.key !== undefined && node.key !== null)) {\n\t\t\t\tconst value = data[\"all\"] ? props.allValue : node.key;\n\t\t\t\tif (!isEqual(state.value, value)) {\n\t\t\t\t\tstate.value = value;\n\t\t\t\t\tselectedLabel.value = node.label;\n\t\t\t\t\temit(\"update:modelValue\", value);\n\t\t\t\t\temit(\"change\", data, node, instance, event);\n\t\t\t\t}\n\t\t\t}\n\t\t\temit(\"node-click\", data, node, instance, event);\n\t\t};\n\n\t\tonMounted(async () => {\n\t\t\tawait loadData();\n\t\t\twatch(\n\t\t\t\t() => props.data,\n\t\t\t\t() => {\n\t\t\t\t\tif (!props.requestApi) {\n\t\t\t\t\t\treturn loadData();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{ deep: true }\n\t\t\t);\n\t\t});\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue;\n\t\t\t\tif (typeof newValue === \"string\" || typeof newValue === \"number\") treeRef.value?.setCurrentKey(newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elTreeProps = useProps(props, treeProps, [\"data\", \"expandOnClickNode\", \"filterNodeMethod\"]);\n\t\tconst elTreeEmits = useEmits(treeEmits, emit, [\"node-click\"]);\n\n\t\tuseRender(() => (\n\t\t\t<div\n\t\t\t\tclass={[\"el-card fa-tree\", `fa-tree-${_globalSize.value}`, { \"fa-tree__fold\": state.hamburger || fold.value }]}\n\t\t\t\tstyle={{ width: state.width }}\n\t\t\t\tvLoading={state.loading}\n\t\t\t>\n\t\t\t\t{(props.title !== undefined || props.hamburger) && (\n\t\t\t\t\t<div class=\"fa-tree__title\">\n\t\t\t\t\t\t{props.title && <h4>{props.title}</h4>}\n\t\t\t\t\t\t{props.hamburger &&\n\t\t\t\t\t\t\t(state.hamburger ? (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"展开\">\n\t\t\t\t\t\t\t\t\t<Expand />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ElIcon onClick={handleHamburgerClick} title=\"折叠\">\n\t\t\t\t\t\t\t\t\t<Fold />\n\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{!props.hideFilter && (\n\t\t\t\t\t<ElInput\n\t\t\t\t\t\tclass=\"fa-tree__search-input\"\n\t\t\t\t\t\tvModel_trim={state.searchValue}\n\t\t\t\t\t\tplaceholder={state.hamburger ? \"关键字过滤\" : \"输入关键字进行过滤\"}\n\t\t\t\t\t\tclearable={Boolean(state.searchValue)}\n\t\t\t\t\t\tonInput={(value) => treeRef.value?.filter(value)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<ElScrollbar class=\"fa-tree__scrollbar\">\n\t\t\t\t\t<ElTree\n\t\t\t\t\t\t{...elTreeProps.value}\n\t\t\t\t\t\t{...elTreeEmits.value}\n\t\t\t\t\t\tref={treeRef}\n\t\t\t\t\t\tdata={state.treeData}\n\t\t\t\t\t\texpandOnClickNode={props.checkOnClickNode ? false : props.expandOnClickNode}\n\t\t\t\t\t\tfilterNodeMethod={handleFilterNode}\n\t\t\t\t\t\tonNode-click={handleNodeClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\tdefault: ({ node, data }: { node: TreeNode; data: ElTreeOutput }) => (\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"el-tree-node__label\"\n\t\t\t\t\t\t\t\t\ttitle={data[\"all\"] ? data.label : node.label}\n\t\t\t\t\t\t\t\t\tstyle={{ paddingLeft: fold.value ? \"3px\" : \"\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div>{data[\"all\"] ? data.label : slots.label ? slots.label({ node, data }) : node.label}</div>\n\t\t\t\t\t\t\t\t\t{node.key && data.showQuantity ? <span>[{data.quantity}]</span> : null}\n\t\t\t\t\t\t\t\t\t{!data[\"all\"] && slots.default && <span>{slots.default({ node, data })}</span>}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...(slots.empty && { empty: (): VNode[] => slots.empty?.() ?? [] }),\n\t\t\t\t\t\t}}\n\t\t\t\t\t</ElTree>\n\t\t\t\t</ElScrollbar>\n\t\t\t</div>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 过滤所有树节点,过滤后的节点将被隐藏 */\n\t\t\tfilter: computed(() => treeRef.value?.filter),\n\t\t\t/** @description 获取节点的唯一标识。 */\n\t\t\tgetNodeKey: computed(() => treeRef.value?.getNodeKey),\n\t\t\t/** @description 获取指定节点的路径数据。 */\n\t\t\tgetNodePath: computed(() => treeRef.value?.getNodePath),\n\t\t\t/** @description 为节点设置新数据,只有当设置 node-key 属性的时候才可用 */\n\t\t\tupdateKeyChildren: computed(() => treeRef.value?.updateKeyChildren),\n\t\t\t/** @description 如果节点可以被选中,(show-checkbox 为 true), 本方法将返回当前选中节点的数组 */\n\t\t\tgetCheckedNodes: computed(() => treeRef.value?.getCheckedNodes),\n\t\t\t/** @description 设置目前勾选的节点,使用此方法必须提前设置 node-key 属性 */\n\t\t\tsetCheckedNodes: computed(() => treeRef.value?.setCheckedNodes),\n\t\t\t/** @description \t若节点可用被选中 (show-checkbox 为 true), 它将返回当前选中节点 key 的数组 */\n\t\t\tgetCheckedKeys: computed(() => treeRef.value?.getCheckedKeys),\n\t\t\t/** @description 设置目前选中的节点,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCheckedKeys: computed(() => treeRef.value?.setCheckedKeys),\n\t\t\t/** @description 设置节点是否被选中, 使用此方法必须设置 node-key 属性 */\n\t\t\tsetChecked: computed(() => treeRef.value?.setChecked),\n\t\t\t/** @description 如果节点可用被选中 (show-checkbox 为 true), 它将返回当前半选中的节点组成的数组 */\n\t\t\tgetHalfCheckedNodes: computed(() => treeRef.value?.getHalfCheckedNodes),\n\t\t\t/** @description 若节点可被选中(show-checkbox 为 true),则返回目前半选中的节点的 key 所组成的数组 */\n\t\t\tgetHalfCheckedKeys: computed(() => treeRef.value?.getHalfCheckedKeys),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentKey: computed(() => treeRef.value?.getCurrentKey),\n\t\t\t/** @description 返回当前被选中节点的数据 (如果没有则返回 null) */\n\t\t\tgetCurrentNode: computed(() => treeRef.value?.getCurrentNode),\n\t\t\t/** @description 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentKey: computed(() => treeRef.value?.setCurrentKey),\n\t\t\t/** @description 设置节点为选中状态,使用此方法必须设置 node-key 属性 */\n\t\t\tsetCurrentNode: computed(() => treeRef.value?.setCurrentNode),\n\t\t\t/** @description 根据 data 或者 key 拿到 Tree 组件中的 node */\n\t\t\tgetNode: computed(() => treeRef.value?.getNode),\n\t\t\t/** @description 删除 Tree 中的一个节点,使用此方法必须设置 node-key 属性 */\n\t\t\tremove: computed(() => treeRef.value?.remove),\n\t\t\t/** @description 为 Tree 中的一个节点追加一个子节点 */\n\t\t\tappend: computed(() => treeRef.value?.append),\n\t\t\t/** @description 在 Tree 中给定节点前插入一个节点 */\n\t\t\tinsertBefore: computed(() => treeRef.value?.insertBefore),\n\t\t\t/** @description 在 Tree 中给定节点后插入一个节点 */\n\t\t\tinsertAfter: computed(() => treeRef.value?.insertAfter),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 刷新 */\n\t\t\trefresh: loadData,\n\t\t});\n\t},\n});\n"],"mappings":"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"}
|
|
@@ -175,7 +175,7 @@ export declare const faTreeSelectProps: {
|
|
|
175
175
|
accordion: BooleanConstructor;
|
|
176
176
|
indent: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<NumberConstructor, unknown, unknown, 18, boolean>;
|
|
177
177
|
icon: {
|
|
178
|
-
readonly type: import("vue").PropType<import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...
|
|
178
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown>>;
|
|
179
179
|
readonly required: false;
|
|
180
180
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
181
181
|
__epPropKey: true;
|
|
@@ -230,7 +230,7 @@ export declare const faTreeSelectProps: {
|
|
|
230
230
|
maxCollapseTags: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
|
|
231
231
|
teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
232
232
|
persistent: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
233
|
-
clearIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
233
|
+
clearIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (... /** @description 数据改变 */args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
234
234
|
fitInputWidth: BooleanConstructor;
|
|
235
235
|
suffixIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
236
236
|
tagType: {
|
|
@@ -271,14 +271,14 @@ export declare const faTreeSelectProps: {
|
|
|
271
271
|
export declare const faTreeSelectEmits: {
|
|
272
272
|
/** @description v-model 回调 */
|
|
273
273
|
"update:modelValue": (value: ElSelectorModelValue) => boolean;
|
|
274
|
+
/** @description 选中数据改变 */
|
|
275
|
+
change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean;
|
|
274
276
|
/** @description v-model:label 回调 */
|
|
275
277
|
"update:label": (value: string | string[] | null) => boolean;
|
|
276
278
|
/** @description 数据改变 */
|
|
277
279
|
dataChangeCallBack: (data: ElSelectorOutput[]) => boolean;
|
|
278
|
-
/** @description 改变 */
|
|
279
|
-
change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean;
|
|
280
280
|
/** @description 节点点击 */
|
|
281
|
-
"node-click": (_data: ElSelectorOutput, _node: TreeNode, _instance: ComponentInternalInstance
|
|
281
|
+
"node-click": (_data: ElSelectorOutput, _node: TreeNode, _instance: ComponentInternalInstance | null) => boolean;
|
|
282
282
|
'check-change': (data: any, checked: boolean, indeterminate: boolean) => any;
|
|
283
283
|
'current-change': (data: any | null, node: import("element-plus/es/components/tree/src/model/node.mjs").default | null) => boolean;
|
|
284
284
|
'node-contextmenu': (evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any;
|
|
@@ -497,7 +497,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
497
497
|
accordion: BooleanConstructor;
|
|
498
498
|
indent: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<NumberConstructor, unknown, unknown, 18, boolean>;
|
|
499
499
|
icon: {
|
|
500
|
-
readonly type: import("vue").PropType<import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...
|
|
500
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown>>;
|
|
501
501
|
readonly required: false;
|
|
502
502
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
503
503
|
__epPropKey: true;
|
|
@@ -552,7 +552,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
552
552
|
maxCollapseTags: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
|
|
553
553
|
teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
554
554
|
persistent: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
555
|
-
clearIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
555
|
+
clearIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (... /** @description 数据改变 */args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
556
556
|
fitInputWidth: BooleanConstructor;
|
|
557
557
|
suffixIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
558
558
|
tagType: {
|
|
@@ -646,14 +646,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
646
646
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
647
647
|
/** @description v-model 回调 */
|
|
648
648
|
"update:modelValue": (value: ElSelectorModelValue) => boolean;
|
|
649
|
+
/** @description 选中数据改变 */
|
|
650
|
+
change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean;
|
|
649
651
|
/** @description v-model:label 回调 */
|
|
650
652
|
"update:label": (value: string | string[] | null) => boolean;
|
|
651
653
|
/** @description 数据改变 */
|
|
652
654
|
dataChangeCallBack: (data: ElSelectorOutput[]) => boolean;
|
|
653
|
-
/** @description 改变 */
|
|
654
|
-
change: (_data: ElSelectorOutput | ElSelectorOutput[] | null, _value?: ElSelectorModelValue) => boolean;
|
|
655
655
|
/** @description 节点点击 */
|
|
656
|
-
"node-click": (_data: ElSelectorOutput, _node: TreeNode, _instance: ComponentInternalInstance
|
|
656
|
+
"node-click": (_data: ElSelectorOutput, _node: TreeNode, _instance: ComponentInternalInstance | null) => boolean;
|
|
657
657
|
'check-change': (data: any, checked: boolean, indeterminate: boolean) => any;
|
|
658
658
|
'current-change': (data: any | null, node: import("element-plus/es/components/tree/src/model/node.mjs").default | null) => boolean;
|
|
659
659
|
'node-contextmenu': (evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any;
|
|
@@ -846,7 +846,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
846
846
|
accordion: BooleanConstructor;
|
|
847
847
|
indent: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<NumberConstructor, unknown, unknown, 18, boolean>;
|
|
848
848
|
icon: {
|
|
849
|
-
readonly type: import("vue").PropType<import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...
|
|
849
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils/vue/props/types.mjs").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown>>;
|
|
850
850
|
readonly required: false;
|
|
851
851
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
852
852
|
__epPropKey: true;
|
|
@@ -901,7 +901,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
901
901
|
maxCollapseTags: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
|
|
902
902
|
teleported: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
903
903
|
persistent: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
904
|
-
clearIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
904
|
+
clearIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (... /** @description 数据改变 */args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
905
905
|
fitInputWidth: BooleanConstructor;
|
|
906
906
|
suffixIcon: import("element-plus/es/utils/vue/props/types.mjs").EpPropFinalized<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown, import("vue").DefineComponent<{}, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, boolean>;
|
|
907
907
|
tagType: {
|
|
@@ -953,7 +953,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
953
953
|
scrollLeft: number;
|
|
954
954
|
}) => any) | undefined;
|
|
955
955
|
"onRemove-tag"?: ((val: unknown) => any) | undefined;
|
|
956
|
-
"onNode-click"?: ((_data: ElSelectorOutput<ElSelectorValue, any>, _node: TreeNode, _instance: ComponentInternalInstance
|
|
956
|
+
"onNode-click"?: ((_data: ElSelectorOutput<ElSelectorValue, any>, _node: TreeNode, _instance: ComponentInternalInstance | null) => any) | undefined;
|
|
957
957
|
"onCheck-change"?: ((data: any, checked: boolean, indeterminate: boolean) => any) | undefined;
|
|
958
958
|
"onNode-contextmenu"?: ((evt: Event, data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any) | undefined;
|
|
959
959
|
"onNode-collapse"?: ((data: any, node: import("element-plus/es/components/tree/src/model/node.mjs").default, nodeInstance: ComponentInternalInstance | null) => any) | undefined;
|
|
@@ -10,7 +10,7 @@ import { ElTreeSelect, selectEmits, selectProps, treeEmits, treeProps } from "el
|
|
|
10
10
|
import { isArray, isBoolean, isEqual, isNil, isNull, isNumber, isObject, isString } from "lodash-unified";
|
|
11
11
|
import { useVModel } from "@vueuse/core";
|
|
12
12
|
//#region src/components/treeSelect/src/treeSelect.tsx
|
|
13
|
-
const
|
|
13
|
+
const ElTreeSelectRuntime = ElTreeSelect;
|
|
14
14
|
/** FaTreeSelect 的运行时 Props 定义。 */
|
|
15
15
|
const faTreeSelectProps = {
|
|
16
16
|
...selectProps,
|
|
@@ -135,15 +135,15 @@ const faTreeSelectEmits = {
|
|
|
135
135
|
...selectEmits,
|
|
136
136
|
...treeEmits,
|
|
137
137
|
/** @description v-model 回调 */
|
|
138
|
-
"update:modelValue": (value) => isString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) ||
|
|
138
|
+
"update:modelValue": (value) => isString(value) || isNumber(value) || isBoolean(value) || isObject(value) || isArray(value) || isNil(value),
|
|
139
|
+
/** @description 选中数据改变 */
|
|
140
|
+
change: (_data, _value) => true,
|
|
139
141
|
/** @description v-model:label 回调 */
|
|
140
142
|
"update:label": (value) => isString(value) || isArray(value) || isNull(value),
|
|
141
143
|
/** @description 数据改变 */
|
|
142
144
|
dataChangeCallBack: (data) => isArray(data),
|
|
143
|
-
/** @description 改变 */
|
|
144
|
-
change: (_data, _value) => true,
|
|
145
145
|
/** @description 节点点击 */
|
|
146
|
-
"node-click": (_data, _node, _instance
|
|
146
|
+
"node-click": (_data, _node, _instance) => true
|
|
147
147
|
};
|
|
148
148
|
var treeSelect_default = defineComponent({
|
|
149
149
|
name: "FaTreeSelect",
|
|
@@ -183,6 +183,10 @@ var treeSelect_default = defineComponent({
|
|
|
183
183
|
};
|
|
184
184
|
}).filter((item) => item.hide !== true);
|
|
185
185
|
};
|
|
186
|
+
const handleModelValueUpdate = (value) => {
|
|
187
|
+
state.value = value;
|
|
188
|
+
emit("update:modelValue", value);
|
|
189
|
+
};
|
|
186
190
|
const loadData = async () => {
|
|
187
191
|
const currentRequestVersion = ++requestVersion;
|
|
188
192
|
if (props.requestApi) {
|
|
@@ -220,51 +224,12 @@ var treeSelect_default = defineComponent({
|
|
|
220
224
|
if (props.filterNodeMethod) return result && props.filterNodeMethod(value, data, child);
|
|
221
225
|
return result;
|
|
222
226
|
};
|
|
223
|
-
const
|
|
224
|
-
if (props.multiple) {
|
|
225
|
-
const valueArr = Array.isArray(value) ? value : [];
|
|
226
|
-
if (valueArr?.length === 0) {
|
|
227
|
-
state.value = null;
|
|
228
|
-
selectedLabel.value = null;
|
|
229
|
-
emit("update:modelValue", null);
|
|
230
|
-
emit("change", null, null);
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
const dataList = state.selectorData.filter((item) => item.value !== void 0 && valueArr.includes(item.value));
|
|
234
|
-
state.value = value;
|
|
235
|
-
selectedLabel.value = dataList.map((item) => item.label ?? "");
|
|
236
|
-
emit("update:modelValue", value);
|
|
237
|
-
emit("change", dataList, value);
|
|
238
|
-
} else {
|
|
239
|
-
if (isNil(value)) {
|
|
240
|
-
state.value = null;
|
|
241
|
-
selectedLabel.value = null;
|
|
242
|
-
emit("update:modelValue", null);
|
|
243
|
-
emit("change", null, null);
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
data ??= state.selectorData.find((f) => f.value === value);
|
|
247
|
-
state.value = value;
|
|
248
|
-
selectedLabel.value = data?.label ?? null;
|
|
249
|
-
emit("update:modelValue", value);
|
|
250
|
-
emit("change", data ?? null, value);
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
const handleClear = () => {
|
|
254
|
-
state.value = null;
|
|
255
|
-
selectedLabel.value = null;
|
|
256
|
-
emit("update:modelValue", null);
|
|
257
|
-
emit("clear");
|
|
258
|
-
};
|
|
259
|
-
const handleNodeClick = (data, node, instance, event) => {
|
|
260
|
-
if (!instance) return;
|
|
227
|
+
const handleNodeClick = (data, node, instance) => {
|
|
261
228
|
if (props.expandOnClickNode) {
|
|
262
229
|
if (!node.expanded) node.expand();
|
|
263
230
|
else if (node.expanded && props.collapseOnClickNode) node.collapse();
|
|
264
231
|
}
|
|
265
|
-
|
|
266
|
-
else if (node.isLeaf) handleChange(data.value, data);
|
|
267
|
-
emit("node-click", data, node, instance, event);
|
|
232
|
+
emit("node-click", data, node, instance);
|
|
268
233
|
};
|
|
269
234
|
/**
|
|
270
235
|
* 下拉框出现/隐藏时触发
|
|
@@ -318,13 +283,53 @@ var treeSelect_default = defineComponent({
|
|
|
318
283
|
}
|
|
319
284
|
state.value = newValue;
|
|
320
285
|
}, { immediate: true });
|
|
286
|
+
const flattenOptions = (data) => data.flatMap((item) => [item, ...flattenOptions(item.children ?? [])]);
|
|
287
|
+
const handleChange = (value) => {
|
|
288
|
+
const selectorData = flattenOptions(state.selectorData);
|
|
289
|
+
if (props.multiple) {
|
|
290
|
+
const valueList = Array.isArray(value) ? value : [];
|
|
291
|
+
if (valueList.length === 0) {
|
|
292
|
+
emit("change", null, null);
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
emit("change", valueList.map((item) => selectorData.find((option) => option.value !== void 0 && isEqual(option.value, item))).filter((item) => item !== void 0), value);
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
if (isNil(value) || Array.isArray(value)) {
|
|
299
|
+
emit("change", null, null);
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
emit("change", selectorData.find((item) => item.value !== void 0 && isEqual(item.value, value)) ?? null, value);
|
|
303
|
+
};
|
|
304
|
+
watch([() => state.value, () => state.selectorData], ([value]) => {
|
|
305
|
+
const selectorData = flattenOptions(state.selectorData);
|
|
306
|
+
if (props.multiple) {
|
|
307
|
+
if (!Array.isArray(value)) {
|
|
308
|
+
selectedLabel.value = null;
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
selectedLabel.value = value.map((item, index) => {
|
|
312
|
+
return selectorData.find((option) => option.value !== void 0 && isEqual(option.value, item))?.label ?? (Array.isArray(props.label) ? props.label[index] ?? "" : "");
|
|
313
|
+
});
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (isNil(value) || Array.isArray(value)) {
|
|
317
|
+
selectedLabel.value = null;
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
selectedLabel.value = selectorData.find((item) => item.value !== void 0 && isEqual(item.value, value))?.label ?? (typeof props.label === "string" ? props.label : null);
|
|
321
|
+
}, {
|
|
322
|
+
deep: true,
|
|
323
|
+
flush: "sync",
|
|
324
|
+
immediate: true
|
|
325
|
+
});
|
|
321
326
|
onMounted(async () => {
|
|
322
327
|
if (props.defaultSelected) {
|
|
323
328
|
await loadData();
|
|
324
329
|
const firstItem = state.selectorData[0];
|
|
325
330
|
if (firstItem?.value !== void 0) {
|
|
326
|
-
if (props.multiple)
|
|
327
|
-
else
|
|
331
|
+
if (props.multiple) handleModelValueUpdate([firstItem.value]);
|
|
332
|
+
else handleModelValueUpdate(firstItem.value);
|
|
328
333
|
}
|
|
329
334
|
} else if (!props.requestApi && props.data?.length > 0) {
|
|
330
335
|
state.debut = false;
|
|
@@ -333,7 +338,7 @@ var treeSelect_default = defineComponent({
|
|
|
333
338
|
watch(() => props.initParam, (newValue, oldValue) => {
|
|
334
339
|
if (!isEqual(newValue, oldValue)) {
|
|
335
340
|
state.nextRefresh = true;
|
|
336
|
-
if (!isNil(state.value))
|
|
341
|
+
if (!isNil(state.value)) handleModelValueUpdate(props.multiple ? [] : void 0);
|
|
337
342
|
}
|
|
338
343
|
});
|
|
339
344
|
watch(() => props.data, () => {
|
|
@@ -357,24 +362,24 @@ var treeSelect_default = defineComponent({
|
|
|
357
362
|
...treeEmits
|
|
358
363
|
}, emit, [
|
|
359
364
|
"update:modelValue",
|
|
360
|
-
"
|
|
365
|
+
"change",
|
|
361
366
|
"visible-change",
|
|
362
367
|
"node-click"
|
|
363
368
|
]);
|
|
364
|
-
useRender(() => createVNode(
|
|
369
|
+
useRender(() => createVNode(ElTreeSelectRuntime, mergeProps(elTreeSelectProps.value, elTreeSelectEmits.value, {
|
|
365
370
|
"ref": treeSelectRef,
|
|
366
371
|
"class": "fa-tree-select",
|
|
367
372
|
"popperClass": ["fa-tree-select-dropdown", props.popperClass],
|
|
368
373
|
"style": { width: addCssUnit(props.width) },
|
|
369
374
|
"modelValue": state.value,
|
|
370
|
-
"onUpdate:modelValue":
|
|
375
|
+
"onUpdate:modelValue": handleModelValueUpdate,
|
|
376
|
+
"onChange": handleChange,
|
|
371
377
|
"lazy": false,
|
|
372
378
|
"loading": state.loading,
|
|
373
379
|
"data": state.selectorData,
|
|
374
380
|
"expandOnClickNode": props.checkOnClickNode ? false : props.expandOnClickNode,
|
|
375
381
|
"filterNodeMethod": handleFilterNode,
|
|
376
|
-
"
|
|
377
|
-
"onClear": handleClear,
|
|
382
|
+
"onNodeClick": handleNodeClick,
|
|
378
383
|
"onVisible-change": handleVisibleChange
|
|
379
384
|
}), {
|
|
380
385
|
...slots.default && { default: ({ node, data }) => slots.default?.({
|
|
@@ -444,9 +449,9 @@ var treeSelect_default = defineComponent({
|
|
|
444
449
|
/** @description 刷新 */
|
|
445
450
|
refresh: loadData,
|
|
446
451
|
/** @description 设置选择 */
|
|
447
|
-
setSelection: (value) =>
|
|
452
|
+
setSelection: (value) => handleModelValueUpdate(value),
|
|
448
453
|
/** @description 清除选择 */
|
|
449
|
-
clearSelection: () =>
|
|
454
|
+
clearSelection: () => handleModelValueUpdate(props.multiple ? [] : void 0)
|
|
450
455
|
});
|
|
451
456
|
}
|
|
452
457
|
});
|