Commit 56017eec authored by 莫坚培's avatar 莫坚培

feat: 增加变量值缓存

parent 3f349bc5
...@@ -32,6 +32,10 @@ let requestLoopWaitingTime = 1000 // 每一个请求的间隔时间,减轻服 ...@@ -32,6 +32,10 @@ let requestLoopWaitingTime = 1000 // 每一个请求的间隔时间,减轻服
let requestLoopGroupSliceNum = 30 // 请求池requestLoopDataPool分组,每组多少个 let requestLoopGroupSliceNum = 30 // 请求池requestLoopDataPool分组,每组多少个
let requestLoopGroupSliceRes = [] // 分组结果 let requestLoopGroupSliceRes = [] // 分组结果
let requestLoopVaribleCache = {} // 每一批(一批多组)轮询的变量数据缓存。
// 背景是同一个变量,可能会在多个组都有请求,后面的请求拿到的结果可能跟前面拿到的结果不一致,导致明明同一个变量,但是显示不同的值
// 这里的处理是同一批次的请求,每个变量只取第一次的结果
// 添加定时器 // 添加定时器
var timer1 = null var timer1 = null
var app = { var app = {
...@@ -938,6 +942,7 @@ function startRequestLoop() { ...@@ -938,6 +942,7 @@ function startRequestLoop() {
} }
// 每一轮都把标记清除 // 每一轮都把标记清除
requestLoopVaribleCache = {}
Object.values(Controls.dataPoolMap).forEach(item => { Object.values(Controls.dataPoolMap).forEach(item => {
item.isHasMeetVariable = false item.isHasMeetVariable = false
}) })
...@@ -1072,6 +1077,15 @@ function loopRenderBarchart(poolData, resData, resCode) { ...@@ -1072,6 +1077,15 @@ function loopRenderBarchart(poolData, resData, resCode) {
return i return i
}) })
// 取对应变量缓存过的值
let cacheKey = `${k.CheckData.equipmentId || k.CheckData.equipmentid}-${k.CheckData.id}`
if(requestLoopVaribleCache[cacheKey] === undefined) {
requestLoopVaribleCache[cacheKey] = dataList
} else {
console.log('柱状图缓存', requestLoopVaribleCache[cacheKey])
dataList = requestLoopVaribleCache[cacheKey]
}
let obj = { let obj = {
name: variablesList[ki].DimensionName, name: variablesList[ki].DimensionName,
data: dataList, data: dataList,
...@@ -1160,6 +1174,15 @@ function loopRenderLinechart(poolData, resData, resCode) { ...@@ -1160,6 +1174,15 @@ function loopRenderLinechart(poolData, resData, resCode) {
return item1 return item1
}) })
// 取对应变量缓存过的值
let cacheKey = `${k.CheckData.equipmentId || k.CheckData.equipmentid}-${k.CheckData.id}`
if(requestLoopVaribleCache[cacheKey] === undefined) {
requestLoopVaribleCache[cacheKey] = dataList
} else {
console.log('折线图缓存', requestLoopVaribleCache[cacheKey])
dataList = requestLoopVaribleCache[cacheKey]
}
serireData.push({ serireData.push({
name: chartOption.legend[0].data[ki], name: chartOption.legend[0].data[ki],
data: dataList, data: dataList,
...@@ -1192,6 +1215,33 @@ function loopRenderLinechart(poolData, resData, resCode) { ...@@ -1192,6 +1215,33 @@ function loopRenderLinechart(poolData, resData, resCode) {
} }
} }
// 把折线图、柱状图的请求数据推到请求池
function handleRequestDataLineAndBar(label, item, index) {
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,
variableId: lItem.CheckData.id,
variableName: lItem.CheckData.name
}
})
}
})
Controls.dataPoolMap[index] = lineAndBarItem
Controls.dataPoolMap[index].ControlType = item.ControlType
Controls.dataPoolMap[index].dataPoolMapIndex = index
}
}
// 渲染仪表盘 // 渲染仪表盘
function loopRenderDashboardchart(poolData, resData, resCode) { function loopRenderDashboardchart(poolData, resData, resCode) {
// 清空数据 // 清空数据
...@@ -1215,6 +1265,15 @@ function loopRenderDashboardchart(poolData, resData, resCode) { ...@@ -1215,6 +1265,15 @@ function loopRenderDashboardchart(poolData, resData, resCode) {
if (resValue) { if (resValue) {
let value = resValue[variableInfo.CheckData.equipmentId || variableInfo.CheckData.equipmenid][variableInfo.CheckData.name] let value = resValue[variableInfo.CheckData.equipmentId || variableInfo.CheckData.equipmenid][variableInfo.CheckData.name]
// 取对应变量缓存过的值
let cacheKey = `${variableInfo.CheckData.equipmentId || variableInfo.CheckData.equipmentid}-${variableInfo.CheckData.id}`
if(requestLoopVaribleCache[cacheKey] === undefined) {
requestLoopVaribleCache[cacheKey] = value
} else {
console.log('仪表盘缓存', requestLoopVaribleCache[cacheKey])
value = requestLoopVaribleCache[cacheKey]
}
serireData.push({ serireData.push({
value value
}) })
...@@ -1227,6 +1286,28 @@ function loopRenderDashboardchart(poolData, resData, resCode) { ...@@ -1227,6 +1286,28 @@ function loopRenderDashboardchart(poolData, resData, resCode) {
} }
} }
// 把仪表盘的请求数据推到请求池
function handleRequestDataDashboard(item, 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,
variableId: VariableCheckDataObj.id,
variableCode: VariableCheckDataObj.name
}]
})
Controls.dataPoolMap[index] = dashboardItem
Controls.dataPoolMap[index].ControlType = item.ControlType
Controls.dataPoolMap[index].dataPoolMapIndex = index
}
}
// 渲染饼图 // 渲染饼图
function loopRenderPiechart(poolData, resData, resCode) { function loopRenderPiechart(poolData, resData, resCode) {
// 清空数据 // 清空数据
...@@ -1252,6 +1333,15 @@ function loopRenderPiechart(poolData, resData, resCode) { ...@@ -1252,6 +1333,15 @@ function loopRenderPiechart(poolData, resData, resCode) {
variablesList.forEach((vItem, vIndex) => { variablesList.forEach((vItem, vIndex) => {
let value = resValue[vItem.CheckData.equipmentId || vItem.CheckData.equipmentid][vItem.CheckData.name] let value = resValue[vItem.CheckData.equipmentId || vItem.CheckData.equipmentid][vItem.CheckData.name]
value && (value = value.toFixed(vItem.d || 0)) value && (value = value.toFixed(vItem.d || 0))
// 取对应变量缓存过的值
let cacheKey = `${vItem.CheckData.equipmentId || vItem.CheckData.equipmentid}-${vItem.CheckData.id}`
if(requestLoopVaribleCache[cacheKey] === undefined) {
requestLoopVaribleCache[cacheKey] = value
} else {
console.log('饼图缓存', requestLoopVaribleCache[cacheKey])
value = requestLoopVaribleCache[cacheKey]
}
serireData.push({ serireData.push({
value, value,
name: chartOption.legend[0].data[vIndex], name: chartOption.legend[0].data[vIndex],
...@@ -1271,6 +1361,33 @@ function loopRenderPiechart(poolData, resData, resCode) { ...@@ -1271,6 +1361,33 @@ function loopRenderPiechart(poolData, resData, resCode) {
} }
} }
// 把饼图的请求数据推到请求池
function handleRequestDataPie(item, 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,
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 loopRenderImage(poolData, resData, label) { function loopRenderImage(poolData, resData, label) {
if(poolData.isHasMeetVariable) { if(poolData.isHasMeetVariable) {
...@@ -1281,30 +1398,39 @@ function loopRenderImage(poolData, resData, label) { ...@@ -1281,30 +1398,39 @@ function loopRenderImage(poolData, resData, label) {
image: 'presetText' image: 'presetText'
} }
let flagItem = poolData.DataList.find((item, index) => { let flagItem = null
poolData.DataList.forEach((dlItem, dlIndex) => {
// 拼装跟返回的数据一样的key,然后找到对应的数据 // 拼装跟返回的数据一样的key,然后找到对应的数据
let key = `${poolData.dataPoolMapIndex}-${index}-${item.variable}` let key = `${poolData.dataPoolMapIndex}-${dlIndex}-${dlItem.variable}`
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]') {
return false return false
} }
let itemResData = JSON.parse(resData[key]) let itemResData = JSON.parse(resData[key])
let itemValue = itemResData[item.variable] let itemValue = itemResData && itemResData[dlItem.variable]
let flag = transFlag(item.flag)
if(!itemResData) { // 取对应变量缓存过的值
return false let cacheKey = `${dlItem.CheckData.equipmentId || dlItem.CheckData.equipmentid}-${dlItem.CheckData.id}`
if(requestLoopVaribleCache[cacheKey] === undefined) {
requestLoopVaribleCache[cacheKey] = itemValue
} else {
itemValue = requestLoopVaribleCache[cacheKey]
} }
return ( let flag = transFlag(dlItem.flag)
(flag === '=' && itemValue == item[labelMap[label]]) || let isMeet = (
(flag === '>=' && itemValue >= item[labelMap[label]]) || (flag === '=' && itemValue == dlItem[labelMap[label]]) ||
(flag === '<=' && itemValue <= item[labelMap[label]]) || (flag === '>=' && itemValue >= dlItem[labelMap[label]]) ||
(flag === '>' && itemValue > item[labelMap[label]]) || (flag === '<=' && itemValue <= dlItem[labelMap[label]]) ||
(flag === '<' && itemValue < item[labelMap[label]]) || (flag === '>' && itemValue > dlItem[labelMap[label]]) ||
(flag === '!=' && itemValue != item[labelMap[label]]) (flag === '<' && itemValue < dlItem[labelMap[label]]) ||
(flag === '!=' && itemValue != dlItem[labelMap[label]])
) )
if(isMeet && !flagItem) {
flagItem = dlItem
}
}) })
if (!flagItem) { if (!flagItem) {
...@@ -1318,6 +1444,7 @@ function loopRenderImage(poolData, resData, label) { ...@@ -1318,6 +1444,7 @@ function loopRenderImage(poolData, resData, label) {
} }
return return
} }
// 只要有一个满足条件,则渲染该条件 // 只要有一个满足条件,则渲染该条件
if (label === 'image') { if (label === 'image') {
$(`#image-img${poolData.dataPoolMapIndex}`).attr('src', flagItem.img) $(`#image-img${poolData.dataPoolMapIndex}`).attr('src', flagItem.img)
...@@ -1326,80 +1453,53 @@ function loopRenderImage(poolData, resData, label) { ...@@ -1326,80 +1453,53 @@ 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 poolData.isHasMeetVariable = true
} }
// 渲染数值显示、读写框 // 渲染矩形、圆形状态灯 label: commonlamp矩形状态灯 ellipselamp圆形状态灯
function loopRenderDatatextblock(poolData, resData, label) { function loopRenderLamp(poolData, resData, label) {
if(poolData.isHasMeetVariable) { if(poolData.isHasMeetVariable) {
return return
} }
let dight = poolData.DecimalDigits === null ? 0 : poolData.DecimalDigits let flagItem = null
let valueInfo = JSON.parse(resData[Object.keys(resData)[0]]) let isSameGroup = true
let resDataValue = valueInfo[poolData.CheckData.name]
if(!['number', 'string'].includes(typeof resDataValue)) { poolData.DataList.forEach((dlItem, dlIndex) => {
let key = `${poolData.dataPoolMapIndex}-${dlIndex}-${dlItem.variable}`
// 只要DataList中有一个变量没有在resData找到对应的key,则说明这个组件的请求数据不是在同一组的
if (!resData.hasOwnProperty(key) || Object.prototype.toString.call(JSON.parse(resData[key])) !== '[object Object]') {
isSameGroup = false
return return
} }
let flagItem = poolData.DataList.find(item => { let itemResData = JSON.parse(resData[key])
let flag = transFlag(item.flag) let itemValue = itemResData && itemResData[dlItem.variable]
return (
(flag === '=' && resDataValue == item.num) ||
(flag === '>=' && resDataValue >= item.num) ||
(flag === '<=' && resDataValue <= item.num) ||
(flag === '>' && resDataValue > item.num) ||
(flag === '<' && resDataValue < item.num) ||
(flag === '!=' && item.num != resDataValue)
)
})
if(!flagItem) { // 取对应变量缓存过的值
// 给读写框赋值、默认颜色 let cacheKey = `${dlItem.CheckData.equipmentId || dlItem.CheckData.equipmentid}-${dlItem.CheckData.id}`
if (label === 'datatextblock') { if(requestLoopVaribleCache[cacheKey] === undefined) {
resDataValue = resDataValue.toFixed(Number(dight)) requestLoopVaribleCache[cacheKey] = itemValue
$(`#datatextblock${poolData.dataPoolMapIndex}`).text(resDataValue)
$(`#datatextblock${poolData.dataPoolMapIndex}`).css('color', '#000')
} else { } else {
$(`#rwtextbox-text${poolData.dataPoolMapIndex}`).val(resDataValue) itemValue = requestLoopVaribleCache[cacheKey]
$(`#rwtextbox-text${poolData.dataPoolMapIndex}`).css('color', '#000')
}
return
}
// 只要有一个满足条件,则渲染该条件的颜色
if (flagItem && poolData.conCheck) {
$(`#${label === 'datatextblock' ? 'datatextblock' : 'rwtextbox-text'}${poolData.dataPoolMapIndex}`).css('color', flagItem.backColor)
poolData.isHasMeetVariable = true
} }
}
// 渲染矩形、圆形状态灯 label: commonlamp矩形状态灯 ellipselamp圆形状态灯 let flag = transFlag(dlItem.flag)
function loopRenderLamp(poolData, resData, label) {
if(poolData.isHasMeetVariable) {
return
}
let flagItem = poolData.DataList.find((item, index) => { let isMeet = (
let key = `${poolData.dataPoolMapIndex}-${index}-${item.variable}` (flag === '=' && itemValue == dlItem.num) ||
(flag === '>=' && itemValue >= dlItem.num) ||
(flag === '<=' && itemValue <= dlItem.num) ||
(flag === '>' && itemValue > dlItem.num) ||
(flag === '<' && itemValue < dlItem.num) ||
(flag === '!=' && itemValue != dlItem.num)
)
if (!resData.hasOwnProperty(key) || Object.prototype.toString.call(JSON.parse(resData[key])) !== '[object Object]') { if(isMeet && !flagItem) {
return false flagItem = dlItem
} }
let itemResData = JSON.parse(resData[key])
let itemValue = itemResData[item.variable]
let flag = transFlag(item.flag)
return (
(flag === '=' && itemValue == item.num) ||
(flag === '>=' && itemValue >= item.num) ||
(flag === '<=' && itemValue <= item.num) ||
(flag === '>' && itemValue > item.num) ||
(flag === '<' && itemValue < item.num) ||
(flag === '!=' && itemValue != item.num)
)
}) })
if (!flagItem) { if (!flagItem) {
...@@ -1412,6 +1512,7 @@ function loopRenderLamp(poolData, resData, label) { ...@@ -1412,6 +1512,7 @@ function loopRenderLamp(poolData, resData, label) {
} }
return return
} }
// 只要有一个满足条件,则渲染该条件的颜色 // 只要有一个满足条件,则渲染该条件的颜色
$(`#${label}${poolData.dataPoolMapIndex}`).css('background-color', flagItem.backColor) $(`#${label}${poolData.dataPoolMapIndex}`).css('background-color', flagItem.backColor)
if(flagItem.flashing) { if(flagItem.flashing) {
...@@ -1419,54 +1520,8 @@ function loopRenderLamp(poolData, resData, label) { ...@@ -1419,54 +1520,8 @@ function loopRenderLamp(poolData, resData, label) {
} else { } else {
$(`#${label}${poolData.dataPoolMapIndex}`).removeClass('animated-flash') $(`#${label}${poolData.dataPoolMapIndex}`).removeClass('animated-flash')
} }
poolData.isHasMeetVariable = true
}
// 整合所有组件的请求数据,放到一个数组里 poolData.isHasMeetVariable = true
function collectRequestLoopData() {
requestLoopDataPool = []
Controls.dataPoolMap = {}
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) {
requestLoopDataPool.push({
urlType: 'status',
assemblyKey: `${index}-${item.CheckData.name}`,
statusDataDTO: {
deviceId: item.CheckData.equipmentId ? item.CheckData.equipmentId : item.CheckData.equipmentid,
variableId: item.CheckData.id,
variableCode: item.CheckData.name
}
})
Controls.dataPoolMap[index] = item
Controls.dataPoolMap[index].dataPoolMapIndex = index
} }
// 把有DataList的组件的请求数据推到请求池 // 把有DataList的组件的请求数据推到请求池
...@@ -1480,7 +1535,7 @@ function handleRequestDataDataList(item, index) { ...@@ -1480,7 +1535,7 @@ function handleRequestDataDataList(item, index) {
urlType: 'status', urlType: 'status',
assemblyKey: `${index}-${dlIndex}-${dlItem.CheckData.name}`, assemblyKey: `${index}-${dlIndex}-${dlItem.CheckData.name}`,
statusDataDTO: { statusDataDTO: {
deviceId: dlItem.CheckData.equipmentId ? dlItem.CheckData.equipmentId : dlItem.CheckData.equipmentid, deviceId: dlItem.CheckData.equipmentId || dlItem.CheckData.equipmentid,
variableId: dlItem.CheckData.id, variableId: dlItem.CheckData.id,
variableCode: dlItem.CheckData.name variableCode: dlItem.CheckData.name
} }
...@@ -1489,83 +1544,102 @@ function handleRequestDataDataList(item, index) { ...@@ -1489,83 +1544,102 @@ function handleRequestDataDataList(item, index) {
}) })
} }
// 把饼图的请求数据推到请求池 // 渲染数值显示、读写框
function handleRequestDataPie(item, index) { function loopRenderDatatextblock(poolData, resData, label) {
let pieItem = Controls.Data.PieChartItemList.find(dItem => dItem.name === item.Name) let dight = poolData.DecimalDigits === null ? 0 : poolData.DecimalDigits
if (pieItem && pieItem.defaultDataConfig.datatype === '实时数据') { let valueInfo = JSON.parse(resData[Object.keys(resData)[0]])
let list = pieItem.option?.Variables || [] let resDataValue = valueInfo[poolData.CheckData.name]
let pieChartOrPanel = list.map(variableItem => { // 取对应变量缓存过的值
let vc = variableItem.CheckData let cacheKey = `${poolData.CheckData.equipmentId || poolData.CheckData.equipmentid}-${poolData.CheckData.id}`
return { if(requestLoopVaribleCache[cacheKey] === undefined) {
deviceId: vc.equipmentId ? vc.equipmentId : vc.equipmentid, requestLoopVaribleCache[cacheKey] = resDataValue
variableId: vc.id, } else {
variableCode: vc.name resDataValue = requestLoopVaribleCache[cacheKey]
} }
})
requestLoopDataPool.push({
urlType: 'pieChartOrPanel',
assemblyKey: `${index}-${item.Name}`,
pieChartOrPanel
})
Controls.dataPoolMap[index] = pieItem // 给读写框赋值、默认颜色
Controls.dataPoolMap[index].ControlType = item.ControlType if (label === 'datatextblock') {
Controls.dataPoolMap[index].dataPoolMapIndex = index resDataValue = resDataValue.toFixed(Number(dight))
$(`#datatextblock${poolData.dataPoolMapIndex}`).text(resDataValue)
$(`#datatextblock${poolData.dataPoolMapIndex}`).css('color', '#000')
} else {
$(`#rwtextbox-text${poolData.dataPoolMapIndex}`).val(resDataValue)
$(`#rwtextbox-text${poolData.dataPoolMapIndex}`).css('color', '#000')
} }
}
// 把仪表盘的请求数据推到请求池 if(!['number', 'string'].includes(typeof resDataValue)) {
function handleRequestDataDashboard(item, index) { return
let dashboardItem = Controls.Data.DashBoardChartItemList.find(dItem => dItem.name === item.Name) }
if (dashboardItem && dashboardItem.defaultDataConfig.datatype === '实时数据') {
let VariableCheckDataObj = dashboardItem.option?.Variable?.CheckData || {}
requestLoopDataPool.push({ let flagItem = poolData.DataList.find(item => {
urlType: 'pieChartOrPanel', let flag = transFlag(item.flag)
assemblyKey: `${index}-${item.Name}`, return (
pieChartOrPanel: [{ (flag === '=' && resDataValue == item.num) ||
deviceId: VariableCheckDataObj.equipmentId ? VariableCheckDataObj.equipmentId : VariableCheckDataObj.equipmentid, (flag === '>=' && resDataValue >= item.num) ||
variableId: VariableCheckDataObj.id, (flag === '<=' && resDataValue <= item.num) ||
variableCode: VariableCheckDataObj.name (flag === '>' && resDataValue > item.num) ||
}] (flag === '<' && resDataValue < item.num) ||
(flag === '!=' && item.num != resDataValue)
)
}) })
Controls.dataPoolMap[index] = dashboardItem if(!flagItem) {
Controls.dataPoolMap[index].ControlType = item.ControlType return
Controls.dataPoolMap[index].dataPoolMapIndex = index
} }
}
// 把折线图、柱状图的请求数据推到请求池 // 只要有一个满足条件,则渲染该条件的颜色
function handleRequestDataLineAndBar(label, item, index) { if (flagItem && poolData.conCheck) {
let lineAndBarItem = Controls.Data[label].find(dItem => dItem.name === item.Name) $(`#${label === 'datatextblock' ? 'datatextblock' : 'rwtextbox-text'}${poolData.dataPoolMapIndex}`).css('color', flagItem.backColor)
if (lineAndBarItem && lineAndBarItem.defaultDataConfig.datatype === '实时数据') { }
let list = lineAndBarItem.option?.Variables || [] }
// 把有读写框、数值显示的请求数据推到请求池
function handleRequestDataText(item, index) {
requestLoopDataPool.push({ requestLoopDataPool.push({
urlType: 'limit', urlType: 'status',
assemblyKey: `${index}-${item.Name}`, assemblyKey: `${index}-${item.CheckData.name}`,
limitData: { statusDataDTO: {
limit: lineAndBarItem.DataCount, deviceId: item.CheckData.equipmentId || item.CheckData.equipmentid,
variableSearchList: list.map(lItem => { variableId: item.CheckData.id,
return { variableCode: item.CheckData.name
deviceId: lItem.CheckData.equipmentId ? lItem.CheckData.equipmentId : lItem.CheckData.equipmentid,
variableId: lItem.CheckData.id,
variableName: lItem.CheckData.name
}
})
} }
}) })
Controls.dataPoolMap[index] = lineAndBarItem Controls.dataPoolMap[index] = item
Controls.dataPoolMap[index].ControlType = item.ControlType
Controls.dataPoolMap[index].dataPoolMapIndex = index Controls.dataPoolMap[index].dataPoolMapIndex = index
}
} }
// 整合所有组件的请求数据,放到一个数组里
function collectRequestLoopData() {
requestLoopDataPool = []
Controls.dataPoolMap = {}
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)
})
}
// 对requestLoopDataPool进行分组 // 对requestLoopDataPool进行分组
function sliceRequestLoopData(num) { function sliceRequestLoopData(num) {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* @description: 文件描述 * @description: 文件描述
* @Date: 2021-09-16 18:33:55 * @Date: 2021-09-16 18:33:55
* @LastEditors: 莫靓仔 * @LastEditors: 莫靓仔
* @LastEditTime: 2021-09-28 10:24:42 * @LastEditTime: 2021-09-28 14:57:07
*/ */
let setObj = { let setObj = {
// 厂家大佬 // 厂家大佬
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment