diff --git a/docs/generator/demo.md b/docs/generator/demo.md new file mode 100644 index 000000000..405ee2a9c --- /dev/null +++ b/docs/generator/demo.md @@ -0,0 +1,29 @@ +--- +order: 3 +title: 案例演示 +toc: menu +--- + +### 浮窗接入 + +用于 schema 的可视化修改 + + + +### 侧栏配置 + +使用 settings/commonSettings 自由配置左右侧栏内容,并使用 widgets 注入和使用自定义组件 + +“计数器”是自定义组件。 + + + +### 自定义布局 + + + +### Schema 互转 + +使用 `transformer` 这个 props,进行 schema 的互转 + + diff --git a/docs/generator/faq.md b/docs/generator/faq.md new file mode 100644 index 000000000..07ea0fe93 --- /dev/null +++ b/docs/generator/faq.md @@ -0,0 +1,9 @@ +--- +order: 4 +title: 常见问题 +toc: content +--- + +**1、如何控制编辑器高度** + +给组件外层要包裹的 div 设置高度即可,否则为默认值 min-height: 30vh diff --git a/docs/generator/index.md b/docs/generator/index.md index e07887b99..91cd97389 100644 --- a/docs/generator/index.md +++ b/docs/generator/index.md @@ -1,18 +1,16 @@ --- order: 1 -title: 使用文档 -toc: content +title: 如何使用 +toc: menu --- -## 如何使用 - -### 安装 +## 安装 ```bash npm i fr-generator ``` -### 代码演示 +## 代码演示 ```jsx /** @@ -101,34 +99,3 @@ export default Demo; | copyValue | 将现有 schema 拷贝到剪贴板 | - | | getErrorFields | 获取配置项校验错误 | - | -## 案例演示 - -### 浮窗接入 - -用于 schema 的可视化修改 - - - -### 侧栏配置 - -使用 settings/commonSettings 自由配置左右侧栏内容,并使用 widgets 注入和使用自定义组件 - -“计数器”是自定义组件。 - - - -### 自定义布局 - - - -### Schema 互转 - -使用 `transformer` 这个 props,进行 schema 的互转 - - - -## 常见问题 - -**1、如何控制编辑器高度** - -给组件外层要包裹的 div 设置高度即可,否则为默认值 min-height: 30vh diff --git a/tools/schema-generator/package.json b/tools/schema-generator/package.json index 2d5532f84..daa81b1be 100644 --- a/tools/schema-generator/package.json +++ b/tools/schema-generator/package.json @@ -1,13 +1,13 @@ { "name": "fr-generator", - "version": "2.7.5", + "version": "2.7.8", "main": "dist/index.js", "module": "dist/index.esm.js", "typings": "dist/index.d.ts", "scripts": { "beta": "npm publish --tag beta", "build": "father-build", - "prepare": "npm run build", + "prepare": "yarn build", "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"", "postpublish": "git push --tags", "test": "umi-test", diff --git a/tools/schema-generator/src/Provider.jsx b/tools/schema-generator/src/Provider.jsx index d6000112e..4b91b1c77 100644 --- a/tools/schema-generator/src/Provider.jsx +++ b/tools/schema-generator/src/Provider.jsx @@ -74,6 +74,7 @@ function Provider(props, ref) { preview: false, // preview = false 是编辑模式 schema: {}, selected: undefined, // 被选中的$id, 如果object/array的内部,以首字母0标识 + settingsForm: null, }); const [errorFields, setErrorFields] = useState([]); @@ -186,11 +187,14 @@ function Provider(props, ref) { const getErrorFields = () => errorFields; + const getSettingsForm = () => state.settingsForm; + useImperativeHandle(frwRef, () => ({ getValue, setValue, copyValue, getErrorFields, + getSettingsForm, })); // TODO: flatten是频繁在变的,应该和其他两个函数分开 diff --git a/tools/schema-generator/src/components/Settings/GlobalSettings.jsx b/tools/schema-generator/src/components/Settings/GlobalSettings.jsx index 4fe6b1ac7..88af766ed 100644 --- a/tools/schema-generator/src/components/Settings/GlobalSettings.jsx +++ b/tools/schema-generator/src/components/Settings/GlobalSettings.jsx @@ -23,6 +23,10 @@ export default function GlobalSettings({ widgets }) { } }, [frProps]); + useEffect(() => { + setGlobal({ settingsForm: form }); + }, []); + return (
{ @@ -128,6 +125,10 @@ export default function ItemSettings({ widgets }) { validation && onItemErrorChange(form?.errorFields); }, [validation, form?.errorFields]); + useEffect(() => { + setGlobal({ settingsForm: form }); + }, []); + return (
{ + try { + onChange(JSON.parse(e.target.value)); + } catch { + onChange(e.target.value); + } + }; + + const inputValue = typeof value === 'string' ? value : JSON.stringify(value) + + return ( + + ); +}