前端 快速查询并替换默认组件

可以借助vue的调试工具快速找到对应的组件,请参考这篇文章 使用vue调试工具快速找到对应的组件

Mask默认组件

前端 快速查询并替换默认组件

重写Mask组件

重写AppSwitcherWidget
import Com from './com.vue'
/**
* SPI注册条件保持根 AppSwitcherWidget 一致,即可覆盖
*/
@SPI.ClassFactory(
  MaskWidget.Token({
    widget: 'app-switcher'
  })
)
export class CustomAppSwitcherWidget extends AppSwitcherWidget {
  /**
  * 如果需要重写vue组件,那么可以通过重写initialize方法来实现,如果是修改数据或者逻辑,那么可以删除这个函数
  */
  public initialize(props: any) {
    super.initialize(props);
    this.setComponent(Com)
    return this
  }
}
重写 MenuWidget
import Com from './com.vue'

/**
* SPI注册条件保持根 MenuWidget 一致,即可覆盖
*/
@SPI.ClassFactory(MaskWidget.Token({ widget: 'nav-menu' }))
export class CustomMenuWidget extends MenuWidget {
  /**
  * 如果需要重写vue组件,那么可以通过重写initialize方法来实现,如果是修改数据或者逻辑,那么可以删除这个函数
  */
  public initialize(props: any) {
    super.initialize(props);
    this.setComponent(Com)
    return this
  }
}
重写 NotificationWidget
import Com from './com.vue'

/**
* SPI注册条件保持根 NotificationWidget 一致,即可覆盖
*/
@SPI.ClassFactory(MaskWidget.Token({ widget: 'notification' }))
export class CustomNotificationWidget extends NotificationWidget {
  /**
  * 如果需要重写vue组件,那么可以通过重写initialize方法来实现,如果是修改数据或者逻辑,那么可以删除这个函数
  */
  public initialize(props: any) {
    super.initialize(props);
    this.setComponent(Com)
    return this
  }
}
重写 LanguageWidget
import Com from './com.vue'

/**
* SPI注册条件保持根 LanguageWidget 一致,即可覆盖
*/
@SPI.ClassFactory(MaskWidget.Token({ widget: 'language' }))
export class CustomLanguageWidget extends LanguageWidget {
  /**
  * 如果需要重写vue组件,那么可以通过重写initialize方法来实现,如果是修改数据或者逻辑,那么可以删除这个函数
  */
  public initialize(props: any) {
    super.initialize(props);
    this.setComponent(Com)
    return this
  }
}
重写 UserWidget
import Com from './com.vue'

/**
* SPI注册条件保持根 UserWidget 一致,即可覆盖
*/
@SPI.ClassFactory(MaskWidget.Token({ widget: 'user' }))
export class CustomUserWidget extends UserWidget {
  /**
  * 如果需要重写vue组件,那么可以通过重写initialize方法来实现,如果是修改数据或者逻辑,那么可以删除这个函数
  */
  public initialize(props: any) {
    super.initialize(props);
    this.setComponent(Com)
    return this
  }
}
重写 BreadcrumbWidget
import Com from './com.vue'

/**
* SPI注册条件保持根 BreadcrumbWidget 一致,即可覆盖
*/
@SPI.ClassFactory(MaskWidget.Token({ widget: 'breadcrumb' }))
export class CustomBreadcrumbWidget extends BreadcrumbWidget {
  /**
  * 如果需要重写vue组件,那么可以通过重写initialize方法来实现,如果是修改数据或者逻辑,那么可以删除这个函数
  */
  public initialize(props: any) {
    super.initialize(props);
    this.setComponent(Com)
    return this
  }

视图默认组件

重写 TableWidget(表格视图)

参考文章https://doc.oinone.top/frontend/18386.html

重写 FormWidget(表单视图)

参考文章https://doc.oinone.top/frontend/18386.html

重写 DetailWidget(详情视图)

参考文章https://doc.oinone.top/frontend/18386.html

重写 SearchWidget(搜索区域视图)

参考文章https://doc.oinone.top/frontend/18386.html

重写 GalleryWidget(画廊视图)

参考文章https://doc.oinone.top/frontend/18386.html

字段默认组件

重写字段组件

参考文章https://doc.oinone.top/frontend/18386.html

动作默认组件

前端 快速查询并替换默认组件

重写 RouterViewActionWidget(路由跳转新视图)
@SPI.ClassFactory(
  ActionWidget.Token({
    actionType: ActionType.View,
    target: ViewActionTarget.Router,
    model: '当前模型编码', // 改成当前动作对应的模型编码(action.model)
    name: '名称' // 当前动作的名称 (action.name)
  })
)
export class CustomRouterViewActionWidget extends RouterViewActionWidget {
  protected async clickAction() {
    return super.clickAction()
  }
}
重写 DialogViewActionWidget(弹窗打开视图)
@SPI.ClassFactory(
  ActionWidget.Token({
    actionType: ActionType.View,
    target: ViewActionTarget.Dialog,
    model: '当前模型编码', // 改成当前动作对应的模型编码(action.model)
    name: '名称' // 当前动作的名称 (action.name)
  })
)
export class CustomDialogViewActionWidget extends DialogViewActionWidget {
  protected async clickAction() {
    return super.clickAction()
  }
}
重写 ServerActionWidget (服务端动作)
@SPI.ClassFactory(
  ActionWidget.Token({
    actionType: ActionType.Server,
    model: '当前模型编码', // 改成当前动作对应的模型编码(action.model)
    name: '名称' // 当前动作的名称 (action.name)
  })
)
export class CustomServerActionWidget extends ServerActionWidget {
  protected async clickAction() {
    return super.clickAction()
  }
}
重写 UrlActionWidget (链接动作)
@SPI.ClassFactory(
  ActionWidget.Token({
    actionType: ActionType.URL,
    model: '当前模型编码', // 改成当前动作对应的模型编码(action.model)
    name: '名称' // 当前动作的名称 (action.name)
  })
)
export class CustomUrlActionWidget extends UrlActionWidget {
  protected async clickAction() {
    return super.clickAction()
  }
重写 客户端动作
@SPI.ClassFactory(
  ActionWidget.Token({
    model: 'resource.k2.Model0000011045', // 改成当前动作对应的模型编码(action.model)
    name: ModelDefaultActionName.$$internal_GotoListTableRouter // name需要取当前动作里面的 fun 属性(action.fun)
  })
)
export class CustomBackActionWidget extends BackActionWidget {
  protected async clickAction() {
    return super.clickAction();
  }
}

Oinone社区 作者:汤乾华原创文章,如若转载,请注明出处:https://doc.oinone.top/other/21531.html

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

(0)
汤乾华的头像汤乾华数式员工
上一篇 2025年8月13日 pm5:46
下一篇 2025年8月21日 pm2:13

相关推荐

  • 导入导出支持国际化语言分隔符

    需求 导出 Excel 时,所有整数、小数字段需要加千分位分隔符显示 例如:10000 导出成 10,000。 只影响“导出的显示效果”,不改变原始数据的语义。 实现思路 通过修改“ Excel 默认导出模版”的平台逻辑,将整型字段模版定义为文本类型,并自定义导出扩展,将所有整型字段的数据根据国际化配置进行分割。 代码示例 自定义导出扩展,分割整型字段 注意 所有已有的导出扩展必须修改继承类ExcelExportSameQueryPageTemplate<Object> –> GlobalExportExt<Object> 否则,已有的导出扩展生成的Excel将无法正常格式化整型字段。 package pro.shushi.pamirs.top.core.temp.exports; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; import pro.shushi.pamirs.file.api.context.ExcelDefinitionContext; import pro.shushi.pamirs.file.api.entity.EasyExcelBlockDefinition; import pro.shushi.pamirs.file.api.entity.EasyExcelCellDefinition; import pro.shushi.pamirs.file.api.entity.EasyExcelSheetDefinition; import pro.shushi.pamirs.file.api.extpoint.ExcelExportFetchDataExtPoint; import pro.shushi.pamirs.file.api.extpoint.impl.ExcelExportSameQueryPageTemplate; import pro.shushi.pamirs.file.api.model.ExcelExportTask; import pro.shushi.pamirs.meta.annotation.Ext; import pro.shushi.pamirs.meta.annotation.ExtPoint; import pro.shushi.pamirs.meta.api.dto.config.ModelFieldConfig; import pro.shushi.pamirs.meta.api.session.PamirsSession; import pro.shushi.pamirs.meta.enmu.TtypeEnum; import pro.shushi.pamirs.meta.util.FieldUtils; import pro.shushi.pamirs.resource.api.model.ResourceLang; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @Component @Ext(ExcelExportTask.class) public class GlobalExportExt<T> extends ExcelExportSameQueryPageTemplate<T> implements ExcelExportFetchDataExtPoint { @ExtPoint.Implement(priority = 1) @Override public List<Object> fetchExportData(ExcelExportTask exportTask, ExcelDefinitionContext context) { List<Object> results = super.fetchExportData(exportTask, context); if (CollectionUtils.isEmpty(results)) { return results; } return dataFormat(context, results); } public static List<Object> dataFormat(ExcelDefinitionContext context, List<Object> results) { ResourceLang resourceLang = new ResourceLang().setCode(PamirsSession.getLang()).queryOne(); if (resourceLang == null) { return results; } // 小数分隔符 String decimalPoint = resourceLang.getDecimalPoint(); // 整数分隔符 String thousandsSep = resourceLang.getThousandsSep(); // 数字分组规则(每组多少位,比如 "3") String groupingRule = resourceLang.getGroupingRule(); // 解析 groupSize,只做一次 int groupSize = 3; if (groupingRule != null && groupingRule.matches("\\d+")) { try { groupSize = Integer.parseInt(groupingRule); } catch (NumberFormatException ignore) { } } boolean needGroup = groupSize > 0 && thousandsSep != null && !thousandsSep.isEmpty(); //…

    2025年11月18日
    13600
  • 数式Oinone培训前注意事项

    一、快速上手 (建议至少预习 6 小时) 在正式培训之前,建议需要完成以下任务,以便对培训内容有基本了解: 点击阅读:快速启动入门 该文档为学员提供了从入门到实现 demo 的全过程说明,涵盖了开发工具、框架搭建、常见问题解答等内容 开始培训前,请参与人员确保完成以下任务 阅读并理解文档中的每个步骤。 配置好前后端开发环境。 完成 demo 的基础框架搭建,验证是否能够成功运行。 二、预期成果 通过上述预习,大家完成以下事项:• 成功搭建本地开发环境,并能运行前后端的基本 demo。• 对前后端技术栈有初步了解,为正式培训中的深度学习打下基础,并且提出对应的疑问点 三、其他准备工作 1.技术工具检查:请确在本地已安装并配置好必要的开发工具和环境(如 IDE、Node.js、数据库等);2.参与者反馈:在预习过程中,学员如遇到困难或无法解决的问题(前后端疑问),请提前记录并提交,以便培训期间重点解答;3.版本是否是最新的版本,且建议研发人员版本一致,且类型是 mini; ps:部署包相关信息,联系数式相关人员获取

    未分类 2024年8月2日
    2.4K00
  • 新人引导文档

    类型 文档链接 入门参考必看 7天入门到精通 Oinone 初级学习路径 Oinone 初级学习路径 平台部署启动 无代码docker启动说明 低代码启动说明 前端环境和启动前端工程 无代码设计器启动方式 后端无代码设计器Jar包启动方法 平台部署及依赖说明 Oinone平台部署及依赖说明(v5.0) 问题排查方法 问题排查工具使用手册 前后端研发帮助文档 前端文档 后端文档 项目开发实践要点 【前端】项目开发前端知识要点地图 【后端】项目开发后端知识要点地图 版本升级说明 版本更新日志 工具包 【附件一】下载说明 许可证使用说明 pamirs-license 许可证使用常见问题 更多文档新人引导建议,可以下方评论

    2024年7月15日
    1.3K00
  • 自定义流程设计器审批人公司列表

    打开弹窗时会默认选中返回的第一个公司。 依赖: <dependency> <groupId>pro.shushi.pamirs.workflow</groupId> <artifactId>pamirs-workflow-api</artifactId> </dependency> 只显示所有公司 ALL_COMPANY 表示所有公司。 @Order(10) @Component @SPI.Service public class CustomWorkflowCompanyQueryApi implements WorkflowCompanyQueryApi { @Override public Pagination<PamirsCompany> queryPage(Pagination<PamirsCompany> page, IWrapper<PamirsCompany> queryWrapper) { Pagination<PamirsCompany> pageResult = new Pagination<>(); pageResult.setContent(Lists.newArrayList(ALL_COMPANY)); pageResult.setTotalPages(1); return pageResult; } } 不显示所有公司 @Order(10) @Component @SPI.Service public class CustomWorkflowCompanyQueryApi implements WorkflowCompanyQueryApi { @Override public Pagination<PamirsCompany> queryPage(Pagination<PamirsCompany> page, IWrapper<PamirsCompany> queryWrapper) { return new PamirsCompany().queryPage(page, queryWrapper); } } 仅显示特定公司 @Order(10) @Component @SPI.Service public class CustomWorkflowCompanyQueryApi implements WorkflowCompanyQueryApi { private static final Set<String> COMPANY_CODES = Sets.newHashSet("CH0001", "CH0002"); @Override public Pagination<PamirsCompany> queryPage(Pagination<PamirsCompany> page, IWrapper<PamirsCompany> queryWrapper) { Set<String> companyCodes = Sets.newHashSet("CH0001", "CH0002"); LambdaQueryWrapper<PamirsCompany> query = ((QueryWrapper<PamirsCompany>) queryWrapper).lambda(); query.in(PamirsCompany::getCode, COMPANY_CODES); return new PamirsCompany().queryPage(page, queryWrapper); } }

    2025年9月4日
    79400
  • 后台嵌入其他系统的界面,设计器:嵌入网页组件

    管理后台如何新增Iframe嵌入其他系统的界面: 1、新建一个模型。模型中有放【url】的字段2、3、切换组件4、点击发布5、测试环境验证下,后端那个字段返回嵌入的【url】就可以展示这个url的内容了6、最后效果如下:

    2024年12月27日
    97500

Leave a Reply

登录后才能评论