无代码启动常见问题

1、执行yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo出现问题:

报错:

Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#35 - "TCP connection reset by peer

解决方案:

# 把docker-ce镜像源设置到阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、如果重新运行startup.sh失败,可能是docker前面已经启过了还在运行。

解决方案:

   docker stop designer-allinone
   docker rm designer-allinone
   sh startup.sh

3、启动无代码失败

报错:

   依赖包版本不匹配
   pamirs-business-api已安装版本:[5.1.24],启动中包含的版本:[5.1.12]
   pamirs-data-audit-api已安装版本:[5.1.24],启动中包含的版本:[5.1.12]
   pamirs-sys-setting-core已安装版本:[5.1.24],启动中包含的版本:[5.1.12]
   ······

解决方案:
修改 startup.sh 中的版本
修改docker pull 命令中的版本
(注意:具体版本号查看https://doc.oinone.top/xin-ren-ru-men/18758.html中)

4、执行vi startup.sh出错,可能是没有修改这个文件的权限,执行chmod 777 startup.sh即可授权

Oinone社区 作者:红莲原创文章,如若转载,请注明出处:https://doc.oinone.top/oinone-faq/19169.html

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

(1)
红莲的头像红莲数式员工
上一篇 2024年11月6日 pm7:55
下一篇 2024年11月8日 pm4:33

相关推荐

  • 前端环境准备并快速启动

    注意: 部署/启动前端的过程中如果出现问题,请先在 常见问题 中寻找答案。如仍未解决,请及时在群里咨询。 视频教程(点此观看) 1. 需要安装的工具 Node.js (v20.16.0) VSCode 注意:以上工具需安装在本地开发电脑上,根据实际情况补充所需工具。 2. 安装 Node.js 检查是否已安装 在终端中输入以下命令: node -v 如果安装了,会出现版本号。建议使用 20.16.0 版本。 下载 Node.js 如果未安装,请选择以下任一方式下载: 官网下载: Node.js v20.16.0 下载好了之后,双击,开始安装: 一直点击 Next 直到 Install 完成安装。 验证安装 再次运行以下命令检查是否安装成功: node -v npm -v 出现版本号表示安装成功: 3. 安装 VSCode 如果已安装,请忽略此步骤。 下载 VSCode 选择以下任一方式下载: 官网下载:Visual Studio Code 安装完成后,打开 VSCode 并加载前端工程 SS_FRONT_MODULES。 配置项目 在 ss-boot 子工程中,打开 vue.config.js 文件,将 target 地址修改为后端开发地址: 4. 安装 Vue CLI 安装 在 VSCode 的终端中输入以下命令安装 Vue CLI (v5.0.8): npm install -g @vue/cli@5.0.8 验证安装 检查安装是否成功: vue –version 安装成功将显示版本号。 5. 配置 npm 源 设置 npm 源为内部源 npm config set registry http://nexus.shushi.pro/repository/kunlun/ 登录 NPM 源 注意:用户名和密码在部署包的 xxx账号.md 文件中。 npm login –registry “http://nexus.shushi.pro/repository/kunlun/” npm info underscore 成功登录后,将出现相关信息: 6. 安装 pnpm 验证安装 在终端中输入以下命令安装 pnpm: npm install -g pnpm 验证安装 检查安装是否成功: pnpm -v 清理缓存 pnpm run clean 安装依赖包 pnpm i 注意:此过程可能较慢。 7. 启动项目 启动开发环境: pnpm run dev 启动成功后,您可以直接访问项目。

    2024年10月31日
    1.4K00
  • 快速上手

    Oinone是一个企业级产品化引擎,专注于为企业在项目型、行业产品和标品的三个发展阶段提供极具成本效益的解决方案,帮助企业高效应对核心技术挑战,打造自有得研发平台。 建议大家以下方流程深度体验Oinone的各种能力、了解熟悉Oinone的设计理念、解题思路;同时我们也在微信群提供1V1的解答;有解决不了的问题随时联系对应的支持人员; 部署所需资料包 提示:安装启动具体操作查看“快速启动”。其它版本也可,建议使用以上版本。 入门学习路径 这是整个学习的过程:注意:此图的每一步都可在下面的目录中找到,大家跟随操作即可(有文档有视频)! 快速启动 环境准备须知(部署前必看) * 无代码启动 常见问题 * 无代码启动常见问题 后端启动常见问题 入门培训视频 整体概念(点击此处观看) 视频简介: 平台整体介绍、核心理念、研发方式、要解决的问题 观看对象: 建议都看 后端(点击此处观看) 视频简介: 如何开始、与原有开发方式有什么差异?元数据是什么?前后端如何协作?0-1开发一个新场景,解答疑惑 观看对象: 后端,对Java有基础的了解 前端(点击此处观看) 视频简介: 前端要做什么?怎么做到不用联调?写的代码怎么沉淀、复用?与后端如何协作?每种场景都有一个示例,有最基本的概念讲解 观看对象: 前端,对Vue有基础的了解 无代码(点击此处观看) 视频简介: 无代码有什么定位?在开发、测试、生产阶段能做什么?对研发有什么帮助?无代码基础使用入门讲解 观看对象: 建议都看 按教程还原业务场景(文档) 后端 前端 按教程还原业务场景(视频) 后端 前端

    2024年11月9日
    3.5K00
  • 【界面设计器】组件开发常见问题

    如何获取当前页面中的全部可用字段? 在Class Component(ts)中使用以下代码获取当前设计组件实例 “` tsimport { WidgetInstance } from &#039;@kunlun/ui-designer-dependencies&#039;; @Widget.Reactive()@Widget.Inject()protected currentInstance: WidgetInstance | undefined;“` PS:这里使用了@kunlun/ui-designer-dependencies依赖包中的类型定义,但没有使用函数,因此这个导入是可以正常执行的。 在Vue组件中使用以下代码获取可选字段列表 “` tsimport { WidgetInstance } from &#039;@kunlun/ui-designer-dependencies&#039;; // props add currentInstance defineprops: { currentInstance: { type: Object as PropType<WidgetInstance> }} // setup using currentInstance get fieldsconst fields = computed(() => { return Array.from(props.currentInstance?.root?.fieldCollection.values() || []).map((v) => { return { label: v.element?.widgetData?.displayName, value: v.element?.name }; });});“` PS:这里的v.element?.widgetData?.displayName获取的是字段的元数据显示名称,如果需要获取字段输入的标题可以使用v.element?.properties?.label。 为什么需要选择当前页面中的字段? 页面在发起请求时,会根据当前视图中的字段查询最小结果集,不在页面中的字段无法被正确获取。可以将用到的字段拖放至视图中,并使用【隐藏】属性进行隐藏即可。 列内容超过当前表格行高该怎么办? 在界面设计器中选中表格组件,可以为表格设置指定的行高。 在界面设计器的属性面板组件中,如何获取当前字段所在模型的模型编码? “` tsinterface InternalMetadata { model?: string;} @Widget.Reactive()protected get currentModel(): string | undefined { return (this.formData._metadata as InternalMetadata)?.model;}“` 在界面设计器的属性面板组件中,如何获取关联关系字段的关联模型的模型编码? “` tsinterface InternalMetadata { modelReferences?: { model?: string; };} @Widget.Reactive()protected get referenceModel(): string | undefined { return (this.formData._metadata as InternalMetadata)?.modelReferences?.model;}“` 如何理解关联关系字段中的【透出字段(选项字段列表)】属性? 正如我们现在已知的,页面发起查询请求时,将根据页面中的元数据获取最小结果集,不在页面中的字段并不包含在结果集中。这样虽然使得我们可以最小化的控制结果集的大小。 但对于关联关系类型的字段来说,我们也面临了一个无法回避的问题:对于【表格】、【表单】等这些组件,我们可以通过拖放字段的方式直接将字段展示在页面中,因此对于这些可被设计的组件而言无需其他过多的配置即可正常使用。但对于【下拉单选】、【下拉多选】等这些组件而言,我们无法在页面中直接定义关联关系字段的元数据。 我们在解决这一问题上也同样做了很多,比如当你在【下拉单选】中设置【选项标题】时,选项标题中的字段会被自动透出到页面中,在发起请求时也就能正常获取这些字段了。 特殊的是,如果某些字段只是在逻辑上被使用的,但又不能将其通过【选项标题】展示给用户的时候,我们必须使用一个属性来定义这些字段,使得我们的业务逻辑可以正常运行。因此,我们设计了【透出字段】来解决这一问题。 为什么在属性面板中的【选项字段列表】是【透出字段】呢? 正如我们在业务开发过程中,服务端的模型定义的显示名称和在界面设计器中的字段标题可以是不一致的。由于服务端模型定义的字段API名称为optionFields,其中文直译是【选项字段列表】,但我们在产品设计时,希望这一属性可以被用户理解,因此在页面上展示的时候使用了【透出字段】作为标题呈现给用户。 在界面设计器中如何配置【透出字段(选项字段列表)】? optionFields在配置时使用的是字段的API名称,在关联关系属性定义时,允许使用.分隔的方式定义关联关系字段的关联属性。 如:[‘code’, ‘name’, ‘user.code’, ‘user.name’]。其中user字段为多对一(M2O)的关联关系字段,其中有两个字段code和name。 与之对应的GQL响应结构为: query { xxxxxxQuery { queryPage(xxxxxx) { content { code name user { code name } } } } } 在界面设计器的属性面板组件中,如何通过代码方式设置【透出字段(选项字段列表)】? @Widget.Method() public setOptionFields(optionFields: string[]) { this.formData.optionFields = optionFields; } 如何在字段中使用mountedCallChaining提供mountedProcess方法? @Widget.Reactive() @Widget.Inject() protected mountedCallChaining: CallChaining | undefined; protected mountedProcess() {} protected mounted() { super.mounted(); this.mountedCallChaining?.hook(this.path, async () => { await this.mountedProcess(); }); } protected unmounted() { super.unmounted(); this.mountedCallChaining?.unhook(this.path); }

    2023年11月1日
    1.5K00
  • 常见权限问题

    一、系统权限操作手册配置 https://doc.oinone.top/chan-pin-shi-yong-shou-ce/17797.html 二、常见权限问题分析及解决 1.函数如何跳过权限拦截https://doc.oinone.top/wen-ti-zhen-duan/16299.html 2.工作流工作台无权限排查路径https://doc.oinone.top/wen-ti-zhen-duan/15924.html 3.windows环境npm安装依赖提示无权限https://doc.oinone.top/faq/14590.html 4.权限异常排查路径参考https://doc.oinone.top/faq/14391.html 5.自定义RSQL占位符(placeholder)及在权限中使用https://doc.oinone.top/backend/6393.html 6.自定义数据权限拦截处理https://doc.oinone.top/backend/4737.html 7.如何扩展行为权限https://doc.oinone.top/dai-ma-shi-jian/18976.html 8.跳转动作无权限问题排查https://doc.oinone.top/wen-ti-zhen-duan/18678.html

    2024年10月23日
    59300
  • 复杂字段类型的导入导出

    复杂字段类型的导入导出 如果想要导出的字段是该模型关联的对象里的一个字段,则需要在创建模版时使用 “对象.字段” 的方式,并在导出时手动设置该字段 例如PamirsEmployee模型中的company,使用company.name创建值 @Field.many2one @Field.Relation(relationFields = {“companyCode”}, referenceFields = {“code”}) @Field(displayName = “所属公司”) private PamirsCompany company; //定义员工导入导出模版 @Component public class EmployeeTemplate implements ExcelTemplateInit { public static final String TEMPLATE_NAME = "employeeTemplate"; @Override public List<ExcelWorkbookDefinition> generator() { //可以返回多个模版,导出的时候页面上由用户选择导出模版 return Collections.singletonList( ExcelHelper.fixedHeader(PetShop.MODEL_MODEL, TEMPLATE_NAME) .createBlock(TEMPLATE_NAME, PetShop.MODEL_MODEL) .setType(ExcelTemplateTypeEnum.EXPORT) //使用company.name获取PamirsCompany里面的name字段 .addColumn("company.name", "所属公司") .build()); } } //手动设置该字段,如2所示 如果想要导出的字段是非存储字段,由于默认只导出存储在数据库里的字段,非存储的字段需要在导出时手动设置 @Slf4j @Component @Ext(ExcelExportTask.class) public class EmpTemplateExportExtPoint extends DefaultExcelExportFetchDataExtPoint { @Override @ExtPoint.Implement(expression = "context.name==\"" + EmployeeTemplate.TEMPLATE_NAME + "\"") public List<Object> fetchExportData(ExcelExportTask exportTask, ExcelDefinitionContext context) { return super.fetchExportData(exportTask, context); } //重写rawQueryList方法,使用listFieldQuery将非存储字段单独设置 @Override protected List<?> rawQueryList(IWrapper<?> wrapper) { List<PamirsEmployee> pamirsEmployeeProxies = (List<PamirsEmployee>) Models.data().queryListByWrapper(wrapper); if (CollectionUtils.isNotEmpty(pamirsEmployeeProxies)) { new PamirsEmployee().listFieldQuery(pamirsEmployeeProxies, PamirsEmployee::getDepartmentList); } return pamirsEmployeeProxies; } } 如果想要导入的字段存在多个,则可以创建一个代理模型,在代理模型里设置一个字段用来接受该多值字段(在Excel里一个单元格内填写多值字段,每个字段用自定义符号(如:" ; ")进行分割),在创建模版时使用该代理类的模版,在导入导出的时候再根据 “;” 截取 @Model.model(PamirsEmployeeProxy.MODEL_MODEL) @Model(displayName = "员工导出代理") @Model.Advanced(type = ModelTypeEnum.PROXY) public class PamirsEmployeeProxy extends PamirsEmployee { private static final long serialVersionUID = -6582160484690807999L; public static final String MODEL_MODEL = "business.PamirsEmployeeProxy"; @Field.String @Field(displayName = "部门编码列表") private String departmentCodeList; } 创建模版时创建代理模型的字段 .addColumn("departmentCodeList", "部门编码列表") 导入:新建一个类,用来作为导入的扩展点,继承AbstractExcelImportDataExtPointImpl @Component @Ext(ExcelImportTask.class) @Slf4j public class EmpTemplateImportExtPoint extends AbstractExcelImportDataExtPointImpl<PamirsEmployeeProxy> { //必须加这个方法,它使用EmployeeTemplate.TEMPLATE_NAME来指定导入模版 @Override @ExtPoint.Implement(expression = "importContext.definitionContext.name==\"" + EmployeeTemplate.TEMPLATE_NAME + "\"") public Boolean importData(ExcelImportContext importContext, PamirsEmployeeProxy data) { //TODO 根据逻辑校验数据 String departmentCodeList = data.getDepartmentCodeList();…

    2024年7月1日
    1.0K00

Leave a Reply

登录后才能评论