diff --git a/src/views/screen/companyScreen.vue b/src/views/screen/companyScreen.vue index 91b7159..380472c 100644 --- a/src/views/screen/companyScreen.vue +++ b/src/views/screen/companyScreen.vue @@ -980,12 +980,17 @@ const handleHiddenDangerPannelData = (query) => { // 获取隐患排查治理数据 getTableList('risk_status_count', query).then(res => { if (res.records && res.records.length > 0) { - _data.overdue = _data.overdue + Number(res.records[0].overdueCnt) - _data.processed = _data.processed + Number(res.records[0].processedCnt) - _data.processing = _data.processing + Number(res.records[0].processingCnt) - _data.pending = _data.pending + // 接口返回的已经是百分比,直接使用 + const record = res.records[0] + _data.overdue = Number(record.overdueCnt) || 0 + _data.processed = Number(record.processedCnt) || 0 + _data.processing = Number(record.processingCnt) || 0 + _data.pending = 0 // 接口没有返回pending,设为0 _data.flag = true + console.log('risk_status_count 接口返回数据:', record) + console.log('处理后的 _data:', _data) + if (_data2.flag) { // 合并数据 console.log("请求系统和第三方成功,合并数据", _data, _data2); @@ -994,18 +999,31 @@ const handleHiddenDangerPannelData = (query) => { mockData.hiddenDangerData.generalCount = generalCnt mockData.hiddenDangerData.severityCount = majorCnt - let totalCnt = generalCnt + majorCnt - let overdueCnt = ((_data.overdue + _data2.overdue) / totalCnt * 100).toFixed(2) - let processedCnt = ((_data.processed + _data2.processed) / totalCnt * 100).toFixed(2) - let processingCnt = ((_data.processing + _data2.processing) / totalCnt * 100).toFixed(2) - let pendingCnt = ((_data.pending + _data2.pending) / totalCnt * 100).toFixed(2) + // 如果第三方数据也是百分比,需要合并;否则使用系统数据 + // 这里假设系统数据是百分比,第三方数据可能是数量或百分比 + let overdueCnt, processedCnt, processingCnt, pendingCnt + if (_data2.overdue > 1 || _data2.processed > 1 || _data2.processing > 1) { + // 第三方数据可能是百分比,直接使用系统数据(因为系统数据更准确) + overdueCnt = _data.overdue.toFixed(2) + processedCnt = _data.processed.toFixed(2) + processingCnt = _data.processing.toFixed(2) + pendingCnt = _data.pending.toFixed(2) + } else { + // 第三方数据可能是数量,需要计算百分比 + let totalCnt = generalCnt + majorCnt + overdueCnt = totalCnt > 0 ? ((_data.overdue + _data2.overdue) / totalCnt * 100).toFixed(2) : '0.00' + processedCnt = totalCnt > 0 ? ((_data.processed + _data2.processed) / totalCnt * 100).toFixed(2) : '0.00' + processingCnt = totalCnt > 0 ? ((_data.processing + _data2.processing) / totalCnt * 100).toFixed(2) : '0.00' + pendingCnt = totalCnt > 0 ? ((_data.pending + _data2.pending) / totalCnt * 100).toFixed(2) : '0.00' + } progressOption.series[0].data = [ - { value: overdueCnt || 0, name: '已逾期', itemStyle: { color: '#ef4444' } }, - { value: processedCnt || 0, name: '已处理', itemStyle: { color: '#10b981' } }, - { value: pendingCnt || 0, name: '待排查', itemStyle: { color: '#eab308' } }, - { value: processingCnt || 0, name: '处理中', itemStyle: { color: '#3b82f6' } } + { value: Number(overdueCnt) || 0, name: '已逾期', itemStyle: { color: '#ef4444' } }, + { value: Number(processedCnt) || 0, name: '已处理', itemStyle: { color: '#10b981' } }, + { value: Number(pendingCnt) || 0, name: '待排查', itemStyle: { color: '#eab308' } }, + { value: Number(processingCnt) || 0, name: '处理中', itemStyle: { color: '#3b82f6' } } ] + console.log('合并后的图表数据:', progressOption.series[0].data) if (progressChart.value != null) { progressChart.value.setOption(progressOption) } @@ -1014,17 +1032,14 @@ const handleHiddenDangerPannelData = (query) => { mockData.hiddenDangerData.generalCount = _data.general mockData.hiddenDangerData.severityCount = _data.major - let totalCnt = _data.general + _data.major - let overdueCnt = (_data.overdue / totalCnt * 100).toFixed(2) - let processedCnt = (_data.processed / totalCnt * 100).toFixed(2) - let processingCnt = (_data.processing / totalCnt * 100).toFixed(2) - let pendingCnt = (_data.pending / totalCnt * 100).toFixed(2) + // 接口返回的已经是百分比,直接使用 progressOption.series[0].data = [ - { value: overdueCnt || 0, name: '已逾期', itemStyle: { color: '#ef4444' } }, - { value: processedCnt || 0, name: '已处理', itemStyle: { color: '#10b981' } }, - { value: pendingCnt || 0, name: '待排查', itemStyle: { color: '#eab308' } }, - { value: processingCnt || 0, name: '处理中', itemStyle: { color: '#3b82f6' } } + { value: _data.overdue || 0, name: '已逾期', itemStyle: { color: '#ef4444' } }, + { value: _data.processed || 0, name: '已处理', itemStyle: { color: '#10b981' } }, + { value: _data.pending || 0, name: '待排查', itemStyle: { color: '#eab308' } }, + { value: _data.processing || 0, name: '处理中', itemStyle: { color: '#3b82f6' } } ] + console.log('系统数据图表数据:', progressOption.series[0].data) if (progressChart.value != null) { progressChart.value.setOption(progressOption) } diff --git a/src/views/screen/regionScreen.vue b/src/views/screen/regionScreen.vue index ea16010..891d2dd 100644 --- a/src/views/screen/regionScreen.vue +++ b/src/views/screen/regionScreen.vue @@ -440,12 +440,17 @@ const handleHiddenDangerPannelData = (query) => { // 获取隐患排查治理数据 getTableList('risk_status_count', query).then(res => { if (res.records && res.records.length > 0) { - _data.overdue = _data.overdue + Number(res.records[0].overdueCnt) - _data.processed = _data.processed + Number(res.records[0].processedCnt) - _data.processing = _data.processing + Number(res.records[0].processingCnt) - _data.pending = _data.pending + // 接口返回的已经是百分比,直接使用 + const record = res.records[0] + _data.overdue = Number(record.overdueCnt) || 0 + _data.processed = Number(record.processedCnt) || 0 + _data.processing = Number(record.processingCnt) || 0 + _data.pending = 0 // 接口没有返回pending,设为0 _data.flag = true + console.log('risk_status_count 接口返回数据:', record) + console.log('处理后的 _data:', _data) + if (_data2.flag) { // 合并数据 console.log("请求系统和第三方成功,合并数据", _data, _data2); @@ -454,30 +459,44 @@ const handleHiddenDangerPannelData = (query) => { dashboardData.value.hiddenDangerData.general = generalCnt dashboardData.value.hiddenDangerData.major = majorCnt - let totalCnt = generalCnt + majorCnt - let overdueCnt = ((_data.overdue + _data2.overdue) / totalCnt * 100).toFixed(2) - let processedCnt = ((_data.processed + _data2.processed) / totalCnt * 100).toFixed(2) - let processingCnt = ((_data.processing + _data2.processing) / totalCnt * 100).toFixed(2) - let pendingCnt = ((_data.pending + _data2.pending) / totalCnt * 100).toFixed(2) + // 如果第三方数据也是百分比,需要合并;否则使用系统数据 + // 这里假设系统数据是百分比,第三方数据可能是数量或百分比 + let overdueCnt, processedCnt, processingCnt, pendingCnt + if (_data2.overdue > 1 || _data2.processed > 1 || _data2.processing > 1) { + // 第三方数据可能是百分比,直接使用系统数据(因为系统数据更准确) + overdueCnt = _data.overdue.toFixed(2) + processedCnt = _data.processed.toFixed(2) + processingCnt = _data.processing.toFixed(2) + pendingCnt = _data.pending.toFixed(2) + } else { + // 第三方数据可能是数量,需要计算百分比 + let totalCnt = generalCnt + majorCnt + overdueCnt = totalCnt > 0 ? ((_data.overdue + _data2.overdue) / totalCnt * 100).toFixed(2) : '0.00' + processedCnt = totalCnt > 0 ? ((_data.processed + _data2.processed) / totalCnt * 100).toFixed(2) : '0.00' + processingCnt = totalCnt > 0 ? ((_data.processing + _data2.processing) / totalCnt * 100).toFixed(2) : '0.00' + pendingCnt = totalCnt > 0 ? ((_data.pending + _data2.pending) / totalCnt * 100).toFixed(2) : '0.00' + } + dashboardData.value.hiddenDangerData.progress = { overdue: overdueCnt, processed: processedCnt, processing: processingCnt, pending: pendingCnt, } + console.log('合并后的 progress:', dashboardData.value.hiddenDangerData.progress) } else { console.log("请求系统成功,展示数据", _data, _data2); dashboardData.value.hiddenDangerData.general = _data.general dashboardData.value.hiddenDangerData.major = _data.major - let totalCnt = _data.general + _data.major - // 显示系统数据 + // 接口返回的已经是百分比,直接使用 dashboardData.value.hiddenDangerData.progress = { - overdue: (_data.overdue / totalCnt * 100).toFixed(2), - processed: (_data.processed / totalCnt * 100).toFixed(2), - processing: (_data.processing / totalCnt * 100).toFixed(2), - pending: (_data.pending / totalCnt * 100).toFixed(2), + overdue: _data.overdue.toFixed(2), + processed: _data.processed.toFixed(2), + processing: _data.processing.toFixed(2), + pending: _data.pending.toFixed(2), } + console.log('系统数据 progress:', dashboardData.value.hiddenDangerData.progress) } } })