AI + 低代码 技术揭秘(八):UI 组件库

@vtj/ui 包提供了 Vue 3 组件的全面集合,这些组件构成了 VTJ 低代码平台用户界面的基础。该库包括表单控件、数据网格、对话框、布局组件和专用交互式元素,旨在在 VTJ 生态系统中无缝工作。

有关如何将这些组件集成到可视化设计器中的信息,请参阅设计器和渲染器 。有关图表特定组件的详细信息,请参阅图表和可视化

包体系结构

UI 组件库组织为一个模块化系统,其中组件可以独立工作或相互集成以创建复杂的用户界面。该包遵循 Vue 3 组合式 API 模式,并始终提供 TypeScript 支持。

UI 组件包结构

核心组件类别

表单和输入组件

该库提供了一组丰富的表单组件,这些组件使用 VTJ 特定的功能扩展了 Element Plus。XPicker 组件通过将多个 UI 元素组合到一个复杂的数据选择界面中来举例说明这种方法。

XPicker 组件架构

XPicker 演示了关键的 UI 库模式:

模式 实现 位置
组合式 API 使用 useOptions、useGridColumns、useModel 钩子 packages/ui/src/components/picker/hooks.ts
类型 安全 全面的 TypeScript 接口 packages/ui/src/components/picker/types.ts
事件系统 具有有效负载类型的结构化发出定义 packages/ui/src/components/picker/types.ts
Prop 验证 类型的详细 prop 定义 packages/ui/src/components/picker/props.ts

数据显示组件

XGrid 组件用作主要数据显示组件,与 VXE 表集成以提供高级网格功能,包括虚拟滚动、编辑、筛选和分页。

与 UI 组件的网格集成

对话框和模态组件

XDialog 组件提供了整个 UI 库中使用的模态基础,具有一致的样式和行为模式。

组件集成模式

数据加载模式

XPickerXGrid 等组件使用加载器函数实现标准化的数据加载模式:

ts

typescript 复制代码
// Loader function interface from types
type PickerLoader = (params: PickerState) => Promise<{
  list: any[];
  total: number;
}>;

数据加载流程

事件系统模式

组件使用具有类型化有效负载的一致事件发出模式:

元件 重要事件 负载类型
XPicker 更改 , 选取 [value: any, data: any]
XGrid 已加载 ,cell-dblclick 特定于网格的事件类型
XQueryForm submit 表单模型数据

样式和主题

组件使用带有 BEM 方法的 SCSS 和 CSS 自定义属性进行主题设置:

scss 复制代码
@include b(picker) {
  .el-select__popper {
    display: none !important;
  }
  .x-picker__tigger {
    background: var(--el-fill-color);
    border-radius: 4px;
    // ... responsive sizing
  }
}

材料集成

UI 组件与 VTJ 材质系统集成,以便在可视化设计器中使用。每个组件都有相应的材质描述,用于定义其属性、事件和配置选项。

组件材料结构

Material System 允许从组件调色板中拖动组件,并在设计器中直观地进行配置。

使用示例

基本 XPicker 实现

html 复制代码
<XPicker
  v-model="selectedValue"
  :columns="gridColumns"
  :fields="searchFields"
  :loader="dataLoader"
  value-key="id"
  label-key="name"
  query-key="name"
  @picked="onDataPicked"
  @change="onValueChange" />

使用格式设置的高级多选

html 复制代码
<XPicker
  v-model="multipleValues"
  multiple
  append
  raw
  :formatter="valueParser"
  :value-formatter="valueSerializer"
  :columns="columns"
  :fields="fields"
  :loader="asyncLoader" />

UI 组件库为在 VTJ 生态系统中构建复杂的用户界面提供了强大的基础,并为数据处理、事件管理和可视化集成提供了一致的模式。

源码仓库

gitee.com/newgateway/...

相关推荐
飞哥数智坊19 分钟前
AI Coding 新手常见的3大误区
人工智能·ai编程
湘-枫叶情缘24 分钟前
敏捷开发遇阻?AI编程或让传统开发逢春
ai编程·敏捷流程
伟贤AI之路12 小时前
开源!纯 HTML 实现支持 0.75~2× 变速、iOS 熄屏防中断的英语点读站
人工智能·ai编程
苦瓜汤补钙12 小时前
论文阅读——Segment Anything(Meta AI)——SAM
论文阅读·图像处理·人工智能·nlp·ai编程
NocoBase15 小时前
6 大企业级无代码低代码平台 RBAC 权限体系深度对比
低代码·开源·资讯
码间拾光・菲林斯17 小时前
AI提示词:别再把提示词当 “聊天”—— 它是人机协作的 “接口定义”
人工智能·ai编程
快乐非自愿18 小时前
2025 AI低代码开发趋势:从效率工具到智能开发生态的范式跃迁
人工智能·低代码
深藏blue4720 小时前
OpenAI Codex & Codex CLI 国内使用教程:手把手教你安装与上手
openai·ai编程
小刘鸭地下城20 小时前
AI编程工具深度解析:从底层原理到高效实践
前端·ai编程
用户40993225021220 小时前
快速入门Vue的v-model表单绑定:语法糖、动态值、修饰符的小技巧你都掌握了吗?
前端·ai编程·trae