@guozhi-fe/oms-trade-workbench
v0.1.0-alpha.0
Published
Host-integrated React trade workbench modal for GuoZhi OMS applications.
Readme
@guozhi-fe/oms-trade-workbench
国智 OMS 应用共享的交易工作台 React 组件。当前 0.1.0-alpha.* 版本用于验证独立发包、
宿主请求适配、主题继承和受控全屏弹窗;其中的 Demo 数据契约不代表正式交易接口。
安装
npm install --save-exact @guozhi-fe/[email protected]宿主需要提供兼容版本的 react、react-dom、antd 和 @chenhui996/gg-ui。具体范围以
包内 peerDependencies 为准。
接入
应用入口只引入一次组件样式,并在宿主现有主题 Provider 内注入请求 Transport:
import {
TradeWorkbenchProvider,
type TradeWorkbenchTransport,
} from '@guozhi-fe/oms-trade-workbench';
import '@guozhi-fe/oms-trade-workbench/style.css';
const transport: TradeWorkbenchTransport = {
request: async (config) => {
// 将 path、method、query、body、headers 和 signal 适配到宿主请求客户端。
return hostRequest(config);
},
};
function Root() {
return (
<HostThemeProvider>
<TradeWorkbenchProvider transport={transport}>
<App />
</TradeWorkbenchProvider>
</HostThemeProvider>
);
}页面通过受控属性打开弹窗:
import { TradeWorkbench } from '@guozhi-fe/oms-trade-workbench';
<TradeWorkbench
open={open}
entry={{ mode: 'edit', tradeId: 'DEMO-001' }}
onRequestClose={() => setOpen(false)}
onSubmitted={({ tradeId }) => {
console.info('submitted', tradeId);
}}
/>;entry 支持创建、编辑和只读入口:
type TradeWorkbenchEntry =
| { mode: 'create'; tradeId?: never }
| { mode: 'edit' | 'view'; tradeId: string };宿主边界
- 包不创建根级主题 Provider,继承宿主的 Locale、组件前缀和
--gz-*Token。 - 包不依赖宿主 Router、Store、Token 或请求库。
- 宿主应在 Vite 中去重
react、react-dom、antd和@chenhui996/gg-ui。 - 只能从包根入口和
@guozhi-fe/oms-trade-workbench/style.css引用,不承诺dist/深层路径。
开发验证
在 oms-web 仓库根目录执行:
npm run trade-workbench:verify
npm pack ./packages/trade-workbench --dry-runLicense
MIT
