Commit 83e9cb68 authored by 莫坚培's avatar 莫坚培

feat: 渲染工作完成&去掉部分刷新逻辑

parent 95b3e4a4
......@@ -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, {
......
......@@ -27,8 +27,9 @@ var time = 5000
let requestLoopTimer = null // 轮询定时器
let requestLoopDataPool = [] // 各个组件实时刷新的请求数据,放到一个集合里,原来的多个组件请求合并成一个请求发送
let requestLoopStopFlag = false // requestLoopDataPool请求中标志,正在请求时不进行下一波轮询,前一波请求完成才执行下一波
let requestLoopTime = 2000 // 轮询间隔时间
let requestLoopTime = 5000 // 轮询间隔时间
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 () {
......
......@@ -3,7 +3,7 @@
* @description: 文件描述
* @Date: 2021-09-16 18:33:55
* @LastEditors: 莫靓仔
* @LastEditTime: 2021-09-23 09:52:46
* @LastEditTime: 2021-09-26 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'
}
......
......@@ -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},
......
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