mirror of
https://github.com/halo-dev/docs.git
synced 2025-10-21 18:24:58 +00:00
2.0 KiB
2.0 KiB
title, description
title | description |
---|---|
主题数据列表操作菜单 | 扩展主题数据列表操作菜单 - theme:list-item:operation:create |
此扩展点用于扩展主题数据列表的操作菜单项。
定义方式
export default definePlugin({
extensionPoints: {
"theme:list-item:operation:create": (
theme: Ref<Theme>
): OperationItem<Theme>[] | Promise<OperationItem<Theme>[]> => {
return [
{
priority: 10,
component: markRaw(VDropdownItem),
props: {},
action: (item?: Theme) => {
// do something
},
label: "foo",
hidden: false,
permissions: [],
children: [],
},
];
},
},
});
import OperationItem from "./interface/OperationItem.md";
<OperationItem />
示例
此示例将实现一个跳转到前台预览主题的操作菜单项。
import { definePlugin, type OperationItem } from "@halo-dev/console-shared";
import { VButton } from "@halo-dev/components";
import { markRaw, type Ref } from "vue";
import type { Theme } from "@halo-dev/api-client";
export default definePlugin({
extensionPoints: {
"theme:list-item:operation:create": (
theme: Ref<Theme>
): OperationItem<Theme>[] | Promise<OperationItem<Theme>[]> => {
return [
{
priority: 10,
component: markRaw(VButton),
props: {
size: "sm",
},
action: (item?: Theme) => {
window.open(`/?preview-theme=${item?.metadata.name}`);
},
label: "前台预览",
hidden: false,
permissions: [],
children: [],
},
];
},
},
});
实现案例
类型定义
Theme
import Theme from "./interface/Theme.md";
<Theme />