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
dd0332d3
Commit
dd0332d3
authored
Sep 23, 2021
by
莫坚培
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 增加读写框组件渲染函数
parent
53cbc2b3
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
96 additions
and
52 deletions
+96
-52
dashboard.js
js/dashboard.js
+94
-50
tokenSetting.js
js/tokenSetting.js
+2
-2
No files found.
js/dashboard.js
View file @
dd0332d3
...
...
@@ -27,7 +27,7 @@ var time = 5000
let
requestLoop_timer
=
null
// 轮询定时器
let
requestLoop_dataPool
=
[]
// 各个组件实时刷新的请求数据,放到一个集合里,原来的多个组件请求合并成一个请求发送
let
requestLoop_stopFlag
=
false
// requestLoop_dataPool请求中标志,正在请求时不进行下一波轮询,前一波请求完成才执行下一波
let
requestLoop_time
=
5
000
// 轮询间隔时间
let
requestLoop_time
=
2
000
// 轮询间隔时间
let
requestLoop_groupSliceNum
=
10
// 请求池requestLoop_dataPool分组,每组多少个
// 添加定时器
...
...
@@ -846,7 +846,7 @@ function initCanvas() {
LineChartDataFun
(
'tool'
)
},
20
)
clearInterval
(
timer1
)
setTimer
()
//
setTimer()
// 开始轮询
clearInterval
(
requestLoop_timer
)
startRequestLoop
(
requestLoop_time
)
...
...
@@ -919,8 +919,8 @@ function setTimer() {
// 轮询数据,用新逻辑,合并各组件的请求数据,做合并请求,例如,300个组件,分成6个请求,每个请求包含50个组件的数据
function
startRequestLoop
()
{
collectRequestLoopData
()
console
.
log
(
'requestLoop_dataPool'
,
requestLoop_dataPool
)
requestLoop_dataPool
=
collectRequestLoopData
()
console
.
log
(
'Controls.dataPoolMap'
,
Controls
.
dataPoolMap
)
let
dataPoolList
=
sliceRequestLoopData
(
requestLoop_groupSliceNum
)
requestLoop_timer
=
setInterval
(
async
()
=>
{
...
...
@@ -944,7 +944,13 @@ function sendRequestLoopData(list, i, len) {
}
if
(
res
.
data
.
data
&&
Object
.
prototype
.
toString
.
call
(
res
.
data
.
data
)
===
'[object Object]'
)
{
Object
.
keys
(
res
.
data
.
data
).
forEach
(
key
=>
{
renderRequestLoopData
(
Controls
.
dataPoolMap
[
key
])
let
resData
=
res
.
data
.
data
[
key
]
try
{
resData
=
JSON
.
parse
(
res
.
data
.
data
[
key
])
}
catch
(
err
)
{
console
.
log
(
'JSON转义出错'
,
err
)
}
renderRequestLoopData
(
Controls
.
dataPoolMap
[
key
],
JSON
.
parse
(
res
.
data
.
data
[
key
]))
})
}
resolve
(
res
)
...
...
@@ -959,38 +965,74 @@ function sendRequestLoopData(list, i, len) {
}
// 对轮询获得的数据进行渲染
function
renderRequestLoopData
(
data
)
{
console
.
log
(
98741
,
Object
.
prototype
.
toString
.
call
(
data
))
if
(
Object
.
prototype
.
toString
.
call
(
data
)
!==
'[object Object]'
)
{
return
}
Object
.
keys
(
data
).
forEach
(
key
=>
{
renderRequestLoopData_item
(
Controls
.
dataPoolMap
[
key
])
})
}
// 分类渲染
function
renderRequestLoopData_item
(
obj
)
{
switch
(
obj
.
ControlType
)
{
function
renderRequestLoopData
(
mData
,
resData
)
{
switch
(
mData
.
ControlType
)
{
case
'datatextblock'
:
renderDatatextblock
(
obj
)
renderDatatextblock
(
mData
,
resData
)
break
}
}
function
renderDatatextblock
(
obj
)
{
// 渲染读写框
function
renderDatatextblock
(
mData
,
resData
)
{
let
dight
=
mData
.
DecimalDigits
===
null
?
0
:
mData
.
DecimalDigits
let
resDataValue
=
resData
[
mData
.
CheckData
.
name
]
let
Data
=
resDataValue
.
toFixed
(
dight
)
console
.
log
(
'resDataValue'
,
resDataValue
)
// 给读写框赋值
$
(
`#datatextblock
${
mData
.
dataPoolMapIndex
}
`
).
text
(
resDataValue
)
let
flagItem
=
mData
.
DataList
.
find
(
item
=>
{
let
flag
=
transFlag
(
item
.
flag
)
return
(
(
flag
===
'='
&&
Data
==
item
.
num
)
||
(
flag
===
'>='
&&
Data
>=
item
.
num
)
||
(
flag
===
'<='
&&
Data
<=
item
.
num
)
||
(
flag
===
'>'
&&
Data
>
item
.
num
)
||
(
flag
===
'<'
&&
Data
<
item
.
num
)
||
(
flag
===
'!='
&&
item
.
num
!=
Data
)
)
})
// 只要有一个满足条件,则渲染该条件的颜色
if
(
flagItem
&&
flagItem
.
conCheck
)
{
$
(
`#datatextblock
${
mData
.
dataPoolMapIndex
}
`
).
css
(
'color'
,
flagItem
.
backColor
)
}
}
// 整合所有组件的请求数据,放到一个数组里
function
collectRequestLoopData
()
{
let
resList
=
[]
requestLoop_dataPool
=
[]
Controls
.
dataPoolMap
=
{}
Controls
.
ControlList
.
forEach
((
item
,
index
)
=>
{
switch
(
item
.
ControlType
)
{
case
'datatextblock'
:
// 数值显示
case
'rwtextbox'
:
// 读写框
resList
.
push
({
handleRequestData_d_r
(
item
,
index
)
break
case
'commonlamp'
:
// 矩形状态灯
case
'image'
:
// 动态图片
case
'dynamictext'
:
// 动态文本
case
'ellipselamp'
:
// 圆形状态灯
handleRequestData_DataList
(
item
,
index
)
break
case
'piechart'
:
handleRequestData_pie
(
item
,
index
)
break
case
'dashboardchart'
:
handleRequestData_dashboard
(
item
,
index
)
break
case
'linechart'
:
handleRequestData_line_bar
(
'LineChartItemList'
,
item
,
index
)
break
case
'barchart'
:
handleRequestData_line_bar
(
'BarChartItemList'
,
item
,
index
)
break
}
})
}
// 把有读写框、数值显示的请求数据推到请求池
function
handleRequestData_d_r
(
item
,
index
)
{
requestLoop_dataPool
.
push
({
urlType
:
'status'
,
assemblyKey
:
`
${
index
}
-
${
item
.
CheckData
.
name
}
`
,
statusDataDTO
:
{
...
...
@@ -999,15 +1041,16 @@ function collectRequestLoopData() {
variableCode
:
item
.
CheckData
.
name
}
})
console
.
log
(
requestLoop_dataPool
,
88
);
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
CheckData
.
name
}
`
]
=
item
break
case
'commonlamp'
:
// 矩形状态灯
case
'image'
:
// 动态图片
case
'dynamictext'
:
// 动态文本
case
'ellipselamp'
:
// 圆形状态灯
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
CheckData
.
name
}
`
].
dataPoolMapIndex
=
index
}
// 把有DataList的组件的请求数据推到请求池
function
handleRequestData_DataList
(
item
,
index
)
{
item
.
DataList
.
forEach
((
dlItem
,
dlIndex
)
=>
{
if
(
dlItem
.
variable
!==
'选择'
&&
dlItem
.
CheckData
)
{
resList
.
push
({
requestLoop_dataPool
.
push
({
urlType
:
'status'
,
assemblyKey
:
`
${
index
}
-
${
dlIndex
}
-
${
dlItem
.
CheckData
.
name
}
`
,
statusDataDTO
:
{
...
...
@@ -1017,10 +1060,13 @@ function collectRequestLoopData() {
}
})
Controls
.
dataPoolMap
[
`
${
index
}
-
${
dlIndex
}
-
${
dlItem
.
CheckData
.
name
}
`
]
=
item
Controls
.
dataPoolMap
[
`
${
index
}
-
${
dlIndex
}
-
${
dlItem
.
CheckData
.
name
}
`
].
dataPoolMapIndex
=
index
}
})
break
case
'piechart'
:
}
// 把饼图的请求数据推到请求池
function
handleRequestData_pie
(
item
,
index
)
{
Controls
.
Data
.
PieChartItemList
.
forEach
(
pieItem
=>
{
if
(
pieItem
.
name
===
item
.
Name
)
{
if
(
pieItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
...
...
@@ -1033,22 +1079,26 @@ function collectRequestLoopData() {
variableCode
:
vc
.
name
}
})
resList
.
push
({
requestLoop_dataPool
.
push
({
urlType
:
'pieChartOrPanel'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
pieChartOrPanel
})
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
]
=
pieItem
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
dataPoolMapIndex
=
index
}
}
})
break
case
'dashboardchart'
:
}
// 把仪表盘的请求数据推到请求池
function
handleRequestData_dashboard
(
item
,
index
)
{
Controls
.
Data
.
DashBoardChartItemList
.
forEach
(
dashItem
=>
{
if
(
dashItem
.
name
===
item
.
Name
)
{
if
(
dashItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
VariableCheckDataObj
=
dashItem
.
option
?.
Variable
?.
CheckData
||
{}
resList
.
push
({
requestLoop_dataPool
.
push
({
urlType
:
'pieChartOrPanel'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
pieChartOrPanel
:
[{
...
...
@@ -1058,28 +1108,22 @@ function collectRequestLoopData() {
}]
})
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
]
=
dashItem
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
dataPoolMapIndex
=
index
}
}
})
break
case
'linechart'
:
line_bar_handleRequestData
(
'LineChartItemList'
)
break
case
'barchart'
:
line_bar_handleRequestData
(
'BarChartItemList'
)
break
default
:
break
}
// 把折线图、柱状图的请求数据推到请求池
function
line_bar_handleRequestData
(
label
)
{
}
// 把折线图、柱状图的请求数据推到请求池
function
handleRequestData_line_bar
(
label
,
item
,
index
)
{
Controls
.
Data
[
label
].
forEach
(
pieItem
=>
{
if
(
pieItem
.
name
===
item
.
Name
)
{
if
(
pieItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
list
=
pieItem
.
option
?.
Variables
||
[]
list
.
forEach
((
variableItem
,
variableIndex
)
=>
{
let
vc
=
variableItem
.
CheckData
resList
.
push
({
requestLoop_dataPool
.
push
({
urlType
:
'limit'
,
assemblyKey
:
`
${
index
}
-
${
variableIndex
}
-
${
item
.
Name
}
`
,
limitData
:
{
...
...
@@ -1089,15 +1133,15 @@ function collectRequestLoopData() {
}
})
Controls
.
dataPoolMap
[
`
${
index
}
-
${
variableIndex
}
-
${
item
.
Name
}
`
]
=
pieItem
Controls
.
dataPoolMap
[
`
${
index
}
-
${
variableIndex
}
-
${
item
.
Name
}
`
].
ControlType
=
item
.
ControlType
})
}
}
})
}
})
return
resList
}
// 对requestLoop_dataPool进行分组
function
sliceRequestLoopData
(
num
)
{
let
list
=
[]
...
...
js/tokenSetting.js
View file @
dd0332d3
...
...
@@ -3,7 +3,7 @@
* @description: 文件描述
* @Date: 2021-09-16 18:33:55
* @LastEditors: 莫靓仔
* @LastEditTime: 2021-09-2
2 15:36:48
* @LastEditTime: 2021-09-2
3 09:52:46
*/
let
setObj
=
{
// 厂家大佬
...
...
@@ -20,7 +20,7 @@ let setObj = {
}
}
let
defaultObj
=
'set
1
'
let
defaultObj
=
'set
2
'
window
.
devToken
=
setObj
[
defaultObj
].
devToken
window
.
devAppId
=
setObj
[
defaultObj
].
devAppId
window
.
devTenantId
=
setObj
[
defaultObj
].
devTenantId
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