Showing
1 changed file
with
39 additions
and
1 deletions
| @@ -31,6 +31,7 @@ | @@ -31,6 +31,7 @@ | ||
| 31 | import { CreateContextOptions } from '/@/components/ContextMenu'; | 31 | import { CreateContextOptions } from '/@/components/ContextMenu'; |
| 32 | 32 | ||
| 33 | import { CheckEvent } from './typing'; | 33 | import { CheckEvent } from './typing'; |
| 34 | + import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue'; | ||
| 34 | 35 | ||
| 35 | interface State { | 36 | interface State { |
| 36 | expandedKeys: Keys; | 37 | expandedKeys: Keys; |
| @@ -51,6 +52,14 @@ | @@ -51,6 +52,14 @@ | ||
| 51 | 'update:searchValue', | 52 | 'update:searchValue', |
| 52 | ], | 53 | ], |
| 53 | setup(props, { attrs, slots, emit, expose }) { | 54 | setup(props, { attrs, slots, emit, expose }) { |
| 55 | + /** | ||
| 56 | + * 作者自带Tree组件 | ||
| 57 | + * 新增显示隐藏 | ||
| 58 | + * ft | ||
| 59 | + */ | ||
| 60 | + //ft | ||
| 61 | + const isFlod = ref(false); | ||
| 62 | + //ft | ||
| 54 | const state = reactive<State>({ | 63 | const state = reactive<State>({ |
| 55 | checkStrictly: props.checkStrictly, | 64 | checkStrictly: props.checkStrictly, |
| 56 | expandedKeys: props.expandedKeys || [], | 65 | expandedKeys: props.expandedKeys || [], |
| @@ -205,6 +214,7 @@ | @@ -205,6 +214,7 @@ | ||
| 205 | }); | 214 | }); |
| 206 | 215 | ||
| 207 | function handleSearch(searchValue: string) { | 216 | function handleSearch(searchValue: string) { |
| 217 | + console.log('searchValue', searchValue); | ||
| 208 | if (searchValue !== searchText.value) searchText.value = searchValue; | 218 | if (searchValue !== searchText.value) searchText.value = searchValue; |
| 209 | emit('update:searchValue', searchValue); | 219 | emit('update:searchValue', searchValue); |
| 210 | if (!searchValue) { | 220 | if (!searchValue) { |
| @@ -223,6 +233,11 @@ | @@ -223,6 +233,11 @@ | ||
| 223 | ); | 233 | ); |
| 224 | } | 234 | } |
| 225 | 235 | ||
| 236 | + //ft | ||
| 237 | + function handleFlodOrUnFoldFunc(v) { | ||
| 238 | + isFlod.value = v; | ||
| 239 | + } | ||
| 240 | + //ft | ||
| 226 | function handleClickNode(key: string, children: TreeItem[]) { | 241 | function handleClickNode(key: string, children: TreeItem[]) { |
| 227 | if (!props.clickRowToExpand || !children || children.length === 0) return; | 242 | if (!props.clickRowToExpand || !children || children.length === 0) return; |
| 228 | if (!state.expandedKeys.includes(key)) { | 243 | if (!state.expandedKeys.includes(key)) { |
| @@ -388,9 +403,10 @@ | @@ -388,9 +403,10 @@ | ||
| 388 | const showTitle = title || toolbar || search || slots.headerTitle; | 403 | const showTitle = title || toolbar || search || slots.headerTitle; |
| 389 | const scrollStyle: CSSProperties = { height: 'calc(100% - 38px)' }; | 404 | const scrollStyle: CSSProperties = { height: 'calc(100% - 38px)' }; |
| 390 | return ( | 405 | return ( |
| 391 | - <div class={[prefixCls, 'h-full', attrs.class]}> | 406 | + <div style={isFlod.value ? '' : 'width:0vw'} class={[prefixCls, 'h-full', attrs.class]}> |
| 392 | {showTitle && ( | 407 | {showTitle && ( |
| 393 | <TreeHeader | 408 | <TreeHeader |
| 409 | + style={'position:relative'} | ||
| 394 | checkable={checkable} | 410 | checkable={checkable} |
| 395 | checkAll={checkAll} | 411 | checkAll={checkAll} |
| 396 | expandAll={expandAll} | 412 | expandAll={expandAll} |
| @@ -416,6 +432,28 @@ | @@ -416,6 +432,28 @@ | ||
| 416 | </ScrollContainer> | 432 | </ScrollContainer> |
| 417 | 433 | ||
| 418 | <Empty v-show={unref(getNotFound)} image={Empty.PRESENTED_IMAGE_SIMPLE} class="!mt-4" /> | 434 | <Empty v-show={unref(getNotFound)} image={Empty.PRESENTED_IMAGE_SIMPLE} class="!mt-4" /> |
| 435 | + <span | ||
| 436 | + v-show={unref(isFlod)} | ||
| 437 | + onClick={() => handleFlodOrUnFoldFunc(false)} | ||
| 438 | + style={ | ||
| 439 | + isFlod.value | ||
| 440 | + ? 'z-index:9999;cursor:pointer;position:absolute;top:40vh;left:17.5vw' | ||
| 441 | + : 'z-index:9999;cursor:pointer;position:absolute;top:40vh;left:0.5vw' | ||
| 442 | + } | ||
| 443 | + > | ||
| 444 | + <RightOutlined /> | ||
| 445 | + </span> | ||
| 446 | + <span | ||
| 447 | + v-show={!unref(isFlod) && unref(treeDataRef).length != 0} | ||
| 448 | + onClick={() => handleFlodOrUnFoldFunc(true)} | ||
| 449 | + style={ | ||
| 450 | + isFlod.value | ||
| 451 | + ? 'z-index:9999;cursor:pointer;position:absolute;top:40vh;left:17.5vw' | ||
| 452 | + : 'z-index:9999;cursor:pointer;position:absolute;top:40vh;left:0.5vw' | ||
| 453 | + } | ||
| 454 | + > | ||
| 455 | + <LeftOutlined /> | ||
| 456 | + </span> | ||
| 419 | </div> | 457 | </div> |
| 420 | ); | 458 | ); |
| 421 | }; | 459 | }; |