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