MDD(模型驱动开发)系列(七) 前端MDD实践
1.步骤
1) 基于领域模型录入和调整字段、分组、页面、参照、路由、菜单等元数据
2)根据元数据生成对应的页面、交互逻辑、路由、菜单
3)根据扩展点自定义特有逻辑
2.元数据示例
1)分组和字段
2)页面
3)参照
4)路由
5)菜单
3.扩展点
页面模板 | 序号 | 扩展点 | 说明 |
一、 | 1 | initEdit( { addEditFormData, layout, loading, pageType, businessObjectName, statusData, id, _hide, } ) | 初始化阶段 完全接管初始化 |
2 | afterQueryEditFormData({res,addEditFormData,_hide}) | 查询到数据后的回调(查询数据走默认的) | |
3 | initAdd( { addEditFormData, layout, loading, pageType, businessObjectName } ) | 初始化阶段 完全接管初始化 | |
4 | onAddAfterSelect({value,formData,item,layout,_hide}) | 选中数据后的回调 | |
5 | onEditAfterSelect({value,formData,item,layout,_hide}) | 选中数据后的回调 | |
6 | beforeAdd({actionRef, businessObjectName, addEditFormData,__ret}) | 发送api请求之前的回调 | |
7 | beforeEdit({actionRef, businessObjectName, addEditFormData,deltaObj,__ret}) | 发送api请求之前的回调 | |
二、BaseSearchForm | 1 | onInitSearch({ layout, formData, businessObjectName, queryConditionFieldConfig, }) | 搜索表单初始化的回调 |
ImportForm(无) | 2 | ||
ExportForm(BaseList之外) | 3 | inExport inDetail 等属性 |
三、BasicTable/BaseList | 1 | onInitTable( { // 在导出页时,需要处理exportButtons inExportForm, tableHeaderMeta,propertyMetas, businessObjectName, queryCondition, tableList, queryTableData, api, page, ////////// 3、按钮相关 selectList,buttons, replaceButton, removeButton, detailLabel, ////////// 4、行内操作相关 actions, replaceOperation,removeOperation, ////////// 5、导入导出相关 exportButtons, replaceExportButton,removeExportButton, } ) | 表格初始化 |
2 | onDeleteBatch({selectList, businessObjectName,tableRef, tableList,page}) | 批量删除回调 | |
3 | onDelete({row, businessObjectName,tableList,page}) | 单行函数回调 | |
4 | customedButtons/removeButton/replaceButton | 自定义按钮 | |
5 |
| 自定义行内操作 | |
6 | tableHeaderMeta/exportButtons/detailField | 核心配置 | |
四、BaseTreeTable(BasictTable之外的) | 1 | initRefreshTable(selectedKeys, selectedEvent,page,tableList,tableLogic,refreshTable) | 初始化树表 |
2 | constructTree({ treeData, _listToTree }) | 构建树 | |
3 | onSelect({ e,tableLogic, tableList,page, treeData, refreshTable:queryTableData}) | 点击树节点后的回调 | |
4 | onDeleteTreeTable({selectList, businessObjectName,tableRef, tableList,page,tableLogic,idArr}) | 树表节点的删除 | |
五、BaseDetail | detail.buttons | 核心配置 | |
六、ListRefer 同列表 | afterSelect({value,formData,item}) | 参照数据获取后的回调 | |
七、TreeListRefer 同树表 | afterSelect({value,formData,item}) | 参照数据获取后的回调 | |
八、TreeSelect | onLoadData(treeNode) | 异步加载树节点 | |
constructTree({ treeData, _listToTree }) | 构建树 | ||
afterSelect({value,formData,item}) | 参照数据获取后的回调 |