123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- import React, { useState } from 'react';
- import { Card, Select } from 'antd';
- import * as echarts from 'echarts/core';
- import Chart from '@/components/chart';
- import { getStatEscalation } from "@/service/stat";
- import { getSysOrg } from "@/service/sysorg";
-
- export default (props) => {
- const [option, setOption] = useState({});
- const [orgList, setOrgList] = useState([]);
- const [orgId, setOrgId] = useState();
- const [condition, setCondition] = useState();
-
- React.useEffect(() => {
- if (orgList.length > 0) {
- const e = orgList[0]?.orgId
- setCondition({ orgId: e })
- setOrgId(e)
- }
- }, [orgList])
-
- React.useEffect(() => {
- getSysOrg({ pageSize: 500 }).then((res) => {
- setOrgList(res.records || [])
- })
- }, []);
-
-
-
- //选择下拉框将条件参数set给condition
- const onChange = e => {
- setCondition({ orgId: e })
- setOrgId(e)
- }
-
- React.useEffect(() => {
- getStatEscalation(condition).then((res) => {
- setOption({
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'cross',
- label: {
- backgroundColor: '#F772D1'
- }
- }
- },
- grid: {
- left: '3%',
- bottom: '3%',
- width: '90%',
- height: '90%',
- containLabel: true
- },
- xAxis: [
- {
- type: 'category',
- data: res.map(x => x.name),
- boundaryGap: true,
- name: '状态',
- axisTick: {
- alignWithLabel: true,
- }
- }
- ],
- yAxis: [
- {
- type: 'value',
- minInterval: 1,
- name: '交办次数'
- }
- ],
- series: [
- {
- type: 'bar',
- barWidth: '15%',
- itemStyle: {
- color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- { offset: 0, color: '#F772D1' },
- { offset: 0.5, color: '#C872F2' },
- { offset: 1, color: '#E5BEF8' }
- ])
- },
- data: res.map(x => x.value),
- }
- ]
- })
- })
- }, [condition]);
-
- return (
- <Card
- title="交办统计"
- extra={
- <Select style={{ width: "200px" }} value={orgId} placeholder="请选择单位" onChange={onChange}>
- {
- orgList.map((item) => (
- <Select.Option key={item.orgId} value={item.orgId}>
- {item.name}
- </Select.Option>
- )
- )
- }
- </Select>
- }
- >
- <Chart option={option} style={props.style}></Chart>
- </Card>
- )
- }
|