File tree Expand file tree Collapse file tree 4 files changed +86
-344
lines changed
Expand file tree Collapse file tree 4 files changed +86
-344
lines changed Original file line number Diff line number Diff line change @@ -27,9 +27,9 @@ export default defineComponent({
2727 const multiple = inject ( 'multiple' ) as boolean ;
2828 const indent = inject ( 'defaultIndent' ) ;
2929 const isCollapsed = inject ( 'isCollapsed' ) as Ref < boolean > ;
30- const defaultSelectKey = inject ( 'defaultSelectKey' ) as string [ ] ;
30+ const defaultSelectKey = inject ( 'defaultSelectKey' ) as Ref < string [ ] > ;
3131 const { disabled } = toRefs ( props ) ;
32- const isSelect = ref ( initSelect ( defaultSelectKey , key , multiple , disabled ) ) ;
32+ const isSelect = ref ( initSelect ( defaultSelectKey . value , key , multiple , disabled ) ) ;
3333 const isLayer1 = ref ( true ) ;
3434 const rootMenuEmit = inject ( 'rootMenuEmit' ) as ( eventName : string , ...args : unknown [ ] ) => void ;
3535 const useRouter = inject ( 'useRouter' ) as boolean ;
@@ -90,7 +90,7 @@ export default defineComponent({
9090 }
9191 } ) ;
9292 watch (
93- ( ) => defaultSelectKey ,
93+ ( ) => [ ... defaultSelectKey . value ] ,
9494 ( n ) => {
9595 isSelect . value = initSelect ( n , key , multiple , disabled ) ;
9696 classObject . value [ menuItemSelect ] = isSelect . value ;
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ export default defineComponent({
1515 emits : [ 'select' , 'deselect' , 'submenu-change' ] ,
1616 setup ( props : MenuProps , ctx ) {
1717 const ns = useNamespace ( 'menu' ) ;
18- const { openKeys, mode, collapsed} = toRefs ( props ) ;
18+ const { openKeys, mode, collapsed, defaultSelectKeys } = toRefs ( props ) ;
1919 // This ID is only for internal use. So we unwanted use reactivity
2020 const menuId = randomId ( 16 ) ;
2121 // register menu to recordTable.
@@ -25,7 +25,7 @@ export default defineComponent({
2525 provide ( 'defaultIndent' , props [ 'indentSize' ] ) ;
2626 provide ( 'multiple' , props [ 'multiple' ] ) ;
2727 provide ( 'openKeys' , openKeys ) ;
28- provide ( 'defaultSelectKey' , props . defaultSelectKeys ) ;
28+ provide ( 'defaultSelectKey' , defaultSelectKeys ) ;
2929 provide ( 'mode' , mode ) ;
3030 provide ( 'collapsedIndent' , props [ 'collapsedIndent' ] ) ;
3131 provide ( 'rootMenuEmit' , ctx . emit ) ;
Original file line number Diff line number Diff line change @@ -309,7 +309,8 @@ export default defineComponent({
309309``` vue
310310<template>
311311 <d-button @click="changeDisabled">changeDisabled</d-button>
312- <d-menu mode="vertical" :width="width + 'px'" :default-select-keys="['item1']" :collapsed="collapsed">
312+ <d-button @click="addSelect">change select</d-button>
313+ <d-menu mode="vertical" :width="width + 'px'" :default-select-keys="selectKeys" :collapsed="collapsed">
313314 <d-menu-item key="item1" :disabled="isDisabled">
314315 <template #icon>
315316 <i class="icon-homepage"></i>
@@ -341,11 +342,20 @@ export default defineComponent({
341342import { ref } from 'vue';
342343let collapsed = ref(false);
343344let isDisabled = ref(false);
345+ let selectKeys = ref([]);
344346let width = ref(256);
345347const changeDisabled = () => {
346348 isDisabled.value = !isDisabled.value;
347349 console.log(isDisabled.value);
348350};
351+ const addSelect = () => {
352+ if (selectKeys.value.includes('system-item')){
353+ selectKeys.value.pop();
354+ } else {
355+ selectKeys.value.push('system-item');
356+ }
357+ console.log(selectKeys.value);
358+ }
349359</script>
350360```
351361
You can’t perform that action at this time.
0 commit comments