一、项目背景

在我们最近负责的一套企业内部运营平台中,核心模块之一是“任务中心”。这是一个典型的 B 端复杂业务页面:任务流转链条长、字段数量多、操作入口杂,既要支持条件查询、批量操作、任务详情联动,又要求在不同角色间保持一致的 UI 体验。

早期版本基于传统组件库(ElementUI + 自研组件)实现,界面割裂、可维护性不佳,响应式能力弱,开发效率也逐渐成为瓶颈。随着团队整体向云原生前端体系升级,我们决定在新版本中全面引入 DevUI 企业级前端解决方案https://devui.design/home)

在这里插入图片描述

本文围绕“任务中心”模块的具体落地场景,总结 DevUI 在企业级 B 端项目中的实践方法与踩坑经验,希望能给其他团队带来可复制的参考价值。


二、为什么最终选型 DevUI?

对比内部评审阶段考虑的 UI 技术栈,我们重点从三方面评估:

  1. 与云原生体系契合度
    DevUI 的组件体系天然偏向企业级系统,Table、Form、Drawer、Search、AutoComplete 等组件在云控制台、SaaS 后台极为常见,和我们系统的典型用例高度重叠。

  2. 设计规范一致性
    旧系统使用了多个组件库混搭,导致视觉混乱。DevUI 的统一主题、规范体系让所有模块能自动保持统一观感,避免了重复调 UI 的成本。

  3. 可扩展性与工程友好度
    DevUI 组件内部结构清晰,支持大量自定义能力。例如表格提供自定义列模板、可控分页、过滤器 hook,开发扩展性很强。

最终从开发效率、扩展性、设计一致性三方面综合评估,DevUI 成为了最适合我们新架构的选择。

在这里插入图片描述


三、任务中心核心功能设计

任务中心包含三个关键功能模块:

  1. 多条件查询:涉及多个字段、区间、状态、关键字。
  2. 任务列表与批量操作:支持自定义列、排序、合并状态展示。
  3. 任务详情抽屉:点击行打开侧边面板,展示任务关联事件、流转记录、负责人信息等。

下文基于这三个核心场景展开实际开发过程。


四、查询区构建:Search + Form 的组合拳

查询区是所有企业级后台的入口,用户体验决定列表交互效率。

在 DevUI 中,搜索表单通常通过 d-form + d-select + d-input 等组件组合构建。以下为我们实际项目中的精简示例:

<d-form layout="inline" [labelSize]="'sm'" [labelAlign]="'right'">
  <d-form-item label="任务类型">
    <d-select [(ngModel)]="query.type" [options]="taskTypeOptions"></d-select>
  </d-form-item>

  <d-form-item label="状态">
    <d-select [(ngModel)]="query.status" [options]="statusOptions"></d-select>
  </d-form-item>

  <d-form-item label="关键字">
    <d-input [(ngModel)]="query.keyword"></d-input>
  </d-form-item>

  <button d-button theme="primary" (click)="load()">查询</button>
  <button d-button (click)="reset()">重置</button>
</d-form>

DevUI 特点:

  • 多个组件天然保持风格一致,UI 统一。
  • 表单与布局的适配很轻量,不需要复杂 CSS。
  • 半天时间就完成了表单区的所有组件联动。

五、表格模块:DevUI Table 的高扩展性是最大亮点

任务中心的表格非常复杂,包含:

  • 自定义渲染
  • 批量勾选
  • 列宽控制
  • 排序
  • 批量操作

DevUI Table 的设计非常“B 端友好”,以下是自定义列模板示例:

<d-table [dataSource]="list" [checkable]="true">
  <ng-template dColumn [field]="'id'" [header]="'任务ID'"></ng-template>

  <ng-template dColumn [field]="'title'" [header]="'任务标题'">
    <ng-template let-row="rowItem">
      <span class="link" (click)="openDetail(row)">{{ row.title }}</span>
    </ng-template>
  </ng-template>

  <ng-template dColumn [field]="'status'" [header]="'状态'">
    <ng-template let-row="rowItem">
      <d-tag [type]="statusMap[row.status].type">
        {{ statusMap[row.status].label }}
      </d-tag>
    </ng-template>
  </ng-template>
</d-table>

在这一模块中,DevUI 的优势体现得最明显:

  • 列模板机制非常灵活,适配各种业务场景
  • 选择框、分页、加载状态全部可控
  • 批量操作事件处理简单明了

仅表格模块,我们开发速度比旧框架提升了至少 30% 以上。


六、任务详情:Drawer 组件让交互更顺畅

点击列表某行即可打开详情抽屉,这是前端工作台中最常用的交互方式。

DevUI 的 Drawer 使用简单、动画自然,非常贴合后台系统体验。

<d-drawer [(visible)]="showDetail" [width]="'520px'">
  <app-task-detail [taskId]="currentId"></app-task-detail>
</d-drawer>

我们原先使用 modal 方案,但切换到 drawer 后体验改善明显:

  • 不会遮挡背景,可连续查看多个任务
  • 内容空间足够展示更多信息
  • 配合滚动区域更适合长信息内容

整个详情区的实现时间比我们预想的更短。


七、主题适配:快速与企业 VI 完成匹配

DevUI 的主题定制能力非常关键。项目要求保持公司统一的蓝色系风格,我们只调整了颜色 token 即可完成:

  • 主色
  • hover
  • 背景
  • 辅助色

完全不需要重复调样式或大量手写 SCSS。

这让我们在不牺牲 UI 质量的前提下,快速实现了“企业专属版本”的统一视觉体验。


八、上线效果与业务反馈

最终上线后带来三个明显提升:

  1. 操作效率提升:查询响应明显加快,交互更清晰
  2. 体验一致性改善:所有功能都在统一组件体系中落地
  3. 维护成本下降:组件复用度高,迭代修改成本显著变低

用户反馈“体验比旧系统顺畅太多”,这是最直接的成果。


九、总结与思考

从整个“任务中心”场景来看,DevUI 的优势总结如下:

  1. 企业级场景契合度极高:表格、表单、抽屉等全都能高效落地
  2. 工程化与扩展性强:代码结构清晰,可维护性好
  3. 设计体系优雅统一:减少了大量样式调优成本
  4. 学习成本低:团队新成员两天即可上手
  5. 适配云原生控制台体系:对 B 端系统尤其友好

如果你正在构建云控台、运营中心、管理后台、监控平台等 B 端系统,DevUI 是一个非常值得尝试的方案。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐