1、实现细节

先将4张表byzt_stage,byzt_picture,byzt_picture_group,byzt_template_stage分别做好javaben,类名本别为:Stage.java,Picture.java,PictureGroup.java,TemplateStage.java,

请按我们下面表格中的Controller名称定义接口,以方便前端调用(当然所有java的接口,在我们提供的压缩包的示例项目中都已经实现)

                  后台项目例子(接口实现例子的位置在ruoyi-admin/src/main/java/com/ruoyi/web/controller/ztgl),

以及前端调用接口的例子(接口调用的位置在ruoyi-ui/public/static/byzt/config/InitConfig.js),

尽管如此,但不同的框架返回的结果,结构能不一样,前端调用时可能需要进行微调。

每个前端接口调用都有独立的ajax调用,为了方便,我们将调用地址总结在了byzt\config\init.json 的serviceIpPort属性中,该属性填的是代理地址的ip(如nginx Ip端口)

Controller接口名称

接口描述

接口返回

前端插件调用位置

前端触发时机

1

@PostMapping("/stageEdit")
public AjaxResult stageEdit(Stage stage)

编辑修改画面

将Stage 中的属性stageDatajson dataKeyArray stageBase64修改到表byzt_stage中

 

修改成功的记录数,比如返回1,因为一次修改只会有一条记录。

InitConfig.js下的方法saveStageData()

 

编辑器右上角点击【保存】时

2

@PostMapping("/selectStageById")
public AjaxResult selectStageById(Stage stage)

 

查询一条画面数据

根据Stage 中的属性stageId查询一条Stage 数据,并返回

 

Stage

InitConfig.js下的方法editStageData()

和viewStageData()

编辑器页面打开,或实时监控页面打开

 

3

@PostMapping("/insertTemplateStage")
public AjaxResult insertTemplateStage(TemplateStage templateStage)

 

新增或修改模板

新增模板和修改模板都使用这个接口,通过判断TemplateStage 中的属性templateId是否为空来判断,为空则为新增,不为空则为修改。

 

返回当前这调记录的templateId

 

InitConfig.js下的方法saveStageModuleData()

 

编辑器右上角点击【保存到模板】时

4

@PostMapping("/selectTemplateStageList")
public AjaxResult selectTemplateStageList(TemplateStage templateStage)

 

查询模板列表

查询已经保存在数据库中的画面模板

自己决定TemplateStage中的参数是否使用,目前前端是不会传值的 

List<TemplateStage>

 

InitConfig.js下的方法getMyMoudleStageJsonData()

 

编辑器页面打开

5

@PostMapping("/templateStageDeleteById")
public AjaxResult templateStageDeleteById(TemplateStage templateStage)

 

删除模板

根据TemplateStage 中的属性templateId删除一条模板数据

删除成功的记录数,比如返回1,因为一次删除只会有一条记录。

InitConfig.js下的方法deleteMyMoudleStageData()

 

我的模板中的删除按钮

 

6

@PostMapping("/saveEditModuleGroup")
public AjaxResult saveEditModuleGroup(PictureGroup pictureGroup)

 

保存分组(1.2.6.25新增)

保存记录数

InitConfig.js下的方法saveEditModuleGroupData

()

 

7

@PostMapping("/saveEditModuleGroup")
public AjaxResult saveEditModuleGroup(PictureGroup pictureGroup)

 

修改分组(1.2.6.25新增)

这个和保存分组是同一个接口

修改录数

nitConfig.js下的方法saveEditModuleGroupData

()

 

8

@PostMapping("/selectPictureGroupList")
public AjaxResult selectPictureGroupList(PictureGroup pictureGroup)

 

查询分组(1.2.6.25新增)

List<PictureGroup>

 

nitConfig.js下的方法

getMyGroupData: function (UrlParam)

 

编辑器打开时

 

9

@PostMapping("/pictureGroupDeleteById")
public AjaxResult pictureGroupDeleteById(PictureGroup pictureGroup)

 

删除分组(1.2.6.25新增)

根据分组id删除分组

删除成功的记录数,比如返回1,因为一次删除只会有一条记录。

nitConfig.js下的方法

deleteMyMoudleGroupData: function (UrlParam, groupId)

 

10

@PostMapping("/selectPictureList")
public AjaxResult selectPictureList(Picture picture)

 

查询上传图片列表

查询已经上传的图片列表

自己决定Picture 中的参数是否使用,目前前端是不会传值的 

List<Picture>

 

InitConfig.js下的方法getMyMoudleData()

 

编辑器打开时

 

11

@PostMapping("/pictureDeleteById")
public AjaxResult pictureDeleteById(Picture picture)

 

删除图片

根据Picture 中的属性id删除一条模板数据

删除成功的记录数,比如返回1,因为一次删除只会有一条记录。

InitConfig.js下的方法deleteMyMoudleData()

 

我的图库中的删除按钮

12

@PostMapping("/insertPicture")
public AjaxResult insertPicture(MultipartFile imagefile,String groupId)

 

上传图片(1.2.6.25修改)

解析MultipartFile 将图片存储子在本地或云服务器上,并在表byzt_picture添加一条记录

添加成功的记录数,比如返回1,因为一次添加只会有一条记录。

uploadImage.html  182行

我的图库-分组中点击【上传】时

13

自己定义

获取画面列表

同之前做的画面列表的接口一样。

请看第【三、集成前需要了解的】 第3点

 

List<Stage>

 

targetStage.html  102行

组件属性-事件与行为-打开组态画面

14

自己定义

获取项目

[
  {code: '11', name: '项目1', type: '1'},
  {code: '12', name: '项目2', type: '1'},
  {code: '13', name: '项目3', type: '1'}
]

type: 如果没有可以为’’,不能删除

InitConfig.js下的方法getXm()

 

绑定数据,弹出选择数据点界面时

15

自己定义

根据项目编号-获取设备

[
  {code: '21', name: '设备1', type: ''},
  {code: '22', name: '设备2(无从机)', type: '2'},
  {code: '23', name: '设备3', type: '1'}
]

type: 如果没有可以为’’,不能删除

InitConfig.js下的方法getSb()

 

同接口14

16

自己定义

根据设备编号-获取从机

[
  {code: '21', name: '从机1', type: '1'},
  {code: '22', name: '从机2', type: '1'},
  {code: '23', name: '从机3', type: '1'}
]

type: 如果没有可以为’’,不能删除

InitConfig.js下的方法getCj()

 

同接口14

17

自己定义

根据从机编号-获取数据点

[
  {code: 'a01', name: '水位传感器', type: '1'},
  {code: 'a02', name: '温度传感器', type: '1'},
  {code: 'a03', name: '开关', type: '1'},
  {code: '123', name: '开关2', type: '1'},
  {code: 'a04', name: '电压表', type: '1'}

]

type: 如果没有可以为’’,不能删除

InitConfig.js下的方法getCgq()

 

同接口14

web组态 - 前端插件