DirectSurface UIDirectSurface UI
开始使用
文档/业务指南

主从页

import {  RenderDataGrid,  RenderDockPanel,  RenderStackPanel,  RenderText,  RenderTreeView,} from 'ds-ui'

主从页用于在一个页面内同时展示主记录列表和从属明细。常见形态包括左树右表、上主表下明细、左列表右详情。

推荐布局

左树右表:

DockPanel
  left: TreeView
  fill: StackPanel
    Toolbar
    DataGrid

上主下从:

StackPanel vertical
  MasterGrid flex=1
  DetailGrid flex=1

最小示例

const root = new RenderDockPanel() const tree = new RenderTreeView({  roots,  selectionMode: 'single',}) const detail = new RenderStackPanel({  orientation: 'vertical',  spacing: 8,  crossAxisAlignment: 'stretch',}) detail.addChild(new RenderText('明细列表'))detail.addChild(new RenderDataGrid({  columns: [    { key: 'name', title: '名称', type: 'text' },    { key: 'value', title: '值', type: 'text' },  ],  rows: data,}), 1) tree.width = 260root.addChild(tree, { dock: 'left' })root.setFill(detail)

主从同步

主区域选中变化后,从区域应该:

  • 取消未完成的旧请求。
  • 清空或保留旧明细,取决于业务体验。
  • 加载新明细。
  • 刷新页面命令状态。
  • 必要时重置从表当前选中行。

编辑与保存

主从页保存要明确边界:

  • 主记录保存。
  • 明细行保存。
  • 主从一起提交。
  • 明细局部提交。

不要让主表和从表各自偷偷提交,除非业务明确允许。

使用建议

  • 主从区域都可能有大量数据时,两个区域都应使用各自的虚拟化组件。
  • 主记录切换时要处理脏数据确认。
  • 左树右表适合分类维护;上主下从适合单据和明细维护。
  • 从区域上下文应跟随当前主记录变化,不能继续引用旧主记录。