[二开笔记] 如何使用协同开发平台为动态表单的菜单添加点击事件
## 前言
原先使用 BOS 设计器进行开发时,由于对动态表单事件的不熟悉,一直以来处理菜单的点击事件都是通过 `BarItemClick` 的事件来处理的。最近将项目迁移到协同开发平台来的时候,添加插件时自动生成的事件模板和注释中让 Yogurt 找到了点不一样的东西 —— 点击事件。
这个功能一直都是我部门的金蝶运维在做一些简单的按钮权限调整什么的,在迁移开发平台时与运维沟通,后发现直接使用 `BarItemClick` 实际上是不太适合他后期的简单维护的,如果有什么地方需要调整权限,还要过来找我改代码,这样在维护上流程会存在一点不顺畅。遂决定将原先的 `BarItemClick` 的事件全部调整为点击事件,操作步骤如下。
## 开发环境
| 信息 | 说明 |
| ---------------- | ---------------------------------------------------- |
| 操作系统版本 | Microsoft Windows 10 专业工作站版 10.0.19042 64 位 |
| 金蝶云星空版本 | v7.7.0.202112 |
| BOS 版本 | v7.72388.8 |
## 操作步骤
### Step 1 新增操作
在右侧下方的 `属性栏` 中点击 `操作列表`
![ac268a4006a73c6323cbacc37cfcd4e3.webp](/download/010000b269bee88b441e8bd65071a4f12e15.webp)
这里可以看到 Yogurt 已经新增了一些操作了,如果需要修改的话,可以先选择指定的操作,然后点击右侧的 `编辑` 在弹出的对话框中进行相关的修改即可。现在先不管,点击 `新增`,
![ef9d002f58060f6b9e04807ce0b47dd7.webp](/download/0100444eed0c08e14c0fbc4d89f4b80cf941.webp)
在弹出的对话框中,先点击 `操作类型`
![2e9cc69d23543181c4b9c9cfb5ea6f43.webp](/download/0100d94f36d48a9a4506838261fd100d07e1.webp)
按照需求选择操作即可,这里 Yogurt 需要做自定义的开发,因此选择的是 `空操作`。
![d64b05bba9d6d4f92be3ed0914544b17.webp](/download/01003499216b1032477195e1174d15159c0d.webp)
选择好之后,填写 `操作代码` 和 `操作名称` ,这里的操作代码 Yogurt 的习惯是写的比较完整。目前的格式是:`开发商代码_类型_名称` 的形式。例如这里的 `UBGL_Content_Test`,`UBGL` 是开发商代码,`Content` 是菜单,`Test` 是这个事件的名称。
填写好后,点击 `确定`,一个操作就新增成功了。如果需要新建一批操作的话,那就循环执行此步骤即可。
![152eac631218a5490265921c33e65b9e.webp](/download/010052cadfa09fcf44e8bff45e5d915e9fe0.webp)
### Step 2 新增点击事件
事实上,Step 1 的操作就是一个空的点击事件,需要赋予某个按钮才能进行触发,例如这里需要赋予到菜单栏的某个按钮。
在右侧下方的 `属性栏` 中点击 `菜单集合`。如果不知道如何添加菜单,可以查看上一篇文章。传送门:[[二开笔记] 如何在协同开发平台新建一个动态表单项目](https://wenku.my7c.com/article/286171549554764032)。
![f687a0232086f47925562a386c51d7a3.webp](/download/0100fabcafd0503a4945b89bcf682197389b.webp)
在弹出的对话框中找到需要赋予点击事件的按钮,在它的属性中点击 `点击事件`
![6e9756dfb2ec69a17bf819df879c06ff.webp](/download/0100393bb442d9c44fe797ac1046bdf7ee8a.webp)
在弹出的对话框中选择 `新增操作`
![3c5655332e044bfd5cb86ef3a039b399.webp](/download/0100068261868e20477f84401ea503c2afb4.webp)
在弹出的对话框中选择刚刚新建好的操作,点击 `确定`
![dc59144204da5bdc5d74b0fad8b309fe.webp](/download/010045d80a7293554008b62b2405cec16467.webp)
然后就可以在点击事件列表中看到它了,点击 `确定` 就可以了。虽然还没有做过测试,但感觉这里的事件应该会按照顺序来执行。
![02421dea430fcb314a275a3881c704f0.webp](/download/0100cf2774622c6b495ba37203f2bf0a6ade.webp)
### Step 3 编写事件代码
做完了 Step 1 和 Step 2 之后,就要为这两个操作注入灵魂了
在前言里有提到,协同开发平台的函数模板和注释帮到了很多。这里的 `BeforeDoOperation` 和 `AfterDoOperation` 两个函数就是用来控制前两步操作的点击事件的。就是字面意思,前者为操作前的事件(大概是做一些前置的操作吧,比如说权限判断什么的),后者为操作后发生的事件,这里 Yogurt 的需求在后者就可以实现了。
![4742a3589eab402ec75c80a54bb41699.webp](/download/0100733fad5c5ab04bea9ef56ce5b45d8226.webp)
个人的开发习惯,习惯于用类来分类管理不同的函数,因此在事件这里就只需要简单的调用类的函数就可以了,方便后期维护。
![c37edb734ba5b1e1beddec6b54899936.webp](/download/0100a2e7d83b20974012a769edab53895c7e.webp)
菜单类的示例如下:
![cf963219c4c8e24f540e158673366f6b.webp](/download/010090222634676847ba9ec8df2824917cea.webp)
### Step 4 编译工程
本文是默认大家都是添加了表单插件的条件下进行的,所以添加表单插件的操作就不赘述了,大家可以参考上一篇文章。传送门:[[二开笔记] 如何在协同开发平台新建一个动态表单项目](https://wenku.my7c.com/article/286171549554764032)。也可以参考社区大神们的教程。
编译完成后,`F5` 启动表单调试即可。
## 后记
如果公司内部没有明确划分运维岗和开发岗的情况下,似乎好像也没必要做什么区分,"一锅端了" 就是了(说好啊,开玩笑来的,不建议这样做)。但是呢,业务范围来说,还是要做一下区分的,二开就只做二开的事情,运维就做好运维的事情,这样不管是流程还是业务,大家都是一个合作的状态,而不会存在过多的交叉,避免一些潜在的麻烦。
[二开笔记] 如何使用协同开发平台为动态表单的菜单添加点击事件
## 前言原先使用 BOS 设计器进行开发时,由于对动态表单事件的不熟悉,一直以来处理菜单的点击事件都是通过 `BarItemClick` 的事件来...
点击下载文档
本文2024-09-16 17:18:49发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14896.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章