/* * @Author: your name * @Date: 2021-09-26 16:56:46 * @LastEditTime: 2021-10-09 15:55:56 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /MedicalWisdomCheckSys/src/pages/KeepImprove/ qualityRating/index.tsx */ import React, { useState, useEffect } from 'react' import MccsPageContainer from '@/components/MccsPageContainer/index'; import { Column, DualAxes } from '@ant-design/charts'; import { getTableData, getColumnData } from './serve'; import './index.less'; type QualityRatingType = { } type TableDataItemType = { typeLevel: string, requirements: string, site: string, target: string, self: string, system: string } const setColor = (type:string) => { switch (type) { case 'A': return '#69D1CC'; break case 'B': return '#80ABFF'; break case 'C': return '#FFC080'; break case 'D': return '#3377FF'; break case 'E': return '#690'; break } } const QualityRating: React.FC = (props) => { const [tableData, setTableData] = useState([]); const [mapData, setMapData] = useState([]); const [lineData, setLineData] = useState([]); const getTableDataFunc = async () => { const resp = await getTableData(); if (resp) { setTableData(resp); const lineArr = resp.map((t: any) => { //设置辅助线 return { type: 'line', start: ['min', Number(t.requirements.replace(/[^0-9]/ig, ""))], end: ['max', Number(t.requirements.replace(/[^0-9]/ig, ""))], text: { content: `要求值${Number(t.requirements.replace(/[^0-9]/ig, ""))}%`, position: 'right', offsetY: 7, offsetX:70, style: { textAlign: 'right', fill:setColor(t.typeLevel)}, }, style: { lineDash: [5, 5], stroke:setColor(t.typeLevel), }, } }); setLineData(lineArr); } } const getMapData = async () => { const resp = await getColumnData(); if (resp) { const mapData = resp; let dataArr: any[] = [];//柱形图数据 mapData[0].qualityTypeList.forEach((a: any, index: number) => { const tempArr = mapData.map((a: any) => { return { name: a.qualityTypeList[index].levelType, xname: a.labelName, value: Number(a.qualityTypeList[index].levelValue.replace("%", "")) } }); dataArr = dataArr.concat([...tempArr]); }); setMapData([...dataArr]); } } useEffect(() => { getTableDataFunc(); getMapData(); }, []); return (
质量评级统计表单
类型
要求
{/*
现场查核
*/}
目标
自评
系统评分
{ tableData.map((item, index) => { return (
{item.typeLevel}
{item.requirements}
{/*
{item.site}
*/}
{item.target}
{item.self}
{item.system}
) }) }
质量评级分析图
{ lineData && ( { return { name: datum.name, value: datum.value + '%' }; }, }} color={ (_ref) => { var type = _ref.name; if (type === 'A') { return '#69D1CC'; } if (type === 'B') { return '#80ABFF'; } if (type === 'C') { return '#FFC080'; } if (type === 'D') { return '#3377FF'; } if (type === 'E') { return '#690'; } return '#3070F2'; } } maxColumnWidth={40} /> ) }
) } export default QualityRating