| | |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="趋势" |
| | | prop="trend" |
| | | align="center" |
| | |
| | | }}</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | |
| | | Object.entries(apiData.rows).forEach(([typeName, typeStat]) => { |
| | | const sendCount = typeStat.subidAll || 0; |
| | | const receiveCount = typeStat.fillCountAll || 0; |
| | | const recoveryRate = typeStat.receiveRate || 0; |
| | | const recoveryRate = typeStat.receiveRate.toFixed(2) || 0; |
| | | |
| | | chartData.push({ |
| | | name: typeName, |
| | | value: recoveryRate * 100, // 转换为百分比 |
| | | value: (recoveryRate * 100).toFixed(2), // 转换为百分比 |
| | | sendCount: sendCount, |
| | | receiveCount: receiveCount, |
| | | averageScore: typeStat.averageScore || 0, |
| | |
| | | const response = await satisfactionGraph(params); |
| | | |
| | | if (response.code === 200) { |
| | | this.processTypeDetailData(response.data); |
| | | this.processTypeDetailData(response); |
| | | console.log(11); |
| | | |
| | | } else { |
| | | this.$message.error(response.msg || "获取类型明细数据失败"); |
| | | const mockData = await this.generateMockTypeDetail(); |
| | |
| | | Object.entries(apiData.rows).forEach(([typeName, typeStat], index) => { |
| | | const sendCount = typeStat.subidAll || 0; |
| | | const receiveCount = typeStat.fillCountAll || 0; |
| | | const recoveryRate = typeStat.receiveRate || 0; |
| | | const recoveryRate = typeStat.receiveRate.toFixed(2) || 0; |
| | | const averageScore = typeStat.averageScore || 0; |
| | | |
| | | typeDetail.push({ |
| | |
| | | }); |
| | | |
| | | this.typeDetailData = typeDetail; |
| | | console.log(this.typeDetailData,'this.typeDetailData'); |
| | | |
| | | this.calculateTypeSummary(typeDetail); |
| | | }, |
| | | |
| | |
| | | if (score >= 4.0) return "良好"; |
| | | if (score >= 3.0) return "一般"; |
| | | if (score >= 2.0) return "较差"; |
| | | return "差"; |
| | | return "未知"; |
| | | }, |
| | | |
| | | // 获取趋势 |
| | |
| | | textStyle: { |
| | | color: "#999", |
| | | fontSize: 16, |
| | | fontWeight: "normal" |
| | | } |
| | | fontWeight: "normal", |
| | | }, |
| | | }, |
| | | xAxis: { show: false }, |
| | | yAxis: { show: false } |
| | | yAxis: { show: false }, |
| | | }; |
| | | this.barChart.setOption(emptyOption); |
| | | return; |
| | |
| | | <span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:${ |
| | | data.color |
| | | };margin-right:5px;"></span> |
| | | 填报比例: <strong>${data.value.toFixed(1)}%</strong> |
| | | 填报比例: <strong>${data.value}%</strong> |
| | | </div> |
| | | <div style="margin: 2px 0;"> |
| | | <span style="display:inline-block;width:10px;height:10px;border-radius:2px;background:#eee;margin-right:5px;"></span> |
| | |
| | | 良好: "primary", |
| | | 一般: "warning", |
| | | 较差: "danger", |
| | | 差: "info", |
| | | 未知: "info", |
| | | }; |
| | | return levelMap[level] || "info"; |
| | | }, |