From be89af3bf4d7e591ef085f55f1de7c28fcf5f6a8 Mon Sep 17 00:00:00 2001
From: liuwh <964324856@qq.com>
Date: Sat, 21 Jun 2025 19:50:18 +0800
Subject: [PATCH] fix:修改解纷态势问题

---
 src/views/workDash/index copy 2.jsx | 3016 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 3,016 insertions(+), 0 deletions(-)

diff --git a/src/views/workDash/index copy 2.jsx b/src/views/workDash/index copy 2.jsx
new file mode 100644
index 0000000..58fb728
--- /dev/null
+++ b/src/views/workDash/index copy 2.jsx
@@ -0,0 +1,3016 @@
+/*
+ * @Company: hugeInfo
+ * @Author: lwh
+ * @Date: 2024-09-14 15:59:17
+ * @LastEditTime: 2025-06-20 16:38:50
+ * @LastEditors: lwh
+ * @Version: 1.0.0
+ * @Description:
+ */
+import React, { useState, useEffect, useRef, useMemo, Children } from 'react';
+import * as $$ from '../../utils/utility';
+import { Form, Typography, Row, Col, Space, Divider, Table, Empty, Breadcrumb } from 'antd';
+import { Alert, Select, Tooltip, Modal, Button } from '@arco-design/web-react';
+import { IconUndo, IconCaretRight } from '@arco-design/web-react/icon';
+import { useLocation, useNavigate, useSearchParams } from 'react-router-dom';
+import {
+	workDash_1,
+	workDash_2,
+	workDash_3,
+	workDash_4,
+	workDash_5,
+	workDash_6,
+	workDash_7,
+	workDash_8,
+	huo,
+	workDash_9,
+	workDash_10,
+	workDash_11,
+	workDash_12,
+	workDash_13,
+	workDash_14,
+	workDash_16,
+	workDash_17,
+	workDash_18,
+	workDash_19,
+	workDash_20,
+	workDash_21,
+	workDash_22,
+	workDash_23,
+	workDash_24,
+	workDash_25,
+	workDash_26,
+} from '../../assets/images';
+import NewPage from '../../components/NewPage/index';
+import * as echarts from 'echarts';
+import MyTabsNew from '../../components/MyTabsNew';
+import TableView from '../../components/TableViewCanSort';
+import NewTableSearch from '../../components/NewTableSearch';
+import SupervisingViews from '../../views/register/matterDetail/SupervisingViews';
+import Response from '../../views/register/matterDetail/response';
+import ResponseDetail from '../../views/register/matterDetail/responseDetail';
+import SelectObjModal from '@/components/SelectObjModal/newSelectPerson';
+import { empty } from '@/assets/images';
+import './index.less';
+
+const { Link } = Typography;
+const Option = Select.Option;
+// 调度中心列表
+function getListDataApi(submitData) {
+	return $$.ax.request({ url: 'caseInfo/statistics', type: 'get', data: submitData, service: 'mediate' });
+}
+
+function treeByUserIdApi() {
+	return $$.ax.request({ url: 'syRegion/treeByUserId', type: 'get', service: 'sys' });
+}
+
+function caseSuperviseInfoApi(data) {
+	return $$.ax.request({ url: `caseSupervise/getById`, type: 'get', service: 'mediate', data });
+}
+
+// 解纷态势-纠纷类型子集
+function statisticsCaseTypeApi(submitData) {
+	return $$.ax.request({ url: 'caseInfo/statisticsCaseType', type: 'get', data: submitData, service: 'mediate' });
+}
+
+// 获取实时动态数据
+function getCaseInfoDataApi(submitData) {
+	return $$.ax.request({ url: 'caseInfo/pageQueryAll', type: 'get', data: submitData, service: 'mediate' });
+}
+
+// 扬言极端分组统计
+function getAnalysisApi(submitData) {
+	return $$.ax.request({ url: 'analysis/statisticsYYJDQuantity', type: 'get', data: submitData, service: 'mediate' });
+}
+
+//督办次数
+function pageCaseSuperviseApi(data) {
+	return $$.ax.request({ url: 'caseSupervise/pageCaseSupervise', type: 'get', service: 'mediate', data });
+}
+
+//风险评估
+function pageExtremeCaseApi(data) {
+	return $$.ax.request({ url: `caseTask/pageExtremeCase`, type: 'get', service: 'mediate', data });
+}
+
+//督办添加id
+function getNewTimeIdApi(id) {
+	return $$.ax.request({ url: `caseUtils/getNewTimeId`, type: 'get', service: 'utils' });
+}
+
+// 在文件顶部添加新的API请求函数
+function pageQueryAreaApi(data) {
+	return $$.ax.request({ url: 'caseInfo/pageQueryArea', type: 'get', data, service: 'mediate' });
+}
+
+const WorkDash = () => {
+	const navigate = useNavigate();
+	const [form] = Form.useForm();
+	const [modalForm] = Form.useForm();
+	// 搜索
+	const [search, setSearch] = useState({});
+	// 默认查询询条件
+	const [normalSearch, setNormalSearch] = useState({});
+	// 筛选区域的中文
+	const [labels, setLabels] = useState([]);
+	const [yYjds, setYYjds] = useState([]);
+
+	const [region, setRegion] = useState({});
+	const [temporary, setTemporary] = useState([]);
+	// 筛选纠纷类型的中文
+	const [caseTypeNames, setCaseTypeNames] = useState([]);
+	const [temporaryCaseType, setTemporaryCaseType] = useState([]);
+	// 数据
+	const [data, setData] = useState({});
+
+	const [listData, setListData] = useState({ tableData: [] }); //实时动态数据表
+	const [listDataSearch, setListDataSearch] = useState({ page: 1, size: 10, sortColmn: '1', sortType: '2' }); //实时动态数据表
+
+	// 调解组织select框数据
+	const [adjustOrgData, setAdjustOrgData] = useState([]);
+	// tab切换
+	const [tabKey, setTabKey] = useState('1');
+	// 区域字典值
+	const [treeList, setTreeList] = useState([]);
+	// 纠纷类型、化解状况、事项等级切换
+	const [rightTag, setRightTag] = useState('1');
+	// 纠纷类型饼图所在层级
+	const [caseTypeLevel, setCaseTypeLevel] = useState(1);
+	// 纠纷类型饼图2层,3层数据
+	const [caseTypeList, setCaseTypeList] = useState([]);
+
+	// 化解统计切换
+	const [province, setProvince] = useState('');
+
+	// 承办配合部门select框数据
+	const [selectModalVisible, setSelectModalVisible] = useState(false);
+	const [selectObjModalData, setSelectObjModalData] = useState({});
+
+	// 扬言极端
+	const [extremeData, setExtremeData] = useState([]);
+	const [extremeTotal, setExtremeTotal] = useState(0);
+	const [yYjdData, setYYjdData] = useState({ visible: false, data: {} });
+	const [SuperviseListData, setSuperviseListData] = useState([]);
+	const [supervisingList, setSupervisingList] = useState(false);
+	const [tableData, setTableData] = useState({ list: [] }); //表格数据
+	const [yYJDSortType, setYYJDSortType] = useState('2'); //事件数量默认排序
+	const [pageData, setPageData] = useState({ sortType: 2, sortColmn: 1, page: 1, size: 10 });
+	const [searchSupervise, setSearchSupervise] = useState({ page: '1', size: 20, caseId: '', type: 0 });
+
+	const [response, setResponse] = useState(false);
+	const [detail, setDetail] = useState(false);
+	const [responseId, setResponseId] = useState('');
+	const [superviseInfo, setSuperviseInfo] = useState({});
+	const [responseDetail, setResponseDetail] = useState({});
+	const [supervisingId, setSupervisingId] = useState('');
+	const [supervising, setSupervising] = useState(false); //督办弹窗控制
+	const [supervisingAddId, setSupervisingAddId] = useState('');
+
+	// 添加modalData和modalVisible的state
+	const [modalData, setModalData] = useState({});
+	const [modalSearch, setModalSearch] = useState({ page: 1, size: 10, sortColmn: 1, sortType: 2 });
+	const [modalVisible, setModalVisible] = useState(false);
+
+	//排序
+	const handleSortModal = (page, pageSize, sort) => {
+		console.log('sort', page, pageSize, sort);
+		let sortColmn = sort.column ? sort.column.sortNumber : 1;
+		let sortType = sort.order === 'descend' ? 2 : 1; //1:正序;2:倒序
+		handleModal({
+			...modalSearch,
+			...pageData,
+			sortType,
+			sortColmn,
+			page,
+			size: pageSize,
+		});
+	};
+
+	// 搜索 or 重置
+	function handleModalSearch(type, session) {
+		if (type === 'search') {
+			let values = modalForm.getFieldsValue();
+			handleModal({ ...modalSearch, ...values });
+		}
+		if (type === 'reset') {
+			let paramsObj = { page: 1, size: 10, sortColmn: 1, sortType: 2 };
+			handleModal({
+				...search,
+				...paramsObj,
+			});
+			return;
+		}
+	}
+
+	async function handleModal(params) {
+		global.setSpinning(true);
+		const res = await pageQueryAreaApi({ ...params });
+		global.setSpinning(false);
+		if (res.type) {
+			// 设置弹窗数据
+			setModalData({
+				name: params.areaName,
+				tableData: res.data?.content || [], // 接口返回的列表数据
+				total: res.data?.totalElements || 0,
+			});
+			setModalSearch({
+				...params,
+			});
+		}
+	}
+
+	// 选择部门弹窗
+	function onSelectModalChange(key) {
+		if (key === 'mediateUnitId') {
+			setSelectObjModalData({ ...selectObjModalData, key, title: '承办部门' });
+		} else {
+			setSelectObjModalData({ ...selectObjModalData, key, title: '配合部门' });
+		}
+		setSelectModalVisible(true);
+	}
+
+	// 返回区域查询所需要的字段
+	function queCodeSearch(obj, firstLevel, queCode) {
+		// 第一层级 queCity  第二层级 queArea 第三层级 queRoad 第四层级 queVillage
+		// firstLevel  用户的最高权限属于哪一级 1:市,2:区,3:街道,4:村居
+		// values  搜索区域的值
+		let queCodeLength = queCode.length;
+		let keyList =
+			firstLevel === '1'
+				? ['queCity', 'queArea', 'queRoad', 'queVillage']
+				: firstLevel === '2'
+				? ['queArea', 'queRoad', 'queVillage']
+				: firstLevel === '3'
+				? ['queRoad', 'queVillage']
+				: ['queVillage'];
+		let key = keyList[queCodeLength - 1];
+		obj[key] = queCode[queCodeLength - 1];
+	}
+
+	// 搜索 or 重置
+	function handleSearch(type, session) {
+		if (type === 'recovery') {
+			// 案件详情返回时恢复跳转前查询
+			let obj = Object.assign({}, data.search);
+			if (obj.acceptStart) {
+				obj.acceptTime = [$$.myMoment(obj.acceptStart), $$.myMoment(obj.acceptEnd)];
+			}
+			if (obj.createStart) {
+				obj.createTime = [$$.myMoment(obj.createStart), $$.myMoment(obj.createEnd)];
+			}
+			form.setFieldsValue(obj);
+			getListData(data.search, listDataSearch);
+			return;
+		}
+		if (type === 'reset') {
+			setListDataSearch({ ...listDataSearch, page: 1 });
+			getListData(
+				{ [session.key]: session.value[0], createStart: $$.dateFormat(session.createStart), createEnd: $$.dateFormat(session.createEnd) },
+				{ ...listDataSearch, page: 1 }
+			);
+			return;
+		}
+		if (type === 'search') {
+			let values = form.getFieldsValue();
+			$$.changeTimNeweFormat(values, 'createTime', 'createStart', 'createEnd');
+			$$.changeTimNeweFormat(values, 'closeTime', 'closeStart', 'closeEnd');
+
+			$$.searchCascader(values, 'queCode', normalSearch.level, ['queCity', 'queArea', 'queRoad', 'queVillage']);
+			$$.searchCascader(values, 'caseType', 1, ['caseType', 'caseType']);
+			if (values.mediateUnitId) {
+				values.mediateUnitId = selectObjModalData?.mediateUnitId?.key;
+			} else {
+				delete values.mediateUnitId;
+				delete search.mediateUnitId;
+			}
+			if (values.assistUnitId) {
+				values.assistUnitId = selectObjModalData?.assistUnitId?.key;
+			} else {
+				delete values.assistUnitId;
+				delete search.assistUnitId;
+			}
+			if (temporary?.length > 0) {
+				setLabels(temporary);
+				setTemporary([]);
+			}
+			if (temporaryCaseType?.length > 0) {
+				setCaseTypeNames(temporaryCaseType);
+				setTemporaryCaseType([]);
+			}
+			getListData({ ...values, canal: search.canal || '' }, listDataSearch);
+			return;
+		}
+		if (type === 'changeTabs' || type === 'changePage') {
+			getListData({ ...search }, listDataSearch);
+		}
+	}
+
+	// 表头
+	const columns = () => {
+		const columnsData = [
+			{
+				title: '登记时间',
+				width: 120,
+				dataIndex: 'createTime',
+				render: (text, record, index) => {
+					return (
+						<div style={{ display: 'flex', gap: '8px' }}>
+							<div>{$$.dateFormat(text)}</div>
+							{record?.isRisk === '1' && <div className="public-tag public-tag-tagRed">扬言</div>}
+						</div>
+					);
+				},
+			},
+			{ title: '事项来源', width: 100, dataIndex: 'canalName' },
+			{ title: '事项状态', width: 100, dataIndex: 'statusName' },
+			{ title: '事项等级', width: 80, dataIndex: 'caseLevel' },
+			{ title: '事项类型', width: 150, dataIndex: 'caseTypeName' },
+			{ title: '问题属地', width: 170, dataIndex: 'areaName' },
+			{ title: '登记机构', width: 130, dataIndex: 'inputUnitName' },
+			{ title: '承办部门', width: 100, dataIndex: 'mediateUnitName' },
+			{ title: '办结时间', width: 100, dataIndex: 'closeTime', render: (text) => <span>{$$.dateFormat(text)}</span> },
+			{
+				title: '化解结果',
+				width: 80,
+				dataIndex: 'mediResult',
+				render: (text) => (
+					<div className={text === '22_00025-1' ? 'comprehensive-green' : text === '22_00025-2' ? 'comprehensive-red' : '-'}>
+						{text === '22_00025-1' ? '化解成功' : text === '22_00025-2' ? '化解不成功' : '-'}
+					</div>
+				),
+			},
+			{
+				title: '操作',
+				dataIndex: 'action',
+				width: 50,
+				render: (_, record) => {
+					return <Link onClick={() => handleJump(record)}>详情</Link>;
+				},
+			},
+		];
+		return columnsData;
+	};
+
+	// 跳转详情页
+	function handleJump(record) {
+		// 仅在gz/index.html路径下生效
+		const newWindow = window.open(`${$$.windowUrl}/windowDetail?caseTaskId=${record.caseTaskId}&caseId=${record.id}`);
+		// const newWindow = window.open(`#/mediate/visit/fileMessage?caseTaskId=${record.caseTaskId}&caseId=${record.id}`, "_blank", "noreferrer");
+		// 在新窗口的上下文中注入脚本,用于读取 sessionStorage 数据
+		// navigate(`/mediate/visit/fileMessage?caseTaskId=${record.caseTaskId}&ss=${record.id}`)
+	}
+
+	// 切换tabs页
+	function tabsOnchange(activeKey) {
+		console.log(activeKey);
+		setTabKey(activeKey);
+		if (activeKey !== tabKey) {
+			if (activeKey === '1') {
+				delete search.canal;
+				getListData({ ...search }, listDataSearch);
+			} else if (activeKey === '2') {
+				getListData({ ...search, canal: '22_00001-1' }, listDataSearch);
+			} else if (activeKey === '3') {
+				getListData({ ...search, canal: '22_00001-2' }, listDataSearch);
+			} else if (activeKey === '4') {
+				getListData({ ...search, canal: '22_00001-3' }, listDataSearch);
+			} else if (activeKey === '5') {
+				getListData({ ...search, canal: '22_00001-4' }, listDataSearch);
+			} else if (activeKey === '6') {
+				getListData({ ...search, canal: '22_00001-3', canalSecond: '22_00003-8' }, listDataSearch);
+			} else if (activeKey === '7') {
+				getListData({ ...search, canal: '22_00001-3', canalSecond: '22_00003-2' }, listDataSearch);
+			} else if (activeKey === '8') {
+				getListData({ ...search, canal: '22_00001-3', canalSecond: '22_00003-1' }, listDataSearch);
+			} else if (activeKey === '9') {
+				getListData({ ...search, canal: '22_00001-3', canalSecond: '22_00003-7' }, listDataSearch);
+			}
+		}
+	}
+
+	//督办次数
+	const handleSupervising = (caseId) => {
+		// setSupervisingId(caseId)
+		pageCaseSupervise(caseId);
+		setSupervisingList(!supervisingList);
+	};
+
+	//督办次数列表
+	const pageCaseSupervise = async (caseId) => {
+		const res = await pageCaseSuperviseApi({ ...searchSupervise, caseId: caseId });
+		if (res.type) {
+			let data = res.data.content;
+			setSuperviseListData(data);
+		}
+	};
+
+	// 用于扬言极端功能选择下一级后,在查询条件中显示
+	function getParentCodes(treeList, code) {
+		let parentCodes = [];
+		function findParent(node, targetCode) {
+			if (node.value === targetCode) {
+				return true;
+			}
+			if (node.children && node.children.length > 0) {
+				for (let child of node.children) {
+					if (findParent(child, targetCode)) {
+						parentCodes.unshift(node.value);
+						return true;
+					}
+				}
+			}
+			return false;
+		}
+
+		for (let node of treeList) {
+			if (findParent(node, code)) {
+				break;
+			}
+		}
+		return [...parentCodes, code];
+	}
+
+	//督办次数
+	const supervisingColumns = [
+		{
+			title: '督办时间',
+			dataIndex: 'supTime',
+			key: 'supTime',
+			width: 50,
+		},
+		{
+			title: '回复时限',
+			dataIndex: 'timeLimit',
+			key: 'timeLimit',
+			width: 80,
+			render: (text, record) => {
+				return record.supStatus === 1 ? '-' : $$.getDiffTime(record.timeLimit);
+			},
+		},
+		{
+			title: '督办意见',
+			dataIndex: 'supContent',
+			key: 'supContent',
+			width: 100,
+		},
+		{
+			title: '事项等级',
+			dataIndex: 'caseGrade',
+			key: 'caseGrade',
+			width: 50,
+			render: (text) => <span>{text === 3 ? '三级' : text === 2 ? '二级' : text === 1 ? '一级' : '-'}</span>,
+		},
+		{
+			title: '回复状态',
+			dataIndex: 'supStatus',
+			key: 'supStatus',
+			width: 50,
+			render: (text, record) => (
+				<div style={{ color: record.supStatus === 0 ? '#F53F3F' : '#00B42A' }}>{record.supStatus === 0 ? '未回复' : '已回复'}</div>
+			),
+		},
+		{
+			title: '操作',
+			dataIndex: 'defendants',
+			key: 'defendants',
+			width: 50,
+			fixed: 'right',
+			render: (text, record) => (
+				<Space>
+					<div onClick={() => handleResponse(record.id, 'responseDetail')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+						详情
+					</div>
+					{record.supStatus == 0 && (
+						<div onClick={() => handleResponse(record.id, 'response')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+							回复
+						</div>
+					)}
+				</Space>
+			),
+		},
+	];
+
+	const fxColumns = [
+		{
+			title: '',
+			dataIndex: 'index',
+			key: 'index',
+			width: 75,
+			render: (text, record, index) => {
+				return <div className="public-tag public-tag-tagRed">扬言</div>;
+			},
+		},
+		{
+			title: '登记时间',
+			dataIndex: 'turnaroundTime',
+			key: 'turnaroundTime',
+			width: 150,
+			defaultSortOrder: 'descend',
+			sorter: true,
+			sortNumber: 1, //设置这个传给后端的
+			render: (text) => {
+				return <span>{$$.myTimeFormat(text, 'YYYY-M-D')}</span>;
+			},
+		},
+		{
+			title: '问题属地',
+			dataIndex: 'queAddress',
+			key: 'queAddress',
+			width: 180,
+		},
+		{
+			title: '事项来源',
+			dataIndex: 'caseSource',
+			key: 'caseSource',
+			width: 120,
+		},
+		{
+			title: '事项等级',
+			dataIndex: 'caseGrade',
+			key: 'caseGrade',
+			width: 100,
+			render: (text) => <span>{text === 3 ? '三级' : text === 2 ? '二级' : text === 1 ? '一级' : '-'}</span>,
+		},
+		{
+			title: '涉及人数',
+			dataIndex: 'peopleNum',
+			key: 'peopleNum',
+			width: 100,
+		},
+		{
+			title: '纠纷类型',
+			dataIndex: 'caseType',
+			key: 'caseType',
+			width: 150,
+			render: (text) => (
+				<span>
+					{' '}
+					<Tooltip content={text}>{$$.ellipsis(text, 7)}</Tooltip>
+				</span>
+			),
+		},
+		{
+			title: '申请方',
+			dataIndex: 'plaintiffs',
+			key: 'plaintiffs',
+			width: 180,
+		},
+		{
+			title: '被申请方',
+			dataIndex: 'defendants',
+			key: 'defendants',
+			width: 120,
+			render: (text) => (
+				<span>
+					{' '}
+					<Tooltip content={text}>{$$.ellipsis(text, 7)}</Tooltip>
+				</span>
+			),
+		},
+		{
+			title: '事项状态',
+			dataIndex: 'statusName',
+			key: 'statusName',
+			sorter: true,
+			sortNumber: 2, //设置这个传给后端的
+			width: 120,
+		},
+		{
+			title: '承办部门',
+			dataIndex: 'organizingUnit',
+			key: 'organizingUnit',
+			width: 120,
+			render: (text) => (
+				<span>
+					{' '}
+					<Tooltip content={text}>{$$.ellipsis(text, 7)}</Tooltip>
+				</span>
+			),
+		},
+		{
+			title: '经办人',
+			dataIndex: 'mediator',
+			key: 'mediator',
+			width: 180,
+		},
+		{
+			title: '化解结果',
+			dataIndex: 'mediResultName',
+			key: 'mediResultName',
+			width: 100,
+			render: (text, record, index) => <div style={{ color: text == '化解成功' ? '#00b42a' : '#f53f3f' }}>{text}</div>,
+		},
+		{
+			title: '督办次数',
+			dataIndex: 'superviseCount',
+			key: 'superviseCount',
+			width: 100,
+			render: (text, record, index) => (
+				<div
+					onClick={() => {
+						text !== 0 && handleSupervising(record.caseId);
+					}}
+					style={{ cursor: 'pointer', color: text !== 0 ? '#1A6FB8' : '#000' }}
+				>
+					{text}
+					{/* {text !== 0 && <span className="timeTip-red-tipsRed" style={{ marginLeft: '8px' }}>督</span>} */}
+				</div>
+			),
+			sorter: true,
+			sortNumber: 3,
+		},
+		{
+			title: '操作',
+			dataIndex: 'action',
+			width: 100,
+			render: (_, record) => {
+				return (
+					<Space>
+						<span
+							onClick={() => window.open(`${$$.windowUrl}/windowDetail?caseTaskId=${record.caseTaskId}&caseId=${record.caseId}`)}
+							className="public-color public-a"
+						>
+							详情
+						</span>
+						{record.statusName === '待分派' && (
+							<div onClick={() => handleSupervisingAdd(record.caseId, 'response')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+								督办
+							</div>
+						)}
+						{record.statusName === '待签收' && (
+							<div onClick={() => handleSupervisingAdd(record.caseId, 'response')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+								督办
+							</div>
+						)}
+						{record.statusName === '待受理' && (
+							<div onClick={() => handleSupervisingAdd(record.caseId, 'response')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+								督办
+							</div>
+						)}
+						{record.statusName === '化解中' && (
+							<div onClick={() => handleSupervisingAdd(record.caseId, 'response')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+								督办
+							</div>
+						)}
+						{record.statusName === '结案审核' && (
+							<div onClick={() => handleSupervisingAdd(record.caseId, 'response')} style={{ cursor: 'pointer', color: '#1A6FB8' }}>
+								督办
+							</div>
+						)}
+					</Space>
+				);
+			},
+		},
+	];
+
+	//督办回复
+	const handleResponse = (id, type) => {
+		if (type === 'response') {
+			setResponse(!response);
+			setResponseId(id);
+			caseSuperviseInfo(id, 'response');
+		}
+		if (type === 'responseDetail') {
+			setDetail(!detail);
+			caseSuperviseInfo(id, 'responseDetail');
+		}
+	};
+
+	//回复
+	const caseSuperviseInfo = async (id, type) => {
+		const res = await caseSuperviseInfoApi({ id: id });
+		if (type === 'response') {
+			if (res.type) {
+				setSuperviseInfo(res.data);
+			}
+		}
+		if (type === 'responseDetail') {
+			if (res.type) {
+				setResponseDetail(res.data);
+			}
+		}
+	};
+
+	//添加督办
+	const handleSupervisingAdd = (caseId) => {
+		setSupervising(!supervising);
+		setSupervisingAddId(caseId);
+		getNewTimeId();
+	};
+
+	//获取添加督办id
+	const getNewTimeId = async () => {
+		const res = await getNewTimeIdApi();
+		if (res.type) {
+			setSupervisingId(res.data);
+		}
+	};
+
+	//排序
+	const handleSort = (page, pageSize, sort) => {
+		let sortColmn = sort.column ? sort.column.sortNumber : 1;
+		let sortType = sort.order == 'descend' ? 2 : 1; //1:正序;2:倒序
+		let newData = region ? { [region.key]: region.value } : {};
+		pageExtremeCase(
+			{
+				...search,
+				...pageData,
+				...newData,
+				sortType,
+				sortColmn,
+				page,
+				size: pageSize,
+			},
+			true
+		);
+	};
+
+	// 扬言极端列表
+	async function pageExtremeCase(submitData, visible) {
+		global.setSpinning(true);
+		const res = await pageExtremeCaseApi({ ...submitData });
+		global.setSpinning(false);
+		if (res.type) {
+			let data = res.data.content || [];
+			let total = res?.data?.totalElements || 0;
+			setTableData({ list: data, total });
+			setYYjdData({ visible: visible || false });
+		}
+	}
+
+	// 获取区域字典值
+	async function treeByUserId() {
+		global.setSpinning(true);
+		const res = await treeByUserIdApi();
+		global.setSpinning(false);
+		if (res.type) {
+			let list = res.data || [];
+			setTreeList(list);
+			let values = form.getFieldsValue();
+			let key =
+				list[0].level === '1'
+					? 'queCity'
+					: list[0].level === '2'
+					? 'queArea'
+					: list[0].level === '3'
+					? 'queRoad'
+					: list[0].level === '4'
+					? 'queVillage'
+					: 'queRoad';
+			values.queCode = [list[0].value];
+			values.createTime = [
+				$$.myMoment().subtract(0, 'months').startOf('month').format('YYYY-MM-DD'),
+				$$.myMoment().subtract(0, 'months').endOf('month').format('YYYY-MM-DD'),
+			];
+			form.setFieldsValue(values);
+			setLabels([list[0].label]);
+			setYYjds([{ label: list[0].label, value: list[0].value, key }]);
+			setNormalSearch({
+				key,
+				value: [list[0].value],
+				level: list[0].level,
+				createStart: $$.myMoment().subtract(0, 'months').startOf('month').format('YYYY-MM-DD'),
+				createEnd: $$.myMoment().subtract(0, 'months').endOf('month').format('YYYY-MM-DD'),
+			});
+			handleSearch('reset', {
+				key,
+				value: [list[0].value],
+				createStart: $$.myMoment().subtract(0, 'months').startOf('month').format('YYYY-MM-DD'),
+				createEnd: $$.myMoment().subtract(0, 'months').endOf('month').format('YYYY-MM-DD'),
+			});
+		}
+	}
+
+	function tabKeyTitles(type) {
+		switch (type) {
+			case '2':
+				return '大厅来访';
+			case '3':
+				return '线上来访';
+			case '4':
+				return '自行排查';
+			case '5':
+				return '协同推送';
+			case '6':
+				return '部门排查';
+			case '7':
+				return '网格排查';
+			case '8':
+				return '非警务纠纷';
+			case '9':
+				return '专项纠纷';
+			default:
+				break;
+		}
+	}
+
+	const onChange = (value, selectedOptions) => {
+		const labels = selectedOptions.map((option) => option.label);
+		setTemporary(labels);
+		setYYjds(
+			selectedOptions.map((option) => ({
+				label: option.label,
+				value: option.value,
+				key:
+					option.level === '1'
+						? 'queCity'
+						: option.level === '2'
+						? 'queArea'
+						: option.level === '3'
+						? 'queRoad'
+						: option.level === '4'
+						? 'queVillage'
+						: 'queRoad',
+			}))
+		);
+	};
+
+	const onLastChange = (value, selectedOptions) => {
+		const Names = selectedOptions.map((option) => option.label);
+		setTemporaryCaseType(Names);
+	};
+
+	// 饼图点击进入下一层级
+	async function onMyLTopChartPie(params) {
+		console.log('params', params);
+		let caseTypeFirst = params?.data?.caseType;
+		global.setSpinning(true);
+		const res = await statisticsCaseTypeApi({ ...search, caseTypeFirst });
+		global.setSpinning(false);
+		if (res.type) {
+			setCaseTypeList(res.data || []);
+			setCaseTypeLevel(caseTypeLevel + 1);
+		}
+	}
+
+	async function onClickProvince(value) {
+		if (province !== value) {
+			setProvince(value);
+		}
+	}
+
+	// 获取数据
+	async function getListData(submitData, tableSearch) {
+		console.log('submitData', submitData);
+		global.setSpinning(true);
+		const res = await getListDataApi({ ...submitData });
+		const res1 = await getCaseInfoDataApi({ ...submitData, ...tableSearch }); //获取实时动态数据
+		const res2 = await getAnalysisApi({ ...submitData, sortType: yYJDSortType });
+		global.setSpinning(false);
+		if (res.type) {
+			setData(res.data || {});
+			setSearch(submitData);
+		}
+		if (res1.type) {
+			setListData({
+				total: res1?.data?.totalElements || 0,
+				tableData: res1?.data?.content || [],
+			});
+		}
+		if (res2.type) {
+			let data = res2.data || [];
+			let total = data?.map((i) => i.total)?.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
+			console.log('total', total);
+			setExtremeData(data);
+			setExtremeTotal(total);
+		}
+	}
+
+	// 页码修改
+	function handleChangePage(page, pageSize) {
+		let paramsObj = Object.assign({ ...search, ...listDataSearch }, { page, size: pageSize });
+		getCaseInfoData({ ...paramsObj });
+	}
+
+	// 获取数据
+	async function getCaseInfoData(submitData) {
+		global.setSpinning(true);
+		const res = await getCaseInfoDataApi({ ...submitData });
+		global.setSpinning(false);
+		setListDataSearch({ ...listDataSearch, page: submitData.page, size: submitData.size });
+		if (res.type) {
+			setListData({
+				total: res?.data?.totalElements || 0,
+				tableData: res?.data?.content || [],
+			});
+		}
+	}
+
+	async function onModalChange(key, value) {
+		let paramsObj = Object.assign({ ...search, ...listDataSearch, [key]: value }, { page: 1, size: 10 });
+		global.setSpinning(true);
+		const res = await getCaseInfoDataApi({ ...paramsObj });
+		global.setSpinning(false);
+		if (res.type) {
+			setModalVisible(true);
+			setModalData({ name: '事项详情', total: res?.data?.totalElements || 0, tableData: res?.data?.content || [] });
+		}
+	}
+
+	// 添加onModalClick处理函数
+	const onModalClick = async (params) => {
+		console.log('params', params);
+		let newSearch = {
+			...search,
+			...modalSearch,
+			queArea: params.queArea,
+			queCity: params.queCity,
+			queRoad: params.queRoad,
+			queVillage: params.queVillage,
+			areaType: params.areaType,
+			unitGrades: params.unitGrades,
+			// 1-化解中,2-已结案,3-不予受理
+			resolveType: province,
+		};
+		try {
+			const res = await pageQueryAreaApi({
+				...newSearch, // 传入当前的查询条件'
+			});
+
+			if (res.type) {
+				// 设置弹窗数据
+				setModalData({
+					name: params.areaName,
+					tableData: res.data?.content || [], // 接口返回的列表数据
+					total: res.data?.totalElements || 0,
+				});
+				setModalSearch({
+					...newSearch,
+				});
+				// 显示弹窗
+				setModalVisible(true);
+			}
+		} catch (err) {
+			console.error('获取区域详情失败:', err);
+		}
+	};
+
+	// 导出数据
+	function downloadXls() {
+		const keysToFilter = ['page', 'size'];
+		const filteredObj = Object.fromEntries(Object.entries(search).filter(([key, value]) => value !== undefined && !keysToFilter.includes(key)));
+
+		window.open(`${$$.appUrl.baseUrl}/${$$.appUrl.mediate}/api/web/caseInfo/exportQueryAll?${$$.useQueryParams(filteredObj)}`);
+	}
+
+	// 导出镇街统计
+	function downloadAreaXls() {
+		const keysToFilter = ['page', 'size'];
+		const filteredObj = Object.fromEntries(Object.entries(search).filter(([key, value]) => value !== undefined && !keysToFilter.includes(key)));
+
+		window.open(`${$$.appUrl.baseUrl}/${$$.appUrl.mediate}/api/web/caseInfo/exportStatisticsArea?${$$.useQueryParams(filteredObj)}`);
+	}
+	async function getAnalysis(submitData) {
+		global.setSpinning(true);
+		const res = await getAnalysisApi({ ...submitData });
+		global.setSpinning(false);
+		if (res.type) {
+			let data = res.data || [];
+			let total = data?.map((i) => i.total)?.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
+			setExtremeData(data);
+			setExtremeTotal(total);
+		}
+	}
+
+	// 初始化
+	useEffect(() => {
+		treeByUserId();
+	}, []);
+
+	return (
+		<NewPage pageHead={{ breadcrumbData: [{ title: '工作台' }, { title: '解纷态势' }], title: '解纷态势' }}>
+			<div className="comprehensive">
+				<div className="pageSearch">
+					<div className="comprehensive-title">查询条件</div>
+					<NewTableSearch
+						exportButtonShow={false}
+						labelLength={6}
+						rowNum={4.5}
+						form={form}
+						itemData={[
+							{
+								type: 'Cascader',
+								name: 'queCode',
+								label: '区域',
+								placeholder: '请选择',
+								onChange,
+								changeSelect: true,
+								allowClear: false,
+								treedata: treeList || [],
+							},
+							{ type: 'RangePicker', name: 'createTime', label: '登记时间', shortcutsPlacementLeft: true, shortcuts: $$.shortcutsList(), span: 8 },
+							{ type: 'RangePicker', name: 'closeTime', label: '办结时间', shortcutsPlacementLeft: true, shortcuts: $$.shortcutsList(), span: 8 },
+							{
+								type: 'Cascader',
+								name: 'caseType',
+								label: '纠纷类型',
+								changeSelect: true,
+								placeholder: '请选择',
+								onChange: onLastChange,
+								span: 8,
+								treedata: $$.caseTypeSelect.caseTypeSelect,
+							},
+							{
+								type: 'searchButton',
+								name: 'mediateUnitId',
+								maxLength: 0,
+								onClear: () => {
+									setSelectObjModalData({ ...selectObjModalData, mediateUnitId: {} });
+									form.setFieldValue('mediateUnitId', '');
+								},
+								onSearch: () => {
+									onSelectModalChange('mediateUnitId');
+								},
+								searchButton: '选择',
+								placeholder: '请选择',
+								label: '承办部门',
+							},
+							{
+								type: 'searchButton',
+								name: 'assistUnitId',
+								maxLength: 0,
+								onClear: () => {
+									setSelectObjModalData({ ...selectObjModalData, assistUnitId: {} });
+									form.setFieldValue('assistUnitId', '');
+								},
+								onSearch: () => {
+									onSelectModalChange('assistUnitId');
+								},
+								searchButton: '选择',
+								placeholder: '请选择',
+								label: '配合部门',
+							},
+							{ type: 'Select', name: 'systemSource', label: '系统来源', placeholder: '请选择', span: 8, selectdata: $$.options.systemSource },
+						]}
+						handleReset={() => {
+							form.resetFields();
+							form.setFieldsValue({
+								queCode: [normalSearch.value[0]],
+								createTime: [$$.dateFormat(normalSearch.createStart), $$.dateFormat(normalSearch.createEnd)],
+							});
+							setLabels([treeList[0].label]);
+							setYYjds([{ label: treeList[0].label, value: treeList[0].value }]);
+							handleSearch('reset', normalSearch);
+						}}
+						handleSearch={() => handleSearch('search')}
+					/>
+				</div>
+				{/* <div style={{ marginTop: '12px' }}>
+          <Alert
+            type='success'
+            content={<span>已为您生成<span className='public-color'>{labels?.filter(i => i !== '本级').join('/')}</span><span>{search.createStart && '在'}</span>
+              {search.createStart && <span className='public-color'>登记时间({$$.myTimeFormat(search.createStart, 'YYYY.M.D')}-{$$.myTimeFormat(search.createEnd, 'YYYY.M.D')})</span>}
+              {search.closeStart && <span className='public-color'>{search.createStart && '、'}办结时间({$$.myTimeFormat(search.createStart, 'YYYY.M.D')}-{$$.myTimeFormat(search.createEnd, 'YYYY.M.D')})</span>}
+              {search.caseType && <span className='public-color'>{(search.createStart || search.closeStart) && '、'}纠纷类型({caseTypeNames.join('/')})</span>}
+              的解纷态势数据</span>}
+          />
+        </div> */}
+				{tabKey !== '1' && (
+					<div style={{ marginTop: '16px', display: 'flex', gap: '8px', alignItems: 'center' }}>
+						<Button
+							className="source-button"
+							onClick={() => {
+								tabsOnchange('1');
+							}}
+							icon={<img className="source-icon" src={workDash_19} alt="" srcset="" />}
+							type="secondary"
+						>
+							全部来源
+						</Button>
+						<IconCaretRight />
+						{tabKey === '2' && (
+							<Button
+								className="source-button source-button-color"
+								icon={<img className="source-icon" src={workDash_20} alt="" srcset="" />}
+								type="secondary"
+							>
+								大厅来访
+							</Button>
+						)}
+						{tabKey === '3' && (
+							<Button
+								className="source-button source-button-color"
+								icon={<img className="source-icon" src={workDash_21} alt="" srcset="" />}
+								type="secondary"
+							>
+								线上来访
+							</Button>
+						)}
+						{tabKey === '4' && (
+							<Button
+								className="source-button source-button-color"
+								icon={<img className="source-icon" src={workDash_22} alt="" srcset="" />}
+								type="secondary"
+							>
+								自行排查
+							</Button>
+						)}
+						{tabKey === '5' && (
+							<Button
+								className="source-button source-button-color"
+								icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+								type="secondary"
+							>
+								协同推送
+							</Button>
+						)}
+						{tabKey === '6' && (
+							<Space>
+								<Button
+									onClick={() => {
+										tabsOnchange('4');
+									}}
+									className="source-button"
+									icon={<img className="source-icon" src={workDash_22} alt="" srcset="" />}
+									type="secondary"
+								>
+									自行排查
+								</Button>
+								<IconCaretRight />
+								<Button
+									className="source-button source-button-color"
+									icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+									type="secondary"
+								>
+									部门排查
+								</Button>
+							</Space>
+						)}
+						{tabKey === '7' && (
+							<Space>
+								<Button
+									onClick={() => {
+										tabsOnchange('4');
+									}}
+									className="source-button"
+									icon={<img className="source-icon" src={workDash_22} alt="" srcset="" />}
+									type="secondary"
+								>
+									自行排查
+								</Button>
+								<IconCaretRight />
+								<Button
+									className="source-button source-button-color"
+									icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+									type="secondary"
+								>
+									网格排查
+								</Button>
+							</Space>
+						)}
+						{tabKey === '8' && (
+							<Space>
+								<Button
+									onClick={() => {
+										tabsOnchange('5');
+									}}
+									className="source-button"
+									icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+									type="secondary"
+								>
+									协同推送
+								</Button>
+								<IconCaretRight />
+								<Button
+									className="source-button source-button-color"
+									icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+									type="secondary"
+								>
+									非警务纠纷
+								</Button>
+							</Space>
+						)}
+						{tabKey === '9' && (
+							<Space>
+								<Button
+									onClick={() => {
+										tabsOnchange('5');
+									}}
+									className="source-button"
+									icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+									type="secondary"
+								>
+									协同推送
+								</Button>
+								<IconCaretRight />
+								<Button
+									className="source-button source-button-color"
+									icon={<img className="source-icon" src={workDash_23} alt="" srcset="" />}
+									type="secondary"
+								>
+									专项纠纷
+								</Button>
+							</Space>
+						)}
+					</div>
+				)}
+
+				{/* <MyTabsNew
+						tabs={[
+							{
+								key: '1',
+								icon: <img className="workDash-tabs" src={workDash_13}></img>,
+								label: (
+									<>
+										<div style={{ height: '24px' }}>全部</div>
+									</>
+								),
+							},
+							{ label: <div style={{ height: '24px' }}>大厅来访</div>, icon: <img className="workDash-tabs" src={workDash_14}></img>, key: '2' },
+							{ label: <div style={{ height: '24px' }}>线上来访</div>, icon: <img className="workDash-tabs" src={workDash_16}></img>, key: '3' },
+							{ label: <div style={{ height: '24px' }}>自行排查</div>, icon: <img className="workDash-tabs" src={workDash_17}></img>, key: '4' },
+							{ label: <div style={{ height: '24px' }}>协同推送</div>, icon: <img className="workDash-tabs" src={workDash_18}></img>, key: '5' },
+						]}
+						activeKey={tabKey}
+						onChange={(activeKey) => tabsOnchange(activeKey)}
+					/>
+					<div style={{ borderBottom: '1px solid #E5E6EB', position: 'absolute', width: '100%' }}></div> */}
+				<div style={{ marginTop: '16px' }} className="disputeLedger-row">
+					<div className="comprehensive-title">数据总览</div>
+					<div>
+						<Space className="workDash-d" align="center" split={<Divider type="vertical" style={{ height: '48px' }} />}>
+							<div
+								onClick={() => {
+									province !== '' && onClickProvince('');
+								}}
+								className="workDash-item public-a"
+							>
+								<div className="workDash-item-img">
+									<img src={workDash_1} alt="" srcset="" />
+								</div>
+								{['1', '2', '3', '6', '7', '8', '9'].includes(tabKey) && (
+									<div className="workDash-item-div">
+										<div className="workDash-item-title">总登记</div>
+										<div className="workDash-item-value">{data?.totalNum || 0}</div>
+									</div>
+								)}
+								{tabKey === '4' && (
+									<div className="workDash-item-div">
+										<div className="workDash-item-title">
+											<div style={{ width: '50px' }}>总登记</div>
+											<div style={{ width: '36px' }}></div>{' '}
+											<Space split={<Divider type="vertical" />}>
+												<div style={{ display: 'flex', alignItems: 'center' }}>
+													<span className="workDash-item-title-blue"></span>
+													<span
+														style={{
+															color: '#4E5969',
+															fontSize: '14px',
+															display: 'flex',
+															alignItems: 'center',
+															display: 'inline-block',
+															width: '150px',
+														}}
+													>
+														部门排查:{data?.bmpcNum || 0}件
+													</span>
+													<span
+														onClick={() => {
+															tabsOnchange('6');
+														}}
+														style={{
+															color: '#1A6FB8',
+															border: '1px solid #1A6FB8',
+															fontSize: '12px',
+															borderRadius: '2px',
+															padding: '0px 4px',
+															display: 'flex',
+															alignItems: 'center',
+															marginLeft: '12px',
+														}}
+													>
+														查看
+													</span>
+												</div>
+											</Space>
+										</div>
+										<div className="workDash-item-value" style={{ marginTop: '4px' }}>
+											<div style={{ width: '50px' }}>{data?.totalNum || 0}</div>
+											<div style={{ width: '36px' }}></div>
+											<Space split={<Divider type="vertical" />}>
+												<div style={{ display: 'flex', alignItems: 'center' }}>
+													<span className="workDash-item-title-blue"></span>
+													<span style={{ color: '#4E5969', fontSize: '14px', display: 'inline-block', width: '150px' }}>
+														网格排查:{data?.wgpcNum || 0}件
+													</span>
+													<span
+														onClick={() => {
+															tabsOnchange('6');
+														}}
+														style={{
+															color: '#1A6FB8',
+															border: '1px solid #1A6FB8',
+															fontSize: '12px',
+															borderRadius: '2px',
+															padding: '0px 4px',
+															display: 'flex',
+															alignItems: 'center',
+															marginLeft: '12px',
+														}}
+													>
+														查看
+													</span>
+												</div>
+											</Space>
+										</div>
+									</div>
+								)}
+								{tabKey === '5' && (
+									<div className="workDash-item-div">
+										<div className="workDash-item-title">
+											<div style={{ width: '50px' }}>总登记</div>
+											<div style={{ width: '36px' }}></div>{' '}
+											<Space split={<Divider type="vertical" />}>
+												<div style={{ display: 'flex', alignItems: 'center' }}>
+													<span className="workDash-item-title-blue"></span>
+													<span
+														style={{
+															color: '#4E5969',
+															fontSize: '14px',
+															display: 'flex',
+															alignItems: 'center',
+															display: 'inline-block',
+															width: '150px',
+														}}
+													>
+														非警务纠纷:{data?.fjwjfNum || 0}件
+													</span>
+													<span
+														onClick={() => {
+															tabsOnchange('8');
+														}}
+														style={{
+															color: '#1A6FB8',
+															border: '1px solid #1A6FB8',
+															fontSize: '12px',
+															borderRadius: '2px',
+															padding: '0px 4px',
+															display: 'flex',
+															alignItems: 'center',
+															marginLeft: '12px',
+														}}
+													>
+														查看
+													</span>
+												</div>
+											</Space>
+										</div>
+										<div className="workDash-item-value" style={{ marginTop: '4px' }}>
+											<div style={{ width: '50px' }}>{data?.totalNum || 0}</div>
+											<div style={{ width: '36px' }}></div>
+											<Space split={<Divider type="vertical" />}>
+												<div style={{ display: 'flex', alignItems: 'center' }}>
+													<span className="workDash-item-title-blue"></span>
+													<span style={{ color: '#4E5969', fontSize: '14px', display: 'inline-block', width: '150px' }}>
+														专项纠纷:{data?.zxjfNum || 0}件
+													</span>
+													<span
+														onClick={() => {
+															tabsOnchange('9');
+														}}
+														style={{
+															color: '#1A6FB8',
+															border: '1px solid #1A6FB8',
+															fontSize: '12px',
+															borderRadius: '2px',
+															padding: '0px 4px',
+															display: 'flex',
+															alignItems: 'center',
+															marginLeft: '12px',
+														}}
+													>
+														查看
+													</span>
+												</div>
+											</Space>
+										</div>
+									</div>
+								)}
+							</div>
+							<div
+								onClick={() => {
+									province !== '1' && onClickProvince('1');
+								}}
+								className="workDash-item public-a"
+							>
+								<div className="workDash-item-img">
+									<img src={workDash_2} alt="" srcset="" />
+								</div>
+								<div className="workDash-item-div">
+									<div className="workDash-item-title">化解中</div>
+									<div className="workDash-item-value">{data?.processNum || 0}</div>
+								</div>
+							</div>
+							<div
+								onClick={() => {
+									province !== '2' && onClickProvince('2');
+								}}
+								className="workDash-item1 public-a"
+							>
+								<div className="workDash-item-img">
+									<img src={workDash_3} alt="" srcset="" />
+								</div>
+								<div className="workDash-item-div">
+									<div className="workDash-item-title">
+										<div style={{ width: '50px' }}>已结案</div>
+										<div style={{ width: '36px' }}></div>{' '}
+										<Space split={<Divider type="vertical" />}>
+											<div style={{ display: 'flex', alignItems: 'center' }}>
+												<span className="workDash-item-title-green"></span>
+												<span style={{ color: '#4E5969', fontSize: '14px', display: 'flex', alignItems: 'center' }}>
+													化解成功:{data?.finishNum || 0}件 | 成功率:
+													<span style={{ color: '#00B42A' }}>{((data?.finishNum * 100) / (data?.finishNum + data?.failNum) || 0).toFixed(2)}%</span>
+													<img style={{ width: '14px', height: '14px', marginLeft: '8px' }} src={workDash_5} alt="" srcset="" />
+												</span>
+											</div>
+										</Space>
+									</div>
+									<div className="workDash-item-value">
+										<div style={{ width: '50px' }}>{data?.finishNum + data?.failNum || 0}</div>
+										<div style={{ width: '36px' }}></div>
+										<Space split={<Divider type="vertical" />}>
+											<div>
+												<span className="workDash-item-title-red"></span>
+												<span style={{ color: '#4E5969', fontSize: '14px' }}>化解不成功:{data?.failNum || 0}件</span>
+											</div>
+										</Space>
+									</div>
+								</div>
+							</div>
+							<div
+								onClick={() => {
+									province !== '3' && onClickProvince('3');
+								}}
+								className="workDash-item public-a"
+							>
+								<div className="workDash-item-img">
+									<img src={workDash_4} alt="" srcset="" />
+								</div>
+								<div className="workDash-item-div">
+									<div className="workDash-item-title">不予受理</div>
+									<div className="workDash-item-value">{data?.rejectNum || 0}</div>
+								</div>
+							</div>
+						</Space>
+					</div>
+				</div>
+
+				{/* 事项来源 */}
+				{tabKey === '1' && (
+					<div style={{ marginTop: '12px' }}>
+						<Row gutter={24}>
+							<Col span={16}>
+								<div className="workDash-main">
+									<div style={{ width: '100%', height: '295px' }}>
+										<div className="big-green-main-title-display">
+											<div className="disputeLedger-green-title">事项来源</div>
+										</div>
+										<div className="workDash-main-card-one">
+											<div className="workDash-main-card">
+												<div className="workDash-main-card-head">
+													<div
+														className="workDash-main-card-head-l"
+														onClick={() => {
+															tabsOnchange('2');
+														}}
+													>
+														<div className="workDash-main-card-head-l-img">
+															<img src={workDash_6} alt="" srcset="" />
+														</div>
+														<div className="workDash-main-card-head-l-img-title">详情</div>
+													</div>
+													<div className="workDash-main-card-head-r">
+														<div className="workDash-main-card-head-r-title">大厅来访</div>
+														<div className="workDash-main-card-head-r-value">
+															{data?.oneSource?.caseNum || 0}
+															<span className="workDash-main-card-head-r-subValue">&nbsp;|&nbsp;{data?.oneSource?.caseRate || 0}%</span>
+														</div>
+													</div>
+												</div>
+												<div style={{ margin: '0 6px' }}>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解中</div>
+															<div className="workDash-main-card-body-flex-value">{data?.oneSource?.resolveingNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.oneSource?.resolveNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解不成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.oneSource?.unResolveNum || 0}</div>
+														</div>
+													</div>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功率</div>
+															<div className="workDash-main-card-body-flex-value">{data?.oneSource?.resolveRate || 0}%</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">不予受理</div>
+															<div className="workDash-main-card-body-flex-value">{data?.oneSource?.rejectNum || 0}</div>
+														</div>
+													</div>
+												</div>
+											</div>
+
+											<div className="workDash-main-card">
+												<div className="workDash-main-card-head">
+													<div
+														className="workDash-main-card-head-l workDash-bg_2"
+														onClick={() => {
+															tabsOnchange('3');
+														}}
+													>
+														<div className="workDash-main-card-head-l-img workDash-bg_2_img">
+															<img src={workDash_7} alt="" srcset="" />
+														</div>
+														<div className="workDash-main-card-head-l-img-title">详情</div>
+													</div>
+													<div className="workDash-main-card-head-r workDash-bg_2_r">
+														<div className="workDash-main-card-head-r-title">线上来访</div>
+														<div className="workDash-main-card-head-r-value">
+															{data?.twoSource?.caseNum || 0}
+															<span className="workDash-main-card-head-r-subValue">&nbsp;|&nbsp;{data?.twoSource?.caseRate || 0}%</span>
+														</div>
+													</div>
+												</div>
+												<div style={{ margin: '0 6px' }}>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解中</div>
+															<div className="workDash-main-card-body-flex-value">{data?.twoSource?.resolveingNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.twoSource?.resolveNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解不成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.twoSource?.unResolveNum || 0}</div>
+														</div>
+													</div>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功率</div>
+															<div className="workDash-main-card-body-flex-value">{data?.twoSource?.resolveRate || 0}%</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">不予受理</div>
+															<div className="workDash-main-card-body-flex-value">{data?.twoSource?.rejectNum || 0}</div>
+														</div>
+													</div>
+												</div>
+											</div>
+
+											<div className="workDash-main-card">
+												<div className="workDash-main-card-head">
+													<div className="workDash-main-card-head-l workDash-bg_3">
+														<div className="workDash-main-card-head-l-img workDash-bg_3_img">
+															<img src={workDash_8} alt="" srcset="" />
+														</div>
+														<div
+															className="workDash-main-card-head-l-img-title"
+															onClick={() => {
+																tabsOnchange('4');
+															}}
+														>
+															详情
+														</div>
+													</div>
+													<div className="workDash-main-card-head-r workDash-bg_3_r">
+														<div className="workDash-main-card-head-r-title">自行排查</div>
+														<div className="workDash-main-card-head-r-value">
+															{data?.threeSource?.caseNum || 0}
+															<span className="workDash-main-card-head-r-subValue">&nbsp;|&nbsp;{data?.threeSource?.caseRate || 0}%</span>
+														</div>
+													</div>
+												</div>
+												<div style={{ margin: '0 6px' }}>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解中</div>
+															<div className="workDash-main-card-body-flex-value">{data?.threeSource?.resolveingNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.threeSource?.resolveNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解不成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.threeSource?.unResolveNum || 0}</div>
+														</div>
+													</div>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功率</div>
+															<div className="workDash-main-card-body-flex-value">{data?.threeSource?.resolveRate || 0}%</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">不予受理</div>
+															<div className="workDash-main-card-body-flex-value">{data?.threeSource?.rejectNum || 0}</div>
+														</div>
+													</div>
+												</div>
+											</div>
+
+											<div className="workDash-main-card">
+												<div className="workDash-main-card-head">
+													<div
+														className="workDash-main-card-head-l workDash-bg_4"
+														onClick={() => {
+															tabsOnchange('5');
+														}}
+													>
+														<div className="workDash-main-card-head-l-img workDash-bg_4_img">
+															<img src={workDash_9} alt="" srcset="" />
+														</div>
+														<div className="workDash-main-card-head-l-img-title">详情</div>
+													</div>
+													<div className="workDash-main-card-head-r workDash-bg_4_r">
+														<div className="workDash-main-card-head-r-title">协同推送</div>
+														<div className="workDash-main-card-head-r-value">
+															{data?.fourSource?.caseNum || 0}
+															<span className="workDash-main-card-head-r-subValue">&nbsp;|&nbsp;{data?.fourSource?.caseRate || 0}%</span>
+														</div>
+													</div>
+												</div>
+												<div style={{ margin: '0 6px' }}>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解中</div>
+															<div className="workDash-main-card-body-flex-value">{data?.fourSource?.resolveingNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.fourSource?.resolveNum || 0}</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解不成功</div>
+															<div className="workDash-main-card-body-flex-value">{data?.fourSource?.unResolveNum || 0}</div>
+														</div>
+													</div>
+													<div style={{ display: 'flex', justifyContent: 'space-between', marginTop: '16px' }}>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">化解成功率</div>
+															<div className="workDash-main-card-body-flex-value">{data?.fourSource?.resolveRate || 0}%</div>
+														</div>
+														<div className="workDash-main-card-body-flex">
+															<div className="workDash-main-card-body-flex-title">不予受理</div>
+															<div className="workDash-main-card-body-flex-value">{data?.fourSource?.rejectNum || 0}</div>
+														</div>
+													</div>
+												</div>
+											</div>
+										</div>
+									</div>
+								</div>
+							</Col>
+							<Col span={8}>
+								<div className="workDash-main-flex_1">
+									<div style={{ alignItems: 'center', justifyContent: 'space-between' }} className="big-green-main-title-display">
+										<div style={{ color: '#86909C' }} className="disputeLedger-green-title public-a public-color">
+											<span onClick={() => setRightTag('1')} className={`public-a ${rightTag === '1' && 'public-color'}`}>
+												纠纷类型
+											</span>
+											<span>
+												{' '}
+												/{' '}
+												<span onClick={() => setRightTag('2')} className={`public-a ${rightTag === '2' && 'public-color'}`}>
+													化解状况
+												</span>{' '}
+												/{' '}
+												<span onClick={() => setRightTag('3')} className={`public-a ${rightTag === '3' && 'public-color'}`}>
+													事项等级
+												</span>
+											</span>
+										</div>
+										{rightTag === '1' && caseTypeLevel > 1 && (
+											<div
+												onClick={() => {
+													setCaseTypeLevel(caseTypeLevel - 1);
+												}}
+												className="public-a"
+												style={{ padding: '12px 16px' }}
+											>
+												<IconUndo style={{ color: '#1A6FB8' }} /> <span className=" public-color">返回上一级</span>
+											</div>
+										)}
+									</div>
+									<div style={{ width: '100%', height: '247px' }}>
+										{rightTag === '1' && (
+											<MyLTopChartPie
+												data={
+													caseTypeLevel > 1
+														? caseTypeList?.map((i) => ({ value: i.caseRate, caseNum: i.caseNum, name: i.caseTypeName, caseType: i.caseType })) || []
+														: data?.typeList?.map((i) => ({ value: i.caseRate, caseNum: i.caseNum, name: i.caseTypeName, caseType: i.caseType })) ||
+														  []
+												}
+												onMyLTopChartPie={onMyLTopChartPie}
+											/>
+										)}
+										{rightTag === '2' && (
+											<MyLTopChartPie1
+												data={[
+													{ value: data?.resolveingRate || 0, name: '化解中' },
+													{ value: data?.resolveRate || 0, name: '化解成功' },
+													{ value: data?.unResolveRate || 0, name: '化解不成功' },
+												]}
+												allNum={data.totalNum || 0}
+											/>
+										)}
+										{rightTag === '3' && (
+											<div className="workDash-grade">
+												<div className="workDash-grade-item workDash-grade-item-orange">
+													<div className="workDash-grade-item-t">
+														<div className="workDash-grade-item-t-orange">3级事件</div>
+														<div className="workDash-grade-item-t-value">
+															{data?.threeLevelNum || 0}
+															<span className="workDash-grade-item-t-unit">件</span>
+														</div>
+													</div>
+													<div className="workDash-grade-item-b">
+														<div className="workDash-grade-item-b-bg">
+															<div className="workDash-grade-item-b-bg-orange" style={{ width: `${data?.threeLevelRate || 0}%` }}></div>
+															<img style={{ left: `${Number(data?.threeLevelRate || 0) - 1}%` }} src={workDash_10} alt="" srcset="" />
+														</div>
+													</div>
+												</div>
+												<div className="workDash-grade-item workDash-grade-item-blue">
+													<div className="workDash-grade-item-t">
+														<div className="workDash-grade-item-t-blue">2级事件</div>
+														<div className="workDash-grade-item-t-value">
+															{data?.twoLevelNum || 0}
+															<span className="workDash-grade-item-t-unit">件</span>
+														</div>
+													</div>
+													<div className="workDash-grade-item-b">
+														<div className="workDash-grade-item-b-bg">
+															<div className="workDash-grade-item-b-bg-blue" style={{ width: `${data?.twoLevelRate || 0}%` }}></div>
+															<img style={{ left: `${Number(data?.twoLevelRate || 0) - 1}%` }} src={workDash_11} alt="" srcset="" />
+														</div>
+													</div>
+												</div>
+												<div className="workDash-grade-item workDash-grade-item-red">
+													<div className="workDash-grade-item-t">
+														<div className="workDash-grade-item-t-red">1级事件</div>
+														<div className="workDash-grade-item-t-value">
+															{data?.oneLevelNum || 0}
+															<span className="workDash-grade-item-t-unit">件</span>
+														</div>
+													</div>
+													<div className="workDash-grade-item-b">
+														<div className="workDash-grade-item-b-bg">
+															<div className="workDash-grade-item-b-bg-red" style={{ width: `${data?.oneLevelRate || 0}%` }}></div>
+															<img style={{ left: `${Number(data?.oneLevelRate || 0) - 1}%` }} src={workDash_12} alt="" srcset="" />
+														</div>
+													</div>
+												</div>
+											</div>
+										)}
+									</div>
+								</div>
+							</Col>
+						</Row>
+					</div>
+				)}
+
+				{/* 公安非警务,12345,网格化 */}
+				{tabKey === '5' && (
+					<div style={{ marginTop: '12px' }}>
+						<Row gutter={16}>
+							{/* 公安非警务 */}
+							<Col span={8}>
+								<div className="workDash-public">
+									<div className="workDash-public-head">
+										<div className="workDash-public-head-l">
+											<div className="workDash-public-head-l-img">
+												<img src={workDash_24} alt="" srcset="" />
+											</div>
+										</div>
+										<div className="workDash-public-head-r">
+											<div className="workDash-public-head-r-title">公安非警务</div>
+											<div className="workDash-public-head-r-value">
+												<div className="workDash-public-head-r-value-num">
+													{data?.oneSecondSource?.caseNum || 0}条 <span className="workDash-public-head-r-value-unit">(工单总数)</span>
+												</div>
+											</div>
+										</div>
+									</div>
+									<div className="workDash-public-body">
+										<Row gutter={[12, 8]}>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解中</div>
+													<div className="workDash-public-body-item-value">{data?.oneSecondSource?.resolveingNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">回退</div>
+													<div className="workDash-public-body-item-value">{data?.oneSecondSource?.rejectNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解成功</div>
+													<div className="workDash-public-body-item-value">{data?.oneSecondSource?.resolveNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解不成功</div>
+													<div className="workDash-public-body-item-value">{data?.oneSecondSource?.unResolveNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解成功率</div>
+													<div className="workDash-public-body-item-value">{data?.oneSecondSource?.resolveRate || 0}%</div>
+												</div>
+											</Col>
+										</Row>
+									</div>
+								</div>
+							</Col>
+
+							{/* 12345 */}
+							<Col span={8}>
+								<div className="workDash-public">
+									<div className="workDash-public-head">
+										<div className="workDash-public-head-l">
+											<div className="workDash-public-head-l-img workDash-public-head-l-img-green">
+												<img src={workDash_25} alt="" srcset="" />
+											</div>
+										</div>
+										<div className="workDash-public-head-r">
+											<div className="workDash-public-head-r-title">12345</div>
+											<div className="workDash-public-head-r-value">
+												<div className="workDash-public-head-r-value-num">
+													{data?.twoSecondSource?.caseNum || 0}条 <span className="workDash-public-head-r-value-unit">(工单总数)</span>
+												</div>
+											</div>
+										</div>
+									</div>
+									<div className="workDash-public-body">
+										<Row gutter={[12, 8]}>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解中</div>
+													<div className="workDash-public-body-item-value">{data?.twoSecondSource?.resolveingNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">不予受理</div>
+													<div className="workDash-public-body-item-value">{data?.twoSecondSource?.rejectNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解成功</div>
+													<div className="workDash-public-body-item-value">{data?.twoSecondSource?.resolveNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解不成功</div>
+													<div className="workDash-public-body-item-value">{data?.twoSecondSource?.unResolveNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解成功率</div>
+													<div className="workDash-public-body-item-value">{data?.twoSecondSource?.resolveRate || 0}%</div>
+												</div>
+											</Col>
+										</Row>
+									</div>
+								</div>
+							</Col>
+
+							{/* 网格化 */}
+							<Col span={8}>
+								<div className="workDash-public">
+									<div className="workDash-public-head">
+										<div className="workDash-public-head-l">
+											<div className="workDash-public-head-l-img workDash-public-head-l-img-blue">
+												<img src={workDash_26} alt="" srcset="" />
+											</div>
+										</div>
+										<div className="workDash-public-head-r">
+											<div className="workDash-public-head-r-title">网格化</div>
+											<div className="workDash-public-head-r-value">
+												<div className="workDash-public-head-r-value-num">
+													{data?.threeSecondSource?.caseNum || 0}条 <span className="workDash-public-head-r-value-unit">(工单总数)</span>
+												</div>
+											</div>
+										</div>
+									</div>
+									<div className="workDash-public-body">
+										<Row gutter={[12, 8]}>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解中</div>
+													<div className="workDash-public-body-item-value">{data?.threeSecondSource?.resolveingNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">不予受理</div>
+													<div className="workDash-public-body-item-value">{data?.threeSecondSource?.rejectNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解成功</div>
+													<div className="workDash-public-body-item-value">{data?.threeSecondSource?.resolveNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解不成功</div>
+													<div className="workDash-public-body-item-value">{data?.threeSecondSource?.unResolveNum || 0}条</div>
+												</div>
+											</Col>
+											<Col span={12}>
+												<div className="workDash-public-body-item">
+													<div className="workDash-public-body-item-title">化解成功率</div>
+													<div className="workDash-public-body-item-value">{data?.threeSecondSource?.resolveRate || 0}%</div>
+												</div>
+											</Col>
+										</Row>
+									</div>
+								</div>
+							</Col>
+						</Row>
+					</div>
+				)}
+
+				{/* 纠纷类型  化解状况  事项等级 */}
+				{tabKey !== '1' && (
+					<div style={{ marginTop: '12px', width: '100%' }}>
+						<Row gutter={16}>
+							<Col span={8}>
+								<div className="workDash-main-flex_1">
+									<div className="big-green-main-title-display">
+										<div className="disputeLedger-green-title">化解状况({tabKeyTitles(tabKey)})</div>
+									</div>
+									<div style={{ width: '100%', height: '247px' }}>
+										<MyLTopChartPie1
+											data={[
+												{ value: data?.resolveingRate || 0, name: '化解中' },
+												{ value: data?.resolveRate || 0, name: '化解成功' },
+												{ value: data?.unResolveRate || 0, name: '化解不成功' },
+											]}
+											allNum={data.totalNum || 0}
+										/>
+									</div>
+								</div>
+							</Col>
+							<Col span={8}>
+								<div className="workDash-main-flex_1">
+									<div className="big-green-main-title-display">
+										<div className="disputeLedger-green-title">事项等级({tabKeyTitles(tabKey)})</div>
+									</div>
+									<div style={{ height: '247px' }} className="workDash-grade">
+										<div className="workDash-grade-item workDash-grade-item-orange">
+											<div className="workDash-grade-item-t">
+												<div className="workDash-grade-item-t-orange">3 级事件</div>
+												<div className="workDash-grade-item-t-value">
+													{data?.threeLevelNum || 0}
+													<span className="workDash-grade-item-t-unit"> 件</span>
+												</div>
+											</div>
+											<div className="workDash-grade-item-b">
+												<div className="workDash-grade-item-b-bg">
+													<div className="workDash-grade-item-b-bg-orange" style={{ width: `${data?.threeLevelRate || 0}%` }}></div>
+													<img style={{ left: `${Number(data?.threeLevelRate || 0) - 1}%` }} src={workDash_10} alt="" srcset="" />
+												</div>
+											</div>
+										</div>
+										<div className="workDash-grade-item workDash-grade-item-blue">
+											<div className="workDash-grade-item-t">
+												<div className="workDash-grade-item-t-blue">2 级事件</div>
+												<div className="workDash-grade-item-t-value">
+													{data?.twoLevelNum || 0}
+													<span className="workDash-grade-item-t-unit"> 件</span>
+												</div>
+											</div>
+											<div className="workDash-grade-item-b">
+												<div className="workDash-grade-item-b-bg">
+													<div className="workDash-grade-item-b-bg-blue" style={{ width: `${data?.twoLevelRate || 0}%` }}></div>
+													<img style={{ left: `${Number(data?.twoLevelRate || 0) - 1}%` }} src={workDash_11} alt="" srcset="" />
+												</div>
+											</div>
+										</div>
+										<div className="workDash-grade-item workDash-grade-item-red">
+											<div className="workDash-grade-item-t">
+												<div className="workDash-grade-item-t-red">1 级事件</div>
+												<div className="workDash-grade-item-t-value">
+													{data?.oneLevelNum || 0}
+													<span className="workDash-grade-item-t-unit"> 件</span>
+												</div>
+											</div>
+											<div className="workDash-grade-item-b">
+												<div className="workDash-grade-item-b-bg">
+													<div className="workDash-grade-item-b-bg-red" style={{ width: `${data?.oneLevelRate || 0}%` }}></div>
+													<img style={{ left: `${Number(data?.oneLevelRate || 0) - 1}%` }} src={workDash_12} alt="" srcset="" />
+												</div>
+											</div>
+										</div>
+									</div>
+								</div>
+							</Col>
+							<Col span={8}>
+								<div className="workDash-main-flex_1">
+									<div style={{ alignItems: 'center', justifyContent: 'space-between' }} className="big-green-main-title-display">
+										<div className="disputeLedger-green-title">纠纷类型({tabKeyTitles(tabKey)})</div>
+										{caseTypeLevel > 1 && (
+											<div
+												onClick={() => {
+													setCaseTypeLevel(caseTypeLevel - 1);
+												}}
+												className="public-a"
+												style={{ padding: '12px 16px' }}
+											>
+												<IconUndo style={{ color: '#1A6FB8' }} /> <span className=" public-color">返回上一级</span>
+											</div>
+										)}
+									</div>
+									<div style={{ width: '100%', height: '247px' }}>
+										<MyLTopChartPie
+											data={
+												caseTypeLevel > 1
+													? caseTypeList?.map((i) => ({ value: i.caseRate, caseNum: i.caseNum, name: i.caseTypeName, caseType: i.caseType })) || []
+													: data?.typeList?.map((i) => ({ value: i.caseRate, caseNum: i.caseNum, name: i.caseTypeName, caseType: i.caseType })) || []
+											}
+											onMyLTopChartPie={onMyLTopChartPie}
+										/>
+									</div>
+								</div>
+							</Col>
+						</Row>
+					</div>
+				)}
+
+				{/* 图表-化解统计 */}
+				<div className="disputeLedger-green">
+					<div style={{ position: 'relative', width: '100%', backgroundColor: '#fff' }}>
+						<div
+							style={{ position: 'absolute', zIndex: '1000', alignItems: 'center', justifyContent: 'space-between', width: '100%' }}
+							className="big-green-main-title-display"
+						>
+							<div className="disputeLedger-green-title">化解统计</div>
+							<div style={{ paddingRight: '24px' }}>
+								<Select
+									style={{ width: '180px' }}
+									value={province}
+									onChange={(value) => {
+										onClickProvince(value);
+									}}
+								>
+									{[
+										{ label: '总登记', value: '' },
+										{ label: '化解中', value: '1' },
+										{ label: '已结案', value: '2' },
+										{ label: '不予受理', value: '3' },
+									].map((option, index) => (
+										<Option key={index} value={option.value}>
+											{'统计条件:' + option.label}
+										</Option>
+									))}
+								</Select>
+								<Button type="outline" onClick={downloadAreaXls}>
+									导出
+								</Button>
+							</div>
+						</div>
+						<div style={{ width: '100%', height: '300px' }}>
+							{province === '' && (
+								<MyChartBar
+									data={data?.areaList || []}
+									status={province}
+									dataAxis={data?.areaList?.map((i) => i.areaName) || []}
+									onMyLTopChartPie={onModalClick}
+								/>
+							)}
+							{province === '1' && (
+								<MyChartBar1
+									data={data?.areaList || []}
+									status={province}
+									dataAxis={data?.areaList?.map((i) => i.areaName) || []}
+									onMyLTopChartPie={onModalClick}
+								/>
+							)}
+							{province === '2' && (
+								<MyChartBar2
+									data={data?.areaList || []}
+									data1={data?.areaList || []}
+									dataAxis={data?.areaList?.map((i) => i.areaName) || []}
+									onMyLTopChartPie={onModalClick}
+								/>
+							)}
+							{province === '3' && (
+								<MyChartBar3 data={data?.areaList || []} dataAxis={data?.areaList?.map((i) => i.areaName) || []} onMyLTopChartPie={onModalClick} />
+							)}
+						</div>
+					</div>
+				</div>
+				{/* 扬言极端 */}
+				{/* <div style={{ width: '100%', display: 'flex', gap: '12px', justifyContent: 'space-between' }} >
+          <div className='workDash-main-flex_1' style={{ marginBottom: '12px', }}>
+            <div className='big-green-main-title-display-table'>
+              <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }} className='disputeLedger-green-title'><img src={huo} alt="" srcset="" />扬言极端</div>
+              <div style={{ fontSize: '14px', padding: '0 16px', display: 'flex' }} className='disputeLedger-green-subTitle'>区域查询:
+                <Breadcrumb>{yYjds?.map((i, idx) => <Breadcrumb.Item><span onClick={() => {
+                  if (yYjds?.length > 1) {
+                    setYYjdData({ visible: false })
+                    console.log('yYjds111111', yYjds);
+                    setYYjds(yYjds.filter((j, idx2) => idx2 <= idx))
+                    delete search.queArea;
+                    delete search.queRoad;
+                    delete search.queVillage;
+                    delete search.queRoad;
+                    getAnalysis({ ...search, [i.key]: i.value })
+                  }
+                }} className={idx < (yYjds?.length - 1) && 'public-a'}>{i.label}</span></Breadcrumb.Item>)}</Breadcrumb></div>
+              <div style={{ margin: '12px 16px' }}>
+                <Alert
+                  type='info'
+                  content={<span>点击区域查询文字内容可返回上一级</span>}
+                />
+              </div>
+              <div style={{ padding: '4px 16px 16px 16px' }}>
+                {
+                  yYjdData.visible ?
+                    <TableView
+                      columns={fxColumns}
+                      dataSource={tableData.list}
+                      // tableHeight={'100%'}
+                      size="small"
+                      rowKey='ownerId'
+                      bordered={true}
+                      isScroll={true}//兼容以前的,当需要表格竖向滚动,请设置这个
+                      scroll={{
+                        x: 1300
+                      }}
+                      offsetHeight={165}
+                      onChange={(pagination, filters, sorter) => {
+                        handleSort(pagination.current, pagination.pageSize, sorter)
+                      }}
+                      pagination={{
+                        current: tableData.page,
+                        pageSize: tableData.size,
+                        total: tableData.total,
+                      }}
+                    /> :
+                    <Table
+                      columns={[
+                        { title: '区域', width: 120, dataIndex: 'name' },
+                        {
+                          title: '事件数量', width: 700, dataIndex: 'total', defaultSortOrder: 'descend',
+                          sorter: true, render: (text, record) => (
+                            <div className='workDash-extreme-rate'><div className='workDash-extreme-rate-show' style={{ width: `${((Number(text) / Number(extremeTotal)) || 0).toFixed(2) * 100}%` }}>{`${text || 0}件`}</div><div style={{ zIndex: '2' }}></div></div>
+                          )
+                        },
+                        { title: '极端事件高发纠纷类型', width: 280, dataIndex: 'commonType' },
+                        {
+                          title: '操作', width: 120, dataIndex: 'actions', render: (text, record) => (
+                            <Space>
+                              {(record?.region !== 'unitId' && record?.region !== 'queVillage') && <div onClick={() => {
+                                // 将code传给查询组件中,并在查询组件中的区域中进行展示
+                                //  let codes = getParentCodes(treeList, record.code);
+                                //  form.setFieldValue('queCode', codes)
+                                setYYjds([...yYjds, { label: record.name, value: record.code, key: record.region }])
+                                setRegion({ key: record.region, value: record.code })
+                                delete search.queArea;
+                                delete search.queRoad;
+                                delete search.queVillage;
+                                delete search.queRoad;
+                                getAnalysis({ ...search, [record.region]: record.code })
+                              }} className='public-a public-color'>查看下级</div>}
+                              {<div onClick={() => {
+                                setYYjds([...yYjds, { label: record.name, value: record.code, key: record.region }])
+                                setRegion({ key: record.region, value: record.code })
+                                pageExtremeCase({ ...search, ...pageData, [record.region]: record.code }, true)
+                              }} className='public-a public-color'>详情</div>}
+                            </Space>
+                          )
+                        },
+                      ]}
+                      locale={{
+                        emptyText: <div className='public-noData'>
+                          <Empty imageStyle={{ height: '160px' }} description={<span style={{ color: "#86909C" }}>暂无数据</span>} image={empty}>
+                            <div className='ledger-main-display' style={{ marginTop: '8px' }}>
+                            </div>
+                          </Empty>
+                        </div>, // 使用自定义组件作为空状态的展示
+                      }}
+                      bordered
+                      onChange={(pagination, filters, sorter) => {
+                        let sortType = sorter?.order === 'descend' ? '2' : sorter?.order === 'ascend' ? '1' : '';
+                        setYYJDSortType(sorter?.order || '')
+                        let item = yYjds[yYjds.length - 1];
+                        delete search.queArea;
+                        delete search.queRoad;
+                        delete search.queVillage;
+                        delete search.queRoad;
+                        getAnalysis({ ...search, [item.key]: item.value, sortType })
+                      }}
+                      dataSource={extremeData}
+                      scroll={null}
+                      summary={() => (
+                        <Table.Summary fixed>
+                          <Table.Summary.Row style={{ background: '#EFF8FF' }}>
+                            <Table.Summary.Cell index={0}>合计</Table.Summary.Cell>
+                            <Table.Summary.Cell index={1}>{extremeTotal}</Table.Summary.Cell>
+                            <Table.Summary.Cell index={2}></Table.Summary.Cell>
+                            <Table.Summary.Cell index={3}></Table.Summary.Cell>
+                          </Table.Summary.Row>
+                        </Table.Summary>
+                      )}
+                      direction="暂无历史记录"
+                      pagination={false}
+                      size="small"
+                      rowKey="applyId"
+                    />
+                }
+              </div>
+            </div>
+          </div>
+        </div> */}
+
+				{/* 实时动态 */}
+				<div style={{ width: '100%', display: 'flex', gap: '12px', justifyContent: 'space-between' }}>
+					<div className="workDash-main-flex_1" style={{ marginBottom: '12px' }}>
+						<div className="big-green-main-title-display-table">
+							<div className="disputeLedger-green-title" style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
+								<div>实时动态</div>
+								{/* 导出 */}
+								<Button type="outline" onClick={downloadXls}>
+									导出
+								</Button>
+							</div>
+							<div style={{ padding: '4px 16px 16px' }}>
+								{/* <ScrollTable dataSource={data.caseList || []} columns={columns()} /> */}
+								<div className="workDash-table">
+									<TableView
+										title=""
+										columns={columns()}
+										dataSource={listData.tableData}
+										pagination={{
+											current: listDataSearch.page,
+											pageSize: listDataSearch.size,
+											total: listData.total,
+											onChange: (page, pageSize) => handleChangePage(page, pageSize),
+										}}
+										rowClassName={(record) => (record.id === data.tableActive ? 'tableRowActive' : '')}
+									/>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<SupervisingViews
+					visible={supervising}
+					handleOnCancel={() => setSupervising(false)}
+					caseId={supervisingAddId}
+					supervisingId={supervisingId}
+					getTableData={() => {
+						let newData = region ? { [region.key]: region.value } : {};
+						pageExtremeCase({
+							...search,
+							...pageData,
+							...newData,
+						});
+					}}
+				/>
+				<Modal title="督办信息" style={{ width: '938px' }} onCancel={() => setSupervisingList(false)} visible={supervisingList} footer={null}>
+					<TableView
+						showHeader
+						title=""
+						columns={supervisingColumns}
+						dataSource={SuperviseListData || []}
+						rowKey="id"
+						tableHeight={500}
+						style={{ marginTop: '-40px' }}
+					/>
+				</Modal>
+				{/* 点击柱状图弹窗 */}
+				<Modal
+					title={`${modalData.name || ''}`}
+					visible={modalVisible}
+					onCancel={() => setModalVisible(false)}
+					footer={null}
+					style={{ width: '80%' }}
+				>
+					<div>
+						{/* <div style={{ marginBottom: '8px' }}>
+							<div className="comprehensive-title">查询条件</div>
+							<NewTableSearch
+								exportButtonShow={false}
+								labelLength={6}
+								form={modalForm}
+								itemData={[
+									// { type: 'Cascader', name: 'queCode', label: '问题属地', placeholder: '请选择', changeSelect: true, allowClear: false, treedata: treeList || [] },
+									{ type: 'Input', name: 'inputUnitName', label: '登记机构' },
+									{ type: 'Select', name: 'mediResult', label: '化解结果', placeholder: '请选择', span: 8, selectdata: $$.options.mediResult },
+									{ type: 'Input', name: 'plaintiffs', label: '申请方', labelStyle: { width: '56px' } },
+									// { type: 'Input', name: 'defendants', label: '被申请方' },
+								]}
+								handleReset={() => {
+									modalForm.resetFields();
+									modalForm.setFieldsValue({});
+								}}
+								handleSearch={() => {
+									handleModalSearch('search');
+								}}
+							/>
+						</div> */}
+						<TableView
+							columns={[
+								{
+									title: '登记时间',
+									width: 100,
+									dataIndex: 'createTime',
+									defaultSortOrder: 'descend',
+									order: 'ascend',
+									sorter: { compare: (a, b) => {} },
+									render: (text) => <div>{$$.dateFormat(text)}</div>,
+								},
+								{ title: '事项来源', width: 100, dataIndex: 'canalName' },
+								{ title: '事项状态', width: 100, dataIndex: 'statusName' },
+								{ title: '事项等级', width: 100, dataIndex: 'caseLevel' },
+								{ title: '纠纷类型', width: 100, dataIndex: 'caseTypeName' },
+								{ title: '问题属地', width: 100, dataIndex: 'areaName' },
+								{ title: '登记机构', width: 150, dataIndex: 'inputUnitName' },
+								{ title: '承办部门', width: 100, dataIndex: 'mediateUnitName' },
+								{
+									title: '办结时间',
+									width: 100,
+									dataIndex: 'closeTime',
+									order: 'ascend',
+									sorter: { compare: (a, b) => {} },
+									render: (text) => <span>{$$.dateFormat(text)}</span>,
+								},
+								{
+									title: '化解结果',
+									width: 100,
+									dataIndex: 'mediResult',
+									render: (text) => (
+										<div className={text === '22_00025-1' ? 'comprehensive-green' : text === '22_00025-2' ? 'comprehensive-red' : '-'}>
+											{text === '22_00025-1' ? '化解成功' : text === '22_00025-2' ? '化解不成功' : '-'}
+										</div>
+									),
+								},
+								{
+									title: '操作',
+									dataIndex: 'action',
+									width: 50,
+									render: (_, record) => {
+										return <Link onClick={() => handleJump(record)}>详情</Link>;
+									},
+								},
+							]}
+							dataSource={modalData.tableData}
+							onChange={(pagination, filters, sorter) => {
+								handleSortModal(pagination.current, pagination.pageSize, sorter);
+							}}
+							pagination={{
+								current: modalSearch.page,
+								pageSize: modalSearch.size,
+								total: modalData.total,
+								// onChange: (page, pageSize) => handleModalChangePage(page, pageSize),
+							}}
+						/>
+					</div>
+				</Modal>
+				<Response visible={response} handleOnCancel={() => setResponse(false)} responseId={responseId} data={superviseInfo} />
+				<ResponseDetail visible={detail} handleOnCancel={() => setDetail(false)} data={responseDetail} />
+				<SelectObjModal
+					visible={selectModalVisible}
+					nameStr={selectObjModalData.title}
+					checkKeys={[selectObjModalData[selectObjModalData.key]?.key || '']}
+					onOk={(item) => {
+						setSelectModalVisible(false);
+						setSelectObjModalData({ ...selectObjModalData, [selectObjModalData.key]: item });
+						form.setFieldValue(selectObjModalData?.key, item.name);
+					}}
+					onClose={() => setSelectModalVisible(false)}
+					type="dept"
+					isCheckbox={false}
+				/>
+			</div>
+		</NewPage>
+	);
+};
+
+export default WorkDash;
+
+// 柱状图
+const MyChartBar = ({ data, dataAxis, onMyLTopChartPie }) => {
+	const myChartRef = useRef();
+	// 保存echarts实例的引用
+	const [myChart, setMyChart] = useState(null);
+
+	// 初始化图表
+	useEffect(() => {
+		const chart = echarts.init(document.getElementById('chartBar'), 'dark');
+		setMyChart(chart);
+
+		return () => {
+			// 组件卸载时销毁图表
+			chart.dispose();
+		};
+	}, []);
+
+	// 更新图表数据和事件
+	useEffect(() => {
+		if (!myChart) return;
+
+		// 移除旧的点击事件监听器
+		myChart.off('click');
+
+		// 添加新的点击事件监听器
+		myChart.on('click', (params) => {
+			// 将原始数据对象传递给回调函数
+			onMyLTopChartPie(data[params.dataIndex]);
+		});
+
+		// 设置图表配置
+		myChart.setOption({
+			backgroundColor: '#fff',
+			grid: {
+				x: 10,
+				y: 60,
+				x2: 20,
+				y2: 0,
+				containLabel: true,
+			},
+			tooltip: {
+				trigger: 'item',
+				formatter: '{a} <br/>{b}: {c}件',
+			},
+			xAxis: [
+				{
+					type: 'category',
+					data: dataAxis,
+					axisLabel: {
+						interval: 'auto',
+						rotate: 45,
+						color: '#4e5969',
+					},
+					scrollbar: {
+						show: true,
+					},
+				},
+			],
+			yAxis: {
+				splitLine: {
+					lineStyle: {
+						type: 'dashed',
+						color: '#000',
+					},
+				},
+			},
+			series: [
+				{
+					type: 'bar',
+					name: '总登记',
+					data: data.map((item) => item.caseNum),
+					barWidth: 24,
+					label: {
+						show: true,
+						color: 'rgba(0, 0, 0, 0.85)',
+						fontSize: '14px',
+						position: 'top',
+						valueAnimation: false,
+					},
+					emphasis: {
+						itemStyle: {
+							opacity: 0.7,
+						},
+					},
+					itemStyle: {
+						color: '#57a9fb',
+						borderWidth: 2,
+					},
+				},
+			],
+		});
+	}, [data, dataAxis, myChart, onMyLTopChartPie]);
+
+	return <div id="chartBar" ref={myChartRef} style={{ height: '290px', width: '100%' }} />;
+};
+// 柱状图化解中
+const MyChartBar1 = ({ data, dataAxis, onMyLTopChartPie }) => {
+	const myChartRef = useRef();
+	const [myChart, setMyChart] = useState(null);
+
+	useEffect(() => {
+		const chart = echarts.init(document.getElementById('chartBar1'), 'dark');
+		setMyChart(chart);
+		return () => {
+			chart.dispose();
+		};
+	}, []);
+
+	useEffect(() => {
+		if (!myChart) return;
+
+		myChart.off('click');
+		myChart.on('click', (params) => {
+			onMyLTopChartPie(data[params.dataIndex]);
+		});
+
+		myChart.setOption({
+			backgroundColor: '#fff',
+			grid: {
+				x: 10,
+				y: 60,
+				x2: 20,
+				y2: 0,
+				containLabel: true,
+			},
+			tooltip: {
+				trigger: 'item',
+				formatter: '{a} <br/>{b}: {c}件',
+			},
+			xAxis: [
+				{
+					type: 'category',
+					data: dataAxis,
+					axisLabel: {
+						interval: 'auto',
+						rotate: 45,
+						color: '#4e5969',
+					},
+					scrollbar: {
+						show: true,
+					},
+				},
+			],
+			yAxis: {
+				splitLine: {
+					lineStyle: {
+						type: 'dashed',
+						color: '#000',
+					},
+				},
+			},
+			series: [
+				{
+					type: 'bar',
+					name: '化解中',
+					data: data.map((item) => item.resolveingNum),
+					barWidth: 24,
+					label: {
+						show: true,
+						color: 'rgba(0, 0, 0, 0.85)',
+						fontSize: '14px',
+						position: 'top',
+						valueAnimation: false,
+					},
+					emphasis: {
+						itemStyle: {
+							opacity: 0.7,
+						},
+					},
+					itemStyle: {
+						color: '#57a9fb',
+						borderWidth: 2,
+					},
+				},
+			],
+		});
+	}, [data, dataAxis, myChart, onMyLTopChartPie]);
+
+	return <div id="chartBar1" ref={myChartRef} style={{ height: '290px', width: '100%' }} />;
+};
+
+// 柱状图化解成功,化解不成功
+const MyChartBar2 = ({ data, data1, dataAxis, onMyLTopChartPie }) => {
+	const myChartRef = useRef();
+	const [myChart, setMyChart] = useState(null);
+
+	useEffect(() => {
+		const chart = echarts.init(document.getElementById('chartBar2'), 'dark');
+		setMyChart(chart);
+		return () => {
+			chart.dispose();
+		};
+	}, []);
+
+	useEffect(() => {
+		if (!myChart) return;
+
+		myChart.off('click');
+		myChart.on('click', (params) => {
+			const isSuccess = params.seriesName === '化解成功';
+			onMyLTopChartPie({
+				...data[params.dataIndex],
+				type: isSuccess ? 'success' : 'fail',
+			});
+		});
+
+		myChart.setOption({
+			backgroundColor: '#fff',
+			grid: {
+				x: 10,
+				y: 60,
+				x2: 20,
+				y2: 0,
+				containLabel: true,
+			},
+			tooltip: {
+				trigger: 'item',
+				formatter: '{a} <br/>{b}: {c}件',
+			},
+			legend: {
+				orient: 'horizontal',
+				top: 12,
+				right: 224,
+				data: [
+					{ name: '化解成功', icon: 'circle' },
+					{ name: '化解不成功', icon: 'circle' },
+				],
+			},
+			xAxis: [
+				{
+					type: 'category',
+					data: dataAxis,
+					axisLabel: {
+						interval: 'auto',
+						rotate: 45,
+						color: '#4e5969',
+					},
+					scrollbar: {
+						show: true,
+					},
+				},
+			],
+			yAxis: {
+				splitLine: {
+					lineStyle: {
+						type: 'dashed',
+						color: '#000',
+					},
+				},
+			},
+			series: [
+				{
+					type: 'bar',
+					name: '化解成功',
+					data: data.map((item) => item.resolveNum),
+					barWidth: 24,
+					label: {
+						show: true,
+						position: 'top',
+						color: 'rgba(0, 0, 0, 0.85)',
+						fontSize: '14px',
+						valueAnimation: false,
+					},
+					emphasis: {
+						itemStyle: {
+							opacity: 0.7,
+						},
+					},
+					itemStyle: {
+						color: '#23c343',
+						borderWidth: 2,
+					},
+				},
+				{
+					type: 'bar',
+					name: '化解不成功',
+					data: data1.map((item) => item.unResolveNum),
+					barWidth: 24,
+					label: {
+						show: true,
+						position: 'top',
+						color: 'rgba(0, 0, 0, 0.85)',
+						fontSize: '14px',
+						valueAnimation: false,
+					},
+					emphasis: {
+						itemStyle: {
+							opacity: 0.7,
+						},
+					},
+					itemStyle: {
+						color: '#F76560',
+						borderWidth: 2,
+					},
+				},
+			],
+		});
+	}, [data, data1, dataAxis, myChart, onMyLTopChartPie]);
+
+	return <div id="chartBar2" ref={myChartRef} style={{ height: '290px', width: '100%' }} />;
+};
+
+// 柱状图不予受理
+const MyChartBar3 = ({ data, dataAxis, onMyLTopChartPie }) => {
+	const myChartRef = useRef();
+	const [myChart, setMyChart] = useState(null);
+
+	useEffect(() => {
+		const chart = echarts.init(document.getElementById('chartBar3'), 'dark');
+		setMyChart(chart);
+		return () => {
+			chart.dispose();
+		};
+	}, []);
+
+	useEffect(() => {
+		if (!myChart) return;
+
+		myChart.off('click');
+		myChart.on('click', (params) => {
+			onMyLTopChartPie(data[params.dataIndex]);
+		});
+
+		myChart.setOption({
+			backgroundColor: '#fff',
+			grid: {
+				x: 10,
+				y: 60,
+				x2: 20,
+				y2: 0,
+				containLabel: true,
+			},
+			tooltip: {
+				trigger: 'item',
+				formatter: '{a} <br/>{b}: {c}件',
+			},
+			xAxis: [
+				{
+					type: 'category',
+					data: dataAxis,
+					axisLabel: {
+						interval: 'auto',
+						rotate: 45,
+						color: '#4e5969',
+					},
+					scrollbar: {
+						show: true,
+					},
+				},
+			],
+			yAxis: {
+				splitLine: {
+					lineStyle: {
+						type: 'dashed',
+						color: '#000',
+					},
+				},
+			},
+			series: [
+				{
+					type: 'bar',
+					name: '不予受理',
+					data: data.map((item) => item.rejectNum),
+					barWidth: 24,
+					label: {
+						show: true,
+						position: 'top',
+						color: 'rgba(0, 0, 0, 0.85)',
+						fontSize: '14px',
+						valueAnimation: false,
+					},
+					emphasis: {
+						itemStyle: {
+							opacity: 0.7,
+						},
+					},
+					itemStyle: {
+						color: '#FFA940',
+						borderWidth: 2,
+					},
+				},
+			],
+		});
+	}, [data, dataAxis, myChart, onMyLTopChartPie]);
+
+	return <div id="chartBar3" ref={myChartRef} style={{ height: '290px', width: '100%' }} />;
+};
+
+const MyLTopChartPie = ({ data, onMyLTopChartPie }) => {
+	const myChartRef = useRef();
+	// 图表
+	const [myChart, setMyChart] = useState();
+
+	// 加载图表数据
+	useEffect(() => {
+		var myChart = echarts.init(document.getElementById('chartLTopPie'), 'dark');
+
+		// 绘制图表
+		myChart.setOption({
+			backgroundColor: '#fff',
+			grid: {
+				x: 5,
+				y: 12,
+				x2: 20,
+				y2: 0,
+			},
+			legend: {
+				orient: 'vertical', // 垂直排列
+				top: 'center',
+				textStyle: {
+					color: 'rgba(0, 0, 0, 0.85)', // 设置图例文字颜色为红色
+				},
+				right: 20,
+				data: data?.map((i) => ({ name: i.name, icon: 'circle' })),
+				formatter: function (name) {
+					return name.length > 7 ? name.slice(0, 7) + '...' : name;
+				},
+			},
+			tooltip: {
+				trigger: 'item',
+				formatter: function (params) {
+					return `纠纷类型<br/>${params.name}: ${params?.data?.caseNum}件(${params.value}%)`;
+				},
+			},
+			// tooltip: {
+			//   trigger: 'item',
+			//   formatter: "{a} <br/>{b}: ({d}%)"
+			// },
+			series: [
+				{
+					name: '纠纷类型',
+					type: 'pie',
+					radius: '90%',
+					center: ['40%', '50%'],
+					color: ['#FCE996', '#FFCF8B', '#86E8DD', '#FDCDC5', '#C396ED', '#9FD4FD'],
+					labelLine: {
+						// 关闭引导线
+						show: false,
+					},
+					label: {
+						show: true,
+						position: 'inside', // 设置文字在扇形区域内
+						formatter: '{d}%', // 标签文本格式器
+						rich: {
+							a: {
+								lineHeight: 25,
+								align: 'center',
+							},
+							b: {
+								lineHeight: 25,
+								align: 'center',
+							},
+							c: {
+								lineHeight: 25,
+								align: 'center',
+							},
+							d: {
+								lineHeight: 25,
+								align: 'center',
+							},
+							e: {
+								lineHeight: 25,
+								align: 'center',
+							},
+							f: {
+								lineHeight: 25,
+								align: 'center',
+							},
+						},
+						// normal: {
+						//   show: false,
+						// },
+					},
+					data: data,
+				},
+			],
+		});
+
+		// 移除旧的事件监听器
+		myChart.off('click');
+
+		//  为饼图添加点击事件
+		myChart.on('click', onPieClick);
+
+		// 事件处理函数
+		function onPieClick(params) {
+			onMyLTopChartPie(params);
+		}
+	}, [data]);
+
+	return <div id="chartLTopPie" ref={myChartRef} style={{ height: '232px', width: '100%' }} />;
+};
+
+const MyLTopChartPie1 = ({ data, allNum }) => {
+	const myChartRef = useRef();
+	// 图表
+	const [myChart, setMyChart] = useState();
+
+	// 加载图表数据
+	useEffect(() => {
+		var myChart = echarts.init(document.getElementById('chartLTopPie1'), 'dark');
+		// let data = [123, 98, 245, 234, 356, 148];
+		// let dataAxis = ['低收入家庭', '单亲家庭', '流动家庭', '犯罪家庭', '无家庭', '其他']
+
+		// 绘制图表
+		myChart.setOption({
+			backgroundColor: '#fff',
+			grid: {
+				x: 5,
+				y: 12,
+				x2: 20,
+				y2: 0,
+				containLabel: true,
+			},
+			legend: {
+				orient: 'vertical', // 垂直排列
+				top: 'center',
+				right: 20,
+				data: [
+					{
+						name: '化解中',
+						icon: 'circle', // 图例标记的形状
+					},
+					{
+						name: '化解成功',
+						icon: 'circle',
+					},
+					{
+						name: '化解不成功',
+						icon: 'circle',
+					},
+				],
+			},
+			series: [
+				{
+					name: '化解状况',
+					type: 'pie',
+					radius: ['60%', '90%'], // 设置饼图的内半径和外半径,实现扇形区域
+					center: ['center', 'center'],
+					color: ['#B6DDF1', '#3A8AC6', '#094282'],
+					data: data,
+					label: {
+						show: true,
+						position: 'inside', // 设置文字在扇形区域内
+						formatter: '{d}%', // 标签文本格式器
+						rich: {
+							a: {
+								lineHeight: 25,
+								align: 'center',
+							},
+							b: {
+								lineHeight: 25,
+								align: 'center',
+							},
+						},
+					},
+				},
+			],
+			graphic: {
+				type: 'group',
+				left: 'center',
+				top: '45%',
+				children: [
+					{
+						type: 'text',
+						left: 'center',
+						style: {
+							text: '事件总数',
+							fill: '#4E5969', // 第一部分文字颜色
+							fontSize: 14,
+							fontWeight: '400',
+						},
+					},
+					{
+						type: 'text',
+						top: '24px',
+						left: 'center',
+						style: {
+							text: allNum + '\r件',
+							textAlign: 'center',
+							fill: '#1D2129', // 第二部分文字颜色
+							fontSize: 18,
+							fontWeight: '400',
+						},
+					},
+					// {
+					//   type: 'text',
+					//   top: '28px',
+					//   left: '65px',
+					//   style: {
+					//     text: '件',
+					//     fill: '#86909C', // 第二部分文字颜色
+					//     fontSize: 12,
+					//     fontWeight: '400'
+					//   }
+					// },
+				],
+			},
+		});
+	}, [data]);
+
+	useEffect(() => {});
+
+	return <div id="chartLTopPie1" ref={myChartRef} style={{ height: '232px', width: '100%' }} />;
+};

--
Gitblit v1.8.0