simplepage 页面 历史告警需要支持根据 config event 通知去重新请求数据 #61

Closed
opened 2025-01-09 12:07:12 +08:00 by liangyuanpeng · 12 comments

需要支持config event通知去重新请求接口,达到实时更新数据效果,
如果 当前页面有使用对应逻辑才去执行重新请求以及刷新UI的操作

config event 中的 doRequests[].alertHistory

结构如下:

{
  "doRequests": [
      {
        "name": "alertHistory"
      }
   ]
}

如果 config event 中 doRequests 有 name 为 alertHistory 则取重新请求simplepage 历史告警接口, 默认分页请求参数为1

需要支持config event通知去重新请求接口,达到实时更新数据效果, 如果 当前页面有使用对应逻辑才去执行重新请求以及刷新UI的操作 config event 中的 doRequests[].alertHistory 结构如下: ```json { "doRequests": [ { "name": "alertHistory" } ] } ``` 如果 config event 中 doRequests 有 name 为 alertHistory 则取重新请求simplepage 历史告警接口, 默认分页请求参数为1
Author
Owner

将会用这个机制同时应用于维修模式, 避免刷新整个页面

将会用这个机制同时应用于维修模式, 避免刷新整个页面
Author
Owner

如果 config event 收到如下数据时,重新请求维修模式, ( 需要迭代 tab 页面 )

{
  "doRequests": [
      {
        "name": "wcstatus"
      }
   ]
}

simplepage 页面使用这个维修模式的方式是svg命名中使用自定义HTTP方式请求的, 而 tab 页面应该是前端逻辑发起的维修模式, 因此有些区别, 但都需要对接这个模式去重新请求.

如果 config event 收到如下数据时,重新请求维修模式, ( 需要迭代 tab 页面 ) ```json { "doRequests": [ { "name": "wcstatus" } ] } ``` simplepage 页面使用这个维修模式的方式是svg命名中使用自定义HTTP方式请求的, 而 tab 页面应该是前端逻辑发起的维修模式, 因此有些区别, 但都需要对接这个模式去重新请求.
Owner

后续 api 接口命名的命名是标准的吗? 如果不是的话可能需要 mapping.

后续 api 接口命名的命名是标准的吗? 如果不是的话可能需要 mapping.
Author
Owner

tab页面估计要在前端写逻辑 (只有一个维修模式), 对于 simplepage 是否可以添加一个属性来mapping, 避免手动维护映射关系.

例如 前端根据这个属性的值去找到对应的API接口?

simplepage 在命名规范上目前有两种使用 HTTP API的方式,

  1. alert history, 前端定义好命名后, svg上根据命名去执行对应的逻辑,但实际请求的HTTP API 是前端代码里面的
  2. svg命名规范中的自定义HTTP, 这种情况下 URL 是自定义填进去的.

后续 api 接口命名的命名是标准的吗

标准是只格式统一? 如果是的话, 那么是不统一的, 如上述所示, 有自定义HTTP API的情况.

tab页面估计要在前端写逻辑 (只有一个维修模式), 对于 simplepage 是否可以添加一个属性来mapping, 避免手动维护映射关系. 例如 <box reqname="wcstatus" /> 前端根据这个属性的值去找到对应的API接口? simplepage 在命名规范上目前有两种使用 HTTP API的方式, 1. alert history, 前端定义好命名后, svg上根据命名去执行对应的逻辑,但实际请求的HTTP API 是前端代码里面的 2. svg命名规范中的自定义HTTP, 这种情况下 URL 是自定义填进去的. > 后续 api 接口命名的命名是标准的吗 标准是只格式统一? 如果是的话, 那么是不统一的, 如上述所示, 有自定义HTTP API的情况.
Owner

如果这里是前端维护这份 mapping 关系, 需要给一下具体的 mapping 列表。

因为后端 doRequest[x].name 会是什么,前端这里不知道。

如果这里是前端维护这份 mapping 关系, 需要给一下具体的 mapping 列表。 因为后端 doRequest[x].name 会是什么,前端这里不知道。
Author
Owner

正如昨天微信群回复的,这里预期最好是动态的, 不应该另外维护一个 name 和 对应接口的映射关系.

name=alertHistory时重新请求告警历史并且告警历史页面UI处显示最上面(最新)的数据, 特别注意: 页面 svg 如果有 ALERT_HISTORY 命名 才执行这个逻辑

https://smartoilets.net/openapi/api/alert/info/history?siteName=PWH&wcName=F2&noticeType=alerter&roomType=male&page=1

image

name=wcStatus时, 页面有维修状态的逻辑才重新请求, 即 svg 命名有 STS__CONDITION_RENDER://smartoilets.net/openapi/api/wc/info/wcStatus?siteName={{siteName}}%26wcName={{wcName}}%26roomType={{roomType}}:data.isRepair:true 时才执行, 并且重新执行这里的逻辑,根据接口最新状态来显示对应的UI.

image

正如昨天微信群回复的,这里预期最好是动态的, 不应该另外维护一个 name 和 对应接口的映射关系. name=alertHistory时重新请求告警历史并且告警历史页面UI处显示最上面(最新)的数据, 特别注意: 页面 svg 如果有 ALERT_HISTORY 命名 才执行这个逻辑 https://smartoilets.net/openapi/api/alert/info/history?siteName=PWH&wcName=F2&noticeType=alerter&roomType=male&page=1 ![image](/attachments/7521a073-6564-4d0a-8dc6-efced03b4a81) name=wcStatus时, 页面有维修状态的逻辑才重新请求, 即 svg 命名有 STS__CONDITION_RENDER://smartoilets.net/openapi/api/wc/info/wcStatus?siteName={{siteName}}%26wcName={{wcName}}%26roomType={{roomType}}:data.isRepair:true 时才执行, 并且重新执行这里的逻辑,根据接口最新状态来显示对应的UI. ![image](/attachments/3355368b-db4e-403f-b539-6f0a7b34cdd5)
668 KiB
Author
Owner

config event 通知中字段 dorequests 更新为 refetchs

config event 通知中字段 dorequests 更新为 refetchs
Author
Owner

如果 当前页面有使用对应逻辑才去执行重新请求以及刷新UI的操作

如果 当前页面有使用对应逻辑才去执行重新请求以及刷新UI的操作
Author
Owner

只需要通过socketio测试数据接口开发就可以了,不需要管后台实际情况,socketio测试数据接口之前已经用过几次了

image

只需要通过socketio测试数据接口开发就可以了,不需要管后台实际情况,socketio测试数据接口之前已经用过几次了 ![image](/attachments/350a626f-6e5a-4527-9294-5640cb84bbf6)
Author
Owner

字段是可选的,不是每条config event都有该字段

字段是可选的,不是每条config event都有该字段
Author
Owner

其中 deviceId 需要设置为页面实际的ID

image

其中 deviceId 需要设置为页面实际的ID ![image](/attachments/ceed3fcb-4a02-47a2-a503-a79cc2c2a35e)
Owner

代码已推送, 待验证

代码已推送, 待验证
jeff added the
done-waiting-confirmed
label 2025-01-20 14:12:27 +08:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: smartoilets-front/projects#61
No description provided.