Commit 95b3e4a4 authored by 莫坚培's avatar 莫坚培

feat: 饼图渲染完成

parent e2d1dfd4
......@@ -929,13 +929,13 @@ function startRequestLoop() {
}
for (let i = 0, len = dataPoolList.length; i < len; i++) {
requestLoopStopFlag = true // 进入循环即表示已经开始请求
await sendRequestLoopData(dataPoolList[i], i, len)
await sendLoopDataRequest(dataPoolList[i], i, len)
}
}, requestLoopTime)
}
// 发起requestLoopDataPool的合并请求
function sendRequestLoopData(list, i, len) {
function sendLoopDataRequest(list, i, len) {
return new Promise((resolve, reject) => {
request.post(`/bi/${appId}/variables/real-time/data/mergeReq`, list)
.then(res => {
......@@ -984,17 +984,51 @@ function renderRequestLoopData(poolData, resData) {
// 动态文本
dynamictext: () => loopRenderImage(poolData, resData, 'dynamictext'),
// 饼图
piechart: () => loopRenderImage(poolData, resData),
piechart: () => loopRenderPiechart(poolData, resData),
// 仪表板
dashboardchart: () => loopRenderImage(poolData, resData),
// dashboardchart: () => loopRenderImage(poolData, resData),
// 折线图
linechart: () => loopRenderImage(poolData, resData),
// linechart: () => loopRenderImage(poolData, resData),
// 柱状图
barchart: () => loopRenderImage(poolData, resData)
// barchart: () => loopRenderImage(poolData, resData)
}
ControlTypeMap[poolData.ControlType] && ControlTypeMap[poolData.ControlType]()
}
function loopRenderPiechart(poolData, resData) {
// 清空数据
resetPieChart(poolData.name)
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}`])
if (resValue) {
let variablesList = poolData.option.Variables
variablesList.forEach((vItem, vIndex) => {
let value = resValue[vItem.CheckData.equipmentId || vItem.CheckData.equipmentid][vItem.CheckData.name]
value && (value = value.toFixed(vItem.d || 0))
serireData.push({
value: value,
name: chartOption.legend[0].data[vIndex],
label: chartOption.series[0].data[vIndex].label,
emphasis: chartOption.series[0].data[vIndex].emphasis
})
})
} else {
serireData.push({
value: '',
name: '暂无数据'
})
}
chartOption.series[0].data = $.extend(chartOption.series[0].data, serireData)
chart.setOption(chartOption, true)
}
}
// 渲染动态图片、动态文本
function loopRenderImage(poolData, resData, label) {
// 给默认值
......@@ -1215,10 +1249,12 @@ function handleRequestDataPie(item, index) {
assemblyKey: `${index}-${item.Name}`,
pieChartOrPanel
})
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] = 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
}
}
})
......@@ -1239,7 +1275,7 @@ function handleRequestDataDashboard(item, index) {
variableCode: VariableCheckDataObj.name
}]
})
Controls.dataPoolMap[index] = item
// 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
......@@ -1254,21 +1290,24 @@ function handleRequestDataLineAndBar(label, item, index) {
if (pieItem.name === item.Name) {
if (pieItem.defaultDataConfig.datatype === '实时数据') {
let list = pieItem.option?.Variables || []
list.forEach((variableItem, variableIndex) => {
let vc = variableItem.CheckData
requestLoopDataPool.push({
urlType: 'limit',
assemblyKey: `${index}-${variableIndex}-${item.Name}`,
assemblyKey: `${index}-${item.Name}`,
limitData: {
deviceId: vc.equipmentId ? vc.equipmentId : vc.equipmentid,
variableId: vc.id,
variableCode: vc.name
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
}
})
Controls.dataPoolMap[index] = item
Controls.dataPoolMap[`${index}-${variableIndex}-${item.Name}`] = pieItem
Controls.dataPoolMap[`${index}-${variableIndex}-${item.Name}`].ControlType = item.ControlType
}
})
// 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
}
}
})
......@@ -3778,7 +3817,7 @@ function renderPieChart(item) {
postData.forEach((k, ki) => {
let value = res.data.data[k.deviceId][k.variableCode]
if (value) {
value.toFixed(d[ki] ? d[ki] : 0)
value = value.toFixed(d[ki] ? d[ki].d : 0)
}
serireData.push({
value: value,
......
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