diff --git a/packages/docs/icons/svgs/fill/menu.svg b/packages/docs/icons/svgs/fill/menu.svg new file mode 100644 index 0000000000000000000000000000000000000000..49c3c0c52ff8f4e8090d206231425f926f82946c --- /dev/null +++ b/packages/docs/icons/svgs/fill/menu.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/packages/opendesign/src/menu/__docs__/__case__/CustomIcon.vue b/packages/opendesign/src/menu/__docs__/__case__/CustomIcon.vue new file mode 100644 index 0000000000000000000000000000000000000000..4203cd27807653d64bdb277844ff94917a966e20 --- /dev/null +++ b/packages/opendesign/src/menu/__docs__/__case__/CustomIcon.vue @@ -0,0 +1,36 @@ + + + +### 自定义图标 + + + +### Custom Icons + + + + diff --git a/packages/opendesign/src/menu/__docs__/__case__/MenuAccordion.vue b/packages/opendesign/src/menu/__docs__/__case__/MenuAccordion.vue new file mode 100644 index 0000000000000000000000000000000000000000..8731a338a8e69bf9247646cc87f31e4c5f7ae974 --- /dev/null +++ b/packages/opendesign/src/menu/__docs__/__case__/MenuAccordion.vue @@ -0,0 +1,33 @@ + + + +### 手风琴 + + + +### Accordion + + + diff --git a/packages/opendesign/src/menu/__docs__/__case__/MenuSize.vue b/packages/opendesign/src/menu/__docs__/__case__/MenuSize.vue new file mode 100644 index 0000000000000000000000000000000000000000..0d5fcf011705172711b332d6239f57121d29e588 --- /dev/null +++ b/packages/opendesign/src/menu/__docs__/__case__/MenuSize.vue @@ -0,0 +1,59 @@ + + + +### 不同尺寸 + +**注意**:在 `small` 尺寸下 + +- 展开/收起图标移至左侧,并增加左侧分割线以增强层级区分。 +- 不再支持自定义左侧图标(即 `icon` 属性及 `icon` 插槽无效)。 + + + +### Different Sizes + +**Note**: In the `small` size + +- The expand/collapse icon is moved to the left and a left divider is added to enhance hierarchical distinction. +- Custom left icons are no longer supported (i.e., the `icon` prop and `icon` slot are invalid). + + + + diff --git a/packages/opendesign/src/menu/__docs__/index.en-US.md b/packages/opendesign/src/menu/__docs__/index.en-US.md new file mode 100644 index 0000000000000000000000000000000000000000..b6ce1cea6aed08b449d2615839965e4db62f8ed0 --- /dev/null +++ b/packages/opendesign/src/menu/__docs__/index.en-US.md @@ -0,0 +1,18 @@ +--- +sidebar: OMenu +kind: nav +--- + +# OMenu + +## Demo + + + + + +## API + + + + diff --git a/packages/opendesign/src/menu/__docs__/index.zh-CN.md b/packages/opendesign/src/menu/__docs__/index.zh-CN.md new file mode 100644 index 0000000000000000000000000000000000000000..447e98b71cb1c05437333b0d25579a5e4b2e7bf3 --- /dev/null +++ b/packages/opendesign/src/menu/__docs__/index.zh-CN.md @@ -0,0 +1,18 @@ +--- +sidebar: OMenu 菜单 +kind: nav +--- + +# OMenu 菜单 + +## 示例 + + + + + +## API + + + + diff --git a/packages/opendesign/src/menu/types.ts b/packages/opendesign/src/menu/types.ts index 45c05a13f964dd7ca3e9d742ff88c64c8cdf908e..e265ed95ba31fe18ab3469acd7aff8823c2cb4a7 100644 --- a/packages/opendesign/src/menu/types.ts +++ b/packages/opendesign/src/menu/types.ts @@ -8,46 +8,57 @@ export const menuProps = { /** * @zh-CN 菜单尺寸 * @en-US Menu size + * @default 'medium' */ size: { type: String as PropType, - default: 'medium' + default: 'medium', }, /** - * 是否开启手风琴模式 + * @zh-CN 是否开启手风琴模式 + * @en-US Whether to enable accordion mode + * @default false */ accordion: { type: Boolean, default: false, }, /** - * 层级缩进 + * @zh-CN 层级缩进距离 + * @en-US Nested Indentation Distance + * @default 20 */ levelIndent: { type: Number, default: 20, }, /** - * 默认选中值 v-model + * @zh-CN 选中值 + * @en-US Selected value */ modelValue: { type: String, }, /** - * 非受控模式时,默认选中值 + * @zh-CN 非受控模式时,默认选中值 + * @en-US Default selected value when not controlled + * @default '' */ defaultValue: { type: String, default: '', }, /** - * 默认展开的子菜单值 v-model + * @zh-CN 展开节点值 + * @en-US Expanded node value */ expanded: { type: Array as PropType>, }, /** - * 非受控模式时,默认展开的子菜单值 + * @zh-CN 非受控模式时,默认展开节点值 + * @en-US Default expanded node value when not controlled + * @default [] */ defaultExpanded: { type: Array as PropType>, @@ -59,13 +70,25 @@ export type MenuPropsT = ExtractPropTypes; // SubMenuProps export const subMenuProps = { + /** + * @zh-CN 菜单项值 + * @en-US Menu item value + */ value: { type: String, - required: true, + required: true as const, }, + /** + * @zh-CN 菜单项是否可选 + * @en-US Whether the menu item is selectable + */ selectable: { type: Boolean, }, + /** + * @zh-CN 前缀图标 + * @en-US Prefix icon + */ icon: { type: Object as PropType, }, @@ -74,16 +97,26 @@ export type SubMenuPropsT = ExtractPropTypes; // MenuItemProps export const menuItemProps = { + /** + * @zh-CN 菜单项值 + * @en-US Menu item value + */ value: { type: String, - required: true, + required: true as const, }, /** - * 前缀图标 + * @zh-CN 前缀图标 + * @en-US Prefix icon */ icon: { type: Object as PropType, }, + /** + * @zh-CN 禁用 + * @en-US Disabled + * @default false + */ disabled: { type: Boolean, default: false,