diff --git a/frontend/apps/app-pc/package.json b/frontend/apps/app-pc/package.json index bbd55cd5..952cb743 100644 --- a/frontend/apps/app-pc/package.json +++ b/frontend/apps/app-pc/package.json @@ -10,8 +10,11 @@ }, "dependencies": { "@flow-engine/flow-core": "workspace:*", - "@flow-engine/flow-design": "workspace:*", "@flow-engine/flow-types": "workspace:*", + "@flow-engine/flow-pc-design": "workspace:*", + "@flow-engine/flow-pc-ui": "workspace:*", + "@flow-engine/flow-pc-form": "workspace:*", + "@flow-engine/flow-pc-approval":"workspace:*", "antd": "^6.2.1", "dayjs": "^1.11.19", "react": "^18.3.1", @@ -21,7 +24,7 @@ }, "devDependencies": { "@flow-engine/flow-core": "workspace:*", - "@flow-engine/flow-design": "workspace:*", - "@flow-engine/flow-types": "workspace:*" + "@flow-engine/flow-types": "workspace:*", + "@flow-engine/flow-pc-design": "workspace:*" } } diff --git a/frontend/apps/app-pc/src/config/plugin-view.tsx b/frontend/apps/app-pc/src/config/plugin-view.tsx index 95b2fb0c..cda74835 100644 --- a/frontend/apps/app-pc/src/config/plugin-view.tsx +++ b/frontend/apps/app-pc/src/config/plugin-view.tsx @@ -1,4 +1,4 @@ -import {ViewPlugin} from "@flow-engine/flow-design"; -import {LeaveView} from "@/views/leave.tsx"; +import {ViewBindPlugin} from "@flow-engine/flow-types"; +import {FlowFormView} from "@flow-engine/flow-pc-form"; -ViewPlugin.getInstance().register('default',LeaveView); \ No newline at end of file +ViewBindPlugin.getInstance().register('default',FlowFormView); \ No newline at end of file diff --git a/frontend/apps/app-pc/src/pages/desgin.tsx b/frontend/apps/app-pc/src/pages/desgin.tsx index 9230d20b..337fddcb 100644 --- a/frontend/apps/app-pc/src/pages/desgin.tsx +++ b/frontend/apps/app-pc/src/pages/desgin.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { DesignList } from '@flow-engine/flow-design'; +import { DesignList } from '@flow-engine/flow-pc-design'; const DesignPage: React.FC = () => { diff --git a/frontend/apps/app-pc/src/pages/todo.tsx b/frontend/apps/app-pc/src/pages/todo.tsx index c27611c0..20a2cd51 100644 --- a/frontend/apps/app-pc/src/pages/todo.tsx +++ b/frontend/apps/app-pc/src/pages/todo.tsx @@ -1,14 +1,10 @@ import React from "react"; import {done, list, notify, todo} from "@/api/record.ts"; -import { - type ActionType, - ApprovalPanelDrawer, - Table, - type TableProps, - WorkflowSelectModal -} from "@flow-engine/flow-design"; +import {WorkflowSelectModal} from "@flow-engine/flow-pc-design"; +import {type ActionType, Table, type TableProps} from "@flow-engine/flow-pc-ui"; import {Button, Space, Tabs, type TabsProps} from "antd"; import dayjs from "dayjs"; +import {ApprovalPanelDrawer} from "@flow-engine/flow-pc-approval"; const TodoPage: React.FC = () => { diff --git a/frontend/apps/app-pc/src/pages/user.tsx b/frontend/apps/app-pc/src/pages/user.tsx index 23ecebc0..21221184 100644 --- a/frontend/apps/app-pc/src/pages/user.tsx +++ b/frontend/apps/app-pc/src/pages/user.tsx @@ -1,5 +1,5 @@ import React from "react"; -import {type ActionType, Table, type TableProps} from "@flow-engine/flow-design"; +import {type ActionType, Table, type TableProps} from "@flow-engine/flow-pc-ui"; import {Button, Form, Input, message, Modal, Popconfirm, Space, Switch} from "antd"; import {list, remove, save} from "@/api/user.ts"; diff --git a/frontend/apps/app-pc/src/views/leave.tsx b/frontend/apps/app-pc/src/views/leave.tsx deleted file mode 100644 index 46869216..00000000 --- a/frontend/apps/app-pc/src/views/leave.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; -import {type ViewComponentProps} from "@flow-engine/flow-design"; -import {Form, Input} from "antd"; -import {ObjectUtils} from "@flow-engine/flow-core"; - -export const LeaveView: React.FC = (props) => { - - const [values, setValues] = React.useState({}); - - const form = props.form; - - return ( -
{ - const latestValues = form.getFieldsValue(); - if(ObjectUtils.isEqual(values,latestValues)){ - return; - } - setValues(latestValues); - props.onValuesChange?.(latestValues); - }} - > - - - - - - - -
- ) -}; \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 477b2991..9e739e0d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,12 +6,17 @@ "scripts": { "build:flow-core": "pnpm -F @flow-engine/flow-core build", "build:flow-types": "pnpm -F @flow-engine/flow-types build", - "build:flow-engine": "pnpm -F @flow-engine/flow-design build", - "build": "pnpm run build:flow-core && pnpm run build:flow-types && pnpm run build:flow-engine ", + "build:flow-pc-design": "pnpm -F @flow-engine/flow-pc-design build", + "build:flow-pc-form": "pnpm -F @flow-engine/flow-pc-form build", + "build:flow-pc-ui": "pnpm -F @flow-engine/flow-pc-ui build", + "build:flow-pc-approval": "pnpm -F @flow-engine/flow-pc-approval build", + "build:flow-pc": "pnpm -F pnpm run build:flow-pc-ui && pnpm run build:flow-pc-form && pnpm run build:flow-pc-approval && pnpm run build:flow-pc-design", + "build": "pnpm run build:flow-core && pnpm run build:flow-types && pnpm run build:flow-pc ", "build:app-pc": "pnpm -F @flow-engine/app-pc build", "dev:app-pc": "pnpm -F @flow-engine/app-pc dev", "dev:app-mobile": "pnpm -F @flow-engine/app-mobile dev", - "watch:flow-design": "pnpm -F @flow-engine/flow-design dev" + "watch:flow-pc-design": "pnpm -F @flow-engine/flow-pc-design dev", + "watch:flow-pc-form": "pnpm -F @flow-engine/flow-pc-form dev" }, "keywords": [], "author": "", diff --git a/frontend/packages/flow-core/package.json b/frontend/packages/flow-core/package.json index 59869d5a..f0dda47c 100644 --- a/frontend/packages/flow-core/package.json +++ b/frontend/packages/flow-core/package.json @@ -21,7 +21,7 @@ "react-dom": ">=18" }, "dependencies": { - "axios": "^1.13.3", + "axios": "^1.13.5", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/frontend/packages/flow-core/src/index.ts b/frontend/packages/flow-core/src/index.ts index 6fc939b3..b225a72c 100644 --- a/frontend/packages/flow-core/src/index.ts +++ b/frontend/packages/flow-core/src/index.ts @@ -3,4 +3,5 @@ export * from "./dispatch"; export * from "./http"; export * from "./presenter"; export * from "./hooks.ts"; -export * from "./object.ts"; \ No newline at end of file +export * from "./object.ts"; +export * from "./table.ts"; \ No newline at end of file diff --git a/frontend/packages/flow-core/src/table.ts b/frontend/packages/flow-core/src/table.ts new file mode 100644 index 00000000..50626a39 --- /dev/null +++ b/frontend/packages/flow-core/src/table.ts @@ -0,0 +1,15 @@ +export interface Result { + data:T[] + total: number; + success: boolean +} + +export interface ActionType { + reload(): void; +} + +export interface ParamRequest { + current: number; + pageSize: number; + [key: string]: any; +} \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-approval/.gitignore b/frontend/packages/flow-pc/flow-pc-approval/.gitignore new file mode 100644 index 00000000..6f3092c3 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/.gitignore @@ -0,0 +1,16 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# Profile +.rspack-profile-*/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/frontend/packages/flow-pc/flow-pc-approval/AGENTS.md b/frontend/packages/flow-pc/flow-pc-approval/AGENTS.md new file mode 100644 index 00000000..992bc6fa --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/AGENTS.md @@ -0,0 +1,23 @@ +# AGENTS.md + +You are an expert in JavaScript, Rsbuild, and web application development. You write maintainable, performant, and accessible code. + +## Commands + +- `pnpm run dev` - Start the dev server +- `pnpm run build` - Build the app for production +- `pnpm run preview` - Preview the production build locally + +## Docs + +- Rsbuild: https://rsbuild.rs/llms.txt +- Rspack: https://rspack.rs/llms.txt + +- Rstest: https://rstest.rs/llms.txt + +## Tools + +### Rstest + +- Run `pnpm run test` to run tests +- Run `pnpm run test:watch` to run tests in watch mode diff --git a/frontend/packages/flow-pc/flow-pc-approval/README.md b/frontend/packages/flow-pc/flow-pc-approval/README.md new file mode 100644 index 00000000..84d85101 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/README.md @@ -0,0 +1,36 @@ +# Rsbuild project + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get started + +Start the dev server, and the app will be available at [http://localhost:3000](http://localhost:3000). + +```bash +pnpm run dev +``` + +Build the app for production: + +```bash +pnpm run build +``` + +Preview the production build locally: + +```bash +pnpm run preview +``` + +## Learn more + +To learn more about Rsbuild, check out the following resources: + +- [Rsbuild documentation](https://rsbuild.rs) - explore Rsbuild features and APIs. +- [Rsbuild GitHub repository](https://github.com/web-infra-dev/rsbuild) - your feedback and contributions are welcome! diff --git a/frontend/packages/flow-pc/flow-pc-approval/package.json b/frontend/packages/flow-pc/flow-pc-approval/package.json new file mode 100644 index 00000000..a9f79c0a --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/package.json @@ -0,0 +1,38 @@ +{ + "name": "@flow-engine/flow-pc-approval", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rslib build", + "dev": "rslib build --watch", + "test": "rstest" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "dependencies": { + "@ant-design/icons": "~6.1.0", + "@flow-engine/flow-core": "workspace:*", + "@flow-engine/flow-types": "workspace:*", + "@flow-engine/flow-pc-design": "workspace:*", + "@flow-engine/flow-pc-ui": "workspace:*", + "@reduxjs/toolkit": "^2.11.2", + "antd": "^6.2.1", + "react-redux": "^9.2.0" + }, + "devDependencies": { + "@flow-engine/flow-types": "workspace:*" + } +} diff --git a/frontend/packages/flow-pc/flow-pc-approval/public/favicon.png b/frontend/packages/flow-pc/flow-pc-approval/public/favicon.png new file mode 100644 index 00000000..af06119f Binary files /dev/null and b/frontend/packages/flow-pc/flow-pc-approval/public/favicon.png differ diff --git a/frontend/packages/flow-design/rslib.config.ts b/frontend/packages/flow-pc/flow-pc-approval/rslib.config.ts similarity index 100% rename from frontend/packages/flow-design/rslib.config.ts rename to frontend/packages/flow-pc/flow-pc-approval/rslib.config.ts diff --git a/frontend/packages/flow-design/rstest.config.ts b/frontend/packages/flow-pc/flow-pc-approval/rstest.config.ts similarity index 100% rename from frontend/packages/flow-design/rstest.config.ts rename to frontend/packages/flow-pc/flow-pc-approval/rstest.config.ts diff --git a/frontend/packages/flow-design/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-approval/rstest.setup.ts similarity index 100% rename from frontend/packages/flow-design/rstest.setup.ts rename to frontend/packages/flow-pc/flow-pc-approval/rstest.setup.ts diff --git a/frontend/packages/flow-design/src/api/index.ts b/frontend/packages/flow-pc/flow-pc-approval/src/api/index.ts similarity index 100% rename from frontend/packages/flow-design/src/api/index.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/api/index.ts diff --git a/frontend/packages/flow-design/src/api/record.ts b/frontend/packages/flow-pc/flow-pc-approval/src/api/record.ts similarity index 100% rename from frontend/packages/flow-design/src/api/record.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/api/record.ts diff --git a/frontend/packages/flow-design/src/components/flow-approval/components/flow-node-history.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/flow-node-history.tsx similarity index 96% rename from frontend/packages/flow-design/src/components/flow-approval/components/flow-node-history.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/flow-node-history.tsx index 040adb0a..72776b93 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/components/flow-node-history.tsx +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/flow-node-history.tsx @@ -1,8 +1,8 @@ import React from "react"; import {useApprovalContext} from "@/components/flow-approval/hooks/use-approval-context"; -import {ProcessNode} from "@/components/flow-approval/typings"; +import {ProcessNode} from "@flow-engine/flow-types"; import {Timeline, Tag, Empty, Typography} from "antd"; -import {CheckCircleFilled, ClockCircleOutlined, LoadingOutlined, SyncOutlined} from "@ant-design/icons"; +import {CheckCircleFilled, ClockCircleOutlined, SyncOutlined} from "@ant-design/icons"; const {Text} = Typography; diff --git a/frontend/packages/flow-design/src/components/flow-approval/components/form-view-component.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/form-view-component.tsx similarity index 84% rename from frontend/packages/flow-design/src/components/flow-approval/components/form-view-component.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/form-view-component.tsx index 0379b1f1..e39fa230 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/components/form-view-component.tsx +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/form-view-component.tsx @@ -1,6 +1,6 @@ import React from "react"; import {useApprovalContext} from "@/components/flow-approval/hooks/use-approval-context"; -import {ViewPlugin} from "@/plugins/view"; +import {ViewBindPlugin} from "@flow-engine/flow-types"; import { Form } from "antd"; interface FormViewComponentProps{ @@ -9,7 +9,10 @@ interface FormViewComponentProps{ export const FormViewComponent: React.FC = (props) => { const {state, context} = useApprovalContext(); - const ViewComponent = ViewPlugin.getInstance().get(state.flow?.view || 'default'); + const ViewComponent = ViewBindPlugin.getInstance().get(state.flow?.view || 'default'); + + const formMeta = state.flow?.form; + // 是否可合并审批 const mergeable = state.flow?.mergeable || false; const todos = state.flow?.todos || []; @@ -41,7 +44,7 @@ export const FormViewComponent: React.FC = (props) => { }); }, []); - if (ViewComponent) { + if (ViewComponent && formMeta) { if (mergeable) { return (
@@ -54,7 +57,8 @@ export const FormViewComponent: React.FC = (props) => { {viewForms.map((item, index) => ( ))} diff --git a/frontend/packages/flow-design/src/components/flow-approval/context/index.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/context/index.ts similarity index 85% rename from frontend/packages/flow-design/src/components/flow-approval/context/index.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/context/index.ts index 995c22d0..97762aa6 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/context/index.ts +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/context/index.ts @@ -1,8 +1,6 @@ import React from "react"; -import {ApprovalLayoutProps, State} from "../typings"; +import {State,ApprovalLayoutProps} from "../typings"; import {Presenter} from "../presenters"; -import {FormActionContext} from "@/components/flow-approval/presenters/form"; - export class ApprovalContextScope { private readonly presenter: Presenter; diff --git a/frontend/packages/flow-design/src/components/flow-approval/hooks/use-approval-context.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/hooks/use-approval-context.ts similarity index 95% rename from frontend/packages/flow-design/src/components/flow-approval/hooks/use-approval-context.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/hooks/use-approval-context.ts index 68872c39..f935359f 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/hooks/use-approval-context.ts +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/hooks/use-approval-context.ts @@ -4,7 +4,7 @@ import {ApprovalContext, ApprovalContextScope} from "../context"; import {ApprovalReduxState, updateState} from "../store"; import {Presenter} from "../presenters"; import {FlowApprovalApiImpl} from "../model"; -import {ApprovalLayoutProps} from "@/components/flow-approval/typings"; +import {ApprovalLayoutProps} from "../typings"; export const useApprovalContext = () => { const context = React.useContext(ApprovalContext); diff --git a/frontend/packages/flow-design/src/components/flow-approval/index.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/index.tsx similarity index 92% rename from frontend/packages/flow-design/src/components/flow-approval/index.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/index.tsx index 6cc743b2..c145fcd9 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/index.tsx +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/index.tsx @@ -1,7 +1,7 @@ import React from "react"; -import {Drawer} from "@/components/ui/drawer"; +import {Drawer} from "@flow-engine/flow-pc-ui"; import {detail} from "@/api/record"; -import {FlowContent} from "@/components/flow-approval/typings"; +import {FlowContent} from "@flow-engine/flow-types"; import {ApprovalLayout} from "@/components/flow-approval/layout"; interface ApprovalPanelProps { diff --git a/frontend/packages/flow-design/src/components/flow-approval/layout/body.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/body.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/layout/body.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/body.tsx diff --git a/frontend/packages/flow-design/src/components/flow-approval/layout/header.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/header.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/layout/header.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/header.tsx diff --git a/frontend/packages/flow-design/src/components/flow-approval/layout/index.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/index.tsx similarity index 94% rename from frontend/packages/flow-design/src/components/flow-approval/layout/index.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/index.tsx index 0e3049a8..1b8990eb 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/layout/index.tsx +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/layout/index.tsx @@ -1,5 +1,5 @@ import React from "react"; -import {ApprovalLayoutProps} from "@/components/flow-approval/typings"; +import {ApprovalLayoutProps} from "../typings"; import {Provider} from "react-redux"; import {approvalStore} from "@/components/flow-approval/store"; import {ApprovalContext} from "@/components/flow-approval/context"; diff --git a/frontend/packages/flow-design/src/components/flow-approval/model.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/model.ts similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/model.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/model.ts diff --git a/frontend/packages/flow-design/src/components/flow-approval/presenters/action.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/presenters/action.ts similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/presenters/action.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/presenters/action.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/presenters/form.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/presenters/form.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/presenters/form.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/presenters/form.ts diff --git a/frontend/packages/flow-design/src/components/flow-approval/presenters/index.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/presenters/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/presenters/index.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/presenters/index.ts diff --git a/frontend/packages/flow-design/src/components/flow-approval/store.tsx b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/store.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/store.tsx rename to frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/store.tsx diff --git a/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/typings/index.ts b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/typings/index.ts new file mode 100644 index 00000000..ebb968b8 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/typings/index.ts @@ -0,0 +1,35 @@ +import {FlowContent,ProcessNode} from "@flow-engine/flow-types"; + +/** + * 流程审批布局组件属性 + */ +export interface ApprovalLayoutProps { + content:FlowContent; + onClose?:() => void; +} + +// Layout constants +export const ApprovalLayoutHeight = 64; +export const ApprovalContentPaddingV = 24; +export const ApprovalContentPaddingH = 24; +export const ApprovalSidebarWidth = 250; +export const ApprovalSidebarCollapsedWidth = 48; + + +export type State = { + flow?:FlowContent; +}; + + +export const initStateData = { + +} + +export interface FlowApprovalApi{ + + create(body:Record):Promise; + + processNodes(body:Record):Promise; + + action(body:Record):Promise; +} diff --git a/frontend/packages/flow-pc/flow-pc-approval/src/index.ts b/frontend/packages/flow-pc/flow-pc-approval/src/index.ts new file mode 100644 index 00000000..b7a68aa0 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/src/index.ts @@ -0,0 +1 @@ +export * from '@/components/flow-approval'; \ No newline at end of file diff --git a/frontend/packages/flow-design/src/type.d.ts b/frontend/packages/flow-pc/flow-pc-approval/src/type.d.ts similarity index 100% rename from frontend/packages/flow-design/src/type.d.ts rename to frontend/packages/flow-pc/flow-pc-approval/src/type.d.ts diff --git a/frontend/packages/flow-pc/flow-pc-approval/tests/index.test.tsx b/frontend/packages/flow-pc/flow-pc-approval/tests/index.test.tsx new file mode 100644 index 00000000..33634cb1 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/tests/index.test.tsx @@ -0,0 +1,15 @@ +import {afterEach, describe, expect, test} from "@rstest/core"; +import {cleanup} from "@testing-library/react"; + +describe.sequential('Demo', () => { + + afterEach(() => { + // 清理每一次测试产生的数据 + cleanup(); + }); + + test('add test', () => { + const value = 1 + 100; + expect(value).toEqual(101); + }); +}); \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-approval/tests/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-approval/tests/rstest.setup.ts new file mode 100644 index 00000000..32b38ae2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/tests/rstest.setup.ts @@ -0,0 +1,4 @@ +import { expect } from '@rstest/core'; +import * as jestDomMatchers from '@testing-library/jest-dom/matchers'; + +expect.extend(jestDomMatchers); diff --git a/frontend/packages/flow-pc/flow-pc-approval/tests/tsconfig.json b/frontend/packages/flow-pc/flow-pc-approval/tests/tsconfig.json new file mode 100644 index 00000000..8a386d8e --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/tests/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "types": ["@testing-library/jest-dom"] + }, + "include": ["./"] +} diff --git a/frontend/packages/flow-pc/flow-pc-approval/tsconfig.json b/frontend/packages/flow-pc/flow-pc-approval/tsconfig.json new file mode 100644 index 00000000..3159d6f5 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-approval/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "lib": ["DOM", "ES2022"], + "module": "ESNext", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "isolatedModules": true, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "useDefineForClassFields": true, + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "include": [ + "src" + ] +} diff --git a/frontend/packages/flow-design/.gitignore b/frontend/packages/flow-pc/flow-pc-design/.gitignore similarity index 100% rename from frontend/packages/flow-design/.gitignore rename to frontend/packages/flow-pc/flow-pc-design/.gitignore diff --git a/frontend/packages/flow-design/README.md b/frontend/packages/flow-pc/flow-pc-design/README.md similarity index 100% rename from frontend/packages/flow-design/README.md rename to frontend/packages/flow-pc/flow-pc-design/README.md diff --git a/frontend/packages/flow-design/package.json b/frontend/packages/flow-pc/flow-pc-design/package.json similarity index 93% rename from frontend/packages/flow-design/package.json rename to frontend/packages/flow-pc/flow-pc-design/package.json index ed9bbd19..2c444415 100644 --- a/frontend/packages/flow-design/package.json +++ b/frontend/packages/flow-pc/flow-pc-design/package.json @@ -1,5 +1,5 @@ { - "name": "@flow-engine/flow-design", + "name": "@flow-engine/flow-pc-design", "version": "1.0.0", "type": "module", "exports": { @@ -25,6 +25,7 @@ "@ant-design/icons": "~6.1.0", "@flow-engine/flow-core": "workspace:*", "@flow-engine/flow-types": "workspace:*", + "@flow-engine/flow-pc-ui": "workspace:*", "@flowgram.ai/export-plugin": "1.0.7", "@flowgram.ai/fixed-layout-editor": "1.0.7", "@flowgram.ai/fixed-semi-materials": "1.0.7", diff --git a/frontend/packages/flow-pc/flow-pc-design/rslib.config.ts b/frontend/packages/flow-pc/flow-pc-design/rslib.config.ts new file mode 100644 index 00000000..66f24187 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-design/rslib.config.ts @@ -0,0 +1,29 @@ +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; +import {pluginSass} from '@rsbuild/plugin-sass'; +import {pluginLess} from '@rsbuild/plugin-less'; +import * as path from 'node:path'; + +export default defineConfig({ + source: { + entry: { + index: './src/**', + }, + }, + resolve: { + alias: { + "@/": path.resolve(__dirname, "src"), + } + }, + lib: [ + { + bundle: false, + dts: true, + format: 'esm', + }, + ], + output: { + target: 'web', + }, + plugins: [pluginReact(),pluginSass(),pluginLess()], +}); diff --git a/frontend/packages/flow-pc/flow-pc-design/rstest.config.ts b/frontend/packages/flow-pc/flow-pc-design/rstest.config.ts new file mode 100644 index 00000000..9057a186 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-design/rstest.config.ts @@ -0,0 +1,15 @@ +import {pluginReact} from '@rsbuild/plugin-react'; +import {defineConfig} from '@rstest/core'; +import {pluginSass} from "@rsbuild/plugin-sass"; +import * as path from "path"; + +export default defineConfig({ + testEnvironment: 'jsdom', + setupFiles: ['./rstest.setup.ts'], + plugins: [pluginReact(), pluginSass()], + resolve: { + alias: { + "@/": path.resolve(__dirname, "src"), + } + } +}); diff --git a/frontend/packages/flow-pc/flow-pc-design/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-design/rstest.setup.ts new file mode 100644 index 00000000..32b38ae2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-design/rstest.setup.ts @@ -0,0 +1,4 @@ +import { expect } from '@rstest/core'; +import * as jestDomMatchers from '@testing-library/jest-dom/matchers'; + +expect.extend(jestDomMatchers); diff --git a/frontend/packages/flow-pc/flow-pc-design/src/api/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/api/index.ts new file mode 100644 index 00000000..8d65b389 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-design/src/api/index.ts @@ -0,0 +1,12 @@ +import {HttpClient} from "@flow-engine/flow-core"; +import { message } from "antd"; + +export const httpClient = new HttpClient(10000,{ + success:(msg:string)=>{ + message.success(msg) + }, + error:(msg:string)=>{ + console.log(msg); + message.error(msg) + } +}) \ No newline at end of file diff --git a/frontend/packages/flow-design/src/api/workflow.ts b/frontend/packages/flow-pc/flow-pc-design/src/api/workflow.ts similarity index 100% rename from frontend/packages/flow-design/src/api/workflow.ts rename to frontend/packages/flow-pc/flow-pc-design/src/api/workflow.ts diff --git a/frontend/packages/flow-design/src/assets/icon-mouse.tsx b/frontend/packages/flow-pc/flow-pc-design/src/assets/icon-mouse.tsx similarity index 100% rename from frontend/packages/flow-design/src/assets/icon-mouse.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/assets/icon-mouse.tsx diff --git a/frontend/packages/flow-design/src/assets/icon-pad.tsx b/frontend/packages/flow-pc/flow-pc-design/src/assets/icon-pad.tsx similarity index 100% rename from frontend/packages/flow-design/src/assets/icon-pad.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/assets/icon-pad.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/base-node/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/base-node/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/base-node/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/base-node/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/base-node/styles.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/base-node/styles.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/base-node/styles.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/base-node/styles.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/branch-adder/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/branch-adder/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/branch-adder/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/branch-adder/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/branch-adder/styles.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/branch-adder/styles.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/branch-adder/styles.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/branch-adder/styles.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/collapse/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/collapse/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/collapse/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/collapse/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/node-adder/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-adder/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/node-adder/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-adder/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/node-adder/styles.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-adder/styles.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/node-adder/styles.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-adder/styles.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/node-icon/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-icon/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/node-icon/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-icon/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/node-list/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-list/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/node-list/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/node-list/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/sidebar/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/sidebar/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/sidebar/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/sidebar/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/sidebar/sidebar-node-renderer.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/sidebar/sidebar-node-renderer.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/sidebar/sidebar-node-renderer.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/sidebar/sidebar-node-renderer.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/components/sidebar/sidebar-renderer.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/sidebar/sidebar-renderer.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/components/sidebar/sidebar-renderer.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/components/sidebar/sidebar-renderer.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/context/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/context/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/context/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/context/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/context/node-render-context.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/context/node-render-context.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/context/node-render-context.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/context/node-render-context.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/context/sidebar-context.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/context/sidebar-context.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/context/sidebar-context.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/context/sidebar-context.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/hooks/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/hooks/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/hooks/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/hooks/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/hooks/use-editor-props.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/hooks/use-editor-props.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/hooks/use-editor-props.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/hooks/use-editor-props.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/hooks/use-is-sidebar.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/hooks/use-is-sidebar.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/hooks/use-is-sidebar.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/hooks/use-is-sidebar.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/index.scss b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/index.scss similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/index.scss rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/index.scss diff --git a/frontend/packages/flow-design/src/components/design-editor/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/initial-data.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/initial-data.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/initial-data.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/initial-data.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/action/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/action/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/action/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/action/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/action/table.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/action/table.tsx similarity index 97% rename from frontend/packages/flow-design/src/components/design-editor/node-components/action/table.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/action/table.tsx index fb5242c9..fb206078 100644 --- a/frontend/packages/flow-design/src/components/design-editor/node-components/action/table.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/action/table.tsx @@ -1,6 +1,6 @@ import React, {useContext} from "react"; import {Space, Switch} from "antd"; -import {Table} from "@/components/ui/table"; +import {Table} from "@flow-engine/flow-pc-ui"; import {NodeRenderContext} from "@/components/design-editor/context"; import {ActionManager} from "@/components/design-editor/node-components/action/index"; diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/condition/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/condition/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/condition/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/condition/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/header/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/header/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/header/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/header/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/layout/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/layout/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/layout/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/layout/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/panel/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/panel/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/panel/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/panel/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/promission/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/promission/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/promission/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/promission/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/promission/table.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/promission/table.tsx similarity index 98% rename from frontend/packages/flow-design/src/components/design-editor/node-components/promission/table.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/promission/table.tsx index 846354a2..22e25223 100644 --- a/frontend/packages/flow-design/src/components/design-editor/node-components/promission/table.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/promission/table.tsx @@ -1,6 +1,6 @@ import React from "react"; import {Tabs,Switch} from "antd"; -import {Table} from "@/components/ui/table"; +import {Table} from "@flow-engine/flow-pc-ui"; import {PromissionManager} from "@/components/design-editor/node-components/promission/index"; import {useDesignContext} from "@/components/design-panel/hooks/use-design-context"; diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/advice.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/advice.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/advice.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/advice.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/deplay.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/deplay.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/deplay.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/deplay.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/error-trigger.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/error-trigger.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/error-trigger.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/error-trigger.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/multi-operator-audit.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/multi-operator-audit.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/multi-operator-audit.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/multi-operator-audit.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/node-title.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/node-title.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/node-title.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/node-title.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/operator-load.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/operator-load.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/operator-load.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/operator-load.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/record-merge.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/record-merge.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/record-merge.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/record-merge.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/resubmit.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/resubmit.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/resubmit.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/resubmit.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/revoke.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/revoke.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/revoke.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/revoke.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/router.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/router.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/router.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/router.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/same-operator-audit.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/same-operator-audit.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/same-operator-audit.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/same-operator-audit.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/sub-process.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/sub-process.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/sub-process.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/sub-process.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/timeout.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/timeout.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/timeout.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/timeout.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/strategy/trigger.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/trigger.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/strategy/trigger.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/trigger.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/taps/action.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/taps/action.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/taps/action.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/taps/action.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/taps/base.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/taps/base.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/taps/base.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/taps/base.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/taps/promission.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/taps/promission.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/taps/promission.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/taps/promission.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/node-components/view/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/view/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/node-components/view/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/view/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/approval/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/approval/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/approval/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/approval/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/approval/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/approval/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/approval/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/approval/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/condition-branch/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition-branch/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/condition-branch/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition-branch/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/condition-branch/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition-branch/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/condition-branch/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition-branch/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/condition/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/condition/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/condition/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/condition/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/delay/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/delay/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/delay/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/delay/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/delay/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/delay/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/delay/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/delay/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/end/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/end/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/end/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/end/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/end/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/end/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/end/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/end/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/handle/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/handle/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/handle/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/handle/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/handle/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/handle/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/handle/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/handle/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/inclusive-branch/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive-branch/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/inclusive-branch/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive-branch/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/inclusive-branch/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive-branch/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/inclusive-branch/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive-branch/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/inclusive/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/inclusive/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/inclusive/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/inclusive/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/inclusive/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/notify/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/notify/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/notify/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/notify/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/notify/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/notify/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/notify/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/notify/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/parallel-branch/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel-branch/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/parallel-branch/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel-branch/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/parallel-branch/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel-branch/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/parallel-branch/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel-branch/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/parallel/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/parallel/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/parallel/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/parallel/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/parallel/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/router/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/router/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/router/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/router/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/router/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/router/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/router/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/router/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/start/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/start/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/start/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/start/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/start/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/start/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/start/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/start/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/sub-process/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/sub-process/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/sub-process/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/sub-process/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/sub-process/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/sub-process/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/sub-process/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/sub-process/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/trigger/form-meta.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/trigger/form-meta.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/trigger/form-meta.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/trigger/form-meta.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/nodes/trigger/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/trigger/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/nodes/trigger/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/trigger/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/styles.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/styles.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/styles.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/styles.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/download.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/download.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/download.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/download.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/fit-view.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/fit-view.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/fit-view.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/fit-view.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/interactive.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/interactive.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/interactive.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/interactive.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/minimap-switch.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/minimap-switch.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/minimap-switch.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/minimap-switch.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/minimap.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/minimap.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/minimap.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/minimap.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/mouse-pad-selector.scss b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/mouse-pad-selector.scss similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/mouse-pad-selector.scss rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/mouse-pad-selector.scss diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/mouse-pad-selector.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/mouse-pad-selector.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/mouse-pad-selector.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/mouse-pad-selector.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/readonly.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/readonly.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/readonly.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/readonly.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/redo.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/redo.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/redo.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/redo.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/switch-vertical.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/switch-vertical.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/switch-vertical.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/switch-vertical.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/undo.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/undo.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/undo.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/undo.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/tools/zoom-select.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/zoom-select.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/tools/zoom-select.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/tools/zoom-select.tsx diff --git a/frontend/packages/flow-design/src/components/design-editor/typings/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/typings/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/typings/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/typings/index.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/typings/node-type.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/typings/node-type.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/typings/node-type.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/typings/node-type.ts diff --git a/frontend/packages/flow-design/src/components/design-editor/typings/node.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/typings/node.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-editor/typings/node.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/typings/node.tsx diff --git a/frontend/packages/flow-design/src/components/design-list/hooks/use-presenter.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/hooks/use-presenter.tsx similarity index 92% rename from frontend/packages/flow-design/src/components/design-list/hooks/use-presenter.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-list/hooks/use-presenter.tsx index 53b5ab8b..20248e46 100644 --- a/frontend/packages/flow-design/src/components/design-list/hooks/use-presenter.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/hooks/use-presenter.tsx @@ -1,5 +1,5 @@ import React from "react" -import {ActionType} from "@/components/ui/table"; +import {ActionType} from "@flow-engine/flow-pc-ui"; import {PresenterHooks} from "@flow-engine/flow-core"; import {State} from "../types" import {Presenter} from "../presenter"; diff --git a/frontend/packages/flow-design/src/components/design-list/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/index.tsx similarity index 98% rename from frontend/packages/flow-design/src/components/design-list/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-list/index.tsx index c92bd151..b56ea267 100644 --- a/frontend/packages/flow-design/src/components/design-list/index.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/index.tsx @@ -1,4 +1,4 @@ -import {ActionType, Table, TableProps} from "@/components/ui/table"; +import {ActionType, Table, TableProps} from "@flow-engine/flow-pc-ui"; import React from "react"; import {DataType, DesignListProps} from "./types"; import {usePresenter} from "./hooks/use-presenter"; diff --git a/frontend/packages/flow-design/src/components/design-list/model.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/model.ts similarity index 88% rename from frontend/packages/flow-design/src/components/design-list/model.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-list/model.ts index ec4ee426..194ddc40 100644 --- a/frontend/packages/flow-design/src/components/design-list/model.ts +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/model.ts @@ -1,4 +1,4 @@ -import {ParamRequest, Result} from "@/components/ui/table"; +import {ParamRequest, Result} from "@flow-engine/flow-pc-ui"; import {DataType, DesignListApi} from "./types"; import {list, remove,changeState} from "@/api/workflow"; diff --git a/frontend/packages/flow-design/src/components/design-list/presenter.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/presenter.ts similarity index 96% rename from frontend/packages/flow-design/src/components/design-list/presenter.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-list/presenter.ts index c4710930..d440c158 100644 --- a/frontend/packages/flow-design/src/components/design-list/presenter.ts +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/presenter.ts @@ -1,5 +1,5 @@ import {DesignListApi, State} from "./types"; -import {ParamRequest} from "@/components/ui/table"; +import {ParamRequest} from "@flow-engine/flow-pc-ui"; import {BasePresenter} from "@flow-engine/flow-core"; export class Presenter extends BasePresenter { diff --git a/frontend/packages/flow-design/src/components/design-list/types.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/types.ts similarity index 87% rename from frontend/packages/flow-design/src/components/design-list/types.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-list/types.ts index 0d23889e..8c16072a 100644 --- a/frontend/packages/flow-design/src/components/design-list/types.ts +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-list/types.ts @@ -1,4 +1,4 @@ -import { ParamRequest, Result } from "@/components/ui/table"; +import { ParamRequest, Result } from "@flow-engine/flow-pc-ui"; export interface State { pageVersion: number; diff --git a/frontend/packages/flow-design/src/components/design-panel/context/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/context/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/context/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/context/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/hooks/use-design-context.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/hooks/use-design-context.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/hooks/use-design-context.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/hooks/use-design-context.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/index.tsx similarity index 88% rename from frontend/packages/flow-design/src/components/design-panel/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/index.tsx index 3045475f..cfd0f1db 100644 --- a/frontend/packages/flow-design/src/components/design-panel/index.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/index.tsx @@ -1,6 +1,6 @@ import React from "react"; import {DesignPanelProps} from "./types"; -import {Drawer} from "@/components/ui/drawer"; +import {Drawer} from "@flow-engine/flow-pc-ui"; import {DesignPanelLayout} from "@/components/design-panel/layout"; export const DesignPanel:React.FC = (props) =>{ diff --git a/frontend/packages/flow-design/src/components/design-panel/layout/body.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/body.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/layout/body.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/body.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/layout/footer.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/footer.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/layout/footer.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/footer.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/layout/header.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/header.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/layout/header.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/header.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/layout/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/layout/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/layout/index.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/manager/form.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/manager/form.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/manager/form.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/manager/form.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/manager/node.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/manager/node.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/manager/node.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/manager/node.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/manager/strategy.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/manager/strategy.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/manager/strategy.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/manager/strategy.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/model.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/model.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/model.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/model.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/panels/workflow/interfere.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/panels/workflow/interfere.tsx similarity index 92% rename from frontend/packages/flow-design/src/components/design-panel/panels/workflow/interfere.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/panels/workflow/interfere.tsx index 3d41a110..b21701b3 100644 --- a/frontend/packages/flow-design/src/components/design-panel/panels/workflow/interfere.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/panels/workflow/interfere.tsx @@ -1,6 +1,6 @@ import React from "react"; import {FormInstance, Switch} from "antd"; -import {CardForm} from "@/components/ui/form/card"; +import {CardForm} from "@flow-engine/flow-pc-ui"; interface InterferePanelProps{ form:FormInstance; diff --git a/frontend/packages/flow-design/src/components/design-panel/panels/workflow/urge.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/panels/workflow/urge.tsx similarity index 94% rename from frontend/packages/flow-design/src/components/design-panel/panels/workflow/urge.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/panels/workflow/urge.tsx index 982df85b..0a066a84 100644 --- a/frontend/packages/flow-design/src/components/design-panel/panels/workflow/urge.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/panels/workflow/urge.tsx @@ -1,6 +1,6 @@ import React from "react"; import {FormInstance, Input, Switch} from "antd"; -import {CardForm} from "@/components/ui/form/card"; +import {CardForm} from "@flow-engine/flow-pc-ui"; interface UrgePanelProps{ form:FormInstance; diff --git a/frontend/packages/flow-design/src/components/design-panel/presenters/convertor/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/presenters/convertor/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/presenters/convertor/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/presenters/convertor/index.ts diff --git a/frontend/packages/flow-design/src/components/flow-approval/presenters/form.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/presenters/form.ts similarity index 100% rename from frontend/packages/flow-design/src/components/flow-approval/presenters/form.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/presenters/form.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/presenters/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/presenters/index.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/presenters/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/presenters/index.ts diff --git a/frontend/packages/flow-design/src/components/design-panel/store.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/store.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/store.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/store.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/tabs/base.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/base.tsx similarity index 97% rename from frontend/packages/flow-design/src/components/design-panel/tabs/base.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/base.tsx index c474a962..36868c0f 100644 --- a/frontend/packages/flow-design/src/components/design-panel/tabs/base.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/base.tsx @@ -1,7 +1,7 @@ import React from "react"; import {Input} from "antd"; -import {Panel} from "@/components/ui/panel"; -import {CardForm} from "@/components/ui/form/card"; +import {Panel} from "@flow-engine/flow-pc-ui"; +import {CardForm} from "@flow-engine/flow-pc-ui"; import {useDesignContext} from "../hooks/use-design-context"; diff --git a/frontend/packages/flow-design/src/components/design-panel/tabs/flow.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/flow.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/tabs/flow.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/flow.tsx diff --git a/frontend/packages/flow-design/src/components/design-panel/tabs/form.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/form.tsx similarity index 99% rename from frontend/packages/flow-design/src/components/design-panel/tabs/form.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/form.tsx index c27e5322..47cf9ea3 100644 --- a/frontend/packages/flow-design/src/components/design-panel/tabs/form.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/form.tsx @@ -1,6 +1,6 @@ import React, {useState} from "react"; -import {Panel} from "@/components/ui/panel"; -import {Table, TableProps} from "@/components/ui/table"; +import {Panel} from "@flow-engine/flow-pc-ui"; +import {Table, TableProps} from"@flow-engine/flow-pc-ui"; import {Button, Flex, Form, FormInstance, Input, Modal, Popconfirm, Select, Space, Switch, Tabs,Empty} from "antd"; import {FormFieldOptions} from "@/components/design-panel/types"; import {useDesignContext} from "@/components/design-panel/hooks/use-design-context"; diff --git a/frontend/packages/flow-design/src/components/design-panel/tabs/setting.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/setting.tsx similarity index 93% rename from frontend/packages/flow-design/src/components/design-panel/tabs/setting.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/setting.tsx index 57849a26..39eb3332 100644 --- a/frontend/packages/flow-design/src/components/design-panel/tabs/setting.tsx +++ b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/tabs/setting.tsx @@ -1,8 +1,8 @@ import React from "react"; -import {Panel} from "@/components/ui/panel"; +import {Panel} from "@flow-engine/flow-pc-ui"; import {InterferePanel} from "@/components/design-panel/panels/workflow/interfere"; import {UrgePanel} from "@/components/design-panel/panels/workflow/urge"; -import {CardForm} from "@/components/ui/form/card"; +import {CardForm} from "@flow-engine/flow-pc-ui"; import {useDesignContext} from "@/components/design-panel/hooks/use-design-context"; import {WorkflowStrategyManager} from "@/components/design-panel/manager/strategy"; diff --git a/frontend/packages/flow-design/src/components/design-panel/types.ts b/frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/types.ts similarity index 100% rename from frontend/packages/flow-design/src/components/design-panel/types.ts rename to frontend/packages/flow-pc/flow-pc-design/src/components/design-panel/types.ts diff --git a/frontend/packages/flow-design/src/components/workflow-select/index.tsx b/frontend/packages/flow-pc/flow-pc-design/src/components/workflow-select/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/workflow-select/index.tsx rename to frontend/packages/flow-pc/flow-pc-design/src/components/workflow-select/index.tsx diff --git a/frontend/packages/flow-design/src/index.ts b/frontend/packages/flow-pc/flow-pc-design/src/index.ts similarity index 53% rename from frontend/packages/flow-design/src/index.ts rename to frontend/packages/flow-pc/flow-pc-design/src/index.ts index 79cb5094..5778ab3a 100644 --- a/frontend/packages/flow-design/src/index.ts +++ b/frontend/packages/flow-pc/flow-pc-design/src/index.ts @@ -1,6 +1,3 @@ export * from '@/components/design-list'; export * from '@/components/design-panel'; -export * from '@/components/ui/table'; export * from '@/components/workflow-select'; -export * from '@/components/flow-approval'; -export * from '@/plugins/view'; \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-design/src/type.d.ts b/frontend/packages/flow-pc/flow-pc-design/src/type.d.ts new file mode 100644 index 00000000..320cdbc4 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-design/src/type.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' +declare module '*.png' +declare module '*.jpg' +declare module '*.module.less' diff --git a/frontend/packages/flow-design/tests/demo.test.ts b/frontend/packages/flow-pc/flow-pc-design/tests/demo.test.ts similarity index 100% rename from frontend/packages/flow-design/tests/demo.test.ts rename to frontend/packages/flow-pc/flow-pc-design/tests/demo.test.ts diff --git a/frontend/packages/flow-design/tests/test.d.ts b/frontend/packages/flow-pc/flow-pc-design/tests/test.d.ts similarity index 100% rename from frontend/packages/flow-design/tests/test.d.ts rename to frontend/packages/flow-pc/flow-pc-design/tests/test.d.ts diff --git a/frontend/packages/flow-design/tests/tsconfig.json b/frontend/packages/flow-pc/flow-pc-design/tests/tsconfig.json similarity index 100% rename from frontend/packages/flow-design/tests/tsconfig.json rename to frontend/packages/flow-pc/flow-pc-design/tests/tsconfig.json diff --git a/frontend/packages/flow-design/tsconfig.json b/frontend/packages/flow-pc/flow-pc-design/tsconfig.json similarity index 100% rename from frontend/packages/flow-design/tsconfig.json rename to frontend/packages/flow-pc/flow-pc-design/tsconfig.json diff --git a/frontend/packages/flow-pc/flow-pc-form/.gitignore b/frontend/packages/flow-pc/flow-pc-form/.gitignore new file mode 100644 index 00000000..6f3092c3 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/.gitignore @@ -0,0 +1,16 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# Profile +.rspack-profile-*/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/frontend/packages/flow-pc/flow-pc-form/AGENTS.md b/frontend/packages/flow-pc/flow-pc-form/AGENTS.md new file mode 100644 index 00000000..992bc6fa --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/AGENTS.md @@ -0,0 +1,23 @@ +# AGENTS.md + +You are an expert in JavaScript, Rsbuild, and web application development. You write maintainable, performant, and accessible code. + +## Commands + +- `pnpm run dev` - Start the dev server +- `pnpm run build` - Build the app for production +- `pnpm run preview` - Preview the production build locally + +## Docs + +- Rsbuild: https://rsbuild.rs/llms.txt +- Rspack: https://rspack.rs/llms.txt + +- Rstest: https://rstest.rs/llms.txt + +## Tools + +### Rstest + +- Run `pnpm run test` to run tests +- Run `pnpm run test:watch` to run tests in watch mode diff --git a/frontend/packages/flow-pc/flow-pc-form/README.md b/frontend/packages/flow-pc/flow-pc-form/README.md new file mode 100644 index 00000000..84d85101 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/README.md @@ -0,0 +1,36 @@ +# Rsbuild project + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get started + +Start the dev server, and the app will be available at [http://localhost:3000](http://localhost:3000). + +```bash +pnpm run dev +``` + +Build the app for production: + +```bash +pnpm run build +``` + +Preview the production build locally: + +```bash +pnpm run preview +``` + +## Learn more + +To learn more about Rsbuild, check out the following resources: + +- [Rsbuild documentation](https://rsbuild.rs) - explore Rsbuild features and APIs. +- [Rsbuild GitHub repository](https://github.com/web-infra-dev/rsbuild) - your feedback and contributions are welcome! diff --git a/frontend/packages/flow-pc/flow-pc-form/package.json b/frontend/packages/flow-pc/flow-pc-form/package.json new file mode 100644 index 00000000..0ecc20e2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/package.json @@ -0,0 +1,34 @@ +{ + "name": "@flow-engine/flow-pc-form", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rslib build", + "dev": "rslib build --watch", + "test": "rstest" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "dependencies": { + "@ant-design/icons": "~6.1.0", + "@flow-engine/flow-core": "workspace:*", + "@flow-engine/flow-types": "workspace:*", + "antd": "^6.2.1" + }, + "devDependencies": { + "@flow-engine/flow-types": "workspace:*" + } +} diff --git a/frontend/packages/flow-pc/flow-pc-form/public/favicon.png b/frontend/packages/flow-pc/flow-pc-form/public/favicon.png new file mode 100644 index 00000000..af06119f Binary files /dev/null and b/frontend/packages/flow-pc/flow-pc-form/public/favicon.png differ diff --git a/frontend/packages/flow-pc/flow-pc-form/rslib.config.ts b/frontend/packages/flow-pc/flow-pc-form/rslib.config.ts new file mode 100644 index 00000000..66f24187 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/rslib.config.ts @@ -0,0 +1,29 @@ +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; +import {pluginSass} from '@rsbuild/plugin-sass'; +import {pluginLess} from '@rsbuild/plugin-less'; +import * as path from 'node:path'; + +export default defineConfig({ + source: { + entry: { + index: './src/**', + }, + }, + resolve: { + alias: { + "@/": path.resolve(__dirname, "src"), + } + }, + lib: [ + { + bundle: false, + dts: true, + format: 'esm', + }, + ], + output: { + target: 'web', + }, + plugins: [pluginReact(),pluginSass(),pluginLess()], +}); diff --git a/frontend/packages/flow-pc/flow-pc-form/rstest.config.ts b/frontend/packages/flow-pc/flow-pc-form/rstest.config.ts new file mode 100644 index 00000000..9057a186 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/rstest.config.ts @@ -0,0 +1,15 @@ +import {pluginReact} from '@rsbuild/plugin-react'; +import {defineConfig} from '@rstest/core'; +import {pluginSass} from "@rsbuild/plugin-sass"; +import * as path from "path"; + +export default defineConfig({ + testEnvironment: 'jsdom', + setupFiles: ['./rstest.setup.ts'], + plugins: [pluginReact(), pluginSass()], + resolve: { + alias: { + "@/": path.resolve(__dirname, "src"), + } + } +}); diff --git a/frontend/packages/flow-pc/flow-pc-form/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-form/rstest.setup.ts new file mode 100644 index 00000000..32b38ae2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/rstest.setup.ts @@ -0,0 +1,4 @@ +import { expect } from '@rstest/core'; +import * as jestDomMatchers from '@testing-library/jest-dom/matchers'; + +expect.extend(jestDomMatchers); diff --git a/frontend/packages/flow-pc/flow-pc-form/src/components/factory/form-item-factory.tsx b/frontend/packages/flow-pc/flow-pc-form/src/components/factory/form-item-factory.tsx new file mode 100644 index 00000000..21466f2a --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/components/factory/form-item-factory.tsx @@ -0,0 +1,32 @@ +import {FlowFormFieldMeta} from "@flow-engine/flow-types"; +import React from "react"; + +import {FormItemString} from "@/components/item/string"; +import {FormItemNumber} from "@/components/item/number"; +import {FormItemFloat} from "@/components/item/float"; +import {FormItemBoolean} from "@/components/item/boolean"; + + +export class FormItemFactory { + + private readonly cache:Map>; + + private static instance:FormItemFactory = new FormItemFactory(); + + private constructor() { + this.cache = new Map(); + this.cache.set('number',FormItemNumber); + this.cache.set('string',FormItemString); + this.cache.set('float',FormItemFloat); + this.cache.set('boolean',FormItemBoolean); + } + + public static getInstance():FormItemFactory { + return FormItemFactory.instance; + } + + public createFrom(formType:string){ + return this.cache.get(formType); + } + +} \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/components/form/index.tsx b/frontend/packages/flow-pc/flow-pc-form/src/components/form/index.tsx new file mode 100644 index 00000000..a69c1cdc --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/components/form/index.tsx @@ -0,0 +1,43 @@ +import React from "react"; +import {type ViewComponentProps} from "@flow-engine/flow-types"; +import {Form} from "antd"; +import {ObjectUtils} from "@flow-engine/flow-core"; +import {FormItemFactory} from "@/components/factory/form-item-factory"; + +export const FlowFormView: React.FC = (props) => { + + const [values, setValues] = React.useState({}); + + const form = props.form; + + const meta = props.meta; + + const fields = meta.fields || []; + + return ( +
{ + const latestValues = form.getFieldsValue(); + if (ObjectUtils.isEqual(values, latestValues)) { + return; + } + setValues(latestValues); + props.onValuesChange?.(latestValues); + }} + > + {fields.map((field, i) => { + const FormItem = FormItemFactory.getInstance().createFrom(field.type); + if (FormItem) { + return ( + + ); + } + })} + + ) +}; \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/components/item/boolean.tsx b/frontend/packages/flow-pc/flow-pc-form/src/components/item/boolean.tsx new file mode 100644 index 00000000..6abd9bb0 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/components/item/boolean.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import {Form, Switch} from "antd"; +import {FlowFormFieldMeta} from "@flow-engine/flow-types"; + +export const FormItemBoolean:React.FC = (props)=>{ + + const rules = props.required?[ + { + required: props.required, + message: `${props.name}不能为空` + } + ]:[]; + + const defaultValue = props.defaultValue === "true" || false; + + return ( + + + + ) +} \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/components/item/float.tsx b/frontend/packages/flow-pc/flow-pc-form/src/components/item/float.tsx new file mode 100644 index 00000000..aa07f9c3 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/components/item/float.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import {Form, Input} from "antd"; +import {FlowFormFieldMeta} from "@flow-engine/flow-types"; + +export const FormItemFloat:React.FC = (props)=>{ + + const rules = props.required?[ + { + required: props.required, + message: `${props.name}不能为空` + } + ]:[]; + + return ( + + + + ) +} \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/components/item/number.tsx b/frontend/packages/flow-pc/flow-pc-form/src/components/item/number.tsx new file mode 100644 index 00000000..29c4d292 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/components/item/number.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import {Form, Input} from "antd"; +import {FlowFormFieldMeta} from "@flow-engine/flow-types"; + +export const FormItemNumber:React.FC = (props)=>{ + + const rules = props.required?[ + { + required: props.required, + message: `${props.name}不能为空` + } + ]:[]; + + return ( + + + + ) +} \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/components/item/string.tsx b/frontend/packages/flow-pc/flow-pc-form/src/components/item/string.tsx new file mode 100644 index 00000000..25439118 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/components/item/string.tsx @@ -0,0 +1,25 @@ +import React from "react"; +import {Form, Input} from "antd"; +import {FlowFormFieldMeta} from "@flow-engine/flow-types"; + + +export const FormItemString:React.FC = (props)=>{ + + const rules = props.required?[ + { + required: props.required, + message: `${props.name}不能为空` + } + ]:[]; + + return ( + + + + ) +} \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/index.ts b/frontend/packages/flow-pc/flow-pc-form/src/index.ts new file mode 100644 index 00000000..c559aee7 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/index.ts @@ -0,0 +1 @@ +export * from '@/components/form'; \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/src/type.d.ts b/frontend/packages/flow-pc/flow-pc-form/src/type.d.ts new file mode 100644 index 00000000..320cdbc4 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/src/type.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' +declare module '*.png' +declare module '*.jpg' +declare module '*.module.less' diff --git a/frontend/packages/flow-pc/flow-pc-form/tests/index.test.tsx b/frontend/packages/flow-pc/flow-pc-form/tests/index.test.tsx new file mode 100644 index 00000000..33634cb1 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/tests/index.test.tsx @@ -0,0 +1,15 @@ +import {afterEach, describe, expect, test} from "@rstest/core"; +import {cleanup} from "@testing-library/react"; + +describe.sequential('Demo', () => { + + afterEach(() => { + // 清理每一次测试产生的数据 + cleanup(); + }); + + test('add test', () => { + const value = 1 + 100; + expect(value).toEqual(101); + }); +}); \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-form/tests/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-form/tests/rstest.setup.ts new file mode 100644 index 00000000..32b38ae2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/tests/rstest.setup.ts @@ -0,0 +1,4 @@ +import { expect } from '@rstest/core'; +import * as jestDomMatchers from '@testing-library/jest-dom/matchers'; + +expect.extend(jestDomMatchers); diff --git a/frontend/packages/flow-pc/flow-pc-form/tests/tsconfig.json b/frontend/packages/flow-pc/flow-pc-form/tests/tsconfig.json new file mode 100644 index 00000000..8a386d8e --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/tests/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "types": ["@testing-library/jest-dom"] + }, + "include": ["./"] +} diff --git a/frontend/packages/flow-pc/flow-pc-form/tsconfig.json b/frontend/packages/flow-pc/flow-pc-form/tsconfig.json new file mode 100644 index 00000000..3159d6f5 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-form/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "lib": ["DOM", "ES2022"], + "module": "ESNext", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "isolatedModules": true, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "useDefineForClassFields": true, + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "include": [ + "src" + ] +} diff --git a/frontend/packages/flow-pc/flow-pc-ui/.gitignore b/frontend/packages/flow-pc/flow-pc-ui/.gitignore new file mode 100644 index 00000000..6f3092c3 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/.gitignore @@ -0,0 +1,16 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# Profile +.rspack-profile-*/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/frontend/packages/flow-pc/flow-pc-ui/AGENTS.md b/frontend/packages/flow-pc/flow-pc-ui/AGENTS.md new file mode 100644 index 00000000..992bc6fa --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/AGENTS.md @@ -0,0 +1,23 @@ +# AGENTS.md + +You are an expert in JavaScript, Rsbuild, and web application development. You write maintainable, performant, and accessible code. + +## Commands + +- `pnpm run dev` - Start the dev server +- `pnpm run build` - Build the app for production +- `pnpm run preview` - Preview the production build locally + +## Docs + +- Rsbuild: https://rsbuild.rs/llms.txt +- Rspack: https://rspack.rs/llms.txt + +- Rstest: https://rstest.rs/llms.txt + +## Tools + +### Rstest + +- Run `pnpm run test` to run tests +- Run `pnpm run test:watch` to run tests in watch mode diff --git a/frontend/packages/flow-pc/flow-pc-ui/README.md b/frontend/packages/flow-pc/flow-pc-ui/README.md new file mode 100644 index 00000000..84d85101 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/README.md @@ -0,0 +1,36 @@ +# Rsbuild project + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get started + +Start the dev server, and the app will be available at [http://localhost:3000](http://localhost:3000). + +```bash +pnpm run dev +``` + +Build the app for production: + +```bash +pnpm run build +``` + +Preview the production build locally: + +```bash +pnpm run preview +``` + +## Learn more + +To learn more about Rsbuild, check out the following resources: + +- [Rsbuild documentation](https://rsbuild.rs) - explore Rsbuild features and APIs. +- [Rsbuild GitHub repository](https://github.com/web-infra-dev/rsbuild) - your feedback and contributions are welcome! diff --git a/frontend/packages/flow-pc/flow-pc-ui/package.json b/frontend/packages/flow-pc/flow-pc-ui/package.json new file mode 100644 index 00000000..23e1fb2b --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/package.json @@ -0,0 +1,32 @@ +{ + "name": "@flow-engine/flow-pc-ui", + "version": "1.0.0", + "private": true, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rslib build", + "dev": "rslib build --watch", + "test": "rstest" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "dependencies": { + "@ant-design/icons": "~6.1.0", + "antd": "^6.2.1" + }, + "devDependencies": { + + } +} diff --git a/frontend/packages/flow-pc/flow-pc-ui/public/favicon.png b/frontend/packages/flow-pc/flow-pc-ui/public/favicon.png new file mode 100644 index 00000000..af06119f Binary files /dev/null and b/frontend/packages/flow-pc/flow-pc-ui/public/favicon.png differ diff --git a/frontend/packages/flow-pc/flow-pc-ui/rslib.config.ts b/frontend/packages/flow-pc/flow-pc-ui/rslib.config.ts new file mode 100644 index 00000000..66f24187 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/rslib.config.ts @@ -0,0 +1,29 @@ +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; +import {pluginSass} from '@rsbuild/plugin-sass'; +import {pluginLess} from '@rsbuild/plugin-less'; +import * as path from 'node:path'; + +export default defineConfig({ + source: { + entry: { + index: './src/**', + }, + }, + resolve: { + alias: { + "@/": path.resolve(__dirname, "src"), + } + }, + lib: [ + { + bundle: false, + dts: true, + format: 'esm', + }, + ], + output: { + target: 'web', + }, + plugins: [pluginReact(),pluginSass(),pluginLess()], +}); diff --git a/frontend/packages/flow-pc/flow-pc-ui/rstest.config.ts b/frontend/packages/flow-pc/flow-pc-ui/rstest.config.ts new file mode 100644 index 00000000..9057a186 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/rstest.config.ts @@ -0,0 +1,15 @@ +import {pluginReact} from '@rsbuild/plugin-react'; +import {defineConfig} from '@rstest/core'; +import {pluginSass} from "@rsbuild/plugin-sass"; +import * as path from "path"; + +export default defineConfig({ + testEnvironment: 'jsdom', + setupFiles: ['./rstest.setup.ts'], + plugins: [pluginReact(), pluginSass()], + resolve: { + alias: { + "@/": path.resolve(__dirname, "src"), + } + } +}); diff --git a/frontend/packages/flow-pc/flow-pc-ui/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-ui/rstest.setup.ts new file mode 100644 index 00000000..32b38ae2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/rstest.setup.ts @@ -0,0 +1,4 @@ +import { expect } from '@rstest/core'; +import * as jestDomMatchers from '@testing-library/jest-dom/matchers'; + +expect.extend(jestDomMatchers); diff --git a/frontend/packages/flow-design/src/components/ui/form/card.tsx b/frontend/packages/flow-pc/flow-pc-ui/src/components/card-from/index.tsx similarity index 98% rename from frontend/packages/flow-design/src/components/ui/form/card.tsx rename to frontend/packages/flow-pc/flow-pc-ui/src/components/card-from/index.tsx index f6032477..cc614c31 100644 --- a/frontend/packages/flow-design/src/components/ui/form/card.tsx +++ b/frontend/packages/flow-pc/flow-pc-ui/src/components/card-from/index.tsx @@ -62,4 +62,4 @@ CardForm.useForm = () => { return Form.useForm(); }; -CardForm.Item = CardFormItem; \ No newline at end of file +CardForm.Item = CardFormItem; diff --git a/frontend/packages/flow-design/src/components/ui/drawer/index.tsx b/frontend/packages/flow-pc/flow-pc-ui/src/components/drawer/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/ui/drawer/index.tsx rename to frontend/packages/flow-pc/flow-pc-ui/src/components/drawer/index.tsx diff --git a/frontend/packages/flow-design/src/components/ui/panel/index.tsx b/frontend/packages/flow-pc/flow-pc-ui/src/components/panel/index.tsx similarity index 100% rename from frontend/packages/flow-design/src/components/ui/panel/index.tsx rename to frontend/packages/flow-pc/flow-pc-ui/src/components/panel/index.tsx diff --git a/frontend/packages/flow-design/src/components/ui/table/index.tsx b/frontend/packages/flow-pc/flow-pc-ui/src/components/table/index.tsx similarity index 92% rename from frontend/packages/flow-design/src/components/ui/table/index.tsx rename to frontend/packages/flow-pc/flow-pc-ui/src/components/table/index.tsx index 9e6ee6c7..329e47bd 100644 --- a/frontend/packages/flow-design/src/components/ui/table/index.tsx +++ b/frontend/packages/flow-pc/flow-pc-ui/src/components/table/index.tsx @@ -1,22 +1,6 @@ import React from "react"; import { Table as AntdTable, TableProps as AntdTableProps,Flex,Space,Card } from "antd"; - - -export interface Result { - data:T[] - total: number; - success: boolean -} - -export interface ActionType { - reload(): void; -} - -export interface ParamRequest { - current: number; - pageSize: number; - [key: string]: any; -} +import {type ActionType,type ParamRequest,type Result } from "@flow-engine/flow-core"; export interface TableProps extends AntdTableProps { actionType?: React.Ref; diff --git a/frontend/packages/flow-pc/flow-pc-ui/src/index.ts b/frontend/packages/flow-pc/flow-pc-ui/src/index.ts new file mode 100644 index 00000000..fb3a4b29 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/src/index.ts @@ -0,0 +1,4 @@ +export * from '@/components/drawer'; +export * from '@/components/panel'; +export * from '@/components/table'; +export * from '@/components/card-from'; \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-ui/src/type.d.ts b/frontend/packages/flow-pc/flow-pc-ui/src/type.d.ts new file mode 100644 index 00000000..320cdbc4 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/src/type.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' +declare module '*.png' +declare module '*.jpg' +declare module '*.module.less' diff --git a/frontend/packages/flow-pc/flow-pc-ui/tests/index.test.tsx b/frontend/packages/flow-pc/flow-pc-ui/tests/index.test.tsx new file mode 100644 index 00000000..33634cb1 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/tests/index.test.tsx @@ -0,0 +1,15 @@ +import {afterEach, describe, expect, test} from "@rstest/core"; +import {cleanup} from "@testing-library/react"; + +describe.sequential('Demo', () => { + + afterEach(() => { + // 清理每一次测试产生的数据 + cleanup(); + }); + + test('add test', () => { + const value = 1 + 100; + expect(value).toEqual(101); + }); +}); \ No newline at end of file diff --git a/frontend/packages/flow-pc/flow-pc-ui/tests/rstest.setup.ts b/frontend/packages/flow-pc/flow-pc-ui/tests/rstest.setup.ts new file mode 100644 index 00000000..32b38ae2 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/tests/rstest.setup.ts @@ -0,0 +1,4 @@ +import { expect } from '@rstest/core'; +import * as jestDomMatchers from '@testing-library/jest-dom/matchers'; + +expect.extend(jestDomMatchers); diff --git a/frontend/packages/flow-pc/flow-pc-ui/tests/tsconfig.json b/frontend/packages/flow-pc/flow-pc-ui/tests/tsconfig.json new file mode 100644 index 00000000..8a386d8e --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/tests/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "types": ["@testing-library/jest-dom"] + }, + "include": ["./"] +} diff --git a/frontend/packages/flow-pc/flow-pc-ui/tsconfig.json b/frontend/packages/flow-pc/flow-pc-ui/tsconfig.json new file mode 100644 index 00000000..3159d6f5 --- /dev/null +++ b/frontend/packages/flow-pc/flow-pc-ui/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "lib": ["DOM", "ES2022"], + "module": "ESNext", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "isolatedModules": true, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "useDefineForClassFields": true, + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "include": [ + "src" + ] +} diff --git a/frontend/packages/flow-types/package.json b/frontend/packages/flow-types/package.json index ae50fbda..10dc7086 100644 --- a/frontend/packages/flow-types/package.json +++ b/frontend/packages/flow-types/package.json @@ -1,6 +1,7 @@ { "name": "@flow-engine/flow-types", "version": "1.0.0", + "private": true, "type": "module", "exports": { ".": { @@ -16,6 +17,10 @@ "build": "rslib build", "dev": "rslib build --watch" }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, "dependencies": { "@flow-engine/flow-core": "workspace:*" } diff --git a/frontend/packages/flow-types/rslib.config.ts b/frontend/packages/flow-types/rslib.config.ts index 8ad6bbe8..5cbbbc9c 100644 --- a/frontend/packages/flow-types/rslib.config.ts +++ b/frontend/packages/flow-types/rslib.config.ts @@ -1,5 +1,7 @@ import { pluginReact } from '@rsbuild/plugin-react'; import { defineConfig } from '@rslib/core'; +import {pluginSass} from '@rsbuild/plugin-sass'; +import {pluginLess} from '@rsbuild/plugin-less'; import * as path from 'node:path'; export default defineConfig({ @@ -23,5 +25,5 @@ export default defineConfig({ output: { target: 'web', }, - plugins: [pluginReact()], + plugins: [pluginReact(),pluginSass(),pluginLess()], }); diff --git a/frontend/packages/flow-types/src/index.ts b/frontend/packages/flow-types/src/index.ts index fdf0e116..4e42feaa 100644 --- a/frontend/packages/flow-types/src/index.ts +++ b/frontend/packages/flow-types/src/index.ts @@ -1 +1,2 @@ -export const squared = (n: number): number => n * n; +export * from '@/plugins'; +export * from '@/types'; diff --git a/frontend/packages/flow-types/src/plugins/index.ts b/frontend/packages/flow-types/src/plugins/index.ts new file mode 100644 index 00000000..d138f23b --- /dev/null +++ b/frontend/packages/flow-types/src/plugins/index.ts @@ -0,0 +1 @@ +export * from './view-bind-plugin'; \ No newline at end of file diff --git a/frontend/packages/flow-design/src/plugins/view/index.tsx b/frontend/packages/flow-types/src/plugins/view-bind-plugin.tsx similarity index 65% rename from frontend/packages/flow-design/src/plugins/view/index.tsx rename to frontend/packages/flow-types/src/plugins/view-bind-plugin.tsx index 558c2c4d..a6676cf9 100644 --- a/frontend/packages/flow-design/src/plugins/view/index.tsx +++ b/frontend/packages/flow-types/src/plugins/view-bind-plugin.tsx @@ -1,16 +1,14 @@ import React from "react"; -import {FormInstance} from "antd"; +import {ViewComponentProps} from "@/types/view-component"; -export type ViewComponentProps = { - form:FormInstance; - onValuesChange?:(values:any)=>void; -} - -export class ViewPlugin{ +/** + * 视图绑定插件,提供视图组件注册和获取功能 + */ +export class ViewBindPlugin { private readonly cache:Map>; - private static readonly instance:ViewPlugin = new ViewPlugin(); + private static readonly instance:ViewBindPlugin = new ViewBindPlugin(); private constructor(){ this.cache = new Map(); diff --git a/frontend/packages/flow-design/src/components/flow-approval/typings/index.ts b/frontend/packages/flow-types/src/types/flow-approval.ts similarity index 56% rename from frontend/packages/flow-design/src/components/flow-approval/typings/index.ts rename to frontend/packages/flow-types/src/types/flow-approval.ts index 12685a5e..7ae5b8b6 100644 --- a/frontend/packages/flow-design/src/components/flow-approval/typings/index.ts +++ b/frontend/packages/flow-types/src/types/flow-approval.ts @@ -1,47 +1,56 @@ -export interface FormFieldMeta{ +/** + * 流程表单字段元数据 + */ +export interface FlowFormFieldMeta { id:string; name:string; code:string; type:string; - require:boolean; + required:boolean; defaultValue:string; } -export interface FlowMeta { +/** + * 流程表单元数据 + */ +export interface FlowFromMeta { name:string; code:string; - fields:FormFieldMeta[]; - subForms:FlowMeta[]; + fields:FlowFormFieldMeta[]; + subForms:FlowFromMeta[]; } - -export interface Body{ - recordId:number; - title:string; - data:Record; - recordState:number; - flowState:number; -} - -export interface ActionDisplay{ +/** + * 流程操作显示对象 + */ +export interface FlowActionDisplay { title:string; style:string; icon:string; } +/** + * 流程操作对象 + */ export interface FlowAction{ id:string; title:string; type:string; - display:ActionDisplay; + display:FlowActionDisplay; enable:boolean; } +/** + * 流程操作人对象 + */ export interface FlowOperator { id:number; name:string; } +/** + * 流程操作记录对象 + */ export interface History{ recordId:number; title:string; @@ -53,22 +62,42 @@ export interface History{ updateTime:number; } -export interface FlowOperatorBody{ +/** + * 流程待办对象 + */ +export interface FlowTodo { + recordId:number; + title:string; + data:Record; + recordState:number; + flowState:number; +} + + +/** + * 流程审批人对象 + */ +export interface FlowApprovalOperator { advice:string; signKey:string; approveTime:number; flowOperator:FlowOperator; } +/** + * 流程节点对象 + */ export interface ProcessNode{ nodeId:string; nodeName:string; nodeType:string; state:number; - operators:FlowOperatorBody[] + operators:FlowApprovalOperator[] } - +/** + * 流程审批内容对象 + */ export interface FlowContent { recordId:number; workId:string; @@ -76,8 +105,8 @@ export interface FlowContent { view:string; adviceNullable:boolean; signable:boolean; - form:FlowMeta; - todos:Body[]; + form:FlowFromMeta; + todos:FlowTodo[]; actions:FlowAction[]; mergeable:boolean; createOperator:FlowOperator; @@ -85,35 +114,4 @@ export interface FlowContent { flowState:number; recordState:number; histories:History[]; -} - -export interface ApprovalLayoutProps { - content:FlowContent; - onClose?:() => void; -} - -// Layout constants -export const ApprovalLayoutHeight = 64; -export const ApprovalContentPaddingV = 24; -export const ApprovalContentPaddingH = 24; -export const ApprovalSidebarWidth = 250; -export const ApprovalSidebarCollapsedWidth = 48; - - -export type State = { - flow?:FlowContent; -}; - - -export const initStateData = { - -} - -export interface FlowApprovalApi{ - - create(body:Record):Promise; - - processNodes(body:Record):Promise; - - action(body:Record):Promise; -} +} \ No newline at end of file diff --git a/frontend/packages/flow-types/src/types/form-instance.ts b/frontend/packages/flow-types/src/types/form-instance.ts new file mode 100644 index 00000000..a2906476 --- /dev/null +++ b/frontend/packages/flow-types/src/types/form-instance.ts @@ -0,0 +1,11 @@ +export type NamePath = string | number | boolean | (string | number | boolean)[]; + +export interface FormInstance{ + getFieldValue: (name: NamePath) => any; + getFieldsValue: () => any; + getFieldError: (name: NamePath) => string[]; + resetFields: (fields?: NamePath[]) => void; + setFieldsValue: (values: any) => void; + setFiledValue: (name: NamePath, value: any) => void; + submit: () => void; +} diff --git a/frontend/packages/flow-types/src/types/index.ts b/frontend/packages/flow-types/src/types/index.ts new file mode 100644 index 00000000..3c757c7a --- /dev/null +++ b/frontend/packages/flow-types/src/types/index.ts @@ -0,0 +1,3 @@ +export * from './view-component'; +export * from './form-instance'; +export * from './flow-approval'; \ No newline at end of file diff --git a/frontend/packages/flow-types/src/types/view-component.ts b/frontend/packages/flow-types/src/types/view-component.ts new file mode 100644 index 00000000..efe06fb8 --- /dev/null +++ b/frontend/packages/flow-types/src/types/view-component.ts @@ -0,0 +1,8 @@ +import {FormInstance} from "./form-instance"; +import {FlowFromMeta} from "@/types/flow-approval"; + +export type ViewComponentProps = { + form:FormInstance; + onValuesChange?:(values:any)=>void; + meta:FlowFromMeta; +} diff --git a/frontend/packages/flow-types/tsconfig.json b/frontend/packages/flow-types/tsconfig.json index c0b08026..3159d6f5 100644 --- a/frontend/packages/flow-types/tsconfig.json +++ b/frontend/packages/flow-types/tsconfig.json @@ -1,19 +1,20 @@ { "compilerOptions": { - "lib": ["ES2022"], + "lib": ["DOM", "ES2022"], "module": "ESNext", - "noEmit": true, + "jsx": "react-jsx", "strict": true, "skipLibCheck": true, "isolatedModules": true, "resolveJsonModule": true, "moduleResolution": "bundler", "useDefineForClassFields": true, - "allowImportingTsExtensions": true, - "baseUrl": ".", + "baseUrl": "./", "paths": { "@/*": ["src/*"] } }, - "include": ["src"] + "include": [ + "src" + ] } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 468b8836..34136681 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -77,9 +77,18 @@ importers: '@flow-engine/flow-core': specifier: workspace:* version: link:../../packages/flow-core - '@flow-engine/flow-design': + '@flow-engine/flow-pc-approval': specifier: workspace:* - version: link:../../packages/flow-design + version: link:../../packages/flow-pc/flow-pc-approval + '@flow-engine/flow-pc-design': + specifier: workspace:* + version: link:../../packages/flow-pc/flow-pc-design + '@flow-engine/flow-pc-form': + specifier: workspace:* + version: link:../../packages/flow-pc/flow-pc-form + '@flow-engine/flow-pc-ui': + specifier: workspace:* + version: link:../../packages/flow-pc/flow-pc-ui '@flow-engine/flow-types': specifier: workspace:* version: link:../../packages/flow-types @@ -105,8 +114,8 @@ importers: packages/flow-core: dependencies: axios: - specifier: ^1.13.3 - version: 1.13.3 + specifier: ^1.13.5 + version: 1.13.5 react: specifier: ^18.3.1 version: 18.3.1 @@ -114,17 +123,53 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) - packages/flow-design: + packages/flow-pc/flow-pc-approval: dependencies: '@ant-design/icons': specifier: ~6.1.0 version: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@flow-engine/flow-core': specifier: workspace:* - version: link:../flow-core + version: link:../../flow-core + '@flow-engine/flow-pc-design': + specifier: workspace:* + version: link:../flow-pc-design + '@flow-engine/flow-pc-ui': + specifier: workspace:* + version: link:../flow-pc-ui '@flow-engine/flow-types': specifier: workspace:* - version: link:../flow-types + version: link:../../flow-types + '@reduxjs/toolkit': + specifier: ^2.11.2 + version: 2.11.2(react-redux@9.2.0(@types/react@18.3.27)(react@18.3.1)(redux@5.0.1))(react@18.3.1) + antd: + specifier: ^6.2.1 + version: 6.2.1(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: '>=18' + version: 18.3.1 + react-dom: + specifier: '>=18' + version: 18.3.1(react@18.3.1) + react-redux: + specifier: ^9.2.0 + version: 9.2.0(@types/react@18.3.27)(react@18.3.1)(redux@5.0.1) + + packages/flow-pc/flow-pc-design: + dependencies: + '@ant-design/icons': + specifier: ~6.1.0 + version: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flow-engine/flow-core': + specifier: workspace:* + version: link:../../flow-core + '@flow-engine/flow-pc-ui': + specifier: workspace:* + version: link:../flow-pc-ui + '@flow-engine/flow-types': + specifier: workspace:* + version: link:../../flow-types '@flowgram.ai/export-plugin': specifier: 1.0.7 version: 1.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -181,11 +226,53 @@ importers: specifier: ^5.1.36 version: 5.1.36 + packages/flow-pc/flow-pc-form: + dependencies: + '@ant-design/icons': + specifier: ~6.1.0 + version: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@flow-engine/flow-core': + specifier: workspace:* + version: link:../../flow-core + '@flow-engine/flow-types': + specifier: workspace:* + version: link:../../flow-types + antd: + specifier: ^6.2.1 + version: 6.2.1(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: '>=18' + version: 18.3.1 + react-dom: + specifier: '>=18' + version: 18.3.1(react@18.3.1) + + packages/flow-pc/flow-pc-ui: + dependencies: + '@ant-design/icons': + specifier: ~6.1.0 + version: 6.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + antd: + specifier: ^6.2.1 + version: 6.2.1(date-fns@2.30.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: '>=18' + version: 18.3.1 + react-dom: + specifier: '>=18' + version: 18.3.1(react@18.3.1) + packages/flow-types: dependencies: '@flow-engine/flow-core': specifier: workspace:* version: link:../flow-core + react: + specifier: '>=18' + version: 18.3.1 + react-dom: + specifier: '>=18' + version: 18.3.1(react@18.3.1) packages: @@ -1884,8 +1971,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - axios@1.13.3: - resolution: {integrity: sha512-ERT8kdX7DZjtUm7IitEyV7InTHAF42iJuMArIiDIV5YtPanJkgw4hw5Dyg9fh0mihdWNn1GKaeIWErfe56UQ1g==} + axios@1.13.5: + resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==} babel-plugin-styled-components@2.1.4: resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} @@ -5765,7 +5852,7 @@ snapshots: asynckit@0.4.0: {} - axios@1.13.3: + axios@1.13.5: dependencies: follow-redirects: 1.15.11 form-data: 4.0.5