forked from mxx1111/mdlook
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStyleOptionMenu.vue
More file actions
51 lines (48 loc) · 1.3 KB
/
Copy pathStyleOptionMenu.vue
File metadata and controls
51 lines (48 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<script setup lang="ts">
import type { IConfigOption } from '@md/shared/types'
import type { Component } from 'vue'
const props = defineProps<{
title: string
options: IConfigOption[]
current: string
change: (val: any) => void
icon?: Component
}>()
function setStyle(title: string, value: string) {
switch (title) {
case `字体`:
return { fontFamily: value }
case `字号`:
return { fontSize: value }
case `主题色`:
case `文字颜色`:
return { color: value }
default:
return {}
}
}
</script>
<template>
<MenubarSub>
<MenubarSubTrigger>
<component :is="props.icon" v-if="props.icon" class="mr-2 h-4 w-4" />
<span v-else class="mr-2 h-4 w-4" />
<span>{{ props.title }}</span>
</MenubarSubTrigger>
<MenubarSubContent class="max-h-56 overflow-auto">
<MenubarRadioGroup :model-value="current" @update:model-value="change">
<MenubarRadioItem
v-for="{ label, value, desc } in options"
:key="value"
:value="value"
class="w-50"
>
{{ label }}
<DropdownMenuShortcut :style="setStyle(title, value)">
{{ desc }}
</DropdownMenuShortcut>
</MenubarRadioItem>
</MenubarRadioGroup>
</MenubarSubContent>
</MenubarSub>
</template>