From 71e242b85800588e66645aa0df1ed24469dfad45 Mon Sep 17 00:00:00 2001
From: liuwh <964324856@qq.com>
Date: Tue, 10 Sep 2024 10:14:41 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master

---
 gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf                    |    0 
 gz-customerSystem/src/styles/public.less                                     |    9 
 gz-customerSystem/src/assets/images/index.js                                 |    6 
 gz-customerSystem/src/components/personCard/DetailDialog.jsx                 |   12 
 gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx       |   15 
 gz-customerSystem/src/api/appUrl.js                                          |   73 -
 gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx            |  203 +++--
 gz-customerSystem/src/views/register/index.jsx                               |  924 +++++++++++++++++++++---
 gz-customerSystem/src/views/register/matterDetail/NewFileCheck.jsx           |   76 +
 gz-customerSystem/src/utils/download.js                                      |   41 +
 gz-customerSystem/src/router/router.js                                       |    4 
 gz-customerSystem/src/views/register/handleFeedback/component/CaseResult.jsx |    8 
 gz-customerSystem/src/utils/caseTypeSelect.js                                |  414 ++++++++++
 gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx     |   53 +
 gz-customerSystem/src/views/register/matterDetail/index.jsx                  |  128 ---
 gz-customerSystem/src/views/register/visit/component/previewTable.jsx        |    8 
 gz-customerSystem/src/views/register/index.less                              |   18 
 gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx     |    2 
 gz-customerSystem/src/views/register/matterDetail/FileTable.jsx              |  194 ++++
 gz-customerSystem/src/views/register/handleFeedback/index.jsx                |   14 
 gz-customerSystem/src/views/register/eventFlow/index.jsx                     |    9 
 gz-customerSystem/src/utils/utility.js                                       |    2 
 gz-customerSystem/src/assets/images/floating.png                             |    0 
 23 files changed, 1,748 insertions(+), 465 deletions(-)

diff --git a/gz-customerSystem/src/api/appUrl.js b/gz-customerSystem/src/api/appUrl.js
index 88a915c..cece9e5 100644
--- a/gz-customerSystem/src/api/appUrl.js
+++ b/gz-customerSystem/src/api/appUrl.js
@@ -8,42 +8,41 @@
  * @Description: api地址
  */
 export const debug = {
-	// web服务
-	// baseUrl: 'http://gz.hugeinfo.com.cn',
-	// baseUrl: "http://192.168.3.108:9002",
-	// baseUrl: 'http://6dycet.natappfree.cc', //yj
-	baseUrl: 'http://8pxgs3.natappfree.cc',
-	// 附件服务
-	// fileUrl: "http://192.168.3.108:9002",
-	// fileUrl: 'http://gz.hugeinfo.com.cn',
-	// fileUrl: 'http://6dycet.natappfree.cc',
-	fileUrl: 'http://8pxgs3.natappfree.cc',
-	// 文件查看url 后面接附件编号
-	fileShowUrl: '/dyh-sys/api/v1/fileInfo/show/',
-	// 文件下载url 后面接附件编号
-	fileDownUrl: '/dyh-sys/api/v1/fileInfo/down/',
-	// 在线文档编辑链接
-	fileDocx: '/word/docDraft/showWord',
-	// 签章的文档编辑链接
-	fileDocx2: '/InsertSeal/Word/AddSeal1/Word1',
+  // web服务
+  // baseUrl: 'http://gz.hugeinfo.com.cn',
+  baseUrl: "http://w88bsz.natappfree.cc",
+  // baseUrl: 'http://mdqgnh.natappfree.cc',
 
-	// 不同服务接口type
-	mediate: 'dyh-mediate', // dyh-mediate
-	cust: 'dyh-cust', // dyh-cust
-	oper: 'dyh-oper', // dyh-oper
-	sys: 'dyh-sys', // dyh-sys
-	disp: 'dyh-disp', //dyh-disp
-	utils: 'dyh-utils',
+  // 附件服务
+  fileUrl: "http://w88bsz.natappfree.cc",
+  // fileUrl: 'http://gz.hugeinfo.com.cn',
+
+  // 文件查看url 后面接附件编号
+  fileShowUrl: "/dyh-sys/api/v1/fileInfo/show/",
+  // 文件下载url 后面接附件编号
+  fileDownUrl: "/dyh-sys/api/v1/fileInfo/down/",
+  // 在线文档编辑链接
+  fileDocx: "/word/docDraft/showWord",
+  // 签章的文档编辑链接
+  fileDocx2: "/InsertSeal/Word/AddSeal1/Word1",
+
+  // 不同服务接口type
+  mediate: "dyh-mediate", // dyh-mediate
+  cust: "dyh-cust", // dyh-cust
+  oper: "dyh-oper", // dyh-oper
+  sys: "dyh-sys", // dyh-sys
+  disp: "dyh-disp", //dyh-disp
+  utils: "dyh-utils",
 };
 
 // 正式版
 export const web = {
-	// web服务
-	baseUrl: '/gz-dyh',
-	// baseUrl: 'http://146.4.99.61:8088/byzfw',
+  // web服务
+  baseUrl: "https://zfw-dyh.by.gov.cn",
+  // baseUrl: 'http://146.4.99.61:8088/byzfw',
 
-	// 附件服务
-	fileUrl: 'https://dyh.hugeinfo.com.cn',
+  // 附件服务
+  fileUrl: "https://zfw-dyh.by.gov.cn",
 
 	// 文件查看url 后面接附件编号
 	fileShowUrl: '/dyh-sys/api/v1/fileInfo/show/',
@@ -54,11 +53,11 @@
 	// 签章的文档编辑链接
 	fileDocx2: '/InsertSeal/Word/AddSeal1/Word1',
 
-	// 不同服务接口type
-	mediate: 'dyh-mediate', // dyh-mediate
-	cust: 'dyh-cust', // dyh-cust
-	oper: 'dyh-oper', // dyh-oper
-	sys: 'dyh-sys', // dyh-sys
-	disp: 'dyh-disp', //dyh-disp
-	utils: 'dyh-utils',
+  // 不同服务接口type
+  mediate: "gzdyh-mediate", // dyh-mediate
+  cust: "gzdyh-cust", // dyh-cust
+  oper: "gzdyh-oper", // dyh-oper
+  sys: "gzdyh-sys", // dyh-sys
+  disp: "gzdyh-disp", //dyh-disp
+  utils: "gzdyh-utils",
 };
diff --git a/gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf b/gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf
new file mode 100644
index 0000000..6ef0c63
--- /dev/null
+++ b/gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/floating.png b/gz-customerSystem/src/assets/images/floating.png
new file mode 100644
index 0000000..9229380
--- /dev/null
+++ b/gz-customerSystem/src/assets/images/floating.png
Binary files differ
diff --git a/gz-customerSystem/src/assets/images/index.js b/gz-customerSystem/src/assets/images/index.js
index 91af7c6..9c21414 100644
--- a/gz-customerSystem/src/assets/images/index.js
+++ b/gz-customerSystem/src/assets/images/index.js
@@ -2,7 +2,7 @@
  * @Company: hugeInfo
  * @Author: lwh
  * @Date: 2023-04-24 16:12:00
- * @LastEditTime: 2024-09-09 09:44:30
+ * @LastEditTime: 2024-09-09 15:35:32
  * @LastEditors: dminyi 1301963064@qq.com
  * @Version: 1.0.0
  * @Description:
@@ -72,6 +72,7 @@
 import tab6 from "./tab6.png";
 import visitInto from "./visitInto.png";
 import checkInto from "./checkInto.png";
+import floating from "./floating.png";
 
 export {
   ledger_1,
@@ -138,5 +139,6 @@
   tab5,
   tab6,
   visitInto,
-  checkInto
+  checkInto,
+  floating
 };
\ No newline at end of file
diff --git a/gz-customerSystem/src/components/personCard/DetailDialog.jsx b/gz-customerSystem/src/components/personCard/DetailDialog.jsx
index 183501d..f5f7dce 100644
--- a/gz-customerSystem/src/components/personCard/DetailDialog.jsx
+++ b/gz-customerSystem/src/components/personCard/DetailDialog.jsx
@@ -1,6 +1,7 @@
 import React, { useEffect, useState } from 'react'
 import KeyVisits from "./KeyVisits";
-import { link } from '@/assets/images'
+import { link } from '@/assets/images';
+import { Scrollbars } from "react-custom-scrollbars";
 
 export default function DetailDialog(props) {
   const nuturalList = [
@@ -359,7 +360,12 @@
   }, [])
 
   return (
-    <div style={{ maxHeight: '590px', overflowY: 'scroll' }}>
+    <Scrollbars
+      autoHide
+      autoHeight
+      autoHeightMin={200} // 最小高度为300px
+      autoHeightMax={590}
+    >
       <table border="1" align="center" cellpadding="8" className="table" style={{ marginBottom: '20px' }}>
         {
           tableList?.map((item, index) => {
@@ -385,6 +391,6 @@
       {/* <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}>
         <KeyVisits />
       </div> */}
-    </div>
+    </Scrollbars>
   )
 }
diff --git a/gz-customerSystem/src/router/router.js b/gz-customerSystem/src/router/router.js
index d8852de..6c5ada9 100644
--- a/gz-customerSystem/src/router/router.js
+++ b/gz-customerSystem/src/router/router.js
@@ -2,7 +2,7 @@
  * @Company: hugeInfo
  * @Author: ldh
  * @Date: 2022-03-28 11:22:41
- * @LastEditTime: 2024-09-10 09:35:19
+ * @LastEditTime: 2024-09-10 10:14:40
  * @LastEditors: lwh
  * @Version: 1.0.0
  * @Description: 路由
@@ -219,7 +219,7 @@
 						<Route path="visit/:id?" element={<Visit />} />
 						<Route path="visit/eventFlow/:caseTaskId?/:caseId?" element={<EventFlow />} />
 						<Route path="visit/handleFeedback/:caseTaskId?/:caseId?" element={<HandleFeedback />} />
-						<Route path="visit/fileMessage" element={<FileMessage />} />
+						<Route path="visit/fileMessage/:caseTaskId?/:caseId?" element={<FileMessage />} />
 						<Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />} />
 						<Route path="visit/visitWorkBench" element={<VisitWorkBench />} />
 
diff --git a/gz-customerSystem/src/styles/public.less b/gz-customerSystem/src/styles/public.less
index e824b98..d54605e 100644
--- a/gz-customerSystem/src/styles/public.less
+++ b/gz-customerSystem/src/styles/public.less
@@ -15,6 +15,11 @@
 	src: url('../assets/font/DingTalk_JinBuTi_Regular.ttf');
 }
 
+@font-face {
+	font-family: DouYu;
+	src: url('../assets/font/DingTalk_JinBuTi_Regular.ttf');
+}
+
 html,
 body {
 	margin: 0;
@@ -800,10 +805,12 @@
 
 	.arco-modal-header {
 		padding: 0;
+		margin-bottom: 0;
 	}
 
-	.arco-modal-header {
+	.arco-modal-footer {
 		text-align: right;
+		margin-top: 0;
 	}
 }
 
diff --git a/gz-customerSystem/src/utils/caseTypeSelect.js b/gz-customerSystem/src/utils/caseTypeSelect.js
index bf234b7..ef41fe4 100644
--- a/gz-customerSystem/src/utils/caseTypeSelect.js
+++ b/gz-customerSystem/src/utils/caseTypeSelect.js
@@ -10,40 +10,412 @@
 
 let caseTypeSelect = [
   {
-    'label': '家庭邻里',
-    'value': '24_000010-1',
-    'parentId': 'root',
-    'children': [
+    "label": "城市管理",
+    "value": "24_01-3",
+    "icon": null,
+    "parentId": "root",
+    "children": [
       {
-        'label': '邻里纠纷',
-        'value': '24_000011-1',
-        'parentId': '24_000010-1',
+        "label": "施工问题",
+        "value": "24_02-20",
+        "icon": null,
+        "parentId": "24_01-3",
+        "children": null
       },
       {
-        'label': '婚姻家庭纠纷',
-        'value': '24_000011-2',
-        'parentId': '24_000010-1',
+        "label": "违章建筑",
+        "value": "24_02-21",
+        "icon": null,
+        "parentId": "24_01-3",
+        "children": null
+      },
+      {
+        "label": "路桥坑洼、破损",
+        "value": "24_02-22",
+        "icon": null,
+        "parentId": "24_01-3",
+        "children": null
+      },
+      {
+        "label": "消防隐患举报",
+        "value": "24_02-23",
+        "icon": null,
+        "parentId": "24_01-3",
+        "children": null
+      },
+      {
+        "label": "噪声、气味、污水等环境问题",
+        "value": "24_02-25",
+        "icon": null,
+        "parentId": "24_01-3",
+        "children": null
+      },
+      {
+        "label": "乱摆卖、垃圾清理等街面问题",
+        "value": "24_02-24",
+        "icon": null,
+        "parentId": "24_01-3",
+        "children": null
       }
     ]
   },
   {
-    'label': '劳动社保',
-    'value': '24_000010-2',
-    'parentId': 'root',
-    'children': [
+    "label": "家庭邻里",
+    "value": "24_01-8",
+    "icon": null,
+    "parentId": "root",
+    "children": [
       {
-        'label': '拖欠、克扣工资',
-        'value': '24_000011-3',
-        'parentId': '24_000010-2',
+        "label": "邻里纠纷",
+        "value": "24_02-48",
+        "icon": null,
+        "parentId": "24_01-8",
+        "children": null
       },
       {
-        'label': '门诊及住院待遇',
-        'value': '24_000011-4',
-        'parentId': '24_000010-2',
+        "label": "婚姻家庭纠纷",
+        "value": "24_02-47",
+        "icon": null,
+        "parentId": "24_01-8",
+        "children": null
+      },
+      {
+        "label": "男女情感问题",
+        "value": "24_02-49",
+        "icon": null,
+        "parentId": "24_01-8",
+        "children": null
       }
     ]
   },
-  
+  {
+    "label": "交通运输",
+    "value": "24_01-4",
+    "icon": null,
+    "parentId": "root",
+    "children": [
+      {
+        "label": "出租车、公交车、站点等营运问题",
+        "value": "24_02-32",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "交通灯、电子警察等公安设施",
+        "value": "24_02-28",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "交通拥堵",
+        "value": "24_02-27",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "道路违章举报",
+        "value": "24_02-29",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "物流快递管理",
+        "value": "24_02-30",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "驾校纠纷",
+        "value": "24_02-31",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "车辆乱停放",
+        "value": "24_02-26",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "电动车违规问题",
+        "value": "24_02-33",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      },
+      {
+        "label": "其他(社会治安、限行、养犬等)",
+        "value": "24_02-34",
+        "icon": null,
+        "parentId": "24_01-4",
+        "children": null
+      }
+    ]
+  },
+  {
+    "label": "教育医疗",
+    "value": "24_01-5",
+    "icon": null,
+    "parentId": "root",
+    "children": [
+      {
+        "label": "教育事务、培训机构投诉",
+        "value": "24_02-35",
+        "icon": null,
+        "parentId": "24_01-5",
+        "children": null
+      },
+      {
+        "label": "医疗服务",
+        "value": "24_02-36",
+        "icon": null,
+        "parentId": "24_01-5",
+        "children": null
+      }
+    ]
+  },
+  {
+    "label": "劳动社保",
+    "value": "24_01-2",
+    "icon": null,
+    "parentId": "root",
+    "children": [
+      {
+        "label": "社保费用补缴",
+        "value": "24_02-16",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "生育待遇",
+        "value": "24_02-12",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "异地就医办理",
+        "value": "24_02-13",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "养老待遇",
+        "value": "24_02-14",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "失业保险待遇",
+        "value": "24_02-15",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "参保流程",
+        "value": "24_02-17",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "其他(职业技能、社保补贴等)",
+        "value": "24_02-18",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "港澳青年来穗服务",
+        "value": "24_02-19",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "医保个人账户",
+        "value": "24_02-11",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "门诊及住院待遇",
+        "value": "24_02-10",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      },
+      {
+        "label": "拖欠、克扣工资",
+        "value": "24_02-9",
+        "icon": null,
+        "parentId": "24_01-2",
+        "children": null
+      }
+    ]
+  },
+  {
+    "label": "房屋规划",
+    "value": "24_01-7",
+    "icon": null,
+    "parentId": "root",
+    "children": [
+      {
+        "label": "物业/业委会管理",
+        "value": "24_02-41",
+        "icon": null,
+        "parentId": "24_01-7",
+        "children": null
+      },
+      {
+        "label": "不动产登记",
+        "value": "24_02-42",
+        "icon": null,
+        "parentId": "24_01-7",
+        "children": null
+      },
+      {
+        "label": "开发商/中介纠纷",
+        "value": "24_02-43",
+        "icon": null,
+        "parentId": "24_01-7",
+        "children": null
+      },
+      {
+        "label": "电梯加装",
+        "value": "24_02-44",
+        "icon": null,
+        "parentId": "24_01-7",
+        "children": null
+      },
+      {
+        "label": "建设项目规划",
+        "value": "24_02-45",
+        "icon": null,
+        "parentId": "24_01-7",
+        "children": null
+      },
+      {
+        "label": "租赁纠纷",
+        "value": "24_02-46",
+        "icon": null,
+        "parentId": "24_01-7",
+        "children": null
+      }
+    ]
+  },
+  {
+    "label": "公共服务",
+    "value": "24_01-6",
+    "icon": null,
+    "parentId": "root",
+    "children": [
+      {
+        "label": "个人危险行为",
+        "value": "24_02-40",
+        "icon": null,
+        "parentId": "24_01-6",
+        "children": null
+      },
+      {
+        "label": "停水/电/气",
+        "value": "24_02-37",
+        "icon": null,
+        "parentId": "24_01-6",
+        "children": null
+      },
+      {
+        "label": "自然灾害",
+        "value": "24_02-38",
+        "icon": null,
+        "parentId": "24_01-6",
+        "children": null
+      },
+      {
+        "label": "公共卫生安全",
+        "value": "24_02-39",
+        "icon": null,
+        "parentId": "24_01-6",
+        "children": null
+      }
+    ]
+  },
+  {
+    "label": "市场监管",
+    "value": "24_01-1",
+    "icon": null,
+    "parentId": "root",
+    "children": [
+      {
+        "label": "金融纠纷",
+        "value": "24_02-6",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "网购及其他消费纠纷",
+        "value": "24_02-5",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "其他经济违法举报",
+        "value": "24_02-7",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "无证/无照/冒用信息等违法经营行为举报",
+        "value": "24_02-4",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "食品消费纠纷",
+        "value": "24_02-3",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "旅游消费纠纷",
+        "value": "24_02-2",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "通讯、宽带消费纠纷",
+        "value": "24_02-1",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      },
+      {
+        "label": "电费问题",
+        "value": "24_02-8",
+        "icon": null,
+        "parentId": "24_01-1",
+        "children": null
+      }
+    ]
+  }
 ]
 
 const obj = {
diff --git a/gz-customerSystem/src/utils/download.js b/gz-customerSystem/src/utils/download.js
new file mode 100644
index 0000000..5ce3b11
--- /dev/null
+++ b/gz-customerSystem/src/utils/download.js
@@ -0,0 +1,41 @@
+import axios from 'axios'
+import qs from 'qs'
+import * as $$ from '@/utils/utility';
+
+export default function downloadFile(url, params) {
+	const link = document.createElement('a')
+	return axios({
+			url,
+			params,
+			method: 'GET',
+			headers: {
+				Authorization: $$.getSessionStorage('customerSystemToken')
+			},
+			responseType: 'blob',
+			paramsSerializer: (v) => qs.stringify(v, {
+				arrayFormat: 'repeat'
+			}),
+		})
+		.then((res) => {
+			// 切割文件名
+			const fileNameEncode = res.headers['content-disposition'].split('filename=')[1]
+			// 解码
+			const fileName = decodeURIComponent(fileNameEncode)
+			// 设置type类型
+			const blob = new Blob([res.data], {
+				type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; application/octet-stream',
+			})
+			const fileUrl = window.URL.createObjectURL(blob)
+			link.href = fileUrl
+			link.setAttribute('download', fileName)
+			link.style.display = 'none'
+			link.click()
+			link.remove()
+		})
+		.catch(() => {
+			$$.info({
+				type: 'error',
+				content: '文件下载请求失败'
+			});
+		})
+}
\ No newline at end of file
diff --git a/gz-customerSystem/src/utils/utility.js b/gz-customerSystem/src/utils/utility.js
index ad223f4..8eebc56 100644
--- a/gz-customerSystem/src/utils/utility.js
+++ b/gz-customerSystem/src/utils/utility.js
@@ -165,6 +165,8 @@
 	return info({ type: 'success', content });
 }
 
+
+
 // 手机号码正则
 export const mobileRegExp = new RegExp('^1([0-9][0-9]|[0-9][0-9]|[0-9][0-9]|[0-9][0-9]|[0-9][0-9])\\d{8}$', 'g');
 
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx b/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx
index 0f4785b..d76dd19 100644
--- a/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/component/EventFlow.jsx
@@ -14,8 +14,8 @@
 const TabPane = Tabs.TabPane;
 const Step = Steps.Step;
 
-function getListCaseFlow(data) {
-  return $$.ax.request({ url: `caseTask/listCaseFlow`, type: 'get', service: 'mediate', data });
+function getListCaseFlow(caseId) {
+  return $$.ax.request({ url: `caseTask/listCaseFlow?caseId=${caseId}`, type: 'get', service: 'mediate' });
 }
 
 function accept(data) {
@@ -35,7 +35,7 @@
             const res = await accept({
               caseTaskId: props.caseTaskId
             })
-            if(res.type) {
+            if (res.type) {
               $$.infoSuccess({ content: '受理成功!' });
             }
           },
@@ -120,14 +120,17 @@
 
   //获取流程信息
   const getData = async () => {
-    const res = await getListCaseFlow({
-      caseId: props.caseId
-    })
+    const res = await getListCaseFlow(
+      props.caseId
+    )
     if (res.type) {
       setProgressData(res.data)
     }
   }
 
+
+
+
   return (
     <Fragment>
       <div style={{ backgroundColor: '#fff', margin: '0 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
diff --git a/gz-customerSystem/src/views/register/eventFlow/index.jsx b/gz-customerSystem/src/views/register/eventFlow/index.jsx
index 5fa937c..b96e734 100644
--- a/gz-customerSystem/src/views/register/eventFlow/index.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/index.jsx
@@ -46,6 +46,8 @@
 ]
 const Organization = () => {
 	const routeData = useParams();
+	const caseTaskId = $$.getQueryString('caseTaskId')
+	const caseId = $$.getQueryString('caseId')
 	const [authorData, setAuthorData] = useState({});
 	const [tabsList, setTabsList] = useState([]);
 	const [tabsActive, setTabsActive] = useState();
@@ -57,8 +59,9 @@
 
 	//获取权限tab和按钮权限
 	const getAuthor = async () => {
+		console.log(routeData, 'routeData')
 		const res = await getTabButton({
-			caseTaskId: routeData.caseTaskId
+			caseTaskId: caseTaskId
 		})
 		if (res.type) {
 			const { tabList } = res.data
@@ -83,7 +86,7 @@
 	//根据id定义组件
 	const getTypeDom = (key) => {
 		if (key === 'dslxq' || key === 'sxxq') {
-			return <EventFlow authorData={authorData} caseId={routeData.caseId} />
+			return <EventFlow authorData={authorData} caseId={caseId} caseTaskId={caseTaskId}/>
 		}
 		if (key === 'sqjl') {
 			return <ApplyInfo />
@@ -93,6 +96,8 @@
 		}
 	}
 
+	console.log(caseId, 'caseId')
+
 	return (
 		<div style={{ position: 'relative' }}>
 			<NewPage
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/CaseResult.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/CaseResult.jsx
index e426f52..f5c29ad 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/component/CaseResult.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/CaseResult.jsx
@@ -2,7 +2,7 @@
  * @Author: dminyi 1301963064@qq.com
  * @Date: 2024-09-02 14:49:13
  * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-09-08 18:25:54
+ * @LastEditTime: 2024-09-09 22:14:40
  * @FilePath: \gzDyh\gz-customerSystem\src\views\register\handleFeedback\component\CaseResult.jsx
  * @Description: 结案申请
  */
@@ -26,7 +26,7 @@
 
 
 
-const CaseResult = ({ visible = false, handleOnCancel, caseResultId, caseId }) => {
+const CaseResult = ({ visible = false, handleOnCancel, caseResultId, caseId ,caseTaskId}) => {
   const formRef = useRef();
   const formRefWrite = useRef();
   const failRef = useRef();
@@ -111,7 +111,9 @@
 
   const windupApply = async (submitData) => {
     const res = await windupApplyApi({
-      caseResultId: caseResultId,
+      caseTaskId: caseTaskId,
+      caseId:caseId,
+      caseResultId:caseResultId,
       ...submitData
     })
     if (res.type) {
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
index 332190d..c27d1d1 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
@@ -77,8 +77,8 @@
 ];
 
 
-function choosePrincipalApi(id) {
-  return $$.ax.request({ url: 'caseInfoUnfold/choosePrincipal?caseId=24083010062110001&userId=' + id, type: 'get', service: 'mediate' });
+function choosePrincipalApi(caseId, userId) {
+  return $$.ax.request({ url: `caseInfoUnfold/choosePrincipal?caseId=${caseId}&userId=` + userId, type: 'get', service: 'mediate' });
 }
 
 function delFile(id) {
@@ -111,7 +111,7 @@
 
 
 
-const Handle = () => {
+const Handle = ({ authorData, caseTaskId, caseId }) => {
   const formRef = useRef();
   const routeData = useParams();
   const [selectedTab, setSelectedTab] = useState('1'); // 默认选中第一个 tab
@@ -131,7 +131,7 @@
   const [id, setId] = useState('');
   const [uniteHandleId, setUniteHandleId] = useState('');
   const [caseResultId, setCaseResultId] = useState('');
-
+  const [managerName,setManagerName] = useState('')
 
 
   const tabs = [
@@ -148,9 +148,8 @@
     { value: '1', label: '一' }, { value: '2', label: '二' }, { value: '3', label: '三' }
   ];
 
-  const tabs2 = [
-    { index: '1', label: '公共模板1:回复督办内容收到通用范本' },
-  ]
+
+
 
 
   const handleTabChange = (newTabIndex) => {
@@ -180,7 +179,7 @@
 
   const choosePrincipal = async (id) => {
     console.log(id, 'choosePrincipalId')
-    const res = await choosePrincipalApi(id)
+    const res = await choosePrincipalApi(caseId, id)
     if (res.type) {
       let data = res.data
       console.log(data, 'choosePrincipalchoosePrincipal')
@@ -215,24 +214,24 @@
       })
       if (res.type) {
         $$.infoSuccess({ content: '修改成功' });
-        listFeedback('24083010062110001')
+        listFeedback(caseId)
       }
     } else {
       const res = await saveFeedbackApi({
         ...submitData,
-        caseId: "24083010062110001",
+        caseId: caseId,
         id: id,
         caseTaskId: '',
       })
       if (res.type) {
         $$.infoSuccess({ content: '保存成功' });
-        listFeedback('24083010062110001')
+        listFeedback(caseId)
       }
     }
   }
 
   const getFeedbackInfo = async () => {
-    const res = await getFeedbackInfoApi('24083010062110001')
+    const res = await getFeedbackInfoApi(caseTaskId)
     setFeedbackInfoData(res.data)
     console.log(res.data, 'res.data')
   }
@@ -241,8 +240,10 @@
   const listFeedback = async (id) => {
     const res = await listFeedbackApi(id)
     if (res.type) {
-      let data = res.data.caseFeedbackList
+      let data = res.data.caseFeedbackList;
+      let manager = res.data.manager
       setList(data)
+      setManagerName(manager)
     }
   }
 
@@ -317,10 +318,25 @@
 
 
   useEffect(() => {
-    listFeedback('24083010062110001');
+    listFeedback(caseId);
     getFeedbackInfo();
     getByIdRole();
   }, [])
+
+  // useEffect(() => {
+  //   if (authorData) {
+  //     const { buttonList } = authorData;
+  //     setStaticButtonList(myButton.filter(item => {
+  //       const flag = buttonList.some(result => {
+  //         if (result.id === item.key) {
+  //           return true
+  //         }
+  //       })
+  //       return flag
+  //     }))
+  //   }
+  // }, [authorData])
+
 
 
   return (
@@ -380,7 +396,10 @@
                   {wantUser.wantUserId ?
                     <WantUserTag name={wantUser.wantUserName} onClose={() => setWantUser({ wantUserId: null, wantUserName: null })} />
                     :
-                    <Button onClick={() => setIsModalVisible(true)} style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} type='outline'>选择</Button>
+                    caseId ?
+                      <WantUserTag name={managerName} onClose={() => setWantUser({ wantUserId: null, wantUserName: null })} />
+                      :
+                      <Button onClick={() => setIsModalVisible(true)} style={{ color: '#1A6FB8', border: '1px solid #1A6FB8' }} type='outline'>选择</Button>
                   }
                 </FormItem>
               </Col>
@@ -521,12 +540,14 @@
           visible={isModalVisible}
           checkKeys={wantUser.wantUserId ? [{ label: wantUser.wantUserName, value: wantUser.wantUserId }] : undefined}
           onOk={(value) => {
+            console.log(value, 'value')
             console.log(value.key, value, 'value.key', 'value')
             setIsModalVisible(false);
             setWantUser({ wantUserId: value.keys[0], wantUserName: value.items[0].name });
             handleCheckedKeys(value.keys?.[0])
           }}
           onClose={() => setIsModalVisible(false)}
+          type='person'
         />
 
         <DocumentScanner
@@ -641,7 +662,7 @@
           </Form>
         </Modal>
         <UniteHandle id={uniteHandleId} visible={uniteHandleView} handleOnCancel={() => setUniteHandleView(false)} />
-        <CaseResult visible={caseResult} handleOnCancel={() => SetCaseResult(false)} caseResultId={caseResultId} caseId={routeData.caseId} />
+        <CaseResult visible={caseResult} handleOnCancel={() => SetCaseResult(false)} caseResultId={caseResultId} caseId={caseId} caseTaskId={caseTaskId}/>
 
       </div>
     </>
diff --git a/gz-customerSystem/src/views/register/handleFeedback/index.jsx b/gz-customerSystem/src/views/register/handleFeedback/index.jsx
index 8c2488e..b928d2e 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/index.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/index.jsx
@@ -3,7 +3,7 @@
  * @Author: dminyi 1301963064@qq.com
  * @Date: 2024-08-09 09:59:43
  * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-09-08 11:53:51
+ * @LastEditTime: 2024-09-10 09:16:47
  * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
  * @Description: 来访登记
  * 
@@ -48,6 +48,8 @@
 
 const Organization = () => {
 	const routeData = useParams();
+	const caseTaskId = $$.getQueryString('caseTaskId')
+	const caseId = $$.getQueryString('caseId')
 	const [current, setCurrent] = useState(3);
 	const [tabsActive, setTabsActive] = useState('sxxq');
 	const [AiQuestionView, setAiQuestionView] = useState(false)
@@ -107,7 +109,7 @@
 
 	const getAuthor = async () => {
 		const res = await getTabButton({
-			caseTaskId: routeData.caseTaskId
+			caseTaskId: caseTaskId
 		})
 		if (res.type) {
 			const { tabList } = res.data
@@ -144,7 +146,7 @@
 
 
 	return (
-		<div style={{ position: 'relative' ,height:'100vh'}}>
+		<div style={{ position: 'relative', height: '100vh' }}>
 			<NewPage
 				pageHead={
 					{ breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }
@@ -178,16 +180,16 @@
 								</div>
 							}
 							{tabsActive === 'sxxq' &&
-								<MatterDetail hasApplet={true} hasEditBtn={true} />
+								<MatterDetail hasApplet={true} hasEditBtn={true} authorData={authorData} />
 							}
 							{
 								tabsActive === 'sxbl' && <Typography.Paragraph style={style}>
-									<Handle />
+									<Handle authorData={authorData} caseId={caseId} caseTaskId={caseTaskId}/>
 								</Typography.Paragraph>
 							}
 							{
 								tabsActive === 'sqjl' && <Typography.Paragraph style={style}>
-									<AuditView />
+									<AuditView authorData={authorData} />
 								</Typography.Paragraph>
 							}
 						</TabPane>
diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx
index 30c32d4..26359b2 100644
--- a/gz-customerSystem/src/views/register/index.jsx
+++ b/gz-customerSystem/src/views/register/index.jsx
@@ -2,36 +2,70 @@
  * @Author: dminyi 1301963064@qq.com
  * @Date: 2024-09-08 15:14:12
  * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-09-09 10:05:35
+ * @LastEditTime: 2024-09-09 22:29:34
  * @FilePath: \gzDyh\gz-customerSystem\src\views\register\index.jsx
  * @Description: 工作台
  */
-import React, { useState } from 'react';
-import { tab1, tab2, tab3, tab4, tab5, tab6,visitInto,checkInto } from '@/assets/images'
+import React, { useEffect, useState } from 'react';
+import { useNavigate } from 'react-router-dom';
+import { tab1, tab2, tab3, tab4, tab5, tab6, visitInto, checkInto } from '@/assets/images'
 import TableView from '../../components/TableView';
 import { Space } from 'antd';
-import { Tabs, Typography } from '@arco-design/web-react';
+import { Tabs, Typography, Radio } from '@arco-design/web-react';
+import * as $$ from '@/utils/utility';
 
 const TabPane = Tabs.TabPane;
 
+function pageMyTaskBlApi(data) {
+  return $$.ax.request({ url: `caseTask/pageMyTaskBl`, type: 'get', service: 'mediate', data });
+}
 
+function getCountListApi(data) {
+  return $$.ax.request({ url: `caseTask/getCountList`, type: 'get', service: 'mediate', data });
+}
+//分派
+function pageMyTaskFpApi(data) {
+  return $$.ax.request({ url: `caseTask/pageMyTaskFp?page=1&size=10&sortType=1&sortColmn=1&status=1`, type: 'get', service: 'mediate', data });
+}
+
+//签收
+function pageMyTaskQsApi(data) {
+  return $$.ax.request({ url: `caseTask/pageMyTaskQs?page=1&size=10&sortType=1&sortColmn=1&status=1`, type: 'get', service: 'mediate', data });
+}
+
+//受理
+function pageMyTaskSlApi(data) {
+  return $$.ax.request({ url: `caseTask/pageMyTaskSl?page=1&size=10&sortType=1&sortColmn=1&status=1`, type: 'get', service: 'mediate', data });
+}
+
+//办理中
+function pageMyTaskBlzApi(data) {
+  return $$.ax.request({ url: `caseTask/pageMyTaskBlz?page=1&size=10&sortType=1&sortColmn=1&status=1`, type: 'get', service: 'mediate', data });
+}
+
+//签收
+function signApi(data) {
+  return $$.ax.request({ url: `caseTask/sign`, type: 'post', service: 'mediate', data });
+}
 
 const VisitWorkBench = () => {
+  const navigate = useNavigate();
   const [tabActivekey, setTabActivekey] = useState('1')
-  const [column, setColumn] = useState('1')
+  const [CountList, setCountList] = useState({})
+  const [direction, setDirection] = useState('回退审核')
   const tabsList = [
     {
       key: '1',
       label: '待分派',
       bgColor: '#E8F8FF',
-      num: 10,
+      num: `${CountList?.waitDisp || '0'}`,
       img: tab1
     },
     {
       key: '2',
       label: '待签收',
       bgColor: '#E8FFEA',
-      num: 30,
+      num: `${CountList?.waitSign || '0'}`,
       img: tab2
 
     },
@@ -39,7 +73,7 @@
       key: '3',
       label: '待受理',
       bgColor: '#F5E8FF',
-      num: 50,
+      num: `${CountList?.waitAccept || '0'}`,
       img: tab3
 
     },
@@ -47,7 +81,7 @@
       key: '4',
       label: '办理中',
       bgColor: '#E6FFFB',
-      num: 60,
+      num: `${CountList?.waitReview || '0'}`,
       img: tab4
 
     },
@@ -55,7 +89,7 @@
       key: '5',
       label: '待审核',
       bgColor: '#E8F7FF',
-      num: 70,
+      num: `${CountList?.supervise || '0'}`,
       img: tab5
 
     },
@@ -63,7 +97,7 @@
       key: '6',
       label: '督办',
       bgColor: '#FFF7E6',
-      num: 80,
+      num: `${CountList?.processing || '0'}`,
       img: tab6
 
     },
@@ -114,7 +148,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 3,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -135,7 +169,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 4,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -156,7 +190,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 5,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -177,7 +211,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 6,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -198,7 +232,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 7,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -219,7 +253,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 8,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -240,7 +274,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 9,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -261,7 +295,7 @@
         // 更多字段...
       },
       {
-        id: 2,
+        id: 10,
         caseNo: 'A20230101',
         judicNo: '证据材料',
         perClassName: '李晓明的纠纷化解申请表、身份证...',
@@ -283,111 +317,465 @@
       },
 
       // 更多数据...
-    ]
-  )
+    ])
+
+  const [columnType, setColumnType] = useState([
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+    },
+    {
+      title: '分派时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
+          <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>处理</div>
+        </Space>
+      ),
+    },
+  ])
 
   // 列配置
-  const [fakeColumns, setFakeColumns] = useState([
+  const fakeColumns3 = [
     {
-      title: tabActivekey === '5' ? '回退时间' : tabActivekey === '6' ? '督办时间' : '流转时间',
-      dataIndex: 'caseNo',
-      key: 'caseNo',
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
       width: 100,
       render: (text, record, index) => <span>{index + 1}</span>,
     },
     {
       title: '分派时限',
-      dataIndex: 'dispatchDeadline',
-      key: 'dispatchDeadline',
-      width: 60,
-    },
-    {
-      title: '签收时限',
-      dataIndex: 'receiptDeadline',
-      key: 'receiptDeadline',
-      width: 60,
-    },
-    {
-      title: '受理时限',
-      dataIndex: 'acceptanceDeadline',
-      key: 'acceptanceDeadline',
-      width: 60,
-    },
-    {
-      title: '已办天数',
-      dataIndex: 'processedDays',
-      key: 'processedDays',
-      width: 60,
-    },
-    {
-      title: '回复时限',
-      dataIndex: 'replyDeadline',
-      key: 'replyDeadline',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
       width: 60,
     },
     {
       title: '事项等级',
-      dataIndex: 'matterLevel',
-      key: 'matterLevel',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
       width: 180,
-      render: (text) => (
-        <>
-          {text}份
-        </>
-      ),
     },
     {
       title: '事项来源',
-      dataIndex: 'matterSource',
-      key: 'matterSource',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
       width: 180,
     },
     {
       title: '事项类型',
-      dataIndex: 'matterType',
-      key: 'matterType',
-      width: 180,
-    },
-    {
-      title: '承办部门',
-      dataIndex: 'handlingDepartment',
-      key: 'handlingDepartment',
-      width: 180,
-    },
-    {
-      title: '配合部门',
-      dataIndex: 'cooperatingDepartment',
-      key: 'cooperatingDepartment',
-      width: 180,
-    },
-    {
-      title: '督办部门',
-      dataIndex: 'supervisionDepartment',
-      key: 'supervisionDepartment',
-      width: 180,
-    },
-    {
-      title: '督办意见',
-      dataIndex: 'supervisionOpinion',
-      key: 'supervisionOpinion',
-      width: 180,
-    },
-    {
-      title: '经办人',
-      dataIndex: 'handler',
-      key: 'handler',
+      dataIndex: 'caseType',
+      key: 'caseType',
       width: 180,
     },
     {
       title: '申请方',
-      dataIndex: 'applicant',
-      key: 'applicant',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
       width: 180,
     },
     {
       title: '被申请方',
-      dataIndex: 'respondent',
-      key: 'respondent',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+          <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div>
+        </Space>
+      ),
+    },
+  ];
+  const fakeColumns3Info = [
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+      render: (text, record, index) => <span>{index + 1}</span>,
+    },
+    {
+      title: '分派时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+        </Space>
+      ),
+    },
+  ];
+  const fakeColumns1 = [
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+      render: (text, record, index) => <span>{index + 1}</span>,
+    },
+    {
+      title: '签收时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+          <div onClick={() => handleSign(record.caseId, record.ownerId)}>签收</div>
+        </Space>
+      ),
+    },
+  ];
+  const fakeColumns1Info = [
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+      render: (text, record, index) => <span>{index + 1}</span>,
+    },
+    {
+      title: '签收时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+          <div>签收</div>
+        </Space>
+      ),
+    },
+  ];
+  const fakeColumns2 = [
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+    },
+    {
+      title: '受理时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+          <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>处理</div>
+        </Space>
+      ),
+    },
+  ];
+  const fakeColumns2Info = [
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+    },
+    {
+      title: '受理时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space style={{ color: '#1A6FB8' }}>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+          <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div>
+        </Space>
+      ),
+    },
+  ];
+
+  const [column, setColumn] = useState([
+    {
+      title: '流转时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+    },
+    {
+      title: '已办天数',
+      dataIndex: 'processingDays',
+      key: 'processingDays',
+      width: 100,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 100,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 100,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 100,
+    },
+    {
+      title: '承办部门',
+      dataIndex: 'organizingUnit',
+      key: 'organizingUnit',
+      width: 180,
+    },
+    {
+      title: '配合部门',
+      dataIndex: 'cooperatingUnit',
+      key: 'cooperatingUnit',
+      width: 180,
+    },
+    {
+      title: '经办人',
+      dataIndex: 'manager',
+      key: 'manager',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
       width: 180,
     },
     {
@@ -397,28 +785,287 @@
       width: 180,
       render: (text, record) => (
         <Space>
-          <div>详情</div>
-          <div>处理</div>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer', color: '#1A6FB8' }}>详情</div>
+          <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer', color: '#1A6FB8' }}>处理</div>
         </Space>
       ),
     },
-  ]);
+  ])
+
+  const [backColumn, setBackColumn] = useState([
+    {
+      title: '回退时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+    },
+    {
+      title: '回退部门',
+      dataIndex: 'backUnit',
+      key: 'backUnit',
+      width: 60,
+    },
+    {
+      title: '回退理由',
+      dataIndex: 'reason',
+      key: 'reason',
+      width: 180,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space>
+          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div>
+          {/* <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> */}
+          {(direction === '回退审核' || direction === '上报审核') &&
+            <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div>
+
+          }
+          {(direction === '结案申请审核' || direction === '联合处置审核') &&
+            <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div>
+          }
+        </Space>
+      ),
+    },
+  ])
+
+  const [mangeColumn, setMangeColumn] = useState([
+    {
+      title: '督办时间',
+      dataIndex: 'turnaroundTime',
+      key: 'turnaroundTime',
+      width: 100,
+      render: (text, record, index) => <span>{index + 1}</span>,
+    },
+    {
+      title: '回复时限',
+      dataIndex: 'timeLimit',
+      key: 'timeLimit',
+      width: 60,
+    },
+    {
+      title: '督办部门',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '督办意见',
+      dataIndex: 'opinion',
+      key: 'opinion',
+      width: 180,
+    },
+    {
+      title: '事项等级',
+      dataIndex: 'caseGrade',
+      key: 'caseGrade',
+      width: 180,
+    },
+    {
+      title: '事项来源',
+      dataIndex: 'caseSource',
+      key: 'caseSource',
+      width: 180,
+    },
+    {
+      title: '事项类型',
+      dataIndex: 'caseType',
+      key: 'caseType',
+      width: 180,
+    },
+    {
+      title: '申请方',
+      dataIndex: 'plaintiffs',
+      key: 'plaintiffs',
+      width: 180,
+    },
+    {
+      title: '被申请方',
+      dataIndex: 'defendants',
+      key: 'defendants',
+      width: 180,
+    },
+    {
+      title: '操作',
+      dataIndex: 'actions',
+      key: 'actions',
+      width: 180,
+      render: (text, record) => (
+        <Space>
+          <div>回复</div>
+          <div>详情</div>
+        </Space>
+      ),
+    },
+  ])
+
+  const sign = async (caseId, ownerId) => {
+    const res = await signApi({ caseId: caseId, caseTaskId: ownerId })
+    if (res.type) {
+      $$.infoSuccess('签收成功')
+    }
+
+  }
+
+  const handleSign = (caseId, ownerId) => {
+    sign(caseId, ownerId)
+  }
+
+  const pageMyTaskFpNew = async () => {
+    const res = await pageMyTaskFpApi()
+    if (res.type) {
+      setFakeData1(res.data?.content)
+    }
+  }
+
+  const pageMyTaskFp = async (type) => {
+    if (type === '1') {
+      const res = await pageMyTaskFpApi()
+      if (res.type) {
+        setFakeData1(res.data?.content)
+      }
+    }
+    if (type === '2') {
+      const res = await pageMyTaskQsApi()
+      if (res.type) {
+        setFakeData1(res.data?.content)
+      }
+    }
+    if (type === '3') {
+      const res = await pageMyTaskSlApi()
+      if (res.type) {
+        setFakeData1(res.data?.content)
+      }
+    }
+    if (type === '4') {
+      const res = await pageMyTaskBlzApi()
+      if (res.type) {
+        setFakeData1(res.data?.content)
+      }
+    }
+
+  }
+
+  const handleColumnType = (type) => {
+    console.log(type, 'type')
+    if (type === '2') {
+      if (tabActivekey === '1') {
+        setColumnType(fakeColumns3Info)
+      }
+      if (tabActivekey === '2') {
+        setColumnType(fakeColumns1Info)
+      }
+      if (tabActivekey === '3') {
+        setColumnType(fakeColumns2Info)
+      }
+    }
+    if (type === '1') {
+      if (tabActivekey === '1') {
+        setColumnType(fakeColumns3)
+      }
+    }
+
+  }
+
+
+
 
   const tabActive = (key) => {
-    setTabActivekey(key)
+    console.log(key, 'key')
+    setTabActivekey(key);
+    if (key === '1') {
+      setColumnType(fakeColumns3)
+      pageMyTaskFp('1')
+    }
+    if (key === '2') {
+      setColumnType(fakeColumns1)
+      pageMyTaskFp('2')
+
+    }
+    if (key === '3') {
+      setColumnType(fakeColumns2)
+      pageMyTaskFp('3')
+
+    }
+    if (key === '4') {
+      setColumnType(column)
+      pageMyTaskFp('4')
+    }
+    if (key === '5') {
+      setColumnType(backColumn)
+      pageMyTaskFp('5')
+
+    }
+    if (key === '6') {
+      setColumnType(mangeColumn)
+      pageMyTaskFp('6')
+
+    }
   }
 
-  // const columnChange = async () => {
-  //   const res = await columnChangeApi()
-  //   if (res.type) {
-  //     setColumn(res.data)
-  //   }
-  // }
-
-  const handleColumnType = () => {
-    const columnList = column.filter(item => fakeColumns.some(itemNew => itemNew.title === item.title))
-    setFakeColumns(columnList)
+  const pageMyTaskBl = async () => {
+    const res = await pageMyTaskBlApi({ page: 1, size: 10, timeStart: '', timeEnd: '', partyName: '', sortType: '', sortColmn: '' })
+    if (res.type) {
+      console.log(res.data, 'res.data')
+      // setColumn(res.data)
+    }
   }
+
+  const getCountList = async () => {
+    const res = await getCountListApi()
+    if (res.type) {
+      const data = res.data
+      setCountList(data)
+    }
+  }
+
+
+
+
+
+
+
+
+
+  useEffect(() => {
+
+    pageMyTaskFpNew()
+    // pageMyTaskBl();
+    getCountList();
+  }, [])
 
 
 
@@ -443,9 +1090,9 @@
         </div>
       </div>
       <div className='VisitWorkBench-middle'>
-        <Tabs defaultActiveTab='1'>
+        <Tabs defaultActiveTab='1' onChange={handleColumnType}>
           <TabPane
-            onChange={handleColumnType}
+            // onChange={handleColumnType}
             key='1'
             title={
               <span style={{ fontSize: '15px' }}>
@@ -459,11 +1106,21 @@
             }
           >
             <Typography.Paragraph>
+              {tabActivekey === '5' &&
+                <Radio.Group
+                  type='button'
+                  name='direction'
+                  value={direction}
+                  onChange={(e) => setDirection(e)}
+                  style={{ marginBottom: 16 }}
+                  options={['回退审核', '上报审核', '结案申请审核', '联合处置审核']}
+                ></Radio.Group>
+              }
               <TableView
-                columns={fakeColumns}
+                columns={columnType}
                 dataSource={fakeData1}
                 size="small"
-                rowKey="id"
+                rowKey="caseId"
                 bordered={true}
                 // style={{ marginBottom: '65px', marginTop: '-16px' }}
                 rowSelection={{
@@ -486,21 +1143,46 @@
             }
           >
             <Typography.Paragraph>
+              <TableView
+                columns={columnType}
+                dataSource={fakeData1}
+                size="small"
+                rowKey="id"
+                bordered={true}
+                // style={{ marginBottom: '65px', marginTop: '-16px' }}
+                rowSelection={{
+                  type: 'Checkbox'
+                }}
+              />
             </Typography.Paragraph>
           </TabPane>
+          {tabActivekey === '4' &&
+            <TabPane
+              key='3'
+              title={
+                <span style={{ fontSize: '15px' }}>
+                  已结案
+                </span>
+              }
+            >
+              <Typography.Paragraph>
+              </Typography.Paragraph>
+            </TabPane>
+          }
+
         </Tabs>
 
       </div>
       <div className='VisitWorkBench-bottom'>
         自行排查
-        <div style={{ display: 'flex',justifyContent:'space-evenly' }}>
-          <div style={{display:'flex'}}>
-            <div className='VisitWorkBench-bottom-title'>大厅来访</div>
-            <img src={visitInto} alt='' className='VisitWorkBench-bottom-img'/>
+        <div style={{ display: 'flex', justifyContent: 'space-evenly' }}>
+          <div className='bottomTab1'>
+            <div className='VisitWorkBench-bottom-title' onClick={() => navigate(`/mediate/visit`)} style={{ color: '#206BCD' }}>大厅来访</div>
+            <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' />
           </div>
-          <div style={{display:'flex'}}>
-            <div className='VisitWorkBench-bottom-title'>自行排查</div>
-            <img src={checkInto} alt='' className='VisitWorkBench-bottom-img'/>
+          <div className='bottomTab2'>
+            <div className='VisitWorkBench-bottom-title' style={{ color: '#D46B08' }}>自行排查</div>
+            <img src={checkInto} alt='' className='VisitWorkBench-bottom-img' />
           </div>
         </div>
       </div>
diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less
index 6a31642..97b121f 100644
--- a/gz-customerSystem/src/views/register/index.less
+++ b/gz-customerSystem/src/views/register/index.less
@@ -845,7 +845,7 @@
 		background: #ffffff;
 		padding: 12px 16px 16px 16px;
 		margin-top: 12px;
-
+    height: 54vh;
 	}
 
 	&-bottom {
@@ -855,6 +855,8 @@
 
 		&-title{
 			width: 140px;
+			font-family: DingTalk;
+			font-size: 22px;
 		}
 
 		&-img {
@@ -869,4 +871,18 @@
 	display: flex;
 	justify-content: space-between;
 	align-items: center;
+}
+
+.bottomTab1{
+	// display: 'flex',	background: linear-gradient(to right, #6a1b9a, #e040fb)
+	display: flex;
+	background: linear-gradient(to right, #E8F7FF, #9FD4FD);
+	padding: 12px 16px 16px 16px;
+}
+
+.bottomTab2{
+	display: flex;
+	background: linear-gradient(to right, #FFF7E6, #FFD591);
+	padding: 12px 16px 16px 16px;
+
 }
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
index 84e9d1e..f1cc458 100644
--- a/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/FileTable.jsx
@@ -2,7 +2,7 @@
 import * as $$ from '@/utils/utility';
 import ArcoUpload from '@/components/ArcoUpload';
 import NewFileCheck from './NewFileCheck';
-import { Row, Col, Button } from 'antd';
+import { Row, Col, Button, Typography, Space } from 'antd';
 import { Form, Modal } from '@arco-design/web-react';
 import {
   applyMaterials,
@@ -12,19 +12,17 @@
 } from '@/assets/images';
 import { CheckOutlined, } from '@ant-design/icons';
 import TableView from '@/components/TableView';
+import downloadFile from "@/utils/download"
 
+const { Link, Text } = Typography;
 const appUrl = $$.appUrl;
 
 function delFile(id) {
   return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
-function listIdTypeInfoApi(data) {
-  return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data });
-}
-
 function deleteFileByIdApi(data) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data });
+  return $$.ax.request({ url: `fileInfo/deleteFileByIds`, type: 'delete', service: 'sys', data });
 }
 
 //表格数据
@@ -35,6 +33,7 @@
     size: 0,
     fileNames: "-",
     updateTime: '',
+    id: 1,
   },
   {
     ownerType: "22_00018-102",
@@ -42,16 +41,24 @@
     size: 0,
     fileNames: "-",
     updateTime: '',
+    id: 2,
   },
 ]
+
+/**
+ * mainId*,//就是caseId,事件id
+ * fileInfoList*, //文件列表
+ * isReview,//是否查看,查看的话就不能删除上传,只能查看下载
+ */
 
 export default function FileTable(props) {
   const formRef = useRef();
   const [sourceType, setSourceType] = useState();
   const [filesCheck, setFilesCheck] = useState(false);
-  const [upload, setUpLoad] = useState(false);
+  const [uploadVisible, setUpLoadVisible] = useState(false);
   const [tableData, setTableData] = useState(staticTableData);
   const [fileMap, setFileMap] = useState({});
+  const [fileInfoList, setFileInfoList] = useState([]);
 
   // 列配置
   const fakeColumns = [
@@ -93,17 +100,47 @@
       title: '操作',
       dataIndex: 'perClassName',
       key: 'perClassName',
-      width: 200,
+      width: props.isReview ? 60 : 125,
+      fixed: 'right',
       render: (text, record) => (
-        <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
-          <div onClick={() => setFilesCheck(true)}>查看</div>
-          <div>删除</div>
-          <div>下载</div>
-          <div onClick={() => {
+        <Space size="middle">
+          <Link onClick={() => {
             setSourceType(record.ownerType)
-            setUpLoad(true)
-          }}>上传</div>
-        </div>
+            setFilesCheck(true)
+          }}>
+            查看
+          </Link>
+          {!props.isReview && <Link onClick={() => {
+            if (record.fileInfoList && record.fileInfoList.length != 0) {
+              let ids = record.fileInfoList?.map(item => item.id).join(',')
+              handleDelete(ids)
+            } else {
+              $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' });
+            }
+          }}>
+            删除
+          </Link>}
+          <Link onClick={() => {
+            if (record.fileInfoList && record.fileInfoList.length != 0) {
+              let ids = record.fileInfoList?.map(item => item.id).join(',')
+              handleDownlod(ids)
+            } else {
+              $$.info({ type: 'warning', content: '还没上传关于该材料的文件!' });
+            }
+          }}>
+            下载
+          </Link>
+          {!props.isReview && <Link onClick={() => {
+            setSourceType(record.ownerType)
+            setUpLoadVisible(true)
+            setFileInfoList(record.fileInfoList)
+            setTimeout(() => {
+              formRef.current.setFieldValue('file', record.fileInfoList)
+            }, 0)
+          }}>
+            上传
+          </Link>}
+        </Space>
       )
     },
     // 更多列配置...
@@ -114,9 +151,53 @@
   ]
 
   useEffect(() => {
-    console.log(props.fileInfoList);
-  },[props.fileInfoList])
+    if (props.fileInfoList && props.fileInfoList.length != 0) {
+      //证明材料
+      const applyFile = props.fileInfoList.find(item => item.ownerType == "22_00018-101")
+      //证据材料
+      const evidenceFile = props.fileInfoList.find(item => item.ownerType == "22_00018-102")
+      setFileMap({
+        '22_00018-101': applyFile?.fileList || [],
+        '22_00018-102': evidenceFile?.fileList || []
+      })
+      const newList = tableData.map(item => {
+        if (item.ownerType == '22_00018-101' && applyFile) {
+          return {
+            ...item,
+            size: applyFile.fileList.length,
+            fileNames: applyFile.fileList?.map(item => item.trueName).join(','),
+            updateTime: $$.timeFormat(applyFile.fileList[applyFile.fileList.length - 1].updateTime),
+            fileInfoList: applyFile.fileList.map(item => {
+              return {
+                ...item,
+                uid: item.id,
+                name: item.trueName
+              }
+            })
+          }
+        }
+        if (item.ownerType == '22_00018-102' && evidenceFile) {
+          return {
+            ...item,
+            size: evidenceFile.fileList.length,
+            fileNames: evidenceFile.fileList?.map(item => item.trueName).join(','),
+            updateTime: $$.timeFormat(evidenceFile.fileList[evidenceFile.fileList.length - 1].updateTime),
+            fileInfoList: evidenceFile.fileList.map(item => {
+              return {
+                ...item,
+                uid: item.id,
+                name: item.trueName
+              }
+            })
+          }
+        }
+        return item
+      })
+      setTableData(newList)
+    }
+  }, [props.fileInfoList])
 
+  //上传弹窗判断用哪种种图标
   const personIconType = (v) => {
     switch (v) {
       case '22_00018-101':
@@ -135,24 +216,34 @@
     }
   }
 
+  //上传弹窗完成后的事件
   const handleUpload = () => {
     const newList = tableData.map(item => {
       if (item.ownerType == sourceType) {
         const data = fileMap[sourceType]
+        console.log(data);
         return {
           ...item,
           size: data.length,
-          fileNames: data.map(item => item.name).join(','),
-          updateTime: $$.timeFormat(data[data.length - 1].response.data[0].updateTime)
+          fileNames: data.map(item => item.trueName).join(','),
+          updateTime: $$.timeFormat(data[data.length - 1].updateTime),
+          fileInfoList: data.map(item => {
+            return {
+              ...item,
+              name: item.trueName,
+              uid: item.id,
+            }
+          }),
         }
       } else {
         return item
       }
     })
     setTableData(newList)
-    setUpLoad(false);
+    setUpLoadVisible(false);
   };
 
+  //根据sourceType生成组件
   const formType = (type) => {
     if (type === '22_00018-101') {
       //申请材料
@@ -165,11 +256,21 @@
               }}
               field='file'
               label=''
-              // editData={props.editData}
+              editData={{
+                file: fileInfoList
+              }}
               handleDelFile={handleDelFile}
               onFileListChange={(v) => {
+                let newList = v?.map(item => {
+                  if (item.response) {
+                    return item.response.data[0]
+                  } else {
+                    return item
+                  }
+                })
                 setFileMap({
-                  '22_00018-101': v
+                  ...fileMap,
+                  '22_00018-101': newList
                 })
               }}
             />
@@ -187,22 +288,50 @@
               params={{
                 action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-102`,
               }}
-              field='file1'
+              field='file'
               label=''
-              // editData={props.editData}
+              editData={{
+                file: fileInfoList
+              }}
               handleDelFile={handleDelFile}
               onFileListChange={(v) => {
+                let newList = v?.map(item => {
+                  if (item.response) {
+                    return item.response.data[0]
+                  } else {
+                    return item
+                  }
+                })
                 setFileMap({
-                  '22_00018-102': v
+                  ...fileMap,
+                  '22_00018-102': newList
                 })
               }}
-
             />
             {fileMap[sourceType]?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>证据材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileMap[sourceType]?.length}</span></div>}
           </Col>
         </>
       )
     }
+  }
+
+  //删除
+  const handleDelete = (ids) => {
+    Modal.confirm({
+      title: '删除确认',
+      content: '确认全部删除该材料?',
+      onOk: async () => {
+        const res = await deleteFileByIdApi({ ids })
+        if (res.type) {
+          $$.infoSuccess({ content: '删除成功!' });
+        }
+      },
+    });
+  }
+
+  //下载
+  const handleDownlod = async (ids) => {
+    await downloadFile(`${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/down/batch`, { ids })
   }
 
   return (
@@ -214,14 +343,19 @@
         rowKey="ownerType"
         bordered={true}
         style={{ marginBottom: '65px' }}
+        scroll={{ x: 1300 }}
       />
       <Modal
         style={{ width: '512px' }}
-        visible={upload}
-        onCancel={() => setUpLoad(false)}
+        visible={uploadVisible}
+        onCancel={() => setUpLoadVisible(false)}
         footer={null}
         title='上传材料'
         centered
+        mountOnEnter={false}
+        unmountOnExit={true}
+        maskClosable={false}
+        focusLock={false}
       >
         <div style={{ paddingTop: '8px' }}>
           <Row gutter={[30, 24]}>
@@ -271,7 +405,7 @@
         maskClosable={false}
       >
         <div style={{ marginTop: '-16px' }}>
-          <NewFileCheck />
+          <NewFileCheck menuList={tableData} sourceType={sourceType} />
         </div>
       </Modal>
     </Fragment>
diff --git a/gz-customerSystem/src/views/register/matterDetail/NewFileCheck.jsx b/gz-customerSystem/src/views/register/matterDetail/NewFileCheck.jsx
index a65d6a0..ebabd3c 100644
--- a/gz-customerSystem/src/views/register/matterDetail/NewFileCheck.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/NewFileCheck.jsx
@@ -1,14 +1,42 @@
-import React, { useState, useEffect, useRef } from 'react';
+import React, { useState, useEffect, useRef, Fragment } from 'react';
 import { Row, Col, Space } from 'antd';
-import { Select, DatePicker, Form, Button } from '@arco-design/web-react';
+import { Select, DatePicker, Form, Button, Menu } from '@arco-design/web-react';
 import * as $$ from '@/utils/utility';
 
 const FormItem = Form.Item;
+const MenuItem = Menu.Item;
+const SubMenu = Menu.SubMenu;
 const appUrl = $$.appUrl;
+const formItemLayout = {
+	labelCol: {
+		span: 8,
+	},
+	wrapperCol: {
+		span: 16,
+	},
+};
 
 
 const NewFileCheck = (props) => {
-	const formRef = useRef()
+	const formRef = useRef();
+	const [fileUrl, setFileUrl] = useState('')
+	const [itemData, setItemData] = useState(null)
+
+	const peopleTypeMap = {
+		1: '工作人员',
+		2: '当事人'
+	}
+
+	useEffect(() => {
+		console.log(props.menuList, props.sourceType);
+	}, [])
+
+	//点击菜单
+	const clickItem = (data) => {
+		console.log(data);
+		setItemData(data)
+		setFileUrl(`${appUrl.fileUrl}/${appUrl.sys}${data.showUrl}`)
+	}
 
 	return (
 		<nav className="filesCheck-nav" style={{ borderRight: '1px solid transparent' }}>
@@ -17,8 +45,7 @@
 				layout='horizontal'
 				style={{ marginTop: '24px', marginBottom: '20px' }}
 				scrollToFirstError={true}
-				initialValues={{
-				}}//默认值
+				{...formItemLayout}
 			>
 				<Row gutter={24} style={{ marginRight: '0px' }}>
 					<Col span={7}>
@@ -79,17 +106,50 @@
 					<Col span={3}>
 						<Space>
 							<Button size="middle " type='primary'>查询</Button>
-							<Button size="middle ">查询</Button>
+							<Button size="middle ">重置</Button>
 						</Space>
 					</Col>
 				</Row>
 
 			</Form>
-			<div style={{ display: 'flex' }}>
-				<div style={{ width: '200px' }}>
+			<div style={{ display: 'flex', height: '550px' }}>
+				<div style={{ width: '256px' }}>
+					<Menu
+						style={{ width: '100%', height: '100%' }}
+					>
+						{props.menuList?.map(item => {
+							return <SubMenu
+								key={item.id}
+								title={item.ownerTypeName + `(${item.fileInfoList && item.fileInfoList.length || 0})`}
+							>
+								{item.fileInfoList?.map(res => {
+									return <MenuItem key={res.id} onClick={() => { clickItem(res) }}>{res.trueName}</MenuItem>
+								})}
+							</SubMenu>
+						})}
+					</Menu>
 				</div>
 				<div style={{ flex: 1 }}>
+					{
+						itemData ? <Fragment>
+							<div style={{ background: '#e8f3ff', color: '#1A6FB8', padding: '5px 10px', marginBottom: '16px' }}>
+								<span>材料名称:{itemData.trueName}</span>&nbsp;&nbsp;|&nbsp;&nbsp;
+								<span>上传时间:{itemData.updateTime}</span>&nbsp;&nbsp;|&nbsp;&nbsp;
+								<span>上传人:{itemData.uploaderName} {itemData.uploaderType && <span>({peopleTypeMap[itemData.uploaderType]})</span>}</span>
+							</div>
+							<div style={{ width: '100%', height: '470px' }}>
+								{
+									itemData.suffix === 'pdf' ?
+										<embed src={fileUrl} type="application/pdf" width="100%" height="100%"></embed>
+										:
+										<img src={fileUrl} alt="" style={{ width: '100%', height: '100%' }} />
+								}
 
+							</div>
+						</Fragment> : <Fragment>
+							<div style={{ padding: '100px 0' }}>{$$.MyEmpty()}</div>
+						</Fragment>
+					}
 				</div>
 			</div>
 		</nav>
diff --git a/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx b/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx
index a0bc307..13869c8 100644
--- a/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx
@@ -2,13 +2,17 @@
 import NewPage from '@/components/NewPage';
 import { Row, Col, Space } from 'antd';
 import { Steps, Tabs, Typography, Rate, Button } from '@arco-design/web-react';
-import { apply } from '@/assets/images';
+import { apply,floating } from '@/assets/images';
 import { result } from '@/assets/images/icon';
 import * as $$ from '@/utils/utility';
-import { ApplyDialog, AgentDialog, Respondent } from '../visit/component/previewTable';
 import TableView from '../../../components/TableView';
 import { register, fold, down, empty, link } from '@/assets/images';
 import ProgressStep from '@/components/ProgressStep/VisitStep';
+import { ApplyDialog, AgentDialog, Respondent, Company } from '../visit/component/previewTable';
+import HandleRecord from './HandleRecord';
+import { useParams } from 'react-router-dom';
+import ApplyInfo from './ApplyInfo'
+
 
 const Step = Steps.Step;
 const TabPane = Tabs.TabPane;
@@ -21,15 +25,27 @@
   return $$.ax.request({ url: `caseEvaluate/getByCaseId?caseId=${caseId}`, type: 'get', service: 'mediate' });
 }
 
+function getCaseInfoApi(id) {
+  return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
+}
+
+function listFeedbackApi(id) {
+  return $$.ax.request({ url: `caseFeedback/listFeedback?id=` + id, type: 'get', service: 'mediate' });
+}
+
+function getListCaseFlow(data) {
+  return $$.ax.request({ url: `caseTask/listCaseFlow`, type: 'get', service: 'mediate', data });
+}
+
 
 const FileMessage = (props) => {
-
+	const routeData = useParams();
   const [tabsActive, setTabsActive] = useState('1');
   const [current, setCurrent] = useState(7);
   const [grade, setGrade] = useState(0);
+  const [caseInfo, setCaseInfo] = useState({})
   const [TransactResult, setTransactResult] = useState({})
   const [filesCheck, setFilesCheck] = useState(false);
-  const [infoData, setInfoData] = useState({});
   const [tabsList, setTabList] = useState([
     {
       img: result,
@@ -38,13 +54,19 @@
       isNeedStep: true
     },
     {
+      img: floating,
+      label: '流转督办',
+      key: '2',
+    },
+    {
       img: apply,
       label: '申请记录',
-      key: '2',
-      isNeedStep: true,//加上这个就有进度条
+      key: '3',
     },
   ])
   const [selectedTab, setSelectedTab] = useState('1'); // 默认选中第一个 tab
+  const [list, setList] = useState([])
+  const [progressData, setProgressData] = useState({})
 
 
   const tabs = [
@@ -120,59 +142,29 @@
     console.log(res, 'resrs')
   }
 
-  const applyDialog = [
-    {
-      trueName: '李四',
-      perClassName: '高级',
-      phone: '13700137000',
-      sex: '女',
-      certiTypeName: '护照',
-      certiNo: 'G12345678',
-      nationName: '满',
-      addr: '上海市浦东新区某公寓2号楼2单元202室',
-      placeAddr: '上海市黄浦区某路3号',
-      extreme: '否',
-      workUnit: '上海某金融公司',
-      person: '/path/to/anotherPerson.jpg', // 这应该是图片的实际路径
-      link: '/path/to/anotherLink.png',     // 这应该是链接图标的实际路径
+  const getCaseInfo = async () => {
+    const res = await getCaseInfoApi('24083010062110001')
+    if (res.type) {
+      setCaseInfo(res.data)
     }
-    // 可以根据需要添加更多的对象来模拟更多条目的数据
-  ];
+  }
 
-  const agentDialog = [
-    {
-      trueName: '王五',
-      perClassName: '自然人',
-      phone: '13600136000',
-      sex: '男',
-      certiTypeName: '身份证',
-      certiNo: '110101199501012345',
-      nationName: '汉',
-      addr: '广州市天河区某大厦A座501室',
-      placeAddr: '广州市越秀区某街4号',
-      extreme: '否',
-      workUnit: '广州某贸易公司',
-      agentRelateName: '配偶',
-      agentTypeName: '法定代理人',
-      perTypeName: '成年人',
-      person: '/path/to/person.jpg', // 应该是图片的实际路径
-      link: '/path/to/link.png',     // 应该是链接图标的实际路径
-    },
-  ];
+  const listFeedback = async (id) => {
+    const res = await listFeedbackApi(id)
+    if (res.type) {
+      let data = res.data.caseFeedbackList
+      setList(data)
+    }
+  }
 
-  const respondent = [
-    {
-      orgaType: '广东好又多贸易有限公司',
-      perClassName: '企业法人',
-      phone: '020-12345678',
-      address: '广州市天河区珠江新城花城大道66号',
-      companyType: '有限责任公司',
-      legalPerson: '江照月',
-      creditCode: '914401011234567890',
-      president: '广州市天河区珠江新城花城大道66号A座20层',
-      link: '/path/to/link.png', // 应该是链接图标的实际路径
-    },
-  ];
+  const getData = async () => {
+    const res = await getListCaseFlow({
+      caseId: routeData.caseId
+    })
+    if (res.type) {
+      setProgressData(res.data)
+    }
+  }
 
   const fakeColumns = [
     {
@@ -350,9 +342,21 @@
   useEffect(() => {
     getByCaseId();
     getTransactResult();
+    getCaseInfo();
+    listFeedback('24083010062110001');
+    getData()
   }, [])
 
 
+  const applyData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "自然人");
+  const agentData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方代理人");
+  const company = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "非法人组织");
+  const respondentData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "法人");
+
+  const applyData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "自然人");
+  const agentData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方代理人");
+  const company1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "非法人组织");
+  const respondentData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "法人");
 
 
 
@@ -399,22 +403,52 @@
                         <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>当事人信息</h4>
                       </Space>
                     </Col>
-
                     <div style={{ marginBottom: '8px' }}>申请方</div>
                     <div className="line-container" style={{ marginBottom: '20px' }}>
                       <div className="line left-line"></div>
                       <div className="line middle-line"></div>
                       <div className="line right-line"></div>
                     </div>
-                    <ApplyDialog applyDialog={applyDialog} />
-                    <AgentDialog agentDialog={agentDialog} />
+                    {/* ApplyDialog 只有在 applyData 存在且不为空时才渲染 */}
+                    {applyData && applyData.length > 0 ? (
+                      <ApplyDialog applyDialog={applyData} />
+                    ) : null}
+
+                    {/* AgentDialog 只有在 agentData 存在且不为空时才渲染 */}
+                    {agentData && agentData.length > 0 ? (
+                      <AgentDialog agentDialog={agentData} />
+                    ) : null}
+
+                    {/* Respondent 只有在 respondentData 存在且不为空时才渲染 */}
+                    {respondentData && respondentData.length > 0 ? (
+                      <Respondent respondent={respondentData} />
+                    ) : null}
+
+                    {company && company.length > 0 ? (
+                      <Company company={company} />
+                    ) : null}
+
                     <div style={{ marginBottom: '8px' }}>被申请方</div>
                     <div className="line-container" style={{ marginBottom: '20px' }}>
                       <div className="line left-line"></div>
                       <div className="line middle-line"></div>
                       <div className="line right-line"></div>
                     </div>
-                    <Respondent respondent={respondent} />
+                    {applyData1 && applyData1.length > 0 ? (
+                      <ApplyDialog applyDialog={applyData1} />
+                    ) : null}
+
+                    {agentData1 && agentData1.length > 0 ? (
+                      <AgentDialog agentDialog={agentData1} />
+                    ) : null}
+
+                    {respondentData1 && respondentData1.length > 0 ? (
+                      <Respondent respondent={respondentData1} />
+                    ) : null}
+
+                    {company1 && company1.length > 0 ? (
+                      <Company company={company1} />
+                    ) : null}
                     <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}>
                       <Space size='small'>
                         <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>纠纷基本情况</h5>
@@ -423,68 +457,68 @@
                     <Row gutter={[16, 16]}>
                       <Col span={8}>
                         <div><div className="title-text">事项状态</div></div>
-                        <div style={{ color: '#1A6FB8' }}>{infoData?.statusName || '-'}</div>
+                        <div style={{ color: '#1A6FB8' }}>{caseInfo?.statusName || '-'}</div>
                       </Col>
                       <Col span={16}>
                         <div><div className="title-text">事项编号</div></div>
-                        <div>{infoData?.caseRef || '-'}</div>
+                        <div>{caseInfo?.caseRef || '-'}</div>
                       </Col>
                       {/*事项等级分为三级,颜色需要做判断*/}
                       <Col span={8}>
                         <div className="title"><div className="title-text">事项等级</div></div>
-                        <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{infoData.caseLevel || '-'}</div></div>级</div>
+                        <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{caseInfo?.caseLevel || '-'}</div></div>级</div>
                       </Col>
                       <Col span={8}>
                         <div><div className="title-text">来访时间</div></div>
-                        <div>{infoData.visitTime || '-'}</div>
+                        <div>{caseInfo?.visitTime || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">来访人数(人)</div></div>
-                        <div>{infoData.visitPeopleNum || '-'}</div>
+                        <div>{caseInfo?.visitPeopleNum || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">纠纷类型</div></div>
-                        <div>{infoData.caseType || '-'}</div>
+                        <div>{caseInfo?.caseType || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">纠纷发生时间</div></div>
-                        <div>{infoData.occurTime || '-'}</div>
+                        <div>{caseInfo?.occurTime || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">纠纷发生地点</div></div>
-                        <div>{infoData.addr || '-'}</div>
+                        <div>{caseInfo?.addr || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">问题属地</div></div>
-                        <div>{infoData.questionName || '-'}</div>
+                        <div>{caseInfo?.questionName || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">涉及人数(人)</div></div>
-                        <div>{infoData.peopleNum || '-'}</div>
+                        <div>{caseInfo?.peopleNum || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">涉及金额(元)</div></div>
-                        <div>{$$.thousands(infoData.amount) || '-'}</div>
+                        <div>{$$.thousands(caseInfo?.amount) || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div ><div className="title-text">事项来源</div></div>
-                        <div>{infoData.canalName || '-'}</div>
+                        <div>{caseInfo?.canalName || '-'}</div>
                       </Col>
                       <Col span={16}>
                         <div ><div className="title-text">来访形式</div></div>
-                        <div>{infoData.visitWayName || '-'}</div>
+                        <div>{caseInfo?.visitWayName || '-'}</div>
                       </Col>
                       <Col span={24}>
                         <div className="title"><div className="title-text">事项概况</div></div>
-                        <div>{infoData.caseDes || '-'}</div>
+                        <div>{caseInfo?.caseDes || '-'}</div>
                       </Col>
                       <Col span={24}>
                         <div className="title"><div className="title-text">事项申请</div></div>
-                        <div>{infoData.caseClaim || '-'}</div>
+                        <div>{caseInfo?.caseClaim || '-'}</div>
                       </Col>
                       <Col span={16}>
                         <div className="title"><div className="title-text">是否重大矛盾纠纷</div></div>
-                        <div>{infoData.majorStatus === '0' ? '否' : '是'}</div>
+                        <div>{caseInfo?.majorStatus === '0' ? '否' : '是'}</div>
                       </Col>
                     </Row>
                     <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '16px', marginTop: '20px' }}>
@@ -548,7 +582,9 @@
                     <div className='gap'></div>
                     <Col span={24} style={{ marginTop: '12px' }}>
                       <div style={{ color: 'rgb(134, 144, 156)' }}>办理记录</div>
-                      <div>
+                      <HandleRecord isReview={false} data={list} />
+
+                      {/* <div>
                         {records.map(record => (
                           <div key={record.id} className='container-bottom-left-record'>
                             <div className='container-bottom-left-record-top'>
@@ -574,7 +610,7 @@
                             </div>
                           </div>
                         ))}
-                      </div>
+                      </div> */}
                     </Col>
                     <div className='gap'></div>
                     <div style={{ marginLeft: '-16px' }}>
@@ -668,14 +704,14 @@
                         <div className="title">
                           <div className="title-text">登记机构</div>
                         </div>
-                        <div>天河区棠下街道综治中心</div>
+                        <div>{caseInfo?.inputUnitName || '-'}</div>
                       </Col>
                       <Col span={8}>
                         <div className="title">
                           <div className="title-text">登记人</div>
                         </div>
                         <div>
-                          李晓明
+                          {caseInfo.inputUserName}
                           <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
                         </div>
                       </Col>
@@ -683,7 +719,7 @@
                         <div className="title">
                           <div className="title-text">登记时间</div>
                         </div>
-                        <div>2024-7-8 10:00</div>
+                        <div>{caseInfo?.visitTime || '-'}</div>
                       </Col>
                     </Row>
                   </div>
@@ -697,7 +733,10 @@
               }
               {
                 tabsActive === '2' &&
-                <></>
+                <ProgressStep progressData={progressData} />
+              }
+              {tabsActive === '3' &&
+                <ApplyInfo />
               }
             </TabPane>
           })}
diff --git a/gz-customerSystem/src/views/register/matterDetail/index.jsx b/gz-customerSystem/src/views/register/matterDetail/index.jsx
index 8690c0f..6b957bb 100644
--- a/gz-customerSystem/src/views/register/matterDetail/index.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/index.jsx
@@ -1,131 +1,29 @@
 import React, { useState, useEffect } from 'react';
 import { Row, Col, Space, Button, Switch } from 'antd';
 import PersonCard from '@/components/personCard';
-import TableView from '@/components/TableView';
 import * as $$ from '@/utils/utility';
-import { Typography, Steps } from '@arco-design/web-react';
-import { question, register, Matter, transfer } from '@/assets/images'
+import { Typography } from '@arco-design/web-react';
+import { question, register } from '@/assets/images';
+import FileTable from "./FileTable";
 
 function getCaseInfoApi(id) {
   return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
 }
 
-function listIdTypeInfoApi(data) {
-  return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data });
-}
-
 
 export default function MatterDetail(props) {
   const [fakeData, setFakeData] = useState([]);//当事人信息数据
-  const [upload, setUpLoad] = useState(false);
-  const [filesCheck, setFilesCheck] = useState(false);
   const [infoData, setInfoData] = useState({});
-
-  const fakeColumns = [
-    {
-      title: '序号',
-      dataIndex: 'caseNo',
-      key: 'caseNo',
-      width: 100,
-      render: (text, record, index) => <span>{index + 1}</span>,
-    },
-    {
-      title: '材料类型',
-      dataIndex: 'ownerTypeName',
-      key: 'ownerTypeName',
-      width: 60,
-
-    },
-    {
-      title: '材料数量',
-      dataIndex: 'size',
-      key: 'size',
-      width: 180,
-      render: (text) => <span>{text}份</span>,
-
-    },
-    {
-      title: '材料名称',
-      dataIndex: 'fileNames',
-      key: 'fileNames',
-      width: 180,
-
-    },
-    {
-      title: '最新上传时间',
-      dataIndex: 'fileNames',
-      key: 'fileNames',
-      width: 180,
-
-    },
-    {
-      title: '操作',
-      dataIndex: 'perClassName',
-      key: 'perClassName',
-      width: 200,
-      render: (text) => (
-        <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
-          <div onClick={() => setFilesCheck(true)}>查看</div>
-          <div>删除</div>
-          <div>下载</div>
-          <div onClick={() => setUpLoad(true)}>上传</div>
-        </div>
-      )
-    },
-    // 更多列配置...
-  ];
-
-
-  const [fakeData1, setFakeData1] = useState([
-    {
-      ownerTyp: "22_00018-101",
-      ownerTypeName: "申请材料",
-      size: '0',
-      ownerId: null,
-      ownerName: null,
-      perType: null,
-      agentStatus: null,
-      fileNames: "-",
-      fileList: []
-    },
-    {
-      ownerType: "22_00018-102",
-      ownerTypeName: "证据材料",
-      size: '0',
-      ownerId: null,
-      ownerName: null,
-      perType: null,
-      agentStatus: null,
-      fileNames: "-",
-      fileList: []
-    },
-
-  ]);
-
-  const listIdTypeInfo = async () => {
-    const res = await listIdTypeInfoApi({
-      mainId: props.id, //事项ID
-      ownerIdList: [props.id], //具体所属编号
-      typeList: []
-    })
-    if (res.type) {
-      let data = res.data?.[0]?.fileList
-      if (res.data.length > 0) {
-        setFakeData1(data)
-      }
-    }
-  }
 
   useEffect(() => {
     console.log(props);
-    getCaseInfo(props.id)
-    listIdTypeInfo()
-  }, [props.id])
+    getCaseInfo(props.caseId)
+  }, [props.caseId])
+
 
   //获取id
   const getCaseInfo = async (id) => {
-    const res = await getCaseInfoApi('24083010062110001')
-
+    const res = await getCaseInfoApi(id)
     if (res.type) {
       let data = res.data
       const partyList = data.personList.concat(data.agentList)
@@ -261,15 +159,7 @@
               <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>事件材料</h5>
             </Space>
           </Col>
-
-          <TableView
-            columns={fakeColumns}
-            dataSource={fakeData1}
-            size="small"
-            rowKey="id"
-            bordered={true}
-            style={{ marginBottom: '20px' }}
-          />
+          <FileTable mainId={props.caseId} fileInfoList={infoData.fileInfoList} isReview={true}/>
           <Col span={24} className='title'>
             <Space size='small'>
               <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>登记信息</h5>
@@ -293,7 +183,7 @@
               <div>{infoData.createTime || '-'}</div>
             </Col>
           </Row>
-          {props.hasEditBtn && <Button type='primary' style={{ marginTop: '20px' }}>修改</Button>}
+          {/* {props.hasEditBtn && <Button type='primary' style={{ marginTop: '20px' }}>修改</Button>} */}
         </div>
 
       </Typography.Paragraph>
diff --git a/gz-customerSystem/src/views/register/visit/component/previewTable.jsx b/gz-customerSystem/src/views/register/visit/component/previewTable.jsx
index b4a700a..6ab1329 100644
--- a/gz-customerSystem/src/views/register/visit/component/previewTable.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/previewTable.jsx
@@ -7,7 +7,7 @@
     <>
       {
         applyDialog?.map((item, index) => (
-          <table border="1" align="center" cellpadding="6" className="table">
+          <table border="1" align="center" cellpadding="6" className="table" key={item.id}>
             <tr>
               <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
               <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName || '-'}</div><div className="title-personRemark">自然人</div></div></td>
@@ -65,7 +65,7 @@
   return (
     <>
       {agentDialog?.map((item, index) => (
-        <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
+        <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }} key={item.id}>
           <tr>
             <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
             <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName || '-'}</div><div className="title-personRemark">代理人</div></div></td>
@@ -129,7 +129,7 @@
   return (
     <>
       {respondent?.map((item, index) => (
-        <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
+        <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }} key={item.id}>
           <tr>
             <th bgcolor="#F7F8FA" className="table-title" width="120">企业名称</th>
             <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName}</div><div className="title-personRemark">{item.perClassName}</div></div></td>
@@ -175,7 +175,7 @@
   return (
     <>
       {company?.map((item, index) => (
-        <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
+        <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }} key={item.id}>
           <tr>
             <th bgcolor="#F7F8FA" className="table-title" width="120">机构名称</th>
             <td width='380'><div style={{ display: 'flex' }}><div>{item.trueName}</div><div className="title-personRemark">{item.perClassName}</div></div></td>
diff --git a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
index decb012..0a883e8 100644
--- a/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -390,7 +390,7 @@
           <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>事件材料</h4>
         </Space>
       </Col>
-      <FileTable mainId={props.mainId} fileInfoList={props.fileInfoList}/>
+      <FileTable mainId={props.mainId} fileInfoList={props.fileInfoList} isReview={false}/>
 
       <DocumentScanner
         visible={scanFile}

--
Gitblit v1.8.0