3.5.5 设计器的结合(改)

在页面开发的时候,直接通过前端组件和视图xml进行开发虽然开放性是很大的、但我们经常会忘记视图的配置属性,同时用xml配置的页面因为缺少设计数据,导致无法直接在设计器中复制,自定义页面得从头设计。今天就带大家一起来学习如何结合无代码设计器来完成页面开发,并把设计后的页面元数据装载为标准产品的一部分。

1 安装Docker

如果没有Docker的话,请自行到官网下载:https://www.docker.com/get-started/

2 下载Docker 镜像,并导入镜像

Step2.1 镜像下载

v.4.6.28.3-allinone-full 版本说明 前后端以及中间件一体
镜像地址 docker pull harbor.oinone.top/oinone/designer:4.6.28.3-allinone-full
下载结构包 oinone-op-ds-all-full.zip(17 KB)
v.4.6.28.3-allinone-mini 版本说明 前后端一体支持外部中间件
镜像地址 docker pull harbor.oinone.top/oinone/designer:4.6.28.3-allinone-mini
下载结构包 oinone-op-ds-all-mini.zip(14 KB)
v.4.7.9-allinone-full 版本说明 前后端以及中间件一体
镜像地址 docker pull harbor.oinone.top/oinone/designer:4.7.9-allinone-full
下载结构包 oinone-op-ds-all-full.zip(17 KB)
v.4.7.9-allinone-mini 版本说明 前后端一体支持外部中间件
镜像地址 docker pull harbor.oinone.top/oinone/designer:4.7.9-allinone-mini
下载结构包 oinone-op-ds-all-mini.zip(14 KB)

Step2.1.2 镜像下载用户与密码

需要商业版镜像需要加入Oinone商业版本伙伴专属群,向Oinone技术支持获取用户名与密码,镜像会定时更新并通知大家。

#注意:docker镜像拉取的账号密码请联系数式技术
docker login --username=用户名 harbor.oinone.top
docker pull docker pull harbor.oinone.top/oinone/designer:4.6.28.3-allinone-full

Step2.1.3 镜像和版本选择

目前有2个版本可供选择,包含中间件以及不包含中间件2个版本,下载结构包以后注意修改startup.sh和startup.cmd中对应镜像地址的版本号。

Step2.1.4 本地结构说明

下载结构包并解压

3.5.5 设计器的结合(改)

  1. config是放application.yml的目录,可以在application.yml配置需要启动的自有模块同时修改对应其他中间件配置项

  2. lib是放自有模块的jar包以及其对应的依赖包比如:pamirs-demo-api-1.0.0-SNAPSHOT.jar和pamirs-demo-core-1.0.0-SNAPSHOT.jar

  3. nginx:前端运行的nginx站点配置文件

  4. mq:消息配置,再使用低无一体时需要指定mq的broker的IP

  5. run:容器运行中间件的脚本,可以对个别中间件是否启动进行设置,(注释掉运行脚本,容器启动时就不会启动该中间件)

  6. logs是运行时系统日志目录

Step2.2 修改startup.sh中的路径

Step2.2.1 linux环境修改参数

在文件中找到如下 configDir=/opt/docker/oinone-op-ds-all-full version=4.6.28.3 IP=192.168.0.121

  • 修改configDir的路径(下载oinone-op-ds-xx.zip解压后的路径)

  • 修改对应的镜像版本号

  • 修改对应的IP为docker宿主机IP

#!/bin/bash
configDir=/opt/docker/oinone-op-ds-all-full
version=4.6.28.3
IP=192.168.0.121
docker run -d --name designer-allinone \
-e DUBBO_IP_TO_REGISTRY=$IP \
-e DUBBO_PORT_TO_REGISTRY=20880 \
-p 8099:8091 \
-p 3307:3306 \
-p 2182:2181 \
-p 6378:6379 \
-p 19876:9876 \
-p 10991:10991 \
-p 15555:15555 \
-p 20880:20880 \
-p 88:80 \
-v $configDir/config/:/opt/pamirs/ext \
-v $configDir/nginx:/opt/pamirs/nginx/vhost \
-v $configDir/logs:/opt/pamirs/logs \
-v $configDir/mq/broker.conf:/opt/mq/conf/broker.conf \
-v $configDir/run/run.sh:/opt/pamirs/run/run.sh \
-v $configDir/lib:/opt/pamirs/outlib harbor.oinone.top/oinone/designer:$version-allinone-full

Step2.2.3 window环境修改参数

在文件中找到如下 set configDir=/d/shushi/docker/oinone-op-ds-all-full set version=4.6.28.3 set IP=192.168.0.121

  • 修改configDir的路径((下载oinone-op-ds-xx.zip解压后的路径)

  • 修改对应的镜像版本号

  • 修改对应的IP为docker宿主机IP

@echo off
set configDir=/d/shushi/docker/oinone-op-ds-all-full
set version=4.6.28.3
set IP=192.168.0.121
docker run -d --name designer-allinone ^
-e DUBBO_IP_TO_REGISTRY=%IP% ^
-e DUBBO_PORT_TO_REGISTRY=20880 ^
-p 8099:8091 ^
-p 3307:3306 ^
-p 2182:2181 ^
-p 6378:6379 ^
-p 19876:9876 ^
-p 10991:10991 ^
-p 15555:15555 ^
-p 88:80  ^
-v %configDir%/config/:/opt/pamirs/ext   ^
-v %configDir%/nginx:/opt/pamirs/nginx/vhost ^
-v %configDir%/logs:/opt/pamirs/logs ^
-v %configDir%/mq/broker.conf:/opt/mq/conf/broker.conf ^
-v %configDir%/run/run.sh:/opt/pamirs/run/run.sh ^
-v %configDir%/lib:/opt/pamirs/outlib harbor.oinone.top/oinone/designer:%version%-allinone-full

3 不包含中间件的application.yml配置示例

修改结构包目录下config/application.yml

  • 要把192.168.0.121换成非127.0.0.1的机器分配IP:通过ifconfig(mac)或ipconfig(windows)命令查询
  • 数据库换成自己demo工程的数据库,demo6_v3 --> demo
dubbo:
  #dubbo的配置
server:
  address: 0.0.0.0
  port: 8091
  sessionTimeout: 3600
spring:
  redis:
  #redis的配置
logging:
        #日志的配置
pamirs:
  framework:
    system:
      system-ds-key: base
      system-models: base.WorkerNode
    data:
      default-ds-key: pamirs
      ds-map:
        base: base
    gateway:
      statistics: true
      show-doc: true
    meta:
      dynamic: false
  persistence:
    global:
      auto-create-database: true
      auto-create-table: true
  datasource:
    pamirs:
      driverClassName: com.mysql.cj.jdbc.Driver
      type: com.alibaba.druid.pool.DruidDataSource
      url: jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&allowPublicKeyRetrieval=true&useServerPrepStmts=true&cachePrepStmts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true
      username: root
      password: oinone
            #............
      asyncInit: true
  #............
  boot:
    init: true
    sync: true
    modules:
      - base
      #-其他module
      - demo_core
    tenants:
      - pamirs
  auth:
      #权限过滤配置
  eip:
    #eip配置

我们前面中间件所绑定的IP都是127.0.0.1,因为我们这里使用了docker来访问,需要让中间件支持真正机器分配IP访问

Step3.1 检查mysql

  1. 确保yml文件中配置的用户可以通过机器IP来访问,例子中我们是用的是root用户,按以下步骤检查
mysql -u root -p
use mysql

3.5.5 设计器的结合(改)

select User,authentication_string,Host from user;

3.5.5 设计器的结合(改)

update user set Host='%' where user='root';
flush privileges;

Step3.2 检查redis

找到redis安装目录,编辑redis.conf,bind 从127.0.0.1改成0.0.0.0或对应本机IP,重启redis。

3.5.5 设计器的结合(改)

如果redis访问有问题,可以尝试在启动命令中增加 “--protected-mode no” 参数

nohup redis-server --protected-mode no & 

Step3.3 检查RocketMq

检查broker节点配置IP,如果有配置不能用127.0.0.1

Step3.4 检查Zookeeper

如果本地搭集群方式需要检查IP,如果有配置不能用127.0.0.1

4 包含中间件的application.yml以及其他配置示例

  • 对应中间件的配置:指定对应IP和端口或密码,把其中192.168.0.121改为宿主机IP
    • zookeeper
    • mysql
    • rocket-mq
    • redis
    • 阿里云oss配置

Step4.1 修改nginx/default.conf

如在docker和业务应用共同中间件实现低无一体时,如想在设计器中访问业务应用需要配置业务应用的nginx转发

location /pamirs/DemoCore {
    # 对应额外工程部署的IP,端口为额外工程后端的端口
    proxy_pass  http://192.168.0.121:8190
    proxy_set_header    Host    $host;
    proxy_set_header    X-Real-IP   $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}

修改以后可进容器重启nginx直接生效

进入docker容器
docker exec -it designer-allinone /bin/bash
docker镜像中重启nginx
/usr/local/nginx/sbin/nginx -s reload

Step4.2 修改mq/broker.conf

修改其中brokerIP1的IP从192.168.0.121改成宿主机IP

brokerClusterName = DefaultCluster
namesrvAddr=192.168.0.121:19876
brokerIP1=192.168.0.121
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
autoCreateTopicEnable=true
listenPort=10991
transactionCheckInterval=1000
#存储使用率阀值,当使用率超过阀值时,将拒绝发送消息请求
diskMaxUsedSpaceRatio=98
#磁盘空间警戒阈值,超过这个值则停止接受消息,默认值90
diskSpaceWarningLevelRatio=99
#强制删除文件阈值,默认85
diskSpaceCleanForciblyRatio=97

5. 启动Docker

Step5.1 linux环境启动

  • 在终端执行 sh startup.sh

Step5.2 window环境启动

  • 用PowerShell 执行 .\startup.cmd

Step5.3 查看日志,检查是否启动成功

在logs目录下可看到生成的日志文件,第一次启动时间会相对长一些,等看到日志文件中输出 启动耗时 。。。等字样,代表启动成功

6 体验并设计页面

输入http://localhost/访问,通过App Finder 切换时多了设计器一项

3.5.5 设计器的结合(改)

7 导出数据,并固化数据到产品中

Step7.1通过接口导出数据

设计器数据导出

Step7.2 导入数据到项目中

  1. pom依赖:

    pro.shushi.pamirs.metadata.manager
    pamirs-metadata-manager
  1. 将第二步下载后的文件放入项目中(注意文件放置的位置)。放置工程的resources下面。例如:

3.5.5 设计器的结合(改)

3、 项目启动过程中,将文件中的数据导入(通常放在core模型的init包下面)。示例代码:

package pro.shushi.pamirs.sys.setting.enmu;

import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import pro.shushi.pamirs.boot.common.api.command.AppLifecycleCommand;
import pro.shushi.pamirs.boot.common.api.init.LifecycleCompletedAllInit;
import pro.shushi.pamirs.boot.common.extend.MetaDataEditor;
import pro.shushi.pamirs.core.common.InitializationUtil;
import pro.shushi.pamirs.meta.annotation.fun.extern.Slf4j;
import pro.shushi.pamirs.meta.api.dto.meta.Meta;
import pro.shushi.pamirs.meta.domain.module.ModuleDefinition;
import pro.shushi.pamirs.metadata.manager.core.helper.DesignerInstallHelper;
import pro.shushi.pamirs.metadata.manager.core.helper.WidgetInstallHelper;

import java.util.List;
import java.util.Map;

@Slf4j
@Component
public class DemoAppMetaInstall implements MetaDataEditor, LifecycleCompletedAllInit {

    @Autowired
    private ApplicationContext applicationContext;

    @Override
    public void edit(AppLifecycleCommand command, Map metaMap) {
        if (!doImport()) {
            return;
        }
        log.info("[设计器业务元数据导入]");
        InitializationUtil bizInitializationUtil = InitializationUtil.get(metaMap, DemoModule.MODULE_MODULE/***改成自己的Module*/, DemoModule.MODULE_NAME/***改成自己的Module*/);
        DesignerInstallHelper.mateInitialization(bizInitializationUtil, "install/meta.json");

        log.info("[自定义组件元数据导入]");
//        写法1: 将组件元数据导入到页面设计器. 只有在安装设计器的服务中执行才有效果
        WidgetInstallHelper.mateInitialization(metaMap, "install/widget.json");

//        写法2: 与写法1相同效果
        InitializationUtil uiInitializationUtil = InitializationUtil.get(metaMap, "ui_designer", "uiDesigner");
        if (uiInitializationUtil != null) {
            DesignerInstallHelper.mateInitialization(uiInitializationUtil, "install/widget.json");
        }

//        写法3: 业务工程和设计器分布式部署,且希望通过业务工程导入自定义组件元数据. 业务模块需要依赖页面设计器模块,然后指定业务模块导入
        DesignerInstallHelper.mateInitialization(bizInitializationUtil, "install/widget.json");
    }

    @Override
    public void process(AppLifecycleCommand command, Map runModuleMap) {
        if (!doImport()) {
            return;
        }

        log.info("[设计器业务数据导入]");
//        支持远程调用,但是执行的生命周期必须是LifecycleCompletedAllInit或之后. 本地如果安装了设计器,则没有要求
        DesignerInstallHelper.bizInitialization("install/meta.json");

        log.info("[自定义组件业务数据导入]");
//        当开发环境和导入环境的文件服务不互通时, 可通过指定js和css的文件压缩包,自动上传到导入环境,并替换导入组件数据中的文件url
//        WidgetInstallHelper.bizInitialization("install/widget.json", "install/widget.zip");
        WidgetInstallHelper.bizInitialization("install/widget.json");
        return;
    }

    private boolean doImport() {
        // 自定义导入判断. 避免用于设计的开发环境执行导入逻辑
        String[] envs = applicationContext.getEnvironment().getActiveProfiles();
        List envList = Lists.newArrayList(envs);
        return CollectionUtils.isNotEmpty(envList) && (envList.contains("prod"));
    }

}

常见异常问题

启动失败现象

启动设计器的Docker容器,lib包中增加自定义的Jar启动报错,错误信息为:

3.5.5 设计器的结合(改)

问题原因

自定义Jar的包路径不是系统默认扫描路径。 目前系统默认的包扫描路径是:pro.shushi.pamirs 和 pro.shushi.oinone。 自定义扫描路径Spring加载不到

问题解决方法

资料参考:https://itcn.blog/p/214153911.html

  1. 业务工程API模块 新建一个ScanConfig, resources目录下创建META-INF目录,然后创建spring.factories文件。上述两个文件目录参考如下:

3.5.5 设计器的结合(改)

  1. 文件内容参考

2.1. WangxianConfigScanConfig,根据自己的实际情况修改 命名类和包扫描路径

package com.ss.wangxian.xjj.project.api.config;

import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

@ComponentScans(value =
                {@ComponentScan(value = com.ss.wangxian)})
    @EntityScan(basePackages = {com.ss.wangxian})
    @Configuration
    public class WangxianConfigScanConfig implements EnvironmentAware {

        @Override
        public void setEnvironment(Environment environment) {
            System.out.println(#####初始化 BeanConfigScan #############);
        }

    }

2.2. spring.factories,根据实际情况修改类名和路径

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.ss.wangxian.xjj.project.api.config.WangxianConfigScanConfig
  1. API工程重新打包,然后放入到docker文档中指定的lib包下,重新启动容器。

Oinone社区 作者:史, 昂原创文章,如若转载,请注明出处:https://doc.oinone.top/oio4/9257.html

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

(0)
史, 昂的头像史, 昂数式管理员
上一篇 2024年5月23日
下一篇 2024年5月23日

相关推荐

  • 6.3 数据审计(改)

    在业务应用中我们经常需要为一些核心数据的变更做审计追踪,记录字段的前后变化、操作IP、操作人、操作地址等等。数据审计模块为此提供了支撑和统一管理。它在成熟的企业的核心业务系统中,需求是比较旺盛的。接下来我们开始学习下数据审计模块 准备工作 pamirs-demo-core的pom文件中引入pamirs-data-audit-api包依赖 <dependency> <groupId>pro.shushi.pamirs.core</groupId> <artifactId>pamirs-data-audit-api</artifactId> </dependency> pamirs-demo-boot的pom文件中引入pamirs-data-audit-core和pamirs-third-party-map-core包依赖,数据审计会记录操作人的地址信息,所以也依赖了pamirs-third-party-map-core <dependency> <groupId>pro.shushi.pamirs.core</groupId> <artifactId>pamirs-data-audit-core</artifactId> </dependency> <dependency> <groupId>pro.shushi.pamirs.core.map</groupId> <artifactId>pamirs-third-party-map-core</artifactId> </dependency> pamirs-demo-boot的application-dev.yml文件中增加配置pamirs.boot.modules增加data_audit 和third_party_map,即在启动模块中增加data_audit和third_party_map模块 pamirs: boot: modules: – data_audit – tp_map 为third_party_map模块增加高德接口api,下面e439dda234467b07709f28b57f0a9bd5换成自己的key pamirs: eip: map: gd: key: e439dda234467b07709f28b57f0a9bd5 数据审计 注解式(举例) Step1 新增PetTalentDataAudit数据审计定义类 package pro.shushi.pamirs.demo.core.init.audit; import pro.shushi.pamirs.data.audit.api.annotation.DataAudit; import pro.shushi.pamirs.demo.api.model.PetTalent; @DataAudit( model = PetTalent.MODEL_MODEL,//需要审计的模型 modelName = "宠物达人" ,//模型名称,默认模型对应的displayName //操作名称 optTypes = {PetTalentDataAudit.PETTALENT_CREATE,PetTalentDataAudit.PETTALENT_UDPATE}, fields={"nick","picList.id","picList.url","petShops.id","petShops.shopName"}//需要审计的字段,关系字段用"."连结 ) public class PetTalentDataAudit { public static final String PETTALENT_CREATE ="宠物达人创建"; public static final String PETTALENT_UDPATE ="宠物达人修改"; Step2 修改PetTalentAction的update方法 做审计日志埋点:手工调用 OperationLogBuilder.newInstance().record()方法。需要注意的是这里需要把原有记录的数据值先查出来做对比 @Function.Advanced(type= FunctionTypeEnum.UPDATE) @Function.fun(FunctionConstants.update) @Function(openLevel = {FunctionOpenEnum.API}) public PetTalent update(PetTalent data){ //记录日志 OperationLogBuilder.newInstance(PetTalent.MODEL_MODEL, PetTalentDataAudit.PETTALENT_UDPATE).record(data.queryById().fieldQuery(PetTalent::getPicList).fieldQuery(PetTalent::getPetShops),data); PetTalent existPetTalent = new PetTalent().queryById(data.getId()); if(existPetTalent !=null){ existPetTalent.fieldQuery(PetTalent::getPicList); existPetTalent.fieldQuery(PetTalent::getPetShops); existPetTalent.relationDelete(PetTalent::getPicList); existPetTalent.relationDelete(PetTalent::getPetShops); } data.updateById(); data.fieldSave(PetTalent::getPicList); data.fieldSave(PetTalent::getPetShops); return data; } Step3 重启看效果 修改宠物达人记录对应的字段,然后进入审计模块查看日志

    2024年5月23日
    96800
  • 特别说明

    教材进度 目前还在编写整改中,特别是目录上带(改)字样的 本版本教材针对4.0,相对3.0增加的特性有: 通用能力部分:比如权限、审计、国际化、系统配置、集成可视化等 新版权限:交互优化,同时支持子管理员 新版审计,支持在线配置审计规则 系统配置,提供多种风格,让伙伴基础风格不在需要自定义主题和组件 新增集成设计器,通过连接器让应用api和数据库集成资产化管理,通过数据流进行接口逻辑编排,并提供统一的开放平台 设计器部分: 加强界面设计器部分对移动端、主题、自定义组件等支持,同时完善对数据管理操作、增加各类常用业务组件,加强对树形与及联的支持,表格视图搜索优化 流程设计器增加:审批员选择自定义逻辑、转交人选择自定义逻辑,支持手工触发、支持数据事务、支持调用模型函数 可视化设计器:增加自定义图表功能、增强下钻能力 模块管理:增加新增、多端配置等支持 内核机制: 性能优化:通过gql层面解决业务研发过程中1+N性能问题,权限性能优化,分布式缓存性能优化,整体性能提升2倍以上 针对多租户应用无状态的支持,低无一体支持本地调试 5.0的核心新特性预告,特性会在开发过程中陆续推出供大家体验,但完整体验时间为2024年6月份 新增打印设计功能 导出的默认交互增强以及导入导出模版设计 默认导入导出在交互时可以指定字段 导入导出模版可图形化设计 多模型AI集成设计器器 自定义组件、自定义图表交互友好性增强 自定义组件,属性面板设计模版化,解决设计组件属性面板的时候不知道有哪些默认属性。 增强组件与动作的结合灵活性 组件增加是否有子组件的通用属性,有子组件的组件具备组件拖拽区 增强UX注解能力,原本只有设计器支持的,后端UX注解也进行对应支持 后端低无一体功能开放(原本该功能只在saas版本上提供),方便咱们做应急和简单应用的时,以无代码为主,低代码为辅的模式。通过低无一体可以通过低代码的方式来解决无代码无法支撑的功能。 工作流增强 增加循环审批节点 增加分支汇集节点增强并行流程能力,比如分支汇集节点可以设置:所有并行节点处理完或只要一条处理完就继续执行。

    2024年5月23日
    1.9K00
  • 组件介绍

    在设计页面时,页面中的所有内容均是由组件组成,每个组件有不同的属性,可以灵活的对每个组件的属性进行设置,以满足业务场景。 组件分为四类,分别是布局、字段、动作、数据 1. 布局 布局类组件主要用于页面的样式排版。 分组:类似一个容器,可以把业务含义相近的内容放在这个分组容器内。 选项卡:类似一个容器,每个选项卡可以添加多个选项页,可以把业务含义相近的内容放在选项卡的选项页容器内。 2. 字段 字段型组件是常用,也是用于支撑页面的主要组件类,每个字段型组件都对应一个模型字段。 单行文本:常用于记录名称、身份证号或其他普通的文字内容。 多行文本:常用于记录字数较多的文字,如意见、复杂备注等。 整数:常用于输入整数的天数、数量等,如果会出现小数,请使用小数组件。 小数:常用于输入金额、单价等,会出现小数的数值。 下拉单选:从多个选项中下拉选择一个数据,作为数据值。选项可以是关联模型的数据,也可以是数据字典或布尔型开关。 下拉多选:从多个选项中下拉选择多个数据,作为数据值。选项可以是关联模型的数据,也可以是数据字典。 开关:常用于只有是否两种对立选项的选择。 单选框:常用于在直接展示的选现中单选一个值,例如选择性别。 复选框:常用于在直接展示的选现中多选一个值,例如选择爱好、选择课程等。 富文本编辑器:一种可内嵌于浏览器,所见即所得的文本编辑器,类似于Office Word 的编辑功能,常应用于篇幅较长的说明性文字,支持改变字体样式、插入图片等。 年份:常用于选择出身年份、一项计划的年份等。 日期:常用于选择颗粒度到日期的Date类型字段,例如出生日期、入职日期、入驻日期等。 日期时间:常用于选择颗粒度到时间的DateTime类型的字段,例如下单时间、发货时间、审批时间等。 时间:常用于选择仅时间无日期的Time类型的字段,如设置规章中的上班时间、日志的提交时间等。 颜色选择器:应用于自定义颜色,如设置标签的颜色、设置产品的颜色属性、主题定制时选择色彩等。 文件上传:常用于上传附件、文件,例如Office文档、图片、视频、音频、其他格式的文件等。 图片上传:常用于上传记录的图片,例如上传身份证照片、头像、商品图片等。 标签:可输入保存多值,例如用户的标记标签。 3. 数据 与数据可视化设计器进行联动,可以选择自定义的图表或报表,在页面展示。 图表:可以选择数据可视化设计器中允许被引用的图表,展示在页面中 报表:可以选择数据可视化设计器中允许被引用的报表,展示在页面中

    Oinone 7天入门到精通 2024年6月20日
    1.5K00
  • 节点动作

    节点动作为触发和结束结点中间的动作,点击节点名称可以进行修改。

    Oinone 7天入门到精通 2024年6月20日
    1.1K00

Leave a Reply

登录后才能评论