From 2127fb90182bf9f8b767369678f5b7e2c46b2228 Mon Sep 17 00:00:00 2001
From: zhangyongtian <1181606322@qq.com>
Date: Sun, 08 Sep 2024 11:20:11 +0800
Subject: [PATCH] feat:事件流转对接

---
 gz-customerSystem/src/views/register/visit/component/applyDialog.jsx           |    2 
 gz-customerSystem/src/views/register/eventFlow/component/BackModel.jsx         |    2 
 gz-customerSystem/src/views/register/visit/component/agentDialog.jsx           |    2 
 gz-customerSystem/src/api/appUrl.js                                            |    4 
 gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx    |    2 
 gz-customerSystem/src/views/register/matterDetail/Supervising.jsx              |    2 
 gz-customerSystem/src/router/router.js                                         |    2 
 gz-customerSystem/src/views/register/closingReview/component/ReviewExamine.jsx |    2 
 gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx       |    2 
 /dev/null                                                                      |  184 --------------------
 gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx     |    2 
 gz-customerSystem/src/views/register/matterDetail/UniteHandle.jsx              |    2 
 gz-customerSystem/src/views/register/closingReview/index.jsx                   |  129 ++++++++------
 gz-customerSystem/src/views/register/eventFlow/index.jsx                       |   23 --
 gz-customerSystem/src/views/register/eventFlow/component/Examine.jsx           |  166 +++++++++++++----
 gz-customerSystem/src/views/register/eventFlow/component/EscalationModel.jsx   |    2 
 16 files changed, 214 insertions(+), 314 deletions(-)

diff --git a/gz-customerSystem/src/api/appUrl.js b/gz-customerSystem/src/api/appUrl.js
index 2cf0ece..17e5446 100644
--- a/gz-customerSystem/src/api/appUrl.js
+++ b/gz-customerSystem/src/api/appUrl.js
@@ -10,11 +10,11 @@
 export const debug = {
   // web服务
   // baseUrl: 'http://gz.hugeinfo.com.cn',
-  baseUrl: "http://192.168.3.108:9002",
+  baseUrl: "http://fydddb.natappfree.cc",
   // baseUrl: 'http://mdqgnh.natappfree.cc',
 
   // 附件服务
-  fileUrl: "http://192.168.3.108:9002",
+  fileUrl: "http://fydddb.natappfree.cc",
   // fileUrl: 'http://gz.hugeinfo.com.cn',
 
   // 文件查看url 后面接附件编号
diff --git a/gz-customerSystem/src/router/router.js b/gz-customerSystem/src/router/router.js
index c341bbf..3538643 100644
--- a/gz-customerSystem/src/router/router.js
+++ b/gz-customerSystem/src/router/router.js
@@ -220,7 +220,7 @@
 						<Route path="visit/eventFlow/:caseTaskId?/:caseId?" element={<EventFlow />} />
 						<Route path="visit/handleFeedback" element={<HandleFeedback />} />
 						<Route path="visit/fileMessage" element={<FileMessage />} />
-						<Route path="visit/closingReview" element={<ClosingReview />}/>
+						<Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />}/>
 
 						
 						
diff --git a/gz-customerSystem/src/views/register/closingReview/component/AssignedModel.jsx b/gz-customerSystem/src/views/register/closingReview/component/AssignedModel.jsx
deleted file mode 100644
index caf18e2..0000000
--- a/gz-customerSystem/src/views/register/closingReview/component/AssignedModel.jsx
+++ /dev/null
@@ -1,130 +0,0 @@
-import React, { useRef, useState } from 'react'
-import { Row, Col } from 'antd';
-import { Form, Input, Button, Select } from '@arco-design/web-react';
-import ArcoUpload from '@/components/ArcoUpload';
-import { Scrollbars } from "react-custom-scrollbars";
-import SelectObjModal from '@/components/SelectObjModal/selectPerson';
-
-const FormItem = Form.Item;
-const TextArea = Input.TextArea;
-const Option = Select.Option;
-const options = ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu', 'Wuhan'];
-
-export default function BackModel(props) {
-  const formRef = useRef();
-  const [isModalVisible, setIsModalVisible] = useState(false);
-  const [wantUser, setWantUser] = useState({});
-
-  const handleSubmit = () => {
-    formRef.current.validate(undefined, (errors, values) => {
-      console.log(errors, values);
-    })
-  }
-
-  const handleTemplate = (type) => {
-    if (type === 1) {
-      formRef.current.setFieldValue('trueName', '本事项经初步核实,认为属于贵部门职责范围内的矛盾纠纷化解工作。请组织专门人员负责此事,尽快查明事实真相,依法依规进行处理,并在处理过程中充分考虑当事人的合理诉求,确保公平公正,维护当事人的合法权益。同时,请务必保持与当事人的沟通畅通,及时反馈办理进展,以增强矛盾纠纷化解工作的透明度和公信力。')
-    } else {
-      formRef.current.setFieldValue('trueName', '')
-    }
-  }
-
-  const handleFocus = (e) => {
-    e.stopPropagation()
-    setIsModalVisible(true)
-  }
-
-  return (
-    <div>
-      <Scrollbars style={{ height: '550px' }} autoHide>
-        <Form
-          ref={formRef}
-          layout='vertical'
-          requiredSymbol={false}
-          initialValues={{
-          }}//默认值
-          scrollToFirstError
-        >
-          <Row>
-            <Col span={24}>
-              <FormItem
-                label={(<div style={{ display: 'flex' }}>承办部门<div className="must">必填</div></div>)}
-                field='bumen'
-              >
-                <Select
-                  mode='multiple'
-                  placeholder='请选择承办部门'
-                  allowClear
-                  onFocus={handleFocus}
-                >
-                </Select>
-              </FormItem>
-            </Col>
-            <Col span={24}>
-              <FormItem
-                label={(<div style={{ display: 'flex' }}>配合部门<div style={{ color: '#86909C' }}>(可多选)</div></div>)}
-                field='peihe'
-              >
-                <Select
-                  mode='multiple'
-                  placeholder='请选择配合部门'
-                  allowClear
-                >
-                  {options.map((option) => (
-                    <Option key={option} value={option}>
-                      {option}
-                    </Option>
-                  ))}
-                </Select>
-              </FormItem>
-            </Col>
-            <Col span={24} style={{ position: 'relative' }}>
-              <div style={{ position: 'absolute', display: 'flex ', top: '28px', zIndex: 1 }}>
-                <div className='myTag' style={{ marginRight: '22px' }} onClick={() => { handleTemplate(1) }}>公共模板1:通用上报意见范本</div>
-                <div className='myTag' onClick={() => { handleTemplate(2) }}>个人模板1:张三的交办意见范本</div>
-              </div>
-              <FormItem
-                label={(<div style={{ display: 'flex' }}>交办意见<div className="must">必填</div></div>)}
-                field='trueName'
-                rules={[{ required: true, message: '请选择回退理由' }]}
-              >
-                <TextArea
-                  autoSize={{ minRows: 4, maxRows: 8 }}
-                  placeholder='请填写回退的具体理由'
-                  style={{ marginTop: '40px' }}
-                />
-              </FormItem>
-            </Col>
-            <Col span={24} className="doubleFile">
-              <ArcoUpload
-                params={{
-                  action: ``,
-                }}
-                field='file'
-                label='附件材料'
-              />
-            </Col>
-          </Row>
-        </Form>
-      </Scrollbars>
-      <div className='dialogFooter'>
-        <Button
-          type="primary"
-          className="dialogPrimary"
-          onClick={handleSubmit}
-        >
-          提交
-        </Button>
-      </div>
-      <SelectObjModal
-        visible={isModalVisible}
-        checkKeys={wantUser.wantUserId ? [{ label: wantUser.wantUserName, value: wantUser.wantUserId }] : undefined}
-        onOk={(value) => {
-          setIsModalVisible(false);
-          setWantUser({ wantUserId: value.keys[0], wantUserName: value.items[0].name });
-        }}
-        onClose={() => setIsModalVisible(false)}
-      />
-    </div>
-  )
-}
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/closingReview/component/BackModel.jsx b/gz-customerSystem/src/views/register/closingReview/component/BackModel.jsx
deleted file mode 100644
index a353b0c..0000000
--- a/gz-customerSystem/src/views/register/closingReview/component/BackModel.jsx
+++ /dev/null
@@ -1,95 +0,0 @@
-import React, { useRef } from 'react'
-import { Row, Col } from 'antd';
-import { Form, Input, Button, Radio } from '@arco-design/web-react';
-import ArcoUpload from '@/components/ArcoUpload';
-import { Scrollbars } from "react-custom-scrollbars";
-
-const RadioGroup = Radio.Group;
-const FormItem = Form.Item;
-const TextArea = Input.TextArea;
-
-export default function BackModel(props) {
-  const formRef = useRef();
-  const options = [
-    {
-      label: '不属于本部门的职能范围',
-      value: 1
-    },
-    {
-      label: '超出本部门管辖范围',
-      value: 2
-    },
-    {
-      label: '重复上报',
-      value: 3
-    },
-    {
-      label: '无法与当事人取得联系',
-      value: 4
-    },
-    {
-      label: '其他',
-      value: 5
-    },
-  ]
-  const handleSubmit = () => {
-
-  }
-  return (
-    <div>
-      <Scrollbars style={{ height: '550px' }} autoHide>
-        <Form
-          ref={formRef}
-          layout='vertical'
-          requiredSymbol={false}
-          initialValues={{
-          }}//默认值
-          scrollToFirstError
-        >
-          <Row>
-            <Col span={24}>
-              <FormItem
-                label={(<div style={{ display: 'flex' }}>回退理由<div className="must">必填</div></div>)}
-                field='trueName'
-                rules={[{ required: true, message: '请选择回退理由' }]}
-              >
-                <RadioGroup direction='vertical' options={options}>
-                </RadioGroup>
-              </FormItem>
-            </Col>
-            <Col span={24}>
-              <FormItem
-                label=' '
-                field='luyou'
-                rules={[{ required: true, message: '回退理由不能为空' }]}
-              >
-                <TextArea
-                  autoSize={{ minRows: 4, maxRows: 8 }}
-                  placeholder='请填写回退的具体理由'
-                />
-              </FormItem>
-            </Col>
-            <Col span={24} className="doubleFile">
-              <ArcoUpload
-                params={{
-                  action: ``,
-                }}
-                field='file'
-                label='附件材料'
-              />
-            </Col>
-          </Row>
-        </Form>
-      </Scrollbars>
-      <div className='dialogFooter'>
-        <Button
-          type="primary"
-          className="dialogPrimary"
-          onClick={handleSubmit}
-        >
-          提交
-        </Button>
-      </div>
-    </div>
-  )
-}
diff --git a/gz-customerSystem/src/views/register/closingReview/component/EscalationModel.jsx b/gz-customerSystem/src/views/register/closingReview/component/EscalationModel.jsx
deleted file mode 100644
index 6ccf1a5..0000000
--- a/gz-customerSystem/src/views/register/closingReview/component/EscalationModel.jsx
+++ /dev/null
@@ -1,91 +0,0 @@
-import React, { useRef } from 'react'
-import { Row, Col } from 'antd';
-import { Form, Input, Button } from '@arco-design/web-react';
-import ArcoUpload from '@/components/ArcoUpload';
-import { Scrollbars } from "react-custom-scrollbars";
-import { escalation } from '@/assets/images/icon';
-
-const FormItem = Form.Item;
-const TextArea = Input.TextArea;
-
-export default function BackModel(props) {
-  const formRef = useRef();
-
-  const handleSubmit = () => {
-    formRef.current.validate(undefined, (errors, values) => {
-      console.log(errors, values);
-    })
-  }
-
-  const handleTemplate = (type) => {
-    if(type === 1) {
-      formRef.current.setFieldValue('trueName', '经初步核查,该事项较为复杂,且涉及多个相关部门的协调配合,为确保能够高效、妥善地解决当事人的问题,特此请求上级给予指导和支持。')
-    } else {
-      formRef.current.setFieldValue('trueName', '')
-    }
-  }
-
-  return (
-    <div>
-      <Scrollbars style={{ height: '550px' }} autoHide>
-        <Form
-          ref={formRef}
-          layout='vertical'
-          requiredSymbol={false}
-          initialValues={{
-          }}//默认值
-          scrollToFirstError
-        >
-          <Row>
-            <Col span={24}>
-              <FormItem
-                label='上报至'
-                field='trueName'
-              >
-                <div className='myTag' >
-                  <img src={escalation} alt="" className="title-file" />白云区综治中心
-                </div>
-              </FormItem>
-            </Col>
-            <Col span={24} style={{ position: 'relative' }}>
-              <div style={{ position: 'absolute', display: 'flex ', top: '28px', zIndex: 1 }}>
-                <div className='myTag' style={{ marginRight: '22px' }} onClick={() => { handleTemplate(1) }}>公共模板1:通用上报意见范本</div>
-                <div className='myTag' onClick={() => { handleTemplate(2) }}>个人模板1:超过处置范围的上报意见</div>
-              </div>
-              <FormItem
-                label={(<div style={{ display: 'flex' }}>上报意见<div className="must">必填</div></div>)}
-                field='trueName'
-                rules={[{ required: true, message: '请选择回退理由' }]}
-              >
-
-                <TextArea
-                  autoSize={{ minRows: 4, maxRows: 8 }}
-                  placeholder='请填写回退的具体理由'
-                  style={{ marginTop: '40px' }}
-                />
-              </FormItem>
-            </Col>
-            <Col span={24} className="doubleFile">
-              <ArcoUpload
-                params={{
-                  action: ``,
-                }}
-                field='file'
-                label='附件材料'
-              />
-            </Col>
-          </Row>
-        </Form>
-      </Scrollbars>
-      <div className='dialogFooter'>
-        <Button
-          type="primary"
-          className="dialogPrimary"
-          onClick={handleSubmit}
-        >
-          提交
-        </Button>
-      </div>
-    </div>
-  )
-}
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/closingReview/component/EventFlow.jsx b/gz-customerSystem/src/views/register/closingReview/component/EventFlow.jsx
deleted file mode 100644
index 96ba746..0000000
--- a/gz-customerSystem/src/views/register/closingReview/component/EventFlow.jsx
+++ /dev/null
@@ -1,184 +0,0 @@
-import React, { useState, useRef, useEffect } from 'react';
-import { Button, Modal, Tabs, Badge } from '@arco-design/web-react';
-import { Space } from 'antd';
-import ProgressStep from '@/components/ProgressStep/VisitStep';
-import BackModel from "./BackModel";
-import { Scrollbars } from "react-custom-scrollbars";
-import { getOffset, getSize } from '@/utils/utility';
-import EscalationModel from './EscalationModel';
-import AssignedModel from './AssignedModel';
-
-const TabPane = Tabs.TabPane;
-
-const fakeData = [
-  {
-    handlerUserName: '天河区棠下街综治中心',
-    finishTime: new Date().getTime() - 24 * 60 * 60 * 1000, // 一天前的时间
-    handleResult: '1',
-    status: '2',
-    taskNodeName: '来访登记',
-    mediResult: '22_00025-1',
-    handleContent: '调解成功,双方达成一致意见。',
-    operationName: '李晓明'
-  },
-  {
-    handlerUserName: '系统派单',
-    finishTime: new Date().getTime() - 12 * 60 * 60 * 1000, // 半天前的时间
-    handleResult: '1',
-    status: '2',
-    taskNodeName: '事件流转',
-    mediResult: '22_00025-1',
-    handleContent: '派单至:白云区新市街市场监管所',
-  },
-  {
-    handlerUserName: '白云区新市街市场监管所',
-    finishTime: new Date().getTime() - 11 * 60 * 60 * 1000, // 半天前的时间
-    handleResult: '1',
-    status: '2',
-    taskNodeName: '事件流转',
-    mediResult: '22_00025-1',
-    handleContent: '已签收',
-    operationName: '赵菲菲'
-  },
-  {
-    handlerUserName: '白云区新市街市场监管所',
-    finishTime: new Date().getTime() - 10 * 60 * 60 * 1000, // 半天前的时间
-    handleResult: '1',
-    status: '3',
-    taskNodeName: '事件回退',
-    mediResult: '22_00025-1',
-    // handleContent: '已签收',
-    operationName: '赵菲菲'
-  },
-  {
-    handlerUserName: '白云区新市街综治中心',
-    finishTime: new Date().getTime() - 9 * 60 * 60 * 1000, // 半天前的时间
-    handleResult: '1',
-    status: '2',
-    taskNodeName: '回退审核',
-    mediResult: '22_00025-1',
-    handleContent: '通过',
-    operationName: '赵菲菲'
-  },
-  {
-    handlerUserName: '天河区棠下街综治中心',
-    finishTime: new Date().getTime() - 6 * 60 * 60 * 1000, // 6小时前的时间
-    handleResult: '2',
-    status: '1',
-    taskNodeName: '事件流转',
-    mediResult: '22_00025-1',
-    handleContent: '案件已被签收,准备开始调解。',
-    operationName: '李晓明'
-  },
-];
-
-export default function EventFlow(props) {
-  const scrollRef = useRef(null)
-  const [backVisible, setBackVisible] = useState(false)
-  const [height, setHeight] = useState(500)
-  const [escalationVisible, setEscalationVisible] = useState(false)
-  const [assignedVisible, setAssignedVisible] = useState(false)
-
-  useEffect(() => {
-    onWindowResize()
-    window.addEventListener("resize", onWindowResize);
-  }, [])
-
-  const onWindowResize = () => {
-    let offsetLeft = 0;
-    let offsetTop = 0;
-    if (scrollRef.current.container) {
-      offsetLeft = getOffset(scrollRef.current.container).left;
-      offsetTop = getOffset(scrollRef.current.container).top;
-    }
-    setHeight(getSize().windowH - offsetTop - 65)
-  };
-
-  return (
-    <div className='dataSync'>
-      <div className='dataSync-hasTabPage' >
-        <Tabs defaultActiveTab='1' >
-          <TabPane
-            key='1'
-            title={
-              <span style={{ fontSize: '15px' }}>
-                流转进度
-              </span>
-            }
-          >
-            <Scrollbars
-              style={{ height: height }}
-              ref={scrollRef}
-              autoHide
-            >
-              <ProgressStep progressData={fakeData} />
-            </Scrollbars>
-          </TabPane>
-          <TabPane
-            key='2'
-            title={
-              <span style={{ fontSize: '15px' }}>
-                督办信息
-                <Badge maxCount={99} count={1000} />
-              </span>
-            }
-          >
-            <Scrollbars
-              style={{ height: height }}
-              ref={scrollRef}
-            ></Scrollbars>
-          </TabPane>
-        </Tabs>
-
-      </div>
-      <div className="dataSync-excel">
-        <Space size="large" style={{ margin: '4px 14px' }}>
-          <Button type="primary"  >受理</Button>
-          <Button type="primary"  >提交</Button>
-          <Button type="primary"  >自行受理</Button>
-          <Button type='outline' status='danger' onClick={() => setBackVisible(true)}>回退</Button>
-          <Button type='outline' onClick={() => setAssignedVisible(true)}>交办</Button>
-          <Button type='outline' onClick={() => setEscalationVisible(true)}>上报</Button>
-          <Button type='secondary' >返回上级页面</Button>
-        </Space>
-      </div>
-      <Modal
-        title='回退'
-        visible={backVisible}
-        onOk={() => setBackVisible(false)}
-        onCancel={() => { setBackVisible(false) }}
-        autoFocus={false}
-        focusLock={true}
-        footer={null}
-        unmountOnExit={true}
-        maskClosable={false}
-      >
-        <BackModel />
-      </Modal>
-      <Modal
-        title='上报'
-        visible={escalationVisible}
-        onOk={() => setEscalationVisible(false)}
-        onCancel={() => { setEscalationVisible(false) }}
-        autoFocus={false}
-        focusLock={true}
-        footer={null}
-        unmountOnExit={true}
-        maskClosable={false}
-      >
-        <EscalationModel />
-      </Modal>
-      <Modal
-        title='交办'
-        visible={assignedVisible}
-        onOk={() => setAssignedVisible(false)}
-        onCancel={() => { setAssignedVisible(false) }}
-        footer={null}
-        unmountOnExit={true}
-        maskClosable={false}
-      >
-        <AssignedModel />
-      </Modal>
-    </div>
-  )
-}
diff --git a/gz-customerSystem/src/views/register/closingReview/component/Examine.jsx b/gz-customerSystem/src/views/register/closingReview/component/ReviewExamine.jsx
similarity index 99%
rename from gz-customerSystem/src/views/register/closingReview/component/Examine.jsx
rename to gz-customerSystem/src/views/register/closingReview/component/ReviewExamine.jsx
index 913bd84..e5b8cad 100644
--- a/gz-customerSystem/src/views/register/closingReview/component/Examine.jsx
+++ b/gz-customerSystem/src/views/register/closingReview/component/ReviewExamine.jsx
@@ -10,7 +10,7 @@
 const FormItem = Form.Item;
 const TextArea = Input.TextArea;
 
-export default function Examine(props) {
+export default function ReviewExamine(props) {
   const formRef = useRef();
   const [result, setResult] = useState()
   const infoData = {
diff --git a/gz-customerSystem/src/views/register/closingReview/index.jsx b/gz-customerSystem/src/views/register/closingReview/index.jsx
index 746f3ba..78da404 100644
--- a/gz-customerSystem/src/views/register/closingReview/index.jsx
+++ b/gz-customerSystem/src/views/register/closingReview/index.jsx
@@ -1,49 +1,84 @@
-/*
- * @Author: dminyi 1301963064@qq.com
- * @Date: 2024-08-09 09:59:43
- * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-08-31 17:13:53
- * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
- * @Description: 来访登记
- */
-
-import React, { useState, useRef, Fragment } from "react";
+import React, { useState, useRef, Fragment, useEffect } from "react";
 import NewPage from '@/components/NewPage';
 import * as $$ from '@/utils/utility';
 import "@arco-themes/react-gzzz/css/arco.css";
 import '../index.less';
-import { Steps, Tabs } from '@arco-design/web-react';
-import { examine, Matter, transfer } from '@/assets/images'
-import EventFlow from './component/EventFlow';
-import MatterDetail from '../matterDetail';
-import Examine from "./component/Examine";
+import { Tabs } from '@arco-design/web-react';
+import { examine, Matter, transfer, applyRecord } from '@/assets/images'
+import EventFlow from '../eventFlow/component/EventFlow';
+import ApplyInfo from "../matterDetail/ApplyInfo";
+import { useParams } from 'react-router-dom';
+import ReviewExamine from './component/ReviewExamine';
 
-const Step = Steps.Step;
 const TabPane = Tabs.TabPane;
 
+function getTabButton(data) {
+	return $$.ax.request({ url: `caseTask/getTabButton`, type: 'get', service: 'mediate', data });
+}
 
-const Organization = () => {
-	const [current, setCurrent] = useState(2);
-	const [tabsActive, setTabsActive] = useState('3');
-	const [tabsList, setTabList] = useState([
-		{
-			img: Matter,
-			label: '事项详情',
-			key: '1'
-		},
-		{
-			img: transfer,
-			label: '流转办理',
-			key: '2',
-			isNeedStep: true,//加上这个就有进度条
-		},
-		{
-			img: examine,
-			label: '审核',
-			key: '3',
-		},
-	])
+const myTab = [
+	{
+		img: Matter,
+		label: '事项详情',
+		key: 'sxxq',
+	},
+	{
+		img: applyRecord,
+		label: '申请记录',
+		key: 'sqjl',
+	},
+	{
+		img: examine,
+		label: '结案审核',
+		key: 'jash',
+	},
+]
+const ClosingReview = () => {
+	const routeData = useParams();
+	const [authorData, setAuthorData] = useState({});
+	const [tabsList, setTabsList] = useState([]);
+	const [tabsActive, setTabsActive] = useState();
 
+	useEffect(() => {
+		getAuthor()
+	}, [])
+
+	//获取权限tab和按钮权限
+	const getAuthor = async () => {
+		const res = await getTabButton({
+			caseTaskId: routeData.caseTaskId
+		})
+		if (res.type) {
+			const { tabList } = res.data
+			setAuthorData(res.data)
+			if (tabList.length === 0) {
+				//没有tab就不展示
+			} else {
+				setTabsList(myTab.filter(item => {
+					const flag = tabList.some(result => {
+						if (result.id === item.key) {
+							return true
+						}
+					})
+					return flag
+				}))
+				setTabsActive(tabList[0].id)
+			}
+		}
+	}
+
+	//根据id定义组件
+	const getTypeDom = (key) => {
+		if (key === 'dslxq' || key === 'sxxq') {
+			return <EventFlow authorData={authorData} caseId={routeData.caseId} />
+		}
+		if (key === 'sqjl') {
+			return <ApplyInfo />
+		}
+		if (key === 'jash') {
+			return <ReviewExamine type={key} />
+		}
+	}
 
 	return (
 		<div style={{ position: 'relative' }}>
@@ -53,9 +88,9 @@
 				}
 			>
 				<Tabs
-					activeTab={tabsActive}
 					onChange={(v) => setTabsActive(v)}
 					className='myTabContent'
+					activeTab={tabsActive}
 				>
 					{tabsList?.map(item => {
 						return <TabPane
@@ -67,21 +102,7 @@
 								</span>
 							}
 						>
-							{
-								item.isNeedStep && <div style={{ backgroundColor: '#fff', margin: '0 16px 0px 16px', paddingTop: '16px', paddingLeft: '91px' }}>
-									<Steps type='navigation' current={current}>
-										<Step title='来访登记' disabled />
-										<Step title='事件流转' disabled />
-										<Step title='办理反馈' disabled />
-										<Step title='结案审核' disabled />
-										<Step title='当事人评价' disabled />
-										<Step title='结案归档' disabled />
-									</Steps>
-								</div>
-							}
-							{tabsActive === '1' && <MatterDetail />}
-							{tabsActive === '2' && <EventFlow />}
-							{tabsActive === '3' && <Examine />}
+							{getTypeDom(item.key)}
 						</TabPane>
 					})}
 				</Tabs>
@@ -90,4 +111,4 @@
 	)
 }
 
-export default Organization;
\ No newline at end of file
+export default ClosingReview;
\ No newline at end of file
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx b/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx
index fbcbc7c..ce47fb4 100644
--- a/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/component/AssignedModel.jsx
@@ -16,7 +16,7 @@
 }
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 export default function BackModel(props) {
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/BackModel.jsx b/gz-customerSystem/src/views/register/eventFlow/component/BackModel.jsx
index a7e9b0e..f677318 100644
--- a/gz-customerSystem/src/views/register/eventFlow/component/BackModel.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/component/BackModel.jsx
@@ -15,7 +15,7 @@
 }
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 function returnApply(data) {
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/EscalationModel.jsx b/gz-customerSystem/src/views/register/eventFlow/component/EscalationModel.jsx
index 9db6691..5ec4abf 100644
--- a/gz-customerSystem/src/views/register/eventFlow/component/EscalationModel.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/component/EscalationModel.jsx
@@ -15,7 +15,7 @@
 }
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 function appearApply(data) {
diff --git a/gz-customerSystem/src/views/register/eventFlow/component/Examine.jsx b/gz-customerSystem/src/views/register/eventFlow/component/Examine.jsx
index d6e00e3..80d6a84 100644
--- a/gz-customerSystem/src/views/register/eventFlow/component/Examine.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/component/Examine.jsx
@@ -1,26 +1,106 @@
-import React, { useRef } from 'react'
+import React, { useRef, useEffect, useState } from 'react'
 import { Row, Col, Space } from 'antd';
 import { link, register } from '@/assets/images';
 import { Form, Input, Button, Radio } from '@arco-design/web-react';
 import ArcoUpload from '@/components/ArcoUpload';
 import { Scrollbars } from "react-custom-scrollbars";
+import * as $$ from '@/utils/utility';
 
 const RadioGroup = Radio.Group;
 const FormItem = Form.Item;
 const TextArea = Input.TextArea;
+const appUrl = $$.appUrl;
+
+function getData(type, data) {
+  let url = type === 'htsh' ? `caseTask/getReturnApplyInfo` : `caseTask/getAppearApplyInfo`
+  return $$.ax.request({ url: url, type: 'get', service: 'mediate', data });
+}
+
+function submit(type, data) {
+  let url = type === 'htsh' ? `caseTask/returnAudit` : `caseTask/appearAudit`
+  return $$.ax.request({ url: url, type: 'post', service: 'mediate', data });
+}
+
+function getId() {
+  return $$.ax.request({ url: `caseUtils/getNewTimeId`, type: 'get', service: 'utils' });
+}
+
+function delFile(id) {
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
+}
 
 export default function Examine(props) {
   const formRef = useRef();
-  const infoData = {
-    reason: '已经与双方当事人沟通,其中被申请方反应所谓的“个性化学习计划”费用是得到了白云区教育局的批准,而该费用收取是否合理,本部门无法判断',
-    file: '广东明智教育培训机构资质合理性调查记录.pdf',
-    time: '2024-7-21 12:00',
-    people: '白云区新市街市场监管所',
-    person: '张晓霞',
+  const [infoData, setInfoData] = useState({});
+  const [id, setId] = useState();
+  const mainFlag = props.type == 'htsh' ? 'return' : 'appear'
+  const options = [
+    {
+      label: '回退理由不充分',
+      value: '0'
+    },
+    {
+      label: '回退延迟',
+      value: '1'
+    },
+    {
+      label: '其他',
+      value: '2'
+    },
+  ]
+
+  useEffect(() => {
+    getInfoData()
+    getAppId()
+  }, [props.type])
+
+  //获取id
+  const getAppId = async () => {
+    const res = await getId()
+    if (res.type) {
+      setId(res.data)
+    }
+  }
+
+  //回显数据
+  const getInfoData = async () => {
+    const res = await getData(props.type, {
+      caseTaskId: props.caseTaskId
+    })
+    if (res.type) {
+      setInfoData(res.data || {})
+    }
   }
 
   const handleSubmit = () => {
+    if (formRef.current) {
+      formRef.current.validate(undefined, (errors, values) => {
+        if (!errors) {
+          const { file, myNoUp, ...rest } = formRef.current.getFields()
+          requestSubmit({
+            id,
+            caseId: props.caseId,
+            caseTaskId: props.caseTaskId,
+            ...rest
+          })
+        }
+      })
+    }
+  }
 
+  const requestSubmit = async (data) => {
+    const res = await submit(props.type, data)
+    if (res.type) {
+      $$.infoSuccess({ content: '提交成功!' });
+    }
+  }
+
+  //删除文件
+  const handleDelFile = async (id) => {
+    const res = await delFile(id)
+    if (res.type) {
+      $$.infoSuccess({ content: '删除成功!' });
+    }
   }
 
   return (
@@ -28,24 +108,30 @@
       <div className='dataSync-noBackTabPage'>
         <div className='whiteBox'>
           <Space size='small'>
-            <div className='MediationInfo-subTitle' style={{ marginTop: '-8px' }}></div><h5>回退申请</h5>
+            <div className='MediationInfo-subTitle' style={{ marginTop: '-8px' }}></div><h5>{props.type === 'htsh' ? '回退申请' : '上报申请'}</h5>
           </Space>
           <Row gutter={[16, 16]}>
             <Col span={24}>
-              <div><div className="title-text">回退理由</div></div>
-              <div>{infoData?.reason || '-'}</div>
+              <div><div className="title-text">{props.type === 'htsh' ? '回退理由' : '上报理由'}</div></div>
+              <div>{infoData[mainFlag + 'Content'] || '-'}</div>
             </Col>
             <Col span={24}>
               <div><div className="title-text">附件材料</div></div>
-              <div style={{ color: '#1A6FB8' }}><img src={link} alt="" className="title-file" />{infoData?.file || '-'}</div>
+              <div style={{ color: '#1A6FB8' }}>
+                <img src={link} alt="" className="title-file" />{infoData?.file || '-'}
+              </div>
             </Col>
             <Col span={24}>
               <div><div className="title-text">申请时间</div></div>
-              <div>{infoData?.time || '-'}</div>
+              <div>{infoData[mainFlag + 'Time'] || '-'}</div>
             </Col>
             <Col span={24}>
               <div><div className="title-text">申请人</div></div>
-              <div>{infoData?.people}&nbsp;&nbsp;{infoData?.person}<img src={register} alt="" className="title-register" /></div>
+              <div>
+                {infoData[mainFlag + 'UnitName']}&nbsp;&nbsp;
+                {infoData[mainFlag + 'UserName'] || '-'}
+                <img src={register} alt="" className="title-register" />
+              </div>
             </Col>
           </Row>
         </div>
@@ -66,48 +152,43 @@
                 <Col span={24}>
                   <FormItem
                     label={(<div style={{ display: 'flex' }}>审核结果</div>)}
-                    field='result'
+                    field='auditResult'
                   >
-                    <RadioGroup direction='vertical' options={[
-                      {
-                        label: '同意',
-                        value: 1
-                      },
-                      {
-                        label: '不同意',
-                        value: 0
-                      },
-                    ]}>
-                    </RadioGroup>
+                    <RadioGroup
+                      direction='vertical'
+                      options={$$.options.auditResult}
+                      onChange={(value) => {
+                        if (value) {
+                          const data = $$.options.auditResult.find(item => item.value === value)
+                          formRef.current.setFieldValue('auditResultName', data.label)
+                        } else {
+                          formRef.current.setFieldValue('auditResultName', '')
+                        }
+                      }}
+                    />
                   </FormItem>
                 </Col>
                 <Col span={24}>
                   <FormItem
                     label={(<div style={{ display: 'flex' }}>理由说明<div className="must">必填</div></div>)}
-                    field='trueName'
+                    field='myNoUp'
                     rules={[{ required: true, message: '请选择理由说明' }]}
                   >
-                    <RadioGroup direction='vertical' options={[
-                      {
-                        label: '回退理由不充分',
-                        value: '0'
-                      },
-                      {
-                        label: '回退延迟',
-                        value: '1'
-                      },
-                      {
-                        label: '其他',
-                        value: '2'
-                      },
-                    ]}>
+                    <RadioGroup
+                      direction='vertical'
+                      options={options}
+                      onChange={(value) => {
+                        const obj = options.find(item => item.value === value)
+                        formRef.current.setFieldValue('audit_content', obj.label)
+                      }}
+                    >
                     </RadioGroup>
                   </FormItem>
                 </Col>
                 <Col span={24}>
                   <FormItem
                     label=' '
-                    field='luyou'
+                    field='audit_content'
                     rules={[{ required: true, message: '理由不能为空' }]}
                   >
                     <TextArea
@@ -119,10 +200,11 @@
                 <Col span={24} className="doubleFile">
                   <ArcoUpload
                     params={{
-                      action: ``,
+                      action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.caseId}&ownerId=${id}&ownerType=${props.type == 'htsh' ? '22_00018-511' : '22_00018-513'}`,
                     }}
                     field='file'
                     label='附件材料'
+                    handleDelFile={handleDelFile}
                   />
                 </Col>
               </Row>
diff --git a/gz-customerSystem/src/views/register/eventFlow/index.jsx b/gz-customerSystem/src/views/register/eventFlow/index.jsx
index c6453a2..5fa937c 100644
--- a/gz-customerSystem/src/views/register/eventFlow/index.jsx
+++ b/gz-customerSystem/src/views/register/eventFlow/index.jsx
@@ -1,12 +1,3 @@
-/*
- * @Author: dminyi 1301963064@qq.com
- * @Date: 2024-08-09 09:59:43
- * @LastEditors: dminyi 1301963064@qq.com
- * @LastEditTime: 2024-08-31 17:13:53
- * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
- * @Description: 来访登记
- */
-
 import React, { useState, useRef, Fragment, useEffect } from "react";
 import NewPage from '@/components/NewPage';
 import * as $$ from '@/utils/utility';
@@ -51,16 +42,6 @@
 		img: examine,
 		label: '上报审核',
 		key: 'sbsh',
-	},
-	{
-		img: examine,
-		label: '结案审核',
-		key: 'jash',
-	},
-	{
-		img: examine,
-		label: '联合处置申请审核',
-		key: 'lhczsh',
 	},
 ]
 const Organization = () => {
@@ -107,8 +88,8 @@
 		if (key === 'sqjl') {
 			return <ApplyInfo />
 		}
-		if (key === 'htsh' || key === 'sbsh' || key === 'jash' || key === 'lhczsh') {
-			return <Examine type={key} />
+		if (key === 'htsh' || key === 'sbsh' || key === 'lhczsh') {
+			return <Examine type={key} caseTaskId={routeData.caseTaskId} caseId={routeData.caseId} />
 		}
 	}
 
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx
index fb9456b..7f00526 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/AuditView.jsx
@@ -12,7 +12,7 @@
 
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 
diff --git a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
index 0340129..77d07c1 100644
--- a/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
+++ b/gz-customerSystem/src/views/register/handleFeedback/component/handle.jsx
@@ -81,7 +81,7 @@
 }
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 function getNewTimeIdApi(id) {
diff --git a/gz-customerSystem/src/views/register/matterDetail/Supervising.jsx b/gz-customerSystem/src/views/register/matterDetail/Supervising.jsx
index ab8b43b..4398e73 100644
--- a/gz-customerSystem/src/views/register/matterDetail/Supervising.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/Supervising.jsx
@@ -22,7 +22,7 @@
 const appUrl = $$.appUrl;
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 
diff --git a/gz-customerSystem/src/views/register/matterDetail/UniteHandle.jsx b/gz-customerSystem/src/views/register/matterDetail/UniteHandle.jsx
index 53965fa..0f71759 100644
--- a/gz-customerSystem/src/views/register/matterDetail/UniteHandle.jsx
+++ b/gz-customerSystem/src/views/register/matterDetail/UniteHandle.jsx
@@ -10,7 +10,7 @@
 const appUrl = $$.appUrl;
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 
diff --git a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
index 911d774..5329deb 100644
--- a/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
@@ -18,7 +18,7 @@
 }
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 export default function AgentDialog(props) {
diff --git a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
index 1004661..68546ba 100644
--- a/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
+++ b/gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
@@ -30,7 +30,7 @@
 }
 
 function delFile(id) {
-  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'get', service: 'sys', data: { id } });
+  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { id } });
 }
 
 export default function ApplyDialog(props) {

--
Gitblit v1.8.0