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
83e9cb68
Commit
83e9cb68
authored
Sep 26, 2021
by
莫坚培
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 渲染工作完成&去掉部分刷新逻辑
parent
95b3e4a4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
370 additions
and
239 deletions
+370
-239
color.js
js/color.js
+16
-16
dashboard.js
js/dashboard.js
+350
-220
tokenSetting.js
js/tokenSetting.js
+2
-2
treeConfig.js
js/treeConfig.js
+2
-1
No files found.
js/color.js
View file @
83e9cb68
...
...
@@ -120,20 +120,20 @@
var
elem
=
this
.
bindElem
;
var
top
=
elem
.
offsetTop
;
var
left
=
elem
.
offsetLeft
;
console
.
log
(
elem
)
console
.
log
(
elem
.
offsetTop
)
console
.
log
(
elem
.
offsetLeft
)
setTimeout
(()
=>
{
console
.
log
(
elem
.
offsetTop
)
console
.
log
(
elem
.
offsetLeft
)
},
1000
)
//
console.log(elem)
//
console.log( elem.offsetTop)
//
console.log( elem.offsetLeft)
//
setTimeout(()=>{
//
console.log( elem.offsetTop)
//
console.log( elem.offsetLeft)
//
},1000)
while
(
elem
.
offsetParent
)
{
top
+=
elem
.
offsetParent
.
offsetTop
;
left
+=
elem
.
offsetParent
.
offsetLeft
;
elem
=
elem
.
offsetParent
;
}
console
.
log
(
$
(
window
))
//
console.log($(window))
if
(
left
+
230
>
$
(
window
).
width
()){
left
=
left
-
200
+
this
.
bindElem
.
offsetWidth
}
...
...
@@ -141,8 +141,8 @@
top
=
top
-
406
-
this
.
bindElem
.
offsetHeight
}
top
=
top
+
this
.
bindElem
.
offsetHeight
console
.
log
(
'top'
,
JSON
.
parse
(
top
))
console
.
log
(
'left'
,
JSON
.
parse
(
left
))
//
console.log('top',JSON.parse(top))
//
console.log('left',JSON.parse(left))
this
.
pancelLeft
=
left
+
this
.
elem_colorPalette
.
clientWidth
;
this
.
pancelTop
=
top
+
this
.
elem_colorPalette
.
clientHeight
;
...
...
@@ -180,8 +180,8 @@
$
(
'.mycolordiv'
)[
i1
].
style
.
display
=
'none'
}
let
_that
=
this
console
.
log
(
_this
.
bindElem
)
console
.
log
(
$
(
_that
)[
0
])
//
console.log(_this.bindElem)
//
console.log($(_that)[0])
let
top
=
$
(
_that
)[
0
].
offsetTop
;
let
left
=
$
(
_that
)[
0
].
offsetLeft
;
let
arr
=
[]
...
...
@@ -189,7 +189,7 @@
if
(
_this
.
opt1
.
type
!==
'iframe'
){
while
(
$
(
_that
)[
0
].
offsetParent
)
{
arr
.
push
(
$
(
_that
)[
0
].
offsetParent
)
console
.
log
(
$
(
_that
)[
0
].
offsetParent
)
//
console.log($(_that)[0].offsetParent)
top
+=
$
(
_that
)[
0
].
offsetParent
.
offsetTop
;
left
+=
$
(
_that
)[
0
].
offsetParent
.
offsetLeft
;
_that
=
$
(
_that
)[
0
].
offsetParent
;
...
...
@@ -206,9 +206,9 @@
}
top
=
top
+
$
(
this
)[
0
].
offsetHeight
console
.
log
(
'top'
,
JSON
.
parse
(
top
))
console
.
log
(
'left'
,
JSON
.
parse
(
left
))
console
.
log
(
$
(
'body'
).
height
()
-
top
)
//
console.log('top',JSON.parse(top))
//
console.log('left',JSON.parse(left))
//
console.log($('body').height()-top)
if
(
_this
.
opt1
.
type
==
'iframe'
){
_this
.
util
.
css
(
_this
.
elem_wrap
,
{
...
...
js/dashboard.js
View file @
83e9cb68
...
...
@@ -27,8 +27,9 @@ var time = 5000
let
requestLoopTimer
=
null
// 轮询定时器
let
requestLoopDataPool
=
[]
// 各个组件实时刷新的请求数据,放到一个集合里,原来的多个组件请求合并成一个请求发送
let
requestLoopStopFlag
=
false
// requestLoopDataPool请求中标志,正在请求时不进行下一波轮询,前一波请求完成才执行下一波
let
requestLoopTime
=
2
000
// 轮询间隔时间
let
requestLoopTime
=
5
000
// 轮询间隔时间
let
requestLoopGroupSliceNum
=
10
// 请求池requestLoopDataPool分组,每组多少个
let
requestLoopGroupSliceRes
=
[]
// 分组结果
// 添加定时器
var
timer1
=
null
...
...
@@ -369,10 +370,17 @@ function nodeCLick(e, treeId, treeNode, type) {
}
}
function
initCanvas
()
{
async
function
initCanvas
()
{
if
(
!
Controls
.
ControlList
)
{
return
}
// 收集组件数据
collectRequestLoopData
()
console
.
log
(
'分组池'
,
requestLoopDataPool
)
// 对数据分组
sliceRequestLoopData
(
requestLoopGroupSliceNum
)
console
.
log
(
'分组结果'
,
requestLoopGroupSliceRes
)
let
html
=
''
let
dateList
=
[]
let
wrap
=
document
.
getElementById
(
'right-wrap'
)
...
...
@@ -512,7 +520,7 @@ function initCanvas() {
</div>
</div>
`
renderCommonlamp
(
index
)
//
renderCommonlamp(index)
}
else
if
(
item
.
ControlType
===
'cornerbutton'
)
{
//控制按钮
...
...
@@ -847,11 +855,14 @@ function initCanvas() {
},
20
)
clearInterval
(
timer1
)
// setTimer()
// 开始轮询
clearInterval
(
requestLoopTimer
)
// 初始化完成后开始轮询
for
(
let
i
=
0
,
len
=
requestLoopGroupSliceRes
.
length
;
i
<
len
;
i
++
)
{
await
sendLoopDataRequest
(
requestLoopGroupSliceRes
[
i
],
i
,
len
)
}
startRequestLoop
(
requestLoopTime
)
// wrap.style.background = Common.BackColor
}
//添加定时器
...
...
@@ -919,17 +930,15 @@ function setTimer() {
// 轮询数据,用新逻辑,合并各组件的请求数据,做合并请求,例如,300个组件,分成6个请求,每个请求包含50个组件的数据
function
startRequestLoop
()
{
collectRequestLoopData
()
console
.
log
(
'requestLoopDataPool'
,
requestLoopDataPool
)
console
.
log
(
'Controls.dataPoolMap'
,
Controls
.
dataPoolMap
)
let
dataPoolList
=
sliceRequestLoopData
(
requestLoopGroupSliceNum
)
console
.
log
(
'%c⭐️⭐️⭐️⭐️⭐️⭐️⭐️开始轮询⭐️⭐️⭐️⭐️⭐️⭐️⭐️'
,
'color:red;'
);
requestLoopTimer
=
setInterval
(
async
()
=>
{
if
(
requestLoopStopFlag
)
{
return
}
for
(
let
i
=
0
,
len
=
dataPoolList
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
requestLoopGroupSliceRes
.
length
;
i
<
len
;
i
++
)
{
requestLoopStopFlag
=
true
// 进入循环即表示已经开始请求
await
sendLoopDataRequest
(
dataPoolList
[
i
],
i
,
len
)
await
sendLoopDataRequest
(
requestLoopGroupSliceRes
[
i
],
i
,
len
)
}
},
requestLoopTime
)
}
...
...
@@ -942,19 +951,23 @@ function sendLoopDataRequest(list, i, len) {
if
(
i
===
len
-
1
)
{
requestLoopStopFlag
=
false
}
if
(
res
.
data
.
data
&&
Object
.
prototype
.
toString
.
call
(
res
.
data
.
data
)
===
'[object Object]'
)
{
// 对拿到的数据对象进行分组,该对象的键值第一个“-”前面的数字是组件的索引值,根据这个索引值分组,相同的分为一组
let
handleResMap
=
{}
Object
.
keys
(
res
.
data
.
data
).
forEach
(
key
=>
{
let
keyIndex
=
Number
(
key
.
split
(
'-'
)[
0
])
if
(
!
handleResMap
[
keyIndex
])
{
handleResMap
[
keyIndex
]
=
{}
}
handleResMap
[
keyIndex
][
key
]
=
res
.
data
.
data
[
key
]
})
console
.
log
(
'handleResMap'
,
handleResMap
)
console
.
log
(
'dataPoolMap'
,
Controls
.
dataPoolMap
)
Object
.
keys
(
handleResMap
).
forEach
(
key
=>
{
renderRequestLoopData
(
Controls
.
dataPoolMap
[
key
],
handleResMap
[
key
])
renderRequestLoopData
(
Controls
.
dataPoolMap
[
key
],
handleResMap
[
key
]
,
res
.
data
.
code
)
})
}
resolve
(
res
)
...
...
@@ -969,7 +982,11 @@ function sendLoopDataRequest(list, i, len) {
}
// 对轮询获得的数据进行渲染
function
renderRequestLoopData
(
poolData
,
resData
)
{
function
renderRequestLoopData
(
poolData
,
resData
,
resCode
)
{
if
(
!
poolData
||
!
poolData
.
ControlType
)
{
return
}
let
ControlTypeMap
=
{
// 数值显示
datatextblock
:
()
=>
loopRenderDatatextblock
(
poolData
,
resData
,
'datatextblock'
),
...
...
@@ -984,26 +1001,236 @@ function renderRequestLoopData(poolData, resData) {
// 动态文本
dynamictext
:
()
=>
loopRenderImage
(
poolData
,
resData
,
'dynamictext'
),
// 饼图
piechart
:
()
=>
loopRenderPiechart
(
poolData
,
resData
),
// 仪表
板
// dashboardchart: () => loopRenderImage(poolData, resData
),
piechart
:
()
=>
loopRenderPiechart
(
poolData
,
resData
,
resCode
),
// 仪表
盘
dashboardchart
:
()
=>
loopRenderDashboardchart
(
poolData
,
resData
,
resCode
),
// 折线图
// linechart: () => loopRenderImage(poolData, resData
),
linechart
:
()
=>
loopRenderLinechart
(
poolData
,
resData
,
resCode
),
// 柱状图
// barchart: () => loopRenderImage(poolData, resData
)
barchart
:
()
=>
loopRenderBarchart
(
poolData
,
resData
,
resCode
)
}
ControlTypeMap
[
poolData
.
ControlType
]
&&
ControlTypeMap
[
poolData
.
ControlType
]()
}
function
loopRenderPiechart
(
poolData
,
resData
)
{
// 渲染柱状图
function
loopRenderBarchart
(
poolData
,
resData
,
resCode
)
{
if
(
resCode
!==
0
)
{
// 清除图表数据
resetBarChart
(
poolData
.
name
)
return
}
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
return
}
let
resValue
=
JSON
.
parse
(
resData
[
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
])
if
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
))
{
let
chart
=
echarts
.
init
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
))
let
chartOption
=
chart
.
getOption
()
let
timeDate
=
changerealTimeFormat
(
poolData
.
defaultDataConfig
.
timedate
)
resValue
.
x
.
forEach
((
rx
,
rxi
)
=>
{
// 此处遍历修改x轴显示格式
resValue
.
x
[
rxi
]
=
dayjs
(
rx
).
format
(
timeDate
)
})
let
serireData
=
[]
let
variablesList
=
poolData
.
option
.
Variables
let
IsTime
=
poolData
.
option
.
IsTime
let
left
=
poolData
.
option
.
DrawContent
.
LeftMargin
variablesList
.
forEach
((
k
,
ki
)
=>
{
let
dataList
=
resValue
[
`
${
k
.
CheckData
.
equipmentId
||
k
.
CheckData
.
equipmentid
}
,
${
k
.
CheckData
.
name
}
`
]
dataList
=
dataList
.
map
(
i
=>
{
if
(
i
)
{
if
(
left
<=
getTextWidth
(
String
(
i
),
16
))
{
left
=
getTextWidth
(
String
(
i
),
16
)
}
i
=
i
.
toFixed
(
variablesList
[
ki
].
d
||
0
)
}
return
i
})
let
obj
=
{
name
:
variablesList
[
ki
].
DimensionName
,
data
:
dataList
,
type
:
'bar'
,
label
:
chartOption
.
series
[
0
].
label
,
emphasis
:
chartOption
.
series
[
0
].
emphasis
}
!
IsTime
&&
(
obj
.
stack
=
'堆积'
)
serireData
.
push
(
obj
)
})
if
(
poolData
.
option
.
AxisChartYAxis
.
yAxisData
)
{
chartOption
.
yAxis
[
0
].
data
=
resData
.
x
?
resData
.
x
:
poolData
.
option
.
BarChartData
.
option
.
AxisChartYAxis
.
yAxisData
let
list
=
chartOption
.
yAxis
[
0
].
data
[
0
]
if
(
left
<=
getTextWidth
(
list
,
16
))
{
left
=
getTextWidth
(
list
,
16
)
}
}
else
{
chartOption
.
xAxis
[
0
].
data
=
resData
.
x
?
resData
.
x
:
poolData
.
option
.
XData
}
chartOption
.
series
=
[]
if
(
poolData
.
option
.
Legend
.
Position
==
"RightCenter"
)
{
chartOption
.
grid
=
{
left
,
right
:
poolData
.
option
.
DrawContent
.
RightMargin
}
}
chartOption
.
yAxis
.
type
=
'value'
chartOption
.
yAxis
.
scale
=
true
let
dateArr
=
judegData
(
chartOption
.
xAxis
[
0
].
data
)
let
bottom
=
dataZoomVal
if
(
dateArr
.
length
>
0
)
{
chartOption
.
xAxis
[
0
].
axisLabel
.
rotate
=
-
45
bottom
=
getMaxWidth
(
dateArr
)
}
chartOption
.
dataZoom
=
addDataZoom
()
chartOption
.
grid
.
bottom
=
bottom
chartOption
.
series
=
serireData
chart
.
setOption
(
chartOption
,
true
)
}
}
// 渲染折线图
function
loopRenderLinechart
(
poolData
,
resData
,
resCode
)
{
console
.
log
(
'折线图'
,
poolData
)
console
.
log
(
'折线图'
,
resData
)
// 清空数据
resetPieChart
(
poolData
.
name
)
if
(
resCode
!==
0
)
{
resetLineChart
(
poolData
.
name
)
return
}
let
timeDate
=
changerealTimeFormat
(
poolData
.
defaultDataConfig
.
timedate
)
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
return
}
let
resValue
=
JSON
.
parse
(
resData
[
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
])
resValue
.
x
.
forEach
((
rx
,
rxi
)
=>
{
// 此处遍历修改x轴显示格式
resValue
.
x
[
rxi
]
=
dayjs
(
rx
).
format
(
timeDate
)
})
if
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
))
{
let
chart
=
echarts
.
init
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
))
let
chartOption
=
chart
.
getOption
()
chartOption
.
xAxis
[
0
].
data
=
resValue
.
x
.
flat
(
Infinity
)
let
serireData
=
[]
let
variablesList
=
poolData
.
option
.
Variables
let
left
=
poolData
.
option
.
DrawContent
.
LeftMargin
variablesList
.
forEach
((
k
,
ki
)
=>
{
let
dataList
=
resValue
[
`
${
k
.
CheckData
.
equipmentId
||
k
.
CheckData
.
equipmentid
}
,
${
k
.
CheckData
.
name
}
`
]
dataList
=
dataList
.
map
(
item1
=>
{
if
(
item1
)
{
if
(
left
<=
getTextWidth
(
String
(
item1
*
100
),
16
))
{
left
=
getTextWidth
(
String
(
item1
*
100
),
16
)
}
item1
=
item1
.
toFixed
(
variablesList
[
ki
].
d
||
0
)
}
return
item1
})
serireData
.
push
({
name
:
chartOption
.
legend
[
0
].
data
[
ki
],
data
:
dataList
,
type
:
'line'
,
label
:
chartOption
.
series
[
0
].
label
,
emphasis
:
chartOption
.
series
[
0
].
emphasis
})
})
if
(
poolData
.
option
.
Legend
.
Position
==
"RightCenter"
)
{
chartOption
.
grid
=
{
left
:
left
,
right
:
poolData
.
option
.
DrawContent
.
RightMargin
}
}
chartOption
.
series
=
[]
let
dateArr
=
judegData
(
chartOption
.
xAxis
[
0
].
data
)
let
bottom
=
dataZoomVal
if
(
dateArr
.
length
>
0
)
{
chartOption
.
xAxis
[
0
].
axisLabel
.
rotate
=
-
45
bottom
=
getMaxWidth
(
dateArr
)
}
chartOption
.
dataZoom
=
addDataZoom
()
chartOption
.
grid
.
bottom
=
bottom
chartOption
.
series
=
serireData
chart
.
setOption
(
chartOption
,
true
)
}
}
// 渲染仪表盘
function
loopRenderDashboardchart
(
poolData
,
resData
,
resCode
)
{
// 清空数据
if
(
resCode
!==
0
)
{
resetDashboartChart
(
poolData
.
name
)
return
}
if
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
))
{
let
chart
=
echarts
.
init
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
));
let
chartOption
=
chart
.
getOption
()
let
serireData
=
[]
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
return
}
let
resValue
=
JSON
.
parse
(
resData
[
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
])
let
variableInfo
=
poolData
.
option
.
Variable
if
(
resValue
)
{
let
value
=
resValue
[
variableInfo
.
CheckData
.
equipmentId
||
variableInfo
.
CheckData
.
equipmenid
][
variableInfo
.
CheckData
.
name
]
serireData
.
push
({
value
})
}
chartOption
.
series
[
chartOption
.
series
.
length
-
1
].
data
=
serireData
chartOption
.
series
[
0
].
data
=
serireData
chartOption
.
series
[
0
].
detail
.
color
=
variableInfo
.
Tooltip
.
SeriesDetailColor
||
'#000'
chart
.
setOption
(
chartOption
,
true
)
}
}
// 渲染饼图
function
loopRenderPiechart
(
poolData
,
resData
,
resCode
)
{
// 清空数据
if
(
resCode
!==
0
)
{
resetPieChart
(
poolData
.
name
)
return
}
if
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
))
{
let
chart
=
echarts
.
init
(
document
.
getElementById
(
`
${
poolData
.
name
}
`
));
let
chartOption
=
chart
.
getOption
()
let
serireData
=
[]
let
resValue
=
JSON
.
parse
(
resData
[
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
])
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
poolData
.
name
}
`
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
return
}
let
resValue
=
JSON
.
parse
(
resData
[
key
])
if
(
resValue
)
{
let
variablesList
=
poolData
.
option
.
Variables
...
...
@@ -1011,7 +1238,7 @@ function loopRenderPiechart(poolData, resData) {
let
value
=
resValue
[
vItem
.
CheckData
.
equipmentId
||
vItem
.
CheckData
.
equipmentid
][
vItem
.
CheckData
.
name
]
value
&&
(
value
=
value
.
toFixed
(
vItem
.
d
||
0
))
serireData
.
push
({
value
:
value
,
value
,
name
:
chartOption
.
legend
[
0
].
data
[
vIndex
],
label
:
chartOption
.
series
[
0
].
data
[
vIndex
].
label
,
emphasis
:
chartOption
.
series
[
0
].
data
[
vIndex
].
emphasis
...
...
@@ -1048,6 +1275,11 @@ function loopRenderImage(poolData, resData, label) {
let
flagItem
=
poolData
.
DataList
.
find
((
item
,
index
)
=>
{
// 拼装跟返回的数据一样的key,然后找到对应的数据
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
index
}
-
${
item
.
variable
}
`
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
return
false
}
let
itemResData
=
JSON
.
parse
(
resData
[
key
])
let
itemValue
=
itemResData
[
item
.
variable
]
let
flag
=
transFlag
(
item
.
flag
)
...
...
@@ -1085,7 +1317,7 @@ function loopRenderDatatextblock(poolData, resData, label) {
let
valueInfo
=
JSON
.
parse
(
resData
[
Object
.
keys
(
resData
)[
0
]])
let
resDataValue
=
valueInfo
[
poolData
.
CheckData
.
name
]
if
(
!
resDataValue
)
{
if
(
!
[
'number'
,
'string'
].
includes
(
typeof
resDataValue
)
)
{
return
}
...
...
@@ -1132,14 +1364,15 @@ function loopRenderLamp(poolData, resData, label) {
let
flagItem
=
poolData
.
DataList
.
find
((
item
,
index
)
=>
{
let
key
=
`
${
poolData
.
dataPoolMapIndex
}
-
${
index
}
-
${
item
.
variable
}
`
if
(
!
resData
.
hasOwnProperty
(
key
)
||
Object
.
prototype
.
toString
.
call
(
JSON
.
parse
(
resData
[
key
]))
!==
'[object Object]'
)
{
return
false
}
let
itemResData
=
JSON
.
parse
(
resData
[
key
])
let
itemValue
=
itemResData
[
item
.
variable
]
let
flag
=
transFlag
(
item
.
flag
)
if
(
!
itemResData
)
{
return
false
}
return
(
(
flag
===
'='
&&
itemValue
==
item
.
num
)
||
(
flag
===
'>='
&&
itemValue
>=
item
.
num
)
||
...
...
@@ -1166,37 +1399,35 @@ function loopRenderLamp(poolData, resData, label) {
function
collectRequestLoopData
()
{
requestLoopDataPool
=
[]
Controls
.
dataPoolMap
=
{}
Controls
.
ControlList
.
forEach
((
item
,
index
)
=>
{
switch
(
item
.
ControlType
)
{
case
'datatextblock'
:
// 数值显示
case
'rwtextbox'
:
// 读写框
handleRequestDataText
(
item
,
index
)
break
case
'commonlamp'
:
// 矩形状态灯
case
'ellipselamp'
:
// 圆形状态灯
case
'image'
:
// 动态图片
case
'dynamictext'
:
// 动态文本
handleRequestDataDataList
(
item
,
index
)
break
case
'piechart'
:
// 饼图
handleRequestDataPie
(
item
,
index
)
break
case
'dashboardchart'
:
// 仪表板
handleRequestDataDashboard
(
item
,
index
)
break
case
'linechart'
:
// 折线图
handleRequestDataLineAndBar
(
'LineChartItemList'
,
item
,
index
)
break
case
'barchart'
:
// 柱状图
handleRequestDataLineAndBar
(
'BarChartItemList'
,
item
,
index
)
break
}
let
funMap
=
{
// 数值显示
datatextblock
:
(
item
,
index
)
=>
handleRequestDataText
(
item
,
index
),
// 读写框
rwtextbox
:
(
item
,
index
)
=>
handleRequestDataText
(
item
,
index
),
// 矩形状态灯
commonlamp
:
(
item
,
index
)
=>
handleRequestDataDataList
(
item
,
index
),
// 圆形状态灯
ellipselamp
:
(
item
,
index
)
=>
handleRequestDataDataList
(
item
,
index
),
// 动态图片
image
:
(
item
,
index
)
=>
handleRequestDataDataList
(
item
,
index
),
// 动态文本
dynamictext
:
(
item
,
index
)
=>
handleRequestDataDataList
(
item
,
index
),
// 饼图
piechart
:
(
item
,
index
)
=>
handleRequestDataPie
(
item
,
index
),
// 仪表盘
dashboardchart
:
(
item
,
index
)
=>
handleRequestDataDashboard
(
item
,
index
),
// 折线图
linechart
:
(
item
,
index
)
=>
handleRequestDataLineAndBar
(
'LineChartItemList'
,
item
,
index
),
// 柱状图
barchart
:
(
item
,
index
)
=>
handleRequestDataLineAndBar
(
'BarChartItemList'
,
item
,
index
)
}
Controls
.
ControlList
.
forEach
((
item
,
index
)
=>
{
funMap
[
item
.
ControlType
]
&&
funMap
[
item
.
ControlType
](
item
,
index
)
})
}
// 把有读写框、数值显示的请求数据推到请求池
function
handleRequestDataText
(
item
,
index
)
{
Controls
.
dataPoolMap
[
index
]
=
item
function
handleRequestDataText
(
item
,
index
)
{
requestLoopDataPool
.
push
({
urlType
:
'status'
,
assemblyKey
:
`
${
index
}
-
${
item
.
CheckData
.
name
}
`
,
...
...
@@ -1206,13 +1437,14 @@ function handleRequestDataText(item, index) {
variableCode
:
item
.
CheckData
.
name
}
})
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
CheckData
.
name
}
`
]
=
item
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
CheckData
.
name
}
`
].
dataPoolMapIndex
=
index
Controls
.
dataPoolMap
[
index
]
=
item
Controls
.
dataPoolMap
[
index
].
dataPoolMapIndex
=
index
}
// 把有DataList的组件的请求数据推到请求池
function
handleRequestDataDataList
(
item
,
index
)
{
Controls
.
dataPoolMap
[
index
]
=
item
Controls
.
dataPoolMap
[
index
].
dataPoolMapIndex
=
index
item
.
DataList
.
forEach
((
dlItem
,
dlIndex
)
=>
{
if
(
dlItem
.
variable
!==
'选择'
&&
dlItem
.
CheckData
)
{
requestLoopDataPool
.
push
({
...
...
@@ -1224,105 +1456,94 @@ function handleRequestDataDataList(item, index) {
variableCode
:
dlItem
.
CheckData
.
name
}
})
Controls
.
dataPoolMap
[
`
${
index
}
-
${
dlIndex
}
-
${
dlItem
.
CheckData
.
name
}
`
]
=
item
Controls
.
dataPoolMap
[
`
${
index
}
-
${
dlIndex
}
-
${
dlItem
.
CheckData
.
name
}
`
].
dataPoolMapIndex
=
index
}
})
}
// 把饼图的请求数据推到请求池
function
handleRequestDataPie
(
item
,
index
)
{
Controls
.
Data
.
PieChartItemList
.
forEach
(
pieItem
=>
{
if
(
pieItem
.
name
===
item
.
Name
)
{
if
(
pieItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
list
=
pieItem
.
option
?.
Variables
||
[]
let
pieChartOrPanel
=
list
.
map
(
variableItem
=>
{
let
vc
=
variableItem
.
CheckData
return
{
deviceId
:
vc
.
equipmentId
?
vc
.
equipmentId
:
vc
.
equipmentid
,
variableId
:
vc
.
id
,
variableCode
:
vc
.
name
}
})
requestLoopDataPool
.
push
({
urlType
:
'pieChartOrPanel'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
pieChartOrPanel
})
Controls
.
dataPoolMap
[
index
]
=
pieItem
Controls
.
dataPoolMap
[
index
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
index
].
dataPoolMapIndex
=
index
// Controls.dataPoolMap[`${index}-${item.Name}`] = pieItem
// Controls.dataPoolMap[`${index}-${item.Name}`].ControlType = item.ControlType
// Controls.dataPoolMap[`${index}-${item.Name}`].dataPoolMapIndex = index
let
pieItem
=
Controls
.
Data
.
PieChartItemList
.
find
(
dItem
=>
dItem
.
name
===
item
.
Name
)
if
(
pieItem
&&
pieItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
list
=
pieItem
.
option
?.
Variables
||
[]
let
pieChartOrPanel
=
list
.
map
(
variableItem
=>
{
let
vc
=
variableItem
.
CheckData
return
{
deviceId
:
vc
.
equipmentId
?
vc
.
equipmentId
:
vc
.
equipmentid
,
variableId
:
vc
.
id
,
variableCode
:
vc
.
name
}
}
})
})
requestLoopDataPool
.
push
({
urlType
:
'pieChartOrPanel'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
pieChartOrPanel
})
Controls
.
dataPoolMap
[
index
]
=
pieItem
Controls
.
dataPoolMap
[
index
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
index
].
dataPoolMapIndex
=
index
}
}
// 把仪表盘的请求数据推到请求池
function
handleRequestDataDashboard
(
item
,
index
)
{
Controls
.
Data
.
DashBoardChartItemList
.
forEach
(
dashItem
=>
{
if
(
dashItem
.
name
===
item
.
Name
)
{
if
(
dashItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
VariableCheckDataObj
=
dashItem
.
option
?.
Variable
?.
CheckData
||
{}
requestLoopDataPool
.
push
({
urlType
:
'pieChartOrPanel'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
pieChartOrPanel
:
[{
deviceId
:
VariableCheckDataObj
.
equipmentId
?
VariableCheckDataObj
.
equipmentId
:
VariableCheckDataObj
.
equipmentid
,
variableId
:
VariableCheckDataObj
.
id
,
variableCode
:
VariableCheckDataObj
.
name
}]
})
// Controls.dataPoolMap[index] = item
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
]
=
dashItem
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
dataPoolMapIndex
=
index
}
}
})
let
dashboardItem
=
Controls
.
Data
.
DashBoardChartItemList
.
find
(
dItem
=>
dItem
.
name
===
item
.
Name
)
if
(
dashboardItem
&&
dashboardItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
VariableCheckDataObj
=
dashboardItem
.
option
?.
Variable
?.
CheckData
||
{}
requestLoopDataPool
.
push
({
urlType
:
'pieChartOrPanel'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
pieChartOrPanel
:
[{
deviceId
:
VariableCheckDataObj
.
equipmentId
?
VariableCheckDataObj
.
equipmentId
:
VariableCheckDataObj
.
equipmentid
,
variableId
:
VariableCheckDataObj
.
id
,
variableCode
:
VariableCheckDataObj
.
name
}]
})
Controls
.
dataPoolMap
[
index
]
=
dashboardItem
Controls
.
dataPoolMap
[
index
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
index
].
dataPoolMapIndex
=
index
}
}
// 把折线图、柱状图的请求数据推到请求池
function
handleRequestDataLineAndBar
(
label
,
item
,
index
)
{
Controls
.
Data
[
label
].
forEach
(
pieItem
=>
{
if
(
pieItem
.
name
===
item
.
Name
)
{
if
(
pieItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
list
=
pieItem
.
option
?.
Variables
||
[]
requestLoopDataPool
.
push
({
urlType
:
'limit'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
limitData
:
{
limit
:
pieItem
.
DataCount
,
variableSearchList
:
list
.
map
(
lItem
=>
{
return
{
deviceId
:
lItem
.
CheckData
.
equipmentId
?
lItem
.
CheckData
.
equipmentId
:
lItem
.
CheckData
.
equipmentid
,
variableId
:
lItem
.
CheckData
.
id
,
variableName
:
lItem
.
CheckData
.
name
}
})
let
lineAndBarItem
=
Controls
.
Data
[
label
].
find
(
dItem
=>
dItem
.
name
===
item
.
Name
)
if
(
lineAndBarItem
&&
lineAndBarItem
.
defaultDataConfig
.
datatype
===
'实时数据'
)
{
let
list
=
lineAndBarItem
.
option
?.
Variables
||
[]
requestLoopDataPool
.
push
({
urlType
:
'limit'
,
assemblyKey
:
`
${
index
}
-
${
item
.
Name
}
`
,
limitData
:
{
limit
:
lineAndBarItem
.
DataCount
,
variableSearchList
:
list
.
map
(
lItem
=>
{
return
{
deviceId
:
lItem
.
CheckData
.
equipmentId
?
lItem
.
CheckData
.
equipmentId
:
lItem
.
CheckData
.
equipmentid
,
variableId
:
lItem
.
CheckData
.
id
,
variableName
:
lItem
.
CheckData
.
name
}
})
// Controls.dataPoolMap[index] = item
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
]
=
pieItem
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
`
${
index
}
-
${
item
.
Name
}
`
].
dataPoolMapIndex
=
index
}
}
})
})
Controls
.
dataPoolMap
[
index
]
=
lineAndBarItem
Controls
.
dataPoolMap
[
index
].
ControlType
=
item
.
ControlType
Controls
.
dataPoolMap
[
index
].
dataPoolMapIndex
=
index
}
}
// 对requestLoopDataPool进行分组
function
sliceRequestLoopData
(
num
)
{
let
list
=
[]
requestLoopGroupSliceRes
=
[]
let
groupNum
=
Math
.
ceil
(
requestLoopDataPool
.
length
/
num
)
for
(
let
i
=
0
;
i
<
groupNum
;
i
++
)
{
list
.
push
(
requestLoopDataPool
.
slice
(
i
*
num
,
(
i
+
1
)
*
num
))
}
return
list
requestLoopGroupSliceRes
.
push
(
requestLoopDataPool
.
slice
(
i
*
num
,
(
i
+
1
)
*
num
))
}
}
...
...
@@ -1541,97 +1762,6 @@ function formatType(val) {
// 读写框实时刷新
async
function
renderRwtextbox
(
index
)
{
let
item
=
Controls
.
ControlList
[
index
]
// if (item.conCheck) {
let
times
=
0
if
(
item
.
DataList
.
length
!==
0
)
{
for
(
let
i
=
0
;
i
<
item
.
DataList
.
length
;
i
++
)
{
if
(
item
.
CheckData
&&
item
.
CheckData
.
name
!==
''
)
{
await
request
.
get
(
`/bi/
${
appId
}
/variables/
${
item
.
CheckData
.
equipmentId
?
item
.
CheckData
.
equipmentId
:
item
.
CheckData
.
equipmentid
}
/
${
item
.
CheckData
.
id
}
/
${
item
.
CheckData
.
name
}
/status`
).
then
(
res
=>
{
let
Data
=
res
.
data
.
data
[
item
.
CheckData
.
name
]
if
(
JSON
.
stringify
(
res
.
data
.
data
)
!==
"{}"
)
{
item
.
DataList
[
i
].
flag
=
transFlag
(
item
.
DataList
[
i
].
flag
)
if
(
item
.
DataList
[
i
].
flag
===
'='
)
{
if
(
Data
==
item
.
DataList
[
i
].
num
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
item
.
DataList
[
i
].
backColor
)
}
times
++
}
else
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
}
else
if
(
item
.
DataList
[
i
].
flag
===
'>='
)
{
if
(
Data
>=
item
.
DataList
[
i
].
num
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
item
.
DataList
[
i
].
backColor
)
}
times
++
}
else
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
}
else
if
(
item
.
DataList
[
i
].
flag
===
'<='
)
{
if
(
Data
<=
item
.
DataList
[
i
].
num
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
item
.
DataList
[
i
].
backColor
)
}
times
++
}
else
{
// 实时变化条件不满足 还原颜色
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
}
else
if
(
item
.
DataList
[
i
].
flag
===
'>'
)
{
if
(
Data
>
item
.
DataList
[
i
].
num
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
item
.
DataList
[
i
].
backColor
)
}
times
++
}
else
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
}
else
if
(
item
.
DataList
[
i
].
flag
===
'<'
)
{
if
(
Data
<
item
.
DataList
[
i
].
num
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
item
.
DataList
[
i
].
backColor
)
}
times
++
}
else
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
}
else
if
(
item
.
DataList
[
i
].
flag
===
'!='
)
{
if
(
item
.
DataList
[
i
].
num
!=
Data
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
item
.
DataList
[
i
].
backColor
)
}
times
++
}
else
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
}
if
(
i
===
item
.
DataList
.
length
-
1
&&
times
===
0
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
}
}
})
if
(
times
!==
0
)
{
break
}
}
}
}
else
{
await
request
.
get
(
`/bi/
${
appId
}
/variables/
${
item
.
CheckData
.
equipmentId
?
item
.
CheckData
.
equipmentId
:
item
.
CheckData
.
equipmentid
}
/
${
item
.
CheckData
.
id
}
/
${
item
.
CheckData
.
name
}
/status`
).
then
(
res
=>
{
let
Data
=
res
.
data
.
data
[
item
.
CheckData
.
name
]
$
(
`#rwtextbox-text
${
index
}
`
).
val
(
res
.
data
.
data
[
item
.
CheckData
.
name
])
if
(
item
.
conCheck
)
{
$
(
`#rwtextbox-text
${
index
}
`
).
css
(
'color'
,
'#000'
)
}
})
}
// }
if
(
item
.
dblCheck
)
{
setTimeout
(()
=>
{
$
(
`#dbl-rwtextbox
${
index
}
`
).
dblclick
(
function
()
{
...
...
js/tokenSetting.js
View file @
83e9cb68
...
...
@@ -3,7 +3,7 @@
* @description: 文件描述
* @Date: 2021-09-16 18:33:55
* @LastEditors: 莫靓仔
* @LastEditTime: 2021-09-2
3 09:52:46
* @LastEditTime: 2021-09-2
6 16:29:19
*/
let
setObj
=
{
// 厂家大佬
...
...
@@ -14,7 +14,7 @@ let setObj = {
},
// test-123
set2
:
{
devToken
:
'
cca20c8c-507b-43e0-8ca6-3571ae779698
'
,
devToken
:
'
5b0784dd-ad5b-43ec-a851-053763233c91
'
,
devAppId
:
'TEST123_o582'
,
devTenantId
:
'TEST123_o582'
}
...
...
js/treeConfig.js
View file @
83e9cb68
...
...
@@ -14,7 +14,8 @@ var panelId = "" // panelId写死,后面需修改为动态获取
// 获取url值
panelId
=
getParams
(
'panelId'
,
window
.
location
.
href
)
// 21302abdb343edf09f84b6f9d900537c
panelId
=
panelId
?
panelId
:
'1cff8876dc96a8adac114ecbe1bd9652'
// panelId = panelId ? panelId : '1cff8876dc96a8adac114ecbe1bd9652'
panelId
=
panelId
?
panelId
:
'1c792524337704365227fa09db2ac5e1'
// 复用树
var
reuseData
=
[
// { id:1, pId:0, name:"文件 1", open:true},
...
...
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