界面设计器的导入导出

目录

依赖包
安装GraphQL的工具
登录gql
导出生成json文件子
业务工程中导入示例代码

简介

通过调用导出接口,将设计器的设计数据与元数据打包导出到文件中。
提供了download/export两类接口。

依赖包

<dependency>
    <groupId>pro.shushi.pamirs.metadata.manager</groupId>
    <artifactId>pamirs-metadata-manager</artifactId>
</dependency>

安装GraphQL的工具

下载官网地址:https://github.com/Kong/insomnia/releases

登录gql

界面设计器的导入导出

示例调用代码

mutation {
    pamirsUserTransientMutation {
        login(user: { login: "admin", password: "admin" }) {
            needRedirect
            broken
            errorMsg
            errorCode
            errorField
        }
    }
}

导出生成json文件

执行GraphQL,直接返回导出数据。适用于通过浏览器直接下载文件。
界面设计器的导入导出

示例调用代码

请求示例:
mutation {
    uiDesignerExportReqMutation {
        export(
            data: { module: "demo_core", fileName: "meta", moduleBasics: true }
        ) {
            jsonUrl
        }
    }
}

业务工程中导入示例代码

# 是否初始化安装导入元数据
pm:
  install:
    enable: false

导入元数据示例代码

@SPI.Service
@Slf4j
@Order(Integer.MAX_VALUE-1)
@ConditionalOnProperty(prefix = "pm", name = "install.enable", havingValue = "true")
@Component
public class DemoModuleAppInstall implements MetaDataEditor, LifecycleCompletedAllInit, MetaInstallConfigApi {
    //界面设计器导出的页面元数据json
    private static final String INSTALL_META_PATH = "install/meta.json";
    //界面设计器导出的组件元数据json,如install/widget.json
    private static final String INSTALL_WIDGET_JSON_PATH = "";
    //界面设计器导出的组件相关的js和css文件,如install/widget.zip
    private static final String INSTALL_WIDGET_ZIP_PATH = "";

    @Override
    public void edit(AppLifecycleCommand command, Map<String, Meta> metaMap) {
        if(StringUtils.isBlank(INSTALL_META_PATH)) return;
        log.info("开始安装henghao-pm应用-元数据");
        try {

            InitializationUtil util = InitializationUtil.get(metaMap, DemoModule.MODULE_MODULE, DemoModule.MODULE_NAME);
            if (null != util) {
                // 设计器的元数据
                if(StringUtils.isNotBlank(INSTALL_META_PATH)) {
                    log.info("开始安装界面设计元数据");
                    DesignerInstallHelper.mateInitialization(util, INSTALL_META_PATH, DemoModule.MODULE_MODULE,
                            DemoModule.MODULE_NAME);
                }
                if(StringUtils.isNotBlank(INSTALL_WIDGET_JSON_PATH)) {
                    log.info("开始安装-自定义组件");
                    DesignerInstallHelper.mateInitialization(util, INSTALL_WIDGET_JSON_PATH);
                }
            }
        } catch (Exception e) {
            log.error("初始化界面设计器导入异常", e);
        }
    }

    @Override
    public void process(AppLifecycleCommand command, Map<String, ModuleDefinition> runModuleMap) {
        if(StringUtils.isNotBlank(INSTALL_META_PATH)) {
            log.info("开始安装-设计器数据");
            // 支持远程调用,但是执行的生命周期必须是LifecycleCompletedAllInit或之后. 本地如果安装了设计器,则没有要求
            DesignerInstallHelper.bizInitialization(INSTALL_META_PATH);
        }
        if(StringUtils.isNotBlank(INSTALL_WIDGET_JSON_PATH) && StringUtils.isNotBlank(INSTALL_WIDGET_ZIP_PATH)) {
            log.info("开始安装-设计器自定义组件");
            //当开发环境和导入环境的文件服务不互通时, 可通过指定js和css的文件压缩包, 自动上传到导入环境, 并替换导入组件数据中的文件url
            WidgetInstallHelper.bizInitialization(INSTALL_WIDGET_JSON_PATH, INSTALL_WIDGET_ZIP_PATH);
            return;
        }
        if(StringUtils.isNotBlank(INSTALL_META_PATH)) {
            WidgetInstallHelper.bizInitialization(INSTALL_WIDGET_JSON_PATH);
        }
    }

    @Override
    public Boolean installForDesigner() {
        return Boolean.TRUE;
    }
}

Oinone社区 作者:数式-海波原创文章,如若转载,请注明出处:https://doc.oinone.top/designer/uidesigner/7294.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
数式-海波的头像数式-海波数式管理员
上一篇 4天前
下一篇 4天前

相关推荐

  • 前端低无一体使用教程        前端

    前端低无一体使用教程

    介绍 客户在使用oinone平台的时候,有一些个性化的前端展示或交互需求,oinone作为开发平台,不可能提前预置好一个跟客户需求一模一样的组件,这个时候我们提供了一个“低无一体”模块,可以反向生成API代码,生成对应的扩展工程和API依赖包,再由专业前端研发人员基于扩展工程(kunlun-sdk),利用API包进行开发并上传至平台,这样就可以在界面设计器的…

    2023年11月6日
    00
  • 页面跳转的时候如何增加跳转参数        界面设计器

    页面跳转的时候如何增加跳转参数

    介绍 在日常的业务中,我们经常需要在多个模型的页面之间跳转,例如从商品的行可以直接点击链接跳转到类目详情,还有查看该订单发起的售后单列表,这里将给大家展示如何在oinone中如何实现这些功能。 界面设计器 表格行跳转到表单页/详情页 拖入一个跳转动作到表格行,保存动作后,在左侧的动作属性面板底部有个请求配置,里面的上下文属性就是配置跳转参数的地方,点击添加按…

    6天前
    00
  • 弹窗或抽屉表单视图rootRecord获取不到对应的数据        前端

    弹窗或抽屉表单视图rootRecord获取不到对应的数据

    在平台默认的实现中,rootRecord 代表的是根视图的数据。比如,在表格页面点击按钮打开了弹窗,弹窗里面包含一个表单视图,但是该视图获取 rootRecord 却是最外层的视图数据。 如果期望 rootRecord 数据是弹窗的视图数据,需要手动修改表单的 rootRecord。下面的代码演示了如何重写 rootData 以确保其数据是弹窗的数据: @S…

    2023年11月13日
    00
  • 界面设计器 扩展字段的查询上下文        前端

    界面设计器 扩展字段的查询上下文

    默认情况下oinone平台对于查询条件,只提供的当前登录用户这一个配置,但是允许开发者扩展 开发者可以在前端代码的main.ts进行扩展 import { SessionContextOptions, ModelFieldType } from '@kunlun/dependencies'; const currentDeptOption…

    2023年11月8日
    00
  • 上下文在字段和动作中的应用

    上下文在字段和动作中的应用 在业务场景中,常常需要在打开弹窗或跳转到新页面时携带当前页面数据。此时,我们需要配置相关「动作」中的上下文信息。 在 oinone 平台中,上下文主要分为以下三种: activeRecord:当前视图数据 rootRecord:主视图数据 openerRecord:触发弹窗的对象 activeRecord 表示当前视图的数据。例如…

    前端 2023年11月8日
    10

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注