New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@kweaver-ai/workshop-framework-studio

Package Overview
Dependencies
Maintainers
3
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kweaver-ai/workshop-framework-studio

[TOC]

npmnpm
Version
1.0.0
Version published
Weekly downloads
0
Maintainers
3
Weekly downloads
 
Created
Source

WorkshopFramework

[TOC]

安装

使用 npm 或 yarn 安装

npm install @kweaver-ai/workshop-framework-studio
yarn add @kweaver-ai/workshop-framework-studio

示例

import "./polyfill";
import React, { lazy, Suspense } from "react";
import { FrameWork } from "@kweaver-ai/workshop-framework-studio";
import "./global.css";

const AsyncComponent = (asyncComponent) => {
    const Component = lazy(() => asyncComponent);

    return (props) => (
        <Suspense fallback={<></>}>
            <Component {...props} />
        </Suspense>
    );
};

const menusItems = [
    {
        label: "组织管理",
        key: "management",
        icon: <CiOutlined />,
        children: [
            {
                label: "用户组织管理",
                key: "usermanagement",
                children: [
                    {
                        label: "用户组织管理-1",
                        key: "me",
                        path: "/home/me",
                        app: {
                            name: "first",
                            entry: "http://localhost:1007",
                        },
                    },
                    {
                        label: "用户组织管理-2",
                        key: "role",
                        path: "/home/role",
                        app: AsyncComponent(import("./components/Demo1")),
                    },
                ],
            },
        ],
    },
];

const config = {
    appProps: {
        language: "zh-cn",
    },
    nav: {
        logo: "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",
        theme: "red",
        customStyle: false,
        account: {
            name: "admin",
            items: [
                {
                    label: "语言",
                    key: "language",
                    children: [
                        {
                            label: "简体中文",
                            key: "zh-cn",
                        },
                        {
                            label: "繁体中文",
                            key: "zh-tw",
                        },
                        {
                            label: "English",
                            key: "en-us",
                        },
                    ],
                    defaultSelectedKeys: ["en-us"],
                },
                {
                    label: "退出",
                    key: "logout",
                },
            ],
            onClick: (keys) => {
                // xxx
            },
        },
        extraElements: [
            {
                icon: <CiOutlined />,
                label: "部署控制台",
                key: "cluster",
                onClick: (key) => {
                    // xxx
                },
                float: "right",
            },
            {
                icon: <CiOutlined />,
                label: "管理控制台",
                key: "console",
                float: "left",
            },
        ],
        menu: {
            items: menusItems,
            defaultCollapsed: localStorage.getItem("menuCollapsed") === "true",
            defaultMenuWidth: localStorage.getItem("menuWidth")
                ? parseInt(localStorage.getItem("menuWidth"))
                : undefined,
            onPathChange: ({ path, isPathExist, keys }) =>
                console.log(path, isPathExist, keys),
            onMenuWidthChange: (width) =>
                localStorage.setItem("menuWidth", width),
            onCollapsedChange: (collapsed) =>
                localStorage.setItem("menuCollapsed", collapsed),
        },
        locale: "zh-ch",
    },
};

ReactDOM.render(<FrameWork config={config} />, mountNode);

使用微前端时,需导入 polyfill,兼容 ie11

polyfill.ts

import "whatwg-fetch";
import "custom-event-polyfill";
import "core-js";

引入样式

global.css

@global-import '@kweaver-ai/workshop-framework-studio/dist/workshop-framework-studio.umd.min.css';

组件

1、FrameWork

工作台插件框架

API

FrameWorkPropsType

属性说明类型默认值
config配置信息Config-
customNavigate自定义 navigate 方法(path: string) => void-
onGetNavigate获取 navigate 方法(navigate: NavigateFunction) => void-

Config:

属性说明类型默认值
nav顶栏、菜单等信息Nav-
appProps内容页(子应用 or 主应用的组件)的信息,所有的内容页均会继承Record<string, any>{}
microfrontedConfiguration微应用的配置信息Record<string, any>{}
microfrontedLoadingMode微应用的加载模式router | manual | nonerouter

Nav:

属性说明类型默认值
logobase64 的 logo,不可和 logoSrc、logoElement 同时存在string-
logoSrclogo 图片的 src,不可同时存在string-
logoElementlogo 元素,不可同时存在React.ReactElement-
theme主题色string#126EE3
customStyle是否自定义主题色booleanfalse
themeMode主题模式dark | lightdark
headBarStyle顶栏的样式Record<string,any>-
account账号信息AccountType-
extraElements顶栏的其他元素Array<ExtraElementsType>-
menu菜单信息Menu-
routerMode路由模式browser | hashbrowser
routerBasename基准 url,browser 路由时可传递string-
pathMatchModepath 匹配模式complete | prefixcomplete
MainContentComponent无菜单时的内容(props: Record<string, any>) => ReactElement-
locale语言环境zh-cn | zh-tw | en-uszh-cn

AccountType

属性说明类型默认值
name账号名称string-
items下拉选项的内容Array<AccountItemType>-
onClick下拉选项的点击事件(keys: Array<string>, props?: Record<string, any>) => void-

AccountItemType

属性说明类型默认值
key唯一标志string-
label标题string-
selectable是否可选中booleantrue
divider是否有下划线booleanfalse
children子项Array<{ key: string; label: string }>-
defaultSelectedKeysArray<string>-

ExtraElementsType

属性说明类型默认值
icon图标React.ReactElement-
key唯一标志string-
label标题string | React.ReactElement-
onClick点击事件(key: string, props?: Record<string, any>) => void-
float定位left | rightright

Menu

属性说明类型默认值
items导航菜单数组Array<MenuType>-
getItems导航菜单函数,items 和 getItems 二选一() => Array<MenuType>-
menuResizeDisabled是否禁止调整菜单宽度booleanfalse
defaultCollapsed菜单是否收起booleanfalse
onCollapsedChange菜单展开、收起事件(collapsed: boolean) => void-
defaultMenuWidth菜单宽度number240
onMenuWidthChange菜单宽度发生变化(menuWidth: number) => void-
onPathChange路由发生变化(param: { keys: Array<string>; path: string; isPathExist: boolean }) => void-
viewAllIcon自定义查看全部菜单的按钮ViewAllIconType-

MenuType

属性说明类型默认值
key唯一标志string-
label菜单标题React.ReactNode-
title设置收缩时展示的悬浮标题string-
icon菜单图标React.ReactElement-
path路由string-
app子应用或者主应用组件AppType | (props: Record<string, any>) => ReactElement)-
paths路由数组(when 一个菜单对应多个路由)Array<string>-
apps子应用或者主应用组件数组(when 一个菜单对应多个路由),和 paths 一一对应Array<AppType | (props: Record<string, any>) => ReactElement)>-
isInMenupath 是否在菜单中booleantrue
style当前页的样式,和 path、app 一起的Record<string, any>{}
children子项。当 path、app 存在时,没有子项Array<MenuType>-

AppType

属性说明类型默认值
name子应用 namestring-
entry子应用 entrystring-
props传递给该子应用的 propsRecord<string, any>-

ViewAllIconType

属性说明类型默认值
iconiconReact.ReactElement-
labelicon 的 labelstring-
content内容React.ReactElement | ((props: Record<string, any>) => React.ReactElement)-
closeIcon是否显示关闭按钮booleanfalse
maskZIndex遮罩层的 z-indexnumber1

2、HeadBar

顶栏

示例

<HeadBar
    logo={
        "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"
    }
    extraElements={[
        {
            label: "工作台",
            key: "key1",
            float: "left",
        },
        {
            label: (
                <Dropdown overlay={menu}>
                    <div
                        style={{
                            width: "150px",
                            textOverflow: "ellipsis",
                            overflow: "hidden",
                            whiteSpace: "nowrap",
                        }}
                    >
                        我是一个很长只是网络哈哈哈哈
                        <DownOutlined />
                    </div>
                </Dropdown>
            ),
            key: "key2",
            float: "left",
            onClick: (key) => {
                // xxx
            },
        },
        {
            icon: <CiOutlined />,
            label: "API文档",
            key: "key333",
            float: "right",
            onClick: (key) => {
                // xxx
            },
        },
        {
            icon: <CiOutlined />,
            label: "系统配置",
            key: "key333444",
            float: "right",
            onClick: (key) => {
                // xxx
            },
        },
    ]}
    account={{
        name: "admin",
        items: [
            {
                label: "语言",
                key: "language",
                children: [
                    {
                        label: "简体中文",
                        key: "zh-cn",
                    },
                    {
                        label: "繁体中文",
                        key: "zh-tw",
                    },
                    {
                        label: "English",
                        key: "en-us",
                    },
                ],
                defaultSelectedKeys: ["en-us"],
            },
            {
                label: "退出",
                key: "logout",
            },
        ],
        onClick: (keys) => {
            // xxx
        },
    }}
/>

API

HeadBarPropsType

属性说明类型默认值
classNameclassstring-
logobase64 的 logo,不可同时存在string-
logoSrclogo 图片的 src,不可同时存在string-
logoElementlogo 元素,不可同时存在React.ReactElement-
account账号信息AccountType-
extraElements顶栏的其他元素Array<ExtraElementsType>-
props额外的 props 信息Record<string, any>-
themeMode主题模式dark | lightdark
style样式Record<string, any>-

3、SideBar

侧边栏

示例

<SideBar
    openKeys={[]}
    selectedKeys={[]}
    locale={"en-us"}
    theme={"red"}
    customStyle={false}
    menuWidth={300}
    items={menusItems}
    height={300}
/>

API

SideBarPropsType

属性说明类型默认值
items菜单Array<MenuItemType>-
selectedKeys当前选中的菜单项 key 数组Array<string>[]
openKeys当前展开的菜单项 key 数组(仅展开侧边栏时生效)Array<string>[]
height高度number | string100%
menuWidth菜单宽度(展开时侧边栏的宽度)number240
theme主题色string#126EE3
collapsed侧边栏是否收起booleanfalse
locale语言环境zh-cn | zh-tw | en-uszh-cn
menuResizeDisabled是否禁止调整菜单宽度booleanfalse
onCollapsedChange菜单展开、收起事件(collapsed: boolean) => void-
onMenuWidthChange菜单宽度发生变化事件({ width, expandedWidth }: { width: number; expandedWidth: number; })-
onSelectedKeysChange菜单项选中事件(selectedKeys: Array<string>) => void-
onOpenKeysChange菜单项展开收起事件(openKeys: Array<string>) => void-
viewAllIcon自定义查看全部菜单的按钮ViewAllIconType-

4、useBlocker

拦截路由,用于在路由发生变化时给用户做一个提醒。

示例

/**
 * UnsavedPrompt.tsx
 * 用于提醒用户
 */
import { useState, useRef } from "react";
import { Modal } from "antd";

export default function UnsavedPrompt({ when, useBlocker }: any): JSX.Element {
    const [open, setOpen] = useState(false);
    const blockRef = useRef<any>(null);
    useBlocker((tx) => {
        setOpen(true);
        blockRef.current = tx;
    }, when);

    return (
        <Modal
            visible={open}
            onOk={() => blockRef.current?.retry()}
            onCancel={() => setOpen(false)}
        >
            <p className="text-center text-light-700 text-sm">这里是提示内容</p>
        </Modal>
    );
}

/**
 * Demo.tsx
 * 这里是子应用
 */
import UnsavedPrompt from "./UnsavedPrompt";
import { useBlocker } from "@kweaver-ai/workshop-framework-studio";

const Demo = (props) => {
    return (
        <div>
            Demo的内容
            <UnsavedPrompt useBlocker={useBlocker} />
            {/* 两种都可 <UnsavedPrompt useBlocker={props.useBlocker} /> */}
        </div>
    );
};

export default Demo;

5、loadMicroApp

qiankun 的 loadMicroApp,便于子应用加载子应用

6、prefetchApps

qiankun 的 prefetchApps,用于手动预加载指定的微应用静态资源

FAQs

Package last updated on 31 Dec 2025

Related posts