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} {infoData?.person}<img src={register} alt="" className="title-register" /></div>
+ <div>
+ {infoData[mainFlag + 'UnitName']}
+ {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