From 3a0d1f3f9ce35b8e2b8477bc449d1b9e96ea5789 Mon Sep 17 00:00:00 2001 From: Linzp Date: Fri, 12 Dec 2025 15:37:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Apis/getApis.js | 26 +- .../TenantAdmin/TabDetail/Setting/index.js | 243 +++++++++++++++++- .../TabDetail/Setting/style.module.scss | 7 + src/preset.js | 7 + 4 files changed, 274 insertions(+), 9 deletions(-) create mode 100644 src/components/TenantAdmin/TabDetail/Setting/style.module.scss diff --git a/src/components/Apis/getApis.js b/src/components/Apis/getApis.js index 28f2647..e8449e9 100644 --- a/src/components/Apis/getApis.js +++ b/src/components/Apis/getApis.js @@ -245,6 +245,26 @@ const getApis = options => { url: `${prefix}/tenant/admin/append-args`, method: 'POST' }, + appendCustomComponent: { + url: `${prefix}/tenant/admin/append-custom-component`, + method: 'POST' + }, + removeCustomComponent: { + url: `${prefix}/tenant/admin/remove-custom-component`, + method: 'POST' + }, + saveCustomComponent: { + url: `${prefix}/tenant/admin/save-custom-component`, + method: 'POST' + }, + copyCustomComponent: { + url: `${prefix}/tenant/admin/copy-custom-component`, + method: 'POST' + }, + customComponentDetail: { + url: `${prefix}/tenant/admin/custom-component-detail`, + method: 'GET' + }, removeArg: { url: `${prefix}/tenant/admin/remove-arg`, method: 'POST' @@ -350,7 +370,11 @@ const getApis = options => { userInviteMessage: { url: `${prefix}/tenant/send-invite-message`, method: 'POST' - } + }, + customComponentDetail: { + url: `${prefix}/tenant/custom-component-detail`, + method: 'GET' + }, } }; }; diff --git a/src/components/TenantAdmin/TabDetail/Setting/index.js b/src/components/TenantAdmin/TabDetail/Setting/index.js index d1e5cf7..651d95e 100644 --- a/src/components/TenantAdmin/TabDetail/Setting/index.js +++ b/src/components/TenantAdmin/TabDetail/Setting/index.js @@ -1,15 +1,63 @@ import { createWithRemoteLoader } from '@kne/remote-loader'; import { Flex, Button, App } from 'antd'; +import { useState, forwardRef, useImperativeHandle } from 'react'; +import style from './style.module.scss'; + +const LiveComponent = createWithRemoteLoader({ + modules: ['components-thirdparty:LiveComponentEditor'] +})( + forwardRef(({ remoteModules, defaultValue }, ref) => { + const [LiveComponentEditor] = remoteModules; + const [value, setValue] = useState(defaultValue || ''); + useImperativeHandle(ref, () => { + return { + getValue: () => value + }; + }); + return ( + + + + ); + }) +); + +const CustomComponentFormInner = createWithRemoteLoader({ + modules: ['components-core:FormInfo'] +})(({ remoteModules, isEdit }) => { + const [FormInfo] = remoteModules; + const { Input, TextArea } = FormInfo.fields; + + return ( + , + , + , +