Skip to content

Commit 620d432

Browse files
GaoNeng-wWwkagol
authored andcommitted
fix: 1538
1 parent 1c9b7fe commit 620d432

File tree

4 files changed

+86
-344
lines changed

4 files changed

+86
-344
lines changed

packages/devui-vue/devui/menu/src/components/menu-item/menu-item.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff 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;

packages/devui-vue/devui/menu/src/menu.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff 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);

packages/devui-vue/docs/components/menu/index.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff 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({
341342
import { ref } from 'vue';
342343
let collapsed = ref(false);
343344
let isDisabled = ref(false);
345+
let selectKeys = ref([]);
344346
let width = ref(256);
345347
const 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

0 commit comments

Comments
 (0)