Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bi
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张苑
bi
Commits
883bb481
Commit
883bb481
authored
Sep 28, 2021
by
莫坚培
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 修复组件请求数据被分开的问题
parent
56017eec
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
24 deletions
+35
-24
dashboard.js
js/dashboard.js
+35
-24
No files found.
js/dashboard.js
View file @
883bb481
...
@@ -29,13 +29,18 @@ let requestLoopDataPool = [] // 各个组件实时刷新的请求数据,放到
...
@@ -29,13 +29,18 @@ let requestLoopDataPool = [] // 各个组件实时刷新的请求数据,放到
let
requestLoopStopFlag
=
false
// requestLoopDataPool请求中标志,正在请求时不进行下一波轮询,前一波请求完成才执行下一波
let
requestLoopStopFlag
=
false
// requestLoopDataPool请求中标志,正在请求时不进行下一波轮询,前一波请求完成才执行下一波
let
requestLoopTime
=
5000
// 轮询定时器间隔
let
requestLoopTime
=
5000
// 轮询定时器间隔
let
requestLoopWaitingTime
=
1000
// 每一个请求的间隔时间,减轻服务器压力,请求之间隔一秒
let
requestLoopWaitingTime
=
1000
// 每一个请求的间隔时间,减轻服务器压力,请求之间隔一秒
let
requestLoopGroupSliceNum
=
30
// 请求池requestLoopDataPool分组,每组多少个
let
requestLoopGroupSliceNum
=
1
// 请求池requestLoopDataPool分组,每组多少个
let
requestLoopGroupSliceRes
=
[]
// 分组结果
let
requestLoopGroupSliceRes
=
[]
// 分组结果
let
requestLoopVaribleCache
=
{}
// 每一批(一批多组)轮询的变量数据缓存。
let
requestLoopVaribleCache
=
{}
// 每一批(一批多组)轮询的变量数据缓存。
// 背景是同一个变量,可能会在多个组都有请求,后面的请求拿到的结果可能跟前面拿到的结果不一致,导致明明同一个变量,但是显示不同的值
// 背景是同一个变量,可能会在多个组都有请求,后面的请求拿到的结果可能跟前面拿到的结果不一致,导致明明同一个变量,但是显示不同的值
// 这里的处理是同一批次的请求,每个变量只取第一次的结果
// 这里的处理是同一批次的请求,每个变量只取第一次的结果
// 关于isSameGroupCount
// 这部分逻辑是为了处理:组件有多个变量,但是这些变量被分到了不同的请求组
// 比如A组件有10个变量,请求分为2个一组,则变量被分到了5个不同的组,只有这个5个请求都完成了才表示这个组件的数据都拿到了
// 一般出现在每一组的边界且需要用到DataList属性的组件(动态文本、图片、状态灯)
// 添加定时器
// 添加定时器
var
timer1
=
null
var
timer1
=
null
var
app
=
{
var
app
=
{
...
@@ -315,8 +320,7 @@ function nodeCLick(e, treeId, treeNode, type) {
...
@@ -315,8 +320,7 @@ function nodeCLick(e, treeId, treeNode, type) {
appTips
.
errorMsg
(
res
.
data
.
msg
)
appTips
.
errorMsg
(
res
.
data
.
msg
)
return
return
}
}
// console.log(treeNode.id)
// console.log(warpList)
if
(
treeNode
.
id
!==
warpList
[
warpList
.
length
-
1
])
{
if
(
treeNode
.
id
!==
warpList
[
warpList
.
length
-
1
])
{
if
(
warpList
.
length
>
2
)
{
if
(
warpList
.
length
>
2
)
{
warpList
.
splice
(
0
,
1
)
warpList
.
splice
(
0
,
1
)
...
@@ -944,7 +948,7 @@ function startRequestLoop() {
...
@@ -944,7 +948,7 @@ function startRequestLoop() {
// 每一轮都把标记清除
// 每一轮都把标记清除
requestLoopVaribleCache
=
{}
requestLoopVaribleCache
=
{}
Object
.
values
(
Controls
.
dataPoolMap
).
forEach
(
item
=>
{
Object
.
values
(
Controls
.
dataPoolMap
).
forEach
(
item
=>
{
item
.
is
HasMeetVariable
=
false
item
.
is
SameGroupCount
=
0
})
})
// 使用await等待前一组完成,再进行下一组,且利用requestLoopStopFlag控制每一批(一批多个组)完成才能进行下一批
// 使用await等待前一组完成,再进行下一组,且利用requestLoopStopFlag控制每一批(一批多个组)完成才能进行下一批
...
@@ -1390,9 +1394,6 @@ function handleRequestDataPie(item, index) {
...
@@ -1390,9 +1394,6 @@ function handleRequestDataPie(item, index) {
// 渲染动态图片、动态文本
// 渲染动态图片、动态文本
function
loopRenderImage
(
poolData
,
resData
,
label
)
{
function
loopRenderImage
(
poolData
,
resData
,
label
)
{
if
(
poolData
.
isHasMeetVariable
)
{
return
}
let
labelMap
=
{
let
labelMap
=
{
dynamictext
:
'num'
,
dynamictext
:
'num'
,
image
:
'presetText'
image
:
'presetText'
...
@@ -1410,9 +1411,17 @@ function loopRenderImage(poolData, resData, label) {
...
@@ -1410,9 +1411,17 @@ function loopRenderImage(poolData, resData, label) {
let
itemResData
=
JSON
.
parse
(
resData
[
key
])
let
itemResData
=
JSON
.
parse
(
resData
[
key
])
let
itemValue
=
itemResData
&&
itemResData
[
dlItem
.
variable
]
let
itemValue
=
itemResData
&&
itemResData
[
dlItem
.
variable
]
// 每找到一个对应的变量值,加1
// 搜索"关于isSameGroupCount"查看说明
if
(
!
poolData
.
isSameGroupCount
)
{
poolData
.
isSameGroupCount
=
1
}
else
{
poolData
.
isSameGroupCount
++
}
// 取对应变量缓存过的值
// 取对应变量缓存过的值
let
cacheKey
=
`
${
dlItem
.
CheckData
.
equipmentId
||
dlItem
.
CheckData
.
equipmentid
}
-
${
dlItem
.
CheckData
.
id
}
`
let
cacheKey
=
`
${
dlItem
.
CheckData
.
equipmentId
||
dlItem
.
CheckData
.
equipmentid
}
-
${
dlItem
.
CheckData
.
id
}
`
if
(
requestLoopVaribleCache
[
cacheKey
]
===
undefined
)
{
if
(
requestLoopVaribleCache
[
cacheKey
]
===
undefined
)
{
requestLoopVaribleCache
[
cacheKey
]
=
itemValue
requestLoopVaribleCache
[
cacheKey
]
=
itemValue
}
else
{
}
else
{
itemValue
=
requestLoopVaribleCache
[
cacheKey
]
itemValue
=
requestLoopVaribleCache
[
cacheKey
]
...
@@ -1428,12 +1437,15 @@ function loopRenderImage(poolData, resData, label) {
...
@@ -1428,12 +1437,15 @@ function loopRenderImage(poolData, resData, label) {
(
flag
===
'!='
&&
itemValue
!=
dlItem
[
labelMap
[
label
]])
(
flag
===
'!='
&&
itemValue
!=
dlItem
[
labelMap
[
label
]])
)
)
if
(
isMeet
&&
!
flagItem
)
{
if
(
isMeet
&&
!
flagItem
)
{
flagItem
=
dlItem
flagItem
=
dlItem
}
}
})
})
if
(
!
flagItem
)
{
if
(
!
flagItem
)
{
if
(
poolData
.
isSameGroupCount
!==
poolData
.
DataList
.
length
)
{
return
}
// 给默认值
// 给默认值
if
(
label
===
'image'
)
{
if
(
label
===
'image'
)
{
$
(
`#image-img
${
poolData
.
dataPoolMapIndex
}
`
).
attr
(
'src'
,
poolData
.
DefaultImg
)
$
(
`#image-img
${
poolData
.
dataPoolMapIndex
}
`
).
attr
(
'src'
,
poolData
.
DefaultImg
)
...
@@ -1442,7 +1454,6 @@ function loopRenderImage(poolData, resData, label) {
...
@@ -1442,7 +1454,6 @@ function loopRenderImage(poolData, resData, label) {
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
text
(
poolData
.
DefaultText
)
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
text
(
poolData
.
DefaultText
)
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'color'
,
poolData
.
DefaultColor
)
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'color'
,
poolData
.
DefaultColor
)
}
}
return
}
}
// 只要有一个满足条件,则渲染该条件
// 只要有一个满足条件,则渲染该条件
...
@@ -1453,22 +1464,14 @@ function loopRenderImage(poolData, resData, label) {
...
@@ -1453,22 +1464,14 @@ function loopRenderImage(poolData, resData, label) {
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
text
(
flagItem
.
presetText
)
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
text
(
flagItem
.
presetText
)
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'color'
,
flagItem
.
backColor
)
$
(
`#dynamictext-text
${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'color'
,
flagItem
.
backColor
)
}
}
poolData
.
isHasMeetVariable
=
true
}
}
// 渲染矩形、圆形状态灯 label: commonlamp矩形状态灯 ellipselamp圆形状态灯
// 渲染矩形、圆形状态灯 label: commonlamp矩形状态灯 ellipselamp圆形状态灯
function
loopRenderLamp
(
poolData
,
resData
,
label
)
{
function
loopRenderLamp
(
poolData
,
resData
,
label
)
{
if
(
poolData
.
isHasMeetVariable
)
{
return
}
let
flagItem
=
null
let
flagItem
=
null
let
isSameGroup
=
true
poolData
.
DataList
.
forEach
((
dlItem
,
dlIndex
)
=>
{
poolData
.
DataList
.
forEach
((
dlItem
,
dlIndex
)
=>
{
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
dlIndex
}
-
${
dlItem
.
variable
}
`
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
dlIndex
}
-
${
dlItem
.
variable
}
`
// 只要DataList中有一个变量没有在resData找到对应的key,则说明这个组件的请求数据不是在同一组的
// 只要DataList中有一个变量没有在resData找到对应的key,则说明这个组件的请求数据不是在同一组的
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
isSameGroup
=
false
isSameGroup
=
false
...
@@ -1478,16 +1481,23 @@ function loopRenderLamp(poolData, resData, label) {
...
@@ -1478,16 +1481,23 @@ function loopRenderLamp(poolData, resData, label) {
let
itemResData
=
JSON
.
parse
(
resData
[
key
])
let
itemResData
=
JSON
.
parse
(
resData
[
key
])
let
itemValue
=
itemResData
&&
itemResData
[
dlItem
.
variable
]
let
itemValue
=
itemResData
&&
itemResData
[
dlItem
.
variable
]
// 每找到一个对应的变量值,加1
// 搜索"关于isSameGroupCount"查看说明
if
(
!
poolData
.
isSameGroupCount
)
{
poolData
.
isSameGroupCount
=
1
}
else
{
poolData
.
isSameGroupCount
++
}
// 取对应变量缓存过的值
// 取对应变量缓存过的值
let
cacheKey
=
`
${
dlItem
.
CheckData
.
equipmentId
||
dlItem
.
CheckData
.
equipmentid
}
-
${
dlItem
.
CheckData
.
id
}
`
let
cacheKey
=
`
${
dlItem
.
CheckData
.
equipmentId
||
dlItem
.
CheckData
.
equipmentid
}
-
${
dlItem
.
CheckData
.
id
}
`
if
(
requestLoopVaribleCache
[
cacheKey
]
===
undefined
)
{
if
(
requestLoopVaribleCache
[
cacheKey
]
===
undefined
)
{
requestLoopVaribleCache
[
cacheKey
]
=
itemValue
requestLoopVaribleCache
[
cacheKey
]
=
itemValue
}
else
{
}
else
{
itemValue
=
requestLoopVaribleCache
[
cacheKey
]
itemValue
=
requestLoopVaribleCache
[
cacheKey
]
}
}
let
flag
=
transFlag
(
dlItem
.
flag
)
let
flag
=
transFlag
(
dlItem
.
flag
)
let
isMeet
=
(
let
isMeet
=
(
(
flag
===
'='
&&
itemValue
==
dlItem
.
num
)
||
(
flag
===
'='
&&
itemValue
==
dlItem
.
num
)
||
(
flag
===
'>='
&&
itemValue
>=
dlItem
.
num
)
||
(
flag
===
'>='
&&
itemValue
>=
dlItem
.
num
)
||
...
@@ -1503,6 +1513,9 @@ function loopRenderLamp(poolData, resData, label) {
...
@@ -1503,6 +1513,9 @@ function loopRenderLamp(poolData, resData, label) {
})
})
if
(
!
flagItem
)
{
if
(
!
flagItem
)
{
if
(
poolData
.
isSameGroupCount
!==
poolData
.
DataList
.
length
)
{
return
}
// 给默认颜色、闪烁
// 给默认颜色、闪烁
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'background-color'
,
poolData
.
DefaultColor
)
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'background-color'
,
poolData
.
DefaultColor
)
if
(
poolData
.
DefaultFlashing
)
{
// 默认闪烁
if
(
poolData
.
DefaultFlashing
)
{
// 默认闪烁
...
@@ -1515,13 +1528,11 @@ function loopRenderLamp(poolData, resData, label) {
...
@@ -1515,13 +1528,11 @@ function loopRenderLamp(poolData, resData, label) {
// 只要有一个满足条件,则渲染该条件的颜色
// 只要有一个满足条件,则渲染该条件的颜色
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'background-color'
,
flagItem
.
backColor
)
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
css
(
'background-color'
,
flagItem
.
backColor
)
if
(
flagItem
.
flashing
)
{
if
(
flagItem
.
flashing
)
{
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
addClass
(
'animated-flash'
)
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
addClass
(
'animated-flash'
)
}
else
{
}
else
{
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
removeClass
(
'animated-flash'
)
$
(
`#
${
label
}${
poolData
.
dataPoolMapIndex
}
`
).
removeClass
(
'animated-flash'
)
}
}
poolData
.
isHasMeetVariable
=
true
}
}
// 把有DataList的组件的请求数据推到请求池
// 把有DataList的组件的请求数据推到请求池
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment