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/eventFlow/component/Examine.jsx |  166 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 124 insertions(+), 42 deletions(-)

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>

--
Gitblit v1.8.0