Vue3+ElementPlus的BS端主从表的快速开发
在实际业务中,主从表的情况也是很常见的,如订单和订单明细,报价单和报价单明细,工艺和工艺路线,进货单和进货单明细等等,很常见的处理类型。
主从表一般涉及两个以上的表,一个是主表,其他的是从表的,在实际情况下,一般包含两个表较多,我们这里以两个表的主从表关系进行分析处理。本篇随笔介绍基于Vue3+ElementPlus的BS端主从表的快速开发。
1、基于代码生成工具的BS端主从表的快速开发
如报销申请单主表和明细从表,数据库设计关系如下所示。

为了针对主从表的快速显示和录入,一般主从表同时录入的,我们设计了主从表界面的代码生成处理。
对于报价单和报价单明细表来说,同样也是主从表关系,我们为了方便快速开发,专门设计了代码生成工具界面用来定制主从表显示和编辑界面的生成开发,如下是代码生成工具用于生成BS端的Vue3+ElementPlus的界面代码。

通过列出数据库的相关字段,我们可以从中选择用于显示列表,编辑录入、条件处理等条件的字段信息,还可以根据某些字段为指定字典类型的数据绑定操作。
上面界面的选择,也是生成类似Winform的主从表界面的方式来生成BS端的界面内容,生成的界面符合BS端框架的要求,生成相关独立模块的页面代码和相关处理Vue代码等,如下所示。

生成的代码经过一些简单调整处理后,就可以很方便的显示出来了。生成的主从表列表界面如下所示。

可以看到的内容,有树形列表、主表列表、从表展示,以及常规的增删改查的入口。
对于主从表的数据展示,也是同样通过定制的界面元素进行快速生成。

而对于我们关注的主从表直接录入,也是通过整合自定义控件的方式进行快速生成,界面效果展示如下所示。

对应从表的记录,我们同通过表格录入的方式,可以输入或者选择内容进行填入。

2、Vue3+ElementPlus的BS端主从表实现的具体代码
首先我们来了解下几个视图文件的关系

我们先来了解下常规页面的内容的整体界面布局,它包含常规的列表界面,新增、编辑、查看、导入等界面,除了列表页面,其他内容以弹出层对话框的方式进行处理,如下界面示意图所示。

我们分别创建index.vue代表主列表页面内容, search代表查询及列表,view代表查看页面、edit代表新增或者编辑页面(两个页面类似,因此整合一起更精简),import代表导入页面,然后再index页面组合即可。

不同的页面模块的区分,有助于代码的管理维护。

列表页面的主要逻辑封装在search.vue页面中,包括左侧树形列表区域,查询条件区域、主表记录显示、分页展示区域、从表记录区域等。

其中主列表通过获取查询区域控件的条件,通过API进行数据获取,绑定到表格列表即可。

但主表记录呈现后,我们单击任何一行主表记录,会出发行单击事件的处理,从而加载从表记录的获取并显示。

主从表可以直接录入,它是通过整合自定义控件的方式进行快速生成,界面效果展示如下所示。

在编辑界面中,主表和常规单表一样的处理方式,从表记录通过 vxe-table 进行录入的处理。对于产品记录的列表选取,我们通过自定义组件 TableSelector 快速绑定即可即可。
关于自定义组件 TableSelector ,我在随笔《在Vue3+ElementPlus前端中增加表格记录选择的自定义组件,通过结合Popover 弹出框和Input输入框或者按钮选择实现》中有相关介绍。

其实现产品表数据的绑定显示,供表格选择代码如下所示。

对于字典记录的下拉列表,我们绑定字典类型即可显示列表供选择了。


这些我们可以通过字段的属性进行选择不同的录入方式,生成对应的代码即可。

我们通过自定义控件的方式,让vxTable的表格编辑界面可定制化,从而可以快速调整表格单元格的输入方式。
通过结合代码生成工具的字段定制的界面生成,可以提高我们对界面元素的快速生成效率和应用效率,极大提高我们的生成率。对于精益求精的代码生成,虽然我们在工具的开发上花费的时间多一些,但是可以极大的提高项目的开发效率,也是值得的。
Vue3+ElementPlus的BS端主从表的快速开发的更多相关文章
- DataSnap ClientdataSet 三层中主从表的操作
非原创 摘自:http://hi.baidu.com/yagzh2000/blog/item/fc69df2cb9845de78b139946.html三层中主从表的操作(删除.新增.修改)一定要在 ...
- JSON序列——主从表查询
JSON序列——主从表查询 客户端代码: procedure TForm1.Button4Click(Sender: TObject); // 主从表 查询 begin var url: TynUrl ...
- vue3系列:vue3.0自定义全局弹层V3Layer|vue3.x pc桌面端弹窗组件
基于Vue3.0开发PC桌面端自定义对话框组件V3Layer. 前两天有分享一个vue3.0移动端弹出层组件,今天分享的是最新开发的vue3.0版pc端弹窗组件. V3Layer 一款使用vue3.0 ...
- EF里单个实体的增查改删以及主从表关联数据的各种增删 改查
本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表 ...
- 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...
- Winform开发框架之单据窗体生成(主从表,流水单号)
源码地址:https://github.com/GarsonZhang/GZFramework.ShareDemo 前言 1.在开始本节前请先重置代码为 chapter-03-start 懒人地址:h ...
- GZFramwork数据库层《四》单据主从表增删改查
同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...
- GZFramwork数据库层《三》普通主从表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...
- 【EF学习笔记10】----------主从表级联操作
主从表 级联新增 Console.WriteLine("=========主从表 级联新增=========="); using (var db = new Entities()) ...
- DEV主从表
1.主从表隐藏表格展开按钮. 当主表内容不包含子表时候隐藏,主从表加号图标.效果如下图. 实现代码 private void gvMain_CustomDrawCell(object sender, ...
随机推荐
- Easy_log移植笔记
Easy_log移植笔记 1. 目录结构 demo 包含多平台移植示例,如 Linux.RT-Thread.裸机系统等,提供实际工程参考,帮助开发者快速适配不同环境. docs 存放中英文文档,详细说 ...
- Phenomenon•Observation•Uncertainty/Certainty•Statistical law•Random phenomenon•Theory of Probability
Mathematics: the logic of certainty. Statistics: the logic of uncertainty. Certainty/Uncertainty: Ph ...
- SciTech-Mathmatics-Calculus: Derivative导数 + Deferentiation微分 + Integration积分
SciTech-Mathmatics-Calculus: Derivative导数 Deferentiation微分 Integration积分
- 分享一个 ProHub 风格 logo 生成器
大家好,我是 Immerse,一名独立开发者.内容创作者.AGI 实践者. 关注公众号:#沉浸式趣谈,获取最新文章(更多内容只在公众号更新) 个人网站:https://yaolifeng.com 也同 ...
- Win11正式版玩红警2出现卡住不动的问题
近来有深度系统的用户在win11正式版电脑玩红警2的时候,玩的好好的,突然就卡住不动了,这要怎么办呢?针对这个问题,本文中深度技术小编就带来详细的解决方案,和大家分享一下,希望可以帮助到有需要的小伙伴 ...
- Win11电脑设置系统还原点的问题
有雨林木风官网用户,问小编在原版win11系统里面怎么设置系统还原点?先来说说,在Windows11系统中的系统还原点功能,只要系统有什么问题,我们可以还原这个备份的还原点,就不用重新安装一些常用的软 ...
- Windows11升级更新后桌面黑屏的问题
近来有电脑基地的用户反馈更新升级Windows11系统后进入电脑桌面就黑屏,但是又有鼠标和语言栏,也可以打开任务管理器.虽然,可以使用运行explorer.exe想要重启桌面,但是没有任何效果,这该怎 ...
- steam发行问题
非常重要,最新steam营销推广 https://store.steampowered.com/news/group/4145017/view/4191238396458987547
- git命令行最佳学习方式
https://learngitbranching.js.org/
- 浅谈MCU的启动
目前正在学习STM32F407芯片, 我们通过KEIL将代码生成Application.bin后,通过JFLASH烧录到0x08000000, 然后重新上电MCU就开始工作了. 那APPlicatio ...