广州市综治平台前端
xusd
7 days ago 544148eddae96db824423cd059ebecb9d13c392e
fix:市平台项目更新
2 files added
36 files modified
2305 ■■■■■ changed files
package.json 1 ●●●● patch | view | raw | blame | history
src/api/appUrl.js 35 ●●●●● patch | view | raw | blame | history
src/components/ArcoUpload/index.jsx 4 ●●●● patch | view | raw | blame | history
src/components/MyDOCX/index.jsx 127 ●●●●● patch | view | raw | blame | history
src/components/MyDOCX/index.less 13 ●●●●● patch | view | raw | blame | history
src/components/MyPDF/index.jsx 31 ●●●●● patch | view | raw | blame | history
src/components/NewPage/index.jsx 22 ●●●● patch | view | raw | blame | history
src/components/SelectObjModal/selectJudge.jsx 38 ●●●●● patch | view | raw | blame | history
src/components/SelectObjModal/selectPerson.jsx 4 ●●●● patch | view | raw | blame | history
src/components/personCard/DetailDialog.jsx 167 ●●●● patch | view | raw | blame | history
src/utils/selectOption.js 17 ●●●● patch | view | raw | blame | history
src/utils/utility.js 4 ●●●● patch | view | raw | blame | history
src/views/comprehensive/index.jsx 4 ●●● patch | view | raw | blame | history
src/views/disputeLedger/index.jsx 28 ●●●● patch | view | raw | blame | history
src/views/gridDetail/ApplyInfo.jsx 338 ●●●●● patch | view | raw | blame | history
src/views/judicialSubmit/courtAuditDetail.jsx 30 ●●●● patch | view | raw | blame | history
src/views/judicialSubmit/courtAuditEdit.jsx 30 ●●●● patch | view | raw | blame | history
src/views/judicialSubmit/courtEdit.jsx 655 ●●●●● patch | view | raw | blame | history
src/views/register/closeCaseEdit/preview.jsx 8 ●●●● patch | view | raw | blame | history
src/views/register/eventFlow/component/AssignedModel.jsx 2 ●●● patch | view | raw | blame | history
src/views/register/eventFlow/component/EscalationModel.jsx 7 ●●●●● patch | view | raw | blame | history
src/views/register/handleFeedback/component/CaseResult.jsx 84 ●●●● patch | view | raw | blame | history
src/views/register/index.jsx 28 ●●●● patch | view | raw | blame | history
src/views/register/matterDetail/ApplyInfo.jsx 25 ●●●●● patch | view | raw | blame | history
src/views/register/matterDetail/DismissModule.jsx 6 ●●●● patch | view | raw | blame | history
src/views/register/matterDetail/HandleRecord.jsx 8 ●●●● patch | view | raw | blame | history
src/views/register/matterDetail/Judicial.jsx 327 ●●●●● patch | view | raw | blame | history
src/views/register/matterDetail/NewFileCheck.jsx 160 ●●●● patch | view | raw | blame | history
src/views/register/matterDetail/UniteHandle.jsx 2 ●●● patch | view | raw | blame | history
src/views/register/matterDetail/index.jsx 8 ●●●● patch | view | raw | blame | history
src/views/register/visit/SelfPreview.jsx 10 ●●●● patch | view | raw | blame | history
src/views/register/visit/component/SelfVisitorRegister.jsx 28 ●●●●● patch | view | raw | blame | history
src/views/register/visit/component/visitorRegister.jsx 28 ●●●●● patch | view | raw | blame | history
src/views/register/visit/index.jsx 3 ●●●● patch | view | raw | blame | history
src/views/register/visit/preview.jsx 10 ●●●● patch | view | raw | blame | history
src/views/windowDetail/ApplyInfo.jsx 5 ●●●● patch | view | raw | blame | history
src/views/windowDetail/index.jsx 1 ●●●● patch | view | raw | blame | history
src/views/workDash/index.jsx 7 ●●●●● patch | view | raw | blame | history
package.json
@@ -19,6 +19,7 @@
    "axios": "^0.26.0",
    "craco-less": "^2.0.0",
    "crypto-js": "^4.1.1",
    "docx-preview": "^0.3.5",
    "echarts": "^5.4.2",
    "html2canvas": "^1.4.1",
    "import": "0.0.6",
src/api/appUrl.js
@@ -2,7 +2,7 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:25:57
 * @LastEditTime: 2025-05-26 15:03:51
 * @LastEditTime: 2025-06-10 17:33:34
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: api地址
@@ -71,15 +71,44 @@
};
// 测试
// export const test = {
//     // web服务
//     baseUrl: 'http://10.202.1.71:80',
// //   baseUrl: 'https://zfw-dyh.by.gov.cn',
//     // baseUrl: 'http://146.4.99.61:8088/byzfw',
//     // 附件服务
//     fileUrl: 'http://10.202.1.71:80',
// //   fileUrl: 'https://zfw-dyh.by.gov.cn',
//     // 文件查看url 后面接附件编号
//     fileShowUrl: '/gzdyh-test-sys/api/web/fileInfo/show/',
//     // 文件下载url 后面接附件编号
//     fileDownUrl: '/gzdyh-test-sys/api/web/fileInfo/down/',
//     // 在线文档编辑链接
//     fileDocx: '/word/docDraft/showWord',
//     // 签章的文档编辑链接
//     fileDocx2: '/InsertSeal/Word/AddSeal1/Word1',
//     // 不同服务接口type
//     mediate: 'gzdyh-test-mediate', // dyh-mediate
//     cust: 'gzdyh-test-cust', // dyh-cust
//     oper: 'gzdyh-test-oper', // dyh-oper
//     sys: 'gzdyh-test-sys', // dyh-sys
//     disp: 'gzdyh-test-disp', //dyh-disp
//     utils: 'gzdyh-test-utils',
//     know: 'gzdyh-test-know',
// };
// 测试
export const test = {
    // web服务
    baseUrl: 'http://10.202.1.71:80',
//   baseUrl: 'https://zfw-dyh.by.gov.cn',
    // baseUrl: 'http://146.4.99.61:8088/byzfw',
    // 附件服务
    fileUrl: 'http://10.202.1.71:80',
//   fileUrl: 'https://zfw-dyh.by.gov.cn',
    // 文件查看url 后面接附件编号
    fileShowUrl: '/gzdyh-test-sys/api/web/fileInfo/show/',
src/components/ArcoUpload/index.jsx
@@ -2,7 +2,7 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-09-02 19:56:05
 * @LastEditors: lwh
 * @LastEditTime: 2024-12-10 15:46:19
 * @LastEditTime: 2025-06-10 16:23:39
 * @FilePath: \gzDyh\gz-customerSystem\src\components\ArcoUpload\index.jsx
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
@@ -70,7 +70,7 @@
          drag
          multiple
          style={{ ...props.style }}
          accept='.png,.jpg,.pdf'
          accept='.png,.jpg,.pdf,.doc,.docx'
          onDrop={(e) => {
          }}
          tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M'
src/components/MyDOCX/index.jsx
New file
@@ -0,0 +1,127 @@
import React, { Fragment, useState, useEffect, useRef } from 'react';
import PropTypes from 'prop-types';
import { Button, Space } from 'antd';
import { Modal } from '@arco-design/web-react';
import { CloseCircleFilled, DownloadOutlined } from '@ant-design/icons';
import { IconAttachment } from '@arco-design/web-react/icon';
import { Document, Page, pdfjs } from 'react-pdf';
import * as $$ from '@/utils/utility';
import './index.less';
// 设置pdf.js工作器路径
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;
const appUrl = $$.appUrl;
const MyPDF = ({ name, fileUrl }) => {
    const [visible, setVisible] = useState(false);
    const [numPages, setNumPages] = useState(null);
    const [pageNumber, setPageNumber] = useState(1);
    // 成功加载PDF文件时的回调
    function onDocumentLoadSuccess({ numPages }) {
        setNumPages(numPages);
        setPageNumber(1);
    }
    function changePage(offset) {
        setPageNumber((prevPageNumber) => prevPageNumber + offset);
    }
    function previousPage() {
        changePage(-1);
    }
    function nextPage() {
        changePage(1);
    }
    return (
        <div>
            {fileUrl ? (
                <div
                    onClick={() => {
                        setVisible(true);
                    }}
                    className="pdf-title"
                >
                    <IconAttachment style={{ color: '#1A6FB8' }} />
                    <div className="pdf-name">{name}</div>
                </div>
            ) : (
                '-'
            )}
            <Modal
                style={{ width: '80%' }}
                closable={false}
                title={name}
                footer={
                    <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', gap: '10px' }}>
                        <button
                            type="button"
                            disabled={pageNumber <= 1}
                            onClick={previousPage}
                            style={{ padding: '4px 15px', cursor: pageNumber <= 1 ? 'not-allowed' : 'pointer' }}
                        >
                            上一页
                        </button>
                        <p style={{ margin: 0 }}>
                            第 {pageNumber} 页 / 共 {numPages || '--'} 页
                        </p>
                        <button
                            type="button"
                            disabled={pageNumber >= numPages}
                            onClick={nextPage}
                            style={{ padding: '4px 15px', cursor: pageNumber >= numPages ? 'not-allowed' : 'pointer' }}
                        >
                            下一页
                        </button>
                        <Button
                            type="primary"
                            icon={<DownloadOutlined />}
                            onClick={() => {
                                window.open(`${appUrl.fileUrl}${appUrl.fileDownUrl}${fileUrl.split('/').pop()}`);
                            }}
                            style={{ marginLeft: '10px' }}
                        >
                            下载
                        </Button>
                    </div>
                }
                centered
                unmountOnExit={true}
                visible={visible}
                onCancel={() => {
                    setVisible(false);
                }}
            >
                <div style={{ width: '100%', height: 'calc(100vh - 200px)', display: 'flex', justifyContent: 'center', overflow: 'auto' }}>
                    <Document
                        file={`${appUrl.fileUrl}/${appUrl.sys}${fileUrl}`}
                        onLoadSuccess={onDocumentLoadSuccess}
                        loading={<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>PDF加载中...</div>}
                        error={<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>PDF加载失败,请稍后重试</div>}
                    >
                        <Page pageNumber={pageNumber} renderTextLayer={false} renderAnnotationLayer={false} scale={1.2} />
                    </Document>
                </div>
            </Modal>
        </div>
    );
};
MyPDF.propTypes = {
    title: PropTypes.any,
    visible: PropTypes.bool,
    onCancel: PropTypes.func,
    onOk: PropTypes.func,
    footer: PropTypes.any,
    onText: PropTypes.string,
    cancelText: PropTypes.string,
    zIndex: PropTypes.number,
    bodyStyle: PropTypes.object,
    closable: PropTypes.bool,
    centered: PropTypes.bool,
};
export default MyPDF;
src/components/MyDOCX/index.less
New file
@@ -0,0 +1,13 @@
@import '../../styles/theme.less';
.pdf {
    &-title {
        display: flex;
        align-items: center;
        gap: 4px;
        cursor: pointer;
    }
    &-name {
    color: @main-color;
    }
}
src/components/MyPDF/index.jsx
@@ -5,17 +5,20 @@
import { CloseCircleFilled, DownloadOutlined } from '@ant-design/icons';
import { IconAttachment } from '@arco-design/web-react/icon';
import { Document, Page, pdfjs } from 'react-pdf';
import * as docx from 'docx-preview';
import * as $$ from '@/utils/utility';
import PreviewImage from '@/components/PreviewImage';
import './index.less';
// 设置pdf.js工作器路径
pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.min.js`;
const appUrl = $$.appUrl;
const MyPDF = ({ name, fileUrl }) => {
const MyPDF = ({ name, fileUrl, fileType }) => {
    const [visible, setVisible] = useState(false);
    const [numPages, setNumPages] = useState(null);
    const [pageNumber, setPageNumber] = useState(1);
    const containerRef = useRef(null);
    // 成功加载PDF文件时的回调
    function onDocumentLoadSuccess({ numPages }) {
@@ -36,11 +39,27 @@
    }
    return (
        <>
            {fileType === 'jpg' || fileType === 'png' ? (
                <PreviewImage name={name} src={fileUrl} />
            ) : (
        <div>
            {fileUrl ? (
                <div
                    onClick={() => {
                        setVisible(true);
                                if (fileType === 'docx' || fileType === 'doc') {
                                    const renderDocx = async () => {
                                        try {
                                            const response = await fetch(`${appUrl.fileUrl}/${appUrl.sys}${fileUrl}`);
                                            const blob = await response.blob();
                                            await docx.renderAsync(blob, containerRef.current);
                                        } catch (error) {
                                            console.error('文档加载失败', error);
                                        }
                                    };
                                    renderDocx();
                                }
                    }}
                    className="pdf-title"
                >
@@ -96,17 +115,25 @@
                }}
            >
                <div style={{ width: '100%', height: 'calc(100vh - 200px)', display: 'flex', justifyContent: 'center', overflow: 'auto' }}>
                            {fileType === 'pdf' && (
                    <Document
                        file={`${appUrl.fileUrl}/${appUrl.sys}${fileUrl}`}
                        onLoadSuccess={onDocumentLoadSuccess}
                        loading={<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>PDF加载中...</div>}
                        error={<div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>PDF加载失败,请稍后重试</div>}
                                    error={
                                        <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%' }}>PDF加载失败,请稍后重试</div>
                                    }
                    >
                        <Page pageNumber={pageNumber} renderTextLayer={false} renderAnnotationLayer={false} scale={1.2} />
                    </Document>
                            )}
                            {fileType === 'docx' && <div ref={containerRef} className="docx-container" />}
                            {fileType === 'doc' && <div ref={containerRef} className="docx-container" />}
                </div>
            </Modal>
        </div>
            )}
        </>
    );
};
src/components/NewPage/index.jsx
@@ -2,7 +2,7 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-03-04 14:29:11
 * @LastEditTime: 2024-10-24 10:25:23
 * @LastEditTime: 2025-06-12 17:24:36
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: 页面框架
@@ -13,6 +13,7 @@
import './index.less';
import * as $$ from '../../utils/utility';
import RegisterChooseModal from '../RegisterChooseModal';
import { Watermark } from '@arco-design/web-react';
const NewPage = ({ children, pageHead, registerChooseModalVisible }) => {
  if (!$$.getSessionStorage('customerSystemToken')) {
@@ -20,13 +21,28 @@
    return null;
  }
    let customerSystemUser = $$.getSessionStorage('customerSystemUser');
    const getCurrentTime = () => {
        const now = new Date();
        const year = now.getFullYear();
        const month = String(now.getMonth() + 1).padStart(2, '0');
        const day = String(now.getDate()).padStart(2, '0');
        const hours = String(now.getHours()).padStart(2, '0');
        const minutes = String(now.getMinutes()).padStart(2, '0');
        const seconds = String(now.getSeconds()).padStart(2, '0');
        return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
    };
    const watermarkContent = `${customerSystemUser.trueName} ${getCurrentTime()}`;
  return (
    <>
        <Watermark style={{ height: '100%' }} gap={[200, 200]} content={watermarkContent}>
      {!!pageHead && <PageHead {...pageHead} />}
      {children}
      {/* 纠纷登录入口modal */}
      {!!registerChooseModalVisible && <RegisterChooseModal visible={registerChooseModalVisible} />}
    </>
        </Watermark>
  );
};
src/components/SelectObjModal/selectJudge.jsx
@@ -71,7 +71,6 @@
    handleSearch('', arr);
  }, [data]);
  
  const getParentKey = (key, tree) => {
    let parentKey;
    for (let i = 0; i < tree.length; i++) {
@@ -88,7 +87,6 @@
  };
  function handleSearch(value, dataList) {
    console.log('value, dataList', value, dataList);
    const newExpandedKeys = dataList
      .map((item) => {
@@ -106,10 +104,17 @@
  }
  const treeData = useMemo(() => {
    const loop = (data) =>
      data.map((item) => {
    const loop = (data) => {
      const copiedData = JSON.parse(JSON.stringify(data));
      return copiedData.map((item, idx) => {
        const strTitle = item.label;
        const index = strTitle.indexOf(searchValue);
        // 只保留包含 searchValue 的项
        if (index <= -1 && !item.children) {
          return null; // 返回 null 表示不包含在最终结果中
        }
        const beforeStr = strTitle.substring(0, index);
        const afterStr = strTitle.slice(index + searchValue.length);
        const label =
@@ -122,30 +127,29 @@
          ) : (
            <span>{strTitle}</span>
          );
        if (item.children) {
          const filteredChildren = loop(item.children).filter(Boolean); // 递归处理子项并过滤掉 null
          return {
            label,
            name: strTitle,
            value: item.value,
            checkable: item.checkable,
            children: loop(item.children),
            children: filteredChildren.length > 0 ? filteredChildren : undefined,
          };
        }
        return {
          label,
          name: strTitle,
          checkable: item.checkable,
          value: item.value,
        };
      });
    // data = data.filter(i => i.label?.indexOf(searchValue) > -1);
    // console.log('data.filter',data.filter(i => i.label?.indexOf(searchValue) > -1));
    console.log('loop(data)', loop(data));
      }).filter(Boolean); // 过滤掉 null
    };
    return loop(data);
  }, [searchValue, data]);
  useEffect(() => {
    if (!visible) return;
@@ -173,7 +177,17 @@
      <div className="selectObjModal-main">
        <div className="selectObjModal-left">
          <div className="selectObjModal-left-search">
            <Search placeholder={`查询${nameStr}名称`} onChange={(e) => handleSearch(e.target.value, dataList)} />
                        <Search
                            placeholder={`查询${nameStr}名称`}
                            onSearch={(e) => {
                                // handleSearch('', dataList)
                                if (!e) {
                                    handleSearch('', dataList);
                                } else {
                                    handleSearch(e, dataList);
                                }
                            }}
                        />
          </div>
          <div className="selectObjModal-left-main">
            {data.length > 0 ? (
src/components/SelectObjModal/selectPerson.jsx
@@ -19,6 +19,7 @@
const txtMap = {
  supUnit: '组织',
  dept: '部门',
  dept_union: '部门',
  person: '人',
  unit: '组织'
}
@@ -30,6 +31,9 @@
    case 'dept':
      url = `ctUnit/unitChoose`
      break;
    case 'dept_union':
      url = `ctUnit/unitChoose4Union`
      break;
    case 'person':
      url = 'ctUser/userChoose'
      break
src/components/personCard/DetailDialog.jsx
@@ -1,10 +1,10 @@
import React, { useEffect, useState } from 'react'
import KeyVisits from "./KeyVisits";
import React, { useEffect, useState } from 'react';
import KeyVisits from './KeyVisits';
import { majorStatus_1 } from '@/assets/images';
import { Scrollbars } from "react-custom-scrollbars";
import { Scrollbars } from 'react-custom-scrollbars';
import PreviewImage from '../PreviewImage';
import MyPDF from '../MyPDF';
import { checkIdCard } from "../../utils/utility";
import { checkIdCard } from '../../utils/utility';
import { Tooltip } from '@arco-design/web-react';
import * as $$ from '@/utils/utility';
const appUrl = $$.appUrl;
@@ -86,7 +86,6 @@
        value: '',
        field: 'age',
      },
    ],
    [
      {
@@ -101,7 +100,7 @@
        field: 'extreme',
      },
    ],
  ]
    ];
  const legalList = [
    [
      {
@@ -146,7 +145,7 @@
        label: '住所',
        value: '',
        field: 'placeAddr',
        isRow: true
                isRow: true,
      },
    ],
    [
@@ -163,7 +162,7 @@
        field: 'file1',
      },
    ],
  ]
    ];
  const organizationList = [
    [
      {
@@ -208,7 +207,7 @@
        label: '住所',
        value: '',
        field: 'placeAddr',
        isRow: true
                isRow: true,
      },
    ],
    [
@@ -225,7 +224,7 @@
        field: 'file1',
      },
    ],
  ]
    ];
  const agentList = [
    [
      {
@@ -306,7 +305,7 @@
        label: '代理对象',
        value: '',
        field: 'personId',
        isRow: true
                isRow: true,
      },
    ],
    [
@@ -323,8 +322,8 @@
        field: 'file1',
      },
    ],
  ]
  const [tableList, setTableList] = useState([])
    ];
    const [tableList, setTableList] = useState([]);
  const [certiNo, setCertiNo] = useState('');
  const [certiShow, setCertiShow] = useState(false);
  // 反应诉求记录
@@ -334,25 +333,25 @@
  const [search, setSearch] = useState({ page: 1, size: 5 });
  function getAllApi(num) {
    countPerson(num)
    pagePerson({ ...search, certiNo: num })
        countPerson(num);
        pagePerson({ ...search, certiNo: num });
  }
  // 根据个人身份证号查询重点人员信息
  async function getLabelInfo(idCard) {
    const res = await getLabelInfoApi({ idNumber: idCard })
        const res = await getLabelInfoApi({ idNumber: idCard });
    if (res.type) {
      let data = res.data || {};
      console.log('res.data', res.data);
      setLabelInfo(data?.labelList)
            setLabelInfo(data?.labelList);
    }
  }
  // 个人案件统计
  async function countPerson(idCard) {
    const res = await countPersonApi({ certiNo: idCard })
        const res = await countPersonApi({ certiNo: idCard });
    if (res.type) {
      setHisData(res.data || {})
            setHisData(res.data || {});
    }
  }
@@ -373,7 +372,7 @@
  // 页码修改
  function handleChangePage(page, pageSize, field, order) {
    let paramsObj = Object.assign(search, { page, size: pageSize });
    paramsObj = { ...paramsObj }
        paramsObj = { ...paramsObj };
    setSearch(paramsObj);
    pagePerson(paramsObj);
@@ -381,94 +380,107 @@
  useEffect(() => {
    if (checkIdCard(props.editData?.certiNo)) {
      setCertiShow(true)
      setCertiNo(props.editData?.certiNo)
      getAllApi(props.editData?.certiNo)
            setCertiShow(true);
            setCertiNo(props.editData?.certiNo);
            getAllApi(props.editData?.certiNo);
    }
    const data = props.editData
    let newList
    let mapList = []
    if (data.perClass === "09_01001-1") {
        const data = props.editData;
        let newList;
        let mapList = [];
        if (data.perClass === '09_01001-1') {
      //自然人
      mapList = nuturalList
            mapList = nuturalList;
    }
    if (data.perClass === "09_01001-2") {
        if (data.perClass === '09_01001-2') {
      //法人组织
      mapList = legalList
            mapList = legalList;
    }
    if (data.perClass === "09_01001-3") {
        if (data.perClass === '09_01001-3') {
      //非法人组织
      mapList = organizationList
            mapList = organizationList;
    }
    if (data.perType === "24_00006-1" || data.perType === "24_00006-2") {
        if (data.perType === '24_00006-1' || data.perType === '24_00006-2') {
      //代理人
      mapList = agentList
            mapList = agentList;
    }
    newList = mapList.map(item => {
      return item.map(res => {
        newList = mapList.map((item) => {
            return item.map((res) => {
        if (res.isFile) {
          return {
            ...res,
            value: <>
                        value: (
                            <>
              {data[res.field]?.map((item, index) => {
                if (item.response) {
                  //新上传的,前端数据
                  const newData = item.response.data[0]
                  return <div style={{ display: 'inline-block' }}>
                    {newData.suffix === 'pdf' ? <MyPDF name={newData.name} fileUrl={newData.showUrl} /> : <PreviewImage name={newData.name} src={newData.showUrl} />}
                                        const newData = item.response.data[0];
                                        return (
                                            <div style={{ display: 'inline-block' }}>
                                                <MyPDF key={index} name={newData.name} fileUrl={newData.showUrl} fileType={newData.suffix} />
                    {index !== data[res.field].length - 1 && <>,</>}
                  </div>
                                        );
                } else {
                  return <div style={{ display: 'inline-block' }}>
                    {item.suffix === 'pdf' ? <MyPDF name={item.name} fileUrl={item.showUrl} /> : <PreviewImage name={item.name} src={item.showUrl} />}
                                        return (
                                            <div style={{ display: 'inline-block' }}>
                                                <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                    {index !== data[res.field].length - 1 && <>,</>}
                  </div>
                                        );
                }
              })}
            </>
          }
                        ),
                    };
        }
        if (res.isName) {
          return {
            ...res,
            value: data[res.field],
            perClass: data.perClassName || data.perTypeName
          }
                        perClass: data.perClassName || data.perTypeName,
                    };
        } else {
          if (res.field === 'personId') {
            const filterValue = props.personData.filter(result => data[res.field].indexOf(result.id) != -1).map(result => result.trueName).join(',')
                        const filterValue = props.personData
                            .filter((result) => data[res.field].indexOf(result.id) != -1)
                            .map((result) => result.trueName)
                            .join(',');
            return {
              ...res,
              value: filterValue
            }
                            value: filterValue,
                        };
          } else if (res.field === 'extreme') {
            return {
              ...res,
              label: <div style={{
                            label: (
                                <div
                                    style={{
                padding: '8px', 
                display: 'flex', 
                gap: '8px', 
                alignItems: 'center',
                color: data[res.field] === 1 ? '#F53F3F' : 'inherit'
              }} className='title-text-red'>
                                        color: data[res.field] === 1 ? '#F53F3F' : 'inherit',
                                    }}
                                    className="title-text-red"
                                >
                {data[res.field] === 1 && <img src={majorStatus_1} alt="" srcset="" />}
                <Tooltip content='是否有个人极端倾向'>{$$.ellipsis('是否有个人极端倾向', 6)}</Tooltip>
              </div>,
              value: data[res.field] === 1 ? '是' : data[res.field] === 0 ? '否' : '-'
            }
                                    <Tooltip content="是否有个人极端倾向">{$$.ellipsis('是否有个人极端倾向', 6)}</Tooltip>
                                </div>
                            ),
                            value: data[res.field] === 1 ? '是' : data[res.field] === 0 ? '否' : '-',
                        };
          } else {
            return {
              ...res,
              value: data[res.field]
                            value: data[res.field],
                        };
            }
          }
        }
      })
    })
            });
        });
    setTableList(newList)
  }, [])
        setTableList(newList);
    }, []);
  return (
    <Scrollbars
@@ -478,13 +490,15 @@
      autoHeightMax={590}
    >
      <table border="1" align="center" cellpadding="8" className="table" style={{ marginBottom: '20px' }}>
        {
          tableList?.map((item, index) => {
            return <tr key={'tableList' + index}>
              {
                item?.map(res => {
                  return <>
                    <th bgcolor="#F7F8FA" className="table-title" width={150}>{res.label}</th>
                {tableList?.map((item, index) => {
                    return (
                        <tr key={'tableList' + index}>
                            {item?.map((res) => {
                                return (
                                    <>
                                        <th bgcolor="#F7F8FA" className="table-title" width={150}>
                                            {res.label}
                                        </th>
                    <td width={320} colspan={res.isRow ? '3' : '1'}>
                      <div style={{ display: 'flex', minHeight: '22px' }}>
                        <div>{res.value}</div>
@@ -492,19 +506,18 @@
                      </div>
                    </td>
                  </>
                })
              }
                                );
                            })}
            </tr>
          })
        }
                    );
                })}
      </table>
      {/* 重复来访重点人员 */}
      {
        certiShow &&
            {certiShow && (
        <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}>
          <KeyVisits labelInfo={labelInfo} data={hisData} fakeData={fakeData} search={search} handleChangePage={handleChangePage} />
        </div>
      }
            )}
    </Scrollbars>
  )
    );
}
src/utils/selectOption.js
@@ -496,10 +496,6 @@
        label: '待分派',
    },
    {
        value: '2',
        label: '待签收',
    },
    {
        value: '3',
        label: '待受理',
    },
@@ -1512,7 +1508,20 @@
    },
]
const systemSource = [
    {
        value: '0',
        label: '市平台',
    },
    {
        value: '1',
        label: '白云区平台',
    },
]
const obj = {
    systemSource,
    caseCanal,
    visitWay,
    personType,
src/utils/utility.js
@@ -2,7 +2,7 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:57:54
 * @LastEditTime: 2025-05-30 16:51:32
 * @LastEditTime: 2025-06-10 17:40:29
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: 公共模块方法
@@ -18,7 +18,7 @@
import { empty } from '@/assets/images';
export const isDebug = false; // 是否开发环境
export const isTest = false; // 是否测试环境
export const isTest = true; // 是否测试环境
export const appUrl = isDebug ? debug : isTest ? test : web; // api
src/views/comprehensive/index.jsx
@@ -289,13 +289,14 @@
              { type: 'RangePicker', name: 'fileTime', label: '归档时间', shortcutsPlacementLeft: true, shortcuts: $$.shortcutsList(), span: 8 },
              { type: 'Cascader', name: 'caseType', label: '纠纷类型', placeholder: '请选择', span: 8, changeSelect: true, treedata: $$.caseTypeSelect.caseTypeSelect },
              { type: 'Select', name: 'mediResult', label: '化解结果', placeholder: '请选择', span: 8, selectdata: $$.options.mediResult },
              { type: 'Input', name: 'caseRef', label: '事项编号' },
              { type: 'Select', name: 'canal', label: '事项来源', placeholder: '请选择', span: 8, selectdata: $$.options.caseCanal },
              { type: 'Select', name: 'status', label: '事项状态', placeholder: '请选择', span: 8, selectdata: $$.options.caseStatus },
              { type: 'Select', name: 'caseLevel', label: '事项等级', placeholder: '请选择', span: 8, selectdata: $$.options.caseLevelList },
              { type: 'Select', name: 'systemSource', label: '系统来源', placeholder: '请选择', span: 8, selectdata: $$.options.systemSource },
              { type: 'Input', name: 'inputUnitName', label: '登记机构' },
              { type: 'searchButton', name: 'mediateUnitId', maxLength: 0, onClear: () => { console.log('clear'); setSelectObjModalData({ ...selectObjModalData, mediateUnitId: {} }); form.setFieldValue('mediateUnitId', '') }, onSearch: () => { onChange('mediateUnitId') }, searchButton: '选择', placeholder: '请选择', label: '承办部门' },
              { type: 'searchButton', name: 'assistUnitId', maxLength: 0, onClear: () => { setSelectObjModalData({ ...selectObjModalData, assistUnitId: {} }); form.setFieldValue('assistUnitId', '') }, onSearch: () => { onChange('assistUnitId') }, searchButton: '选择', placeholder: '请选择', label: '配合部门' },
              { type: 'Input', name: 'caseRef', label: '事项编号' },
              { type: 'Input', name: 'plaintiffs', label: '申请方', labelStyle: { width: '56px' } },
              { type: 'Input', name: 'defendants', label: '被申请方' },
              { type: 'Select', name: 'peopleNum', placeholder: '请选择', label: '涉及人数', selectdata: $$.options.peopleNum },
@@ -306,6 +307,7 @@
              { type: 'Select', name: 'isRisk', placeholder: '请选择', label: '是否扬言极端', selectdata: [{ label: '是', value: '1' }, { label: '否', value: '0' }] },
              { type: 'Select', name: 'agreeType', placeholder: '请选择', label: '结案协议类型', selectdata: $$.options.caseAgreeType },
              { type: 'Select', name: 'repeatCase', placeholder: '请选择', label: '合并事项', selectdata: $$.options.repeatCase },
              { type: 'Input', name: 'caseCityCode', label: '市民编号' },
            ]}
            handleReset={() => {
              form.resetFields();
src/views/disputeLedger/index.jsx
@@ -2,7 +2,7 @@
 * @Company: hugeInfo
 * @Author: lwh
 * @Date: 2024-09-14 15:59:17
 * @LastEditTime: 2025-06-04 21:18:43
 * @LastEditTime: 2025-06-14 11:35:43
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description:
@@ -383,17 +383,10 @@
                            >
                                <div>
                                    <div className="disputeLedger-card-content">
                                        <div className={`disputeLedger-card-content-t`}>
                                            {item.title}
                                        </div>
                                        <div className={`disputeLedger-card-content-t`}>{item.title}</div>
                                        <div>
                                            <span className={`disputeLedger-card-title`}>
                                                {item.value}
                                            </span>{' '}
                                            <span className={`disputeLedger-unit`}>件</span>{' '}
                                            {item.per && (
                                                <span className={`disputeLedger-unit `}>| {item.per}</span>
                                            )}
                                            <span className={`disputeLedger-card-title`}>{item.value}</span> <span className={`disputeLedger-unit`}>件</span>{' '}
                                            {item.per && <span className={`disputeLedger-unit `}>| {item.per}</span>}
                                        </div>
                                    </div>
                                    <img src={item.icon} style={{ width: activeKey === index && '52px', height: activeKey === index && '52px' }} alt="" />
@@ -443,9 +436,10 @@
                                <div style={{ paddingBottom: '12px' }}>
                                    <MyLTopChartPie1
                                        data={[
                                            { value: data.data4.value1, name: '化解中' },
                                            { value: data.data4.value2, name: '化解成功' },
                                            { value: data.data4.value3, name: '化解不成功' },
                                            { value: data.rejectNum, name: '不予受理' },
                                            { value: data.processNum, name: '化解中' },
                                            { value: data.finishNum, name: '化解成功' },
                                            { value: data.failNum, name: '化解不成功' },
                                        ]}
                                        allNum={allNum}
                                    />
@@ -688,6 +682,10 @@
                },
                data: [
                    {
                        name: '不予受理',
                        icon: 'circle', // 图例标记的形状
                    },
                    {
                        name: '化解中',
                        icon: 'circle', // 图例标记的形状
                    },
@@ -707,7 +705,7 @@
                    type: 'pie',
                    radius: ['60%', '90%'], // 设置饼图的内半径和外半径,实现扇形区域
                    center: ['30%', '50%'],
                    color: ['#B6DDF1', '#3A8AC6', '#094282'],
                    color: ['#B6DDF1', '#5BA8E5', '#3A8AC6', '#094282'],
                    data: data,
                    label: {
                        show: true,
src/views/gridDetail/ApplyInfo.jsx
@@ -17,7 +17,7 @@
import NameCard2 from '../../components/NameCard2';
import MyPDF from '../../components/MyPDF';
import PersonCard from '../register/matterDetail/personCard';
import { Scrollbars } from "react-custom-scrollbars";
import { Scrollbars } from 'react-custom-scrollbars';
import TranferReviewProgress from '@/components/ReviewProgress/ReviewProgress.jsx';
function listMyApplyRecord(data) {
@@ -27,13 +27,13 @@
export default function ApplyInfo(props) {
  const [list, setList] = useState([]);
  const [loading, setLoading] = useState(false);
  const [personView, setPersonView] = useState(false)
  const [personId, setPersonId] = useState('')
    const [personView, setPersonView] = useState(false);
    const [personId, setPersonId] = useState('');
  const map = {
    '上报申请': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -48,7 +48,7 @@
      {
        value: 'fileInfo',
        label: '附件材料',
        fileKey: '22_00018-512'
                    fileKey: '22_00018-512',
      },
      {
        value: 'applyTime',
@@ -58,7 +58,7 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'applyUnitName',
        peopleName: 'applyUserName'
                    peopleName: 'applyUserName',
      },
      ],
      [
@@ -77,7 +77,7 @@
        {
          value: 'fileInfo',
          label: '附件材料',
          fileKey: '22_00018-513'
                    fileKey: '22_00018-513',
        },
        {
          value: 'auditTime',
@@ -87,12 +87,13 @@
          value: 'auditPeople',
          label: '审核人',
          unitName: 'auditUnitName',
          peopleName: 'auditUserName'
                    peopleName: 'auditUserName',
        },
      ]
            ],
    ],
    '回退申请': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -103,7 +104,7 @@
      {
        value: 'fileInfo',
        label: '附件材料',
        fileKey: '22_00018-510'
                    fileKey: '22_00018-510',
      },
      {
        value: 'returnTime',
@@ -113,7 +114,7 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'returnUnitName',
        peopleName: 'returnUserName'
                    peopleName: 'returnUserName',
      },
      ],
      [
@@ -132,7 +133,7 @@
        {
          value: 'fileInfo',
          label: '附件材料',
          fileKey: '22_00018-511'
                    fileKey: '22_00018-511',
        },
        {
          value: 'auditTime',
@@ -142,12 +143,13 @@
          value: 'auditPeople',
          label: '审核人',
          unitName: 'auditUnitName',
          peopleName: 'auditUserName'
                    peopleName: 'auditUserName',
        },
      ]
            ],
    ],
    '联合处置申请': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -162,7 +164,7 @@
      {
        value: 'fileInfo',
        label: '附件材料',
        fileKey: '22_00018-508'
                    fileKey: '22_00018-508',
      },
      {
        value: 'applyTime',
@@ -172,7 +174,7 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'applyUnitName',
        peopleName: 'applyUserName'
                    peopleName: 'applyUserName',
      },
      ],
      [
@@ -191,7 +193,7 @@
        {
          value: 'fileInfo',
          label: '附件材料',
          fileKey: '22_00018-509'
                    fileKey: '22_00018-509',
        },
        {
          value: 'auditTime',
@@ -201,12 +203,13 @@
          value: 'auditPeople',
          label: '审核人',
          unitName: 'auditUnitName',
          peopleName: 'auditUserName'
                    peopleName: 'auditUserName',
        },
      ]
            ],
    ],
    '结案申请': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -230,7 +233,7 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'applyUnitName',
        peopleName: 'applyUserName'
                    peopleName: 'applyUserName',
      },
      ],
      [
@@ -249,7 +252,7 @@
        {
          value: 'fileInfo',
          label: '附件材料',
          fileKey: '22_00018-514'
                    fileKey: '22_00018-514',
        },
        {
          value: 'auditTime',
@@ -259,12 +262,13 @@
          value: 'auditPeople',
          label: '审核人',
          unitName: 'auditUnitName',
          peopleName: 'auditUserName'
                    peopleName: 'auditUserName',
        },
      ]
            ],
    ],
    '结案申请1': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -288,7 +292,7 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'applyUnitName',
        peopleName: 'applyUserName'
                    peopleName: 'applyUserName',
      },
      ],
      [
@@ -299,10 +303,11 @@
        {
          value: 'reviewProgress',
        },
      ]
            ],
    ],//这个是1、2事件的结案申请
    '转入人民调解系统申请': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -314,7 +319,7 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'applyUnitName',
        peopleName: 'applyUserName'
                    peopleName: 'applyUserName',
      },
      ],
      [
@@ -325,10 +330,11 @@
        {
          value: 'tranferReviewProgress',
        },
      ]
            ],
    ],
    '司法确认申请': [
      [{
            [
                {
        value: 'subTitle',
        label: '申请信息',
      },
@@ -343,22 +349,22 @@
      {
        value: 'filePDF',
        label: '调解协议书',
        fileKey: '22_00018-302'
                    fileKey: '22_00018-302',
      },
      {
        value: 'filePDF',
        label: '非诉讼调解协议司法确认申请书',
        fileKey: '22_00018-402'
                    fileKey: '22_00018-402',
      },
      {
        value: 'filePDF',
        label: '诉前联调协议案件移送函',
        fileKey: '22_00018-403'
                    fileKey: '22_00018-403',
      },
      {
        value: 'filePDF',
        label: '送达地址确认书',
        fileKey: '22_00018-108'
                    fileKey: '22_00018-108',
      },
      {
        value: 'applyTime',
@@ -368,29 +374,30 @@
        value: 'applyPeople',
        label: '申请人',
        unitName: 'applyUnitName',
        peopleName: 'applyUserName'
                    peopleName: 'applyUserName',
      },
      ]
    ],
  }
        ],
    };
  useEffect(() => {
    getData(props.caseId)
  }, [])
        getData(props.caseId);
    }, []);
  const getData = async (caseId) => {
    setLoading(true)
        setLoading(true);
    const res = await listMyApplyRecord({
      caseId
    })
            caseId,
        });
    if (res.type) {
      setLoading(false)
      setList(res.data)
            setLoading(false);
            setList(res.data);
    }
  }
    };
  const toggleView = (id) => {
    setList(list.map((record, index) => {
        setList(
            list.map((record, index) => {
      if (index === id) {
        return {
          ...record,
@@ -398,196 +405,265 @@
        };
      }
      return record;
    }));
            })
        );
  };
  const handlePersonDetail = (id) => {
    setPersonId(id)
    setPersonView(true)
  }
        setPersonId(id);
        setPersonView(true);
    };
  const handleDom = (data, item) => {
    console.log('111111111111', data, item);
    const { object, fileList } = item
        const { object, fileList } = item;
    if (data.value === 'subTitle') {
      //标题
      return <Col span={24} key={data.value}>
        <Space size='small'>
          <div className='MediationInfo-subTitle' style={{ marginTop: '-8px' }}></div><h5>{data.label}</h5>
            return (
                <Col span={24} key={data.value}>
                    <Space size="small">
                        <div className="MediationInfo-subTitle" style={{ marginTop: '-8px' }}></div>
                        <h5>{data.label}</h5>
        </Space>
      </Col>
            );
    } else if (data.value === 'fileInfo') {
      //文件
      let fileData = {}
            let fileData = {};
      if (fileList && fileList.length != 0) {
        fileData = fileList.find(item => data.fileKey == item.ownerType) || {}
                fileData = fileList.find((item) => data.fileKey == item.ownerType) || {};
      }
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
                    </div>
        <div style={{ color: '#1A6FB8' }}>
          {fileData.fileList?.map((result, resIndex) => {
            return <div style={{ display: 'inline-block' }}>
                            return (
                                <div style={{ display: 'inline-block' }}>
              <PreviewImage name={result.name} src={result.showUrl} />
              {resIndex !== fileData.fileList?.length - 1 && <>,</>}
            </div>
                            );
          }) || '-'}
        </div>
      </Col>
            );
    } else if (data.value === 'filePDF') {
      //文件
      let fileData = {}
            let fileData = {};
      if (fileList && fileList.length != 0) {
        fileData = fileList.find(item => data.fileKey == item.ownerType) || {}
                fileData = fileList.find((item) => data.fileKey == item.ownerType) || {};
      }
      console.log('fileData', fileData);
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
                    </div>
        <div style={{ color: '#1A6FB8' }}>
          {fileData.fileList?.map((result, resIndex) => {
            return <div style={{ display: 'inline-block' }}>
              {result.suffix === 'pdf' ?
                <MyPDF name={result.name} fileUrl={result.showUrl} /> :
                <PreviewImage name={result.name} src={result.showUrl} />
              }
                            return (
                                <div style={{ display: 'inline-block' }}>
                                    <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
              {resIndex !== fileData.fileList?.length - 1 && <>,</>}
            </div>
                            );
          }) || '-'}
        </div>
      </Col>
            );
    } else if (data.value === 'applyPeople' || data.value === 'auditPeople') {
      //申请人
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
                    </div>
        <span>
          <span style={{ color: '#86909C' }}></span><span>{object[data.unitName]}</span>
                        <span style={{ color: '#86909C' }}></span>
                        <span>{object[data.unitName]}</span>
        </span>
        <span>
          <span className='public-infoSubTitle'><span className='public-nameCard'>&nbsp;&nbsp;<NameCard2 name={data.value === 'auditPeople' ? object.auditUserName : object.applyUserName} userId={data.value === 'auditPeople' ? object.auditUserId : object.applyUserId} /></span></span>
                        <span className="public-infoSubTitle">
                            <span className="public-nameCard">
                                &nbsp;&nbsp;
                                <NameCard2
                                    name={data.value === 'auditPeople' ? object.auditUserName : object.applyUserName}
                                    userId={data.value === 'auditPeople' ? object.auditUserId : object.applyUserId}
                                />
                            </span>
                        </span>
        </span>
      </Col>
            );
    } else if (data.value === 'applyTime' || data.value == 'auditTime' || data.value == 'returnTime') {
      //时间格式化
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
                    </div>
        <div>{$$.minuteFormat(object[data.value]) || '-'}</div>
      </Col>
            );
    } else if (data.value == 'auditResultName') {
      //审核结果
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
        <div style={{ color: object.auditResult == '24_00004-1' ? '#00b42a' : '#f53f3f' }}>
          {object[data.value] || '-'}
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
        </div>
                    <div style={{ color: object.auditResult == '24_00004-1' ? '#00b42a' : '#f53f3f' }}>{object[data.value] || '-'}</div>
      </Col>
            );
    } else if (data.value === 'reviewProgress') {
      //这个是1、2级事件,结案申请的时候显示
      //注意:暂时还没做12级的流程,还没得数据
      return <Col span={24} key={data.value}>
            return (
                <Col span={24} key={data.value}>
        <ReviewProgress progressData={object.progressData || { handleCaseFlowList: [] }} />
      </Col>
            );
    } else if (data.value === 'mediResultName') {
      //化解结果
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
        <div style={{ color: object.mediResult == '22_00025-1' ? '#00b42a' : '#f53f3f' }}>
          {object[data.value] || '-'}
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
        </div>
                    <div style={{ color: object.mediResult == '22_00025-1' ? '#00b42a' : '#f53f3f' }}>{object[data.value] || '-'}</div>
      </Col>
            );
    } else if (data.value === 'failReason') {
      //化解不成功原因
      return object.mediResult == '22_00025-1' ? '' :
            return object.mediResult == '22_00025-1' ? (
                ''
            ) : (
        <Col span={24} key={data.value}>
          <div><div className="title-text">{data.label}</div></div>
                    <div>
                        <div className="title-text">{data.label}</div>
                    </div>
          <div>{object[data.value] || '-'}</div>
        </Col>
            );
    } else if (data.value === 'tranferReviewProgress') {
      //转入人民调解申请
      return <Col span={24} key={data.value}>
            return (
                <Col span={24} key={data.value}>
        <TranferReviewProgress progressData={object.applyList || []} />
      </Col>
            );
    } else {
      return <Col span={24} key={data.value}>
        <div><div className="title-text">{data.label}</div></div>
            return (
                <Col span={24} key={data.value}>
                    <div>
                        <div className="title-text">{data.label}</div>
                    </div>
        <div>{object[data.value] || '-'}</div>
      </Col>
            );
    }
  }
    };
  return (
    <div style={{ margin: '0 16px' }}>
      <Spin loading={loading} style={{ width: '100%', height: '100%', minHeight: '200px' }}>
        <Scrollbars style={{ height: 'calc(100vh - 156px)',backgroundColor: '#ffff' }} autoHide>
          {list && list.length !== 0 ? list?.map((item, listIndex) => {
            const object = item.object || item
                    {list && list.length !== 0 ? (
                        list?.map((item, listIndex) => {
                            const object = item.object || item;
            if (item.type == '回退申请') {
              object.applyStatus = object.returnStatus
              object.applyTime = object.returnTime
              object.applyUnitName = object.returnUnitName
              object.applyUserName = object.returnUserName
              object.applyUserId = object.returnUserId
                                object.applyStatus = object.returnStatus;
                                object.applyTime = object.returnTime;
                                object.applyUnitName = object.returnUnitName;
                                object.applyUserName = object.returnUserName;
                                object.applyUserId = object.returnUserId;
            }
            if (item.type == '上报申请') {
              object.applyStatus = object.applyStatus
              object.applyTime = object.appearTime
              object.applyUnitName = object.appearUnitName
              object.applyUserName = object.appearUserName
              object.applyUserId = object.appearUserId
                                object.applyStatus = object.applyStatus;
                                object.applyTime = object.appearTime;
                                object.applyUnitName = object.appearUnitName;
                                object.applyUserName = object.appearUserName;
                                object.applyUserId = object.appearUserId;
            }
            if (item.type == '司法确认申请') {
              object.applyStatus = object.judicAudit === "24_00004-0" ? 0 : 1
              object.auditResult = object.judicAudit
                                object.applyStatus = object.judicAudit === '24_00004-0' ? 0 : 1;
                                object.auditResult = object.judicAudit;
            }
            return <div className='applyInfoClass' style={{ border: item.showView ? '1px solid #1a6fb8' : '' }} key={listIndex}>
              <div className='applyInfoClass-img' onClick={() => { toggleView(listIndex) }}>
                            return (
                                <div className="applyInfoClass" style={{ border: item.showView ? '1px solid #1a6fb8' : '' }} key={listIndex}>
                                    <div
                                        className="applyInfoClass-img"
                                        onClick={() => {
                                            toggleView(listIndex);
                                        }}
                                    >
                <img src={item.showView ? up : downO} alt="" className="title-downUp" />
              </div>
              <div className='applyInfoClass-title'>
                <div className='applyInfoClass-title-txt'>{item.type}</div>
                                    <div className="applyInfoClass-title">
                                        <div className="applyInfoClass-title-txt">{item.type}</div>
                <div className={`applyInfoClass-title-tag-${object.applyStatus === 0 ? '2' : object.auditResult == '24_00004-1' ? '1' : '3'}`} >
                  {object.applyStatus === 0 ? '审核中' : object.auditResult == '24_00004-1' ? '审核通过' : '审核不通过'}
                </div>
              </div>
              {item.showView ? <div>
                {
                  map[(object.caseLevel && object.caseLevel != 3) ? item.type + '1' : item.type]?.filter((fil, filIndex) => {
                                    {item.showView ? (
                                        <div>
                                            {map[object.caseLevel && object.caseLevel != 3 ? item.type + '1' : item.type]
                                                ?.filter((fil, filIndex) => {
                    //如果是审核中就不需要审核栏
                    if (object.applyStatus === 0) {
                      return filIndex === 0
                                                        return filIndex === 0;
                    } else {
                      return true
                                                        return true;
                    }
                  }).map((res, index) => {
                    return <Row gutter={[16, 16]} key={index}>
                      {res.map(data => {
                                                })
                                                .map((res, index) => {
                                                    return (
                                                        <Row gutter={[16, 16]} key={index}>
                                                            {res.map((data) => {
                        if (item.type == '转入人民调解系统申请') {
                          return handleDom(data, { object: item })
                                                                    return handleDom(data, { object: item });
                        } else {
                          return handleDom(data, item)
                                                                    return handleDom(data, item);
                        }
                      })}
                    </Row>
                  })
                }
              </div> : <div>
                                                    );
                                                })}
                                        </div>
                                    ) : (
                                        <div>
                <span style={{ marginRight: '32px' }}>
                  <span style={{ color: '#86909C' }}>申请时间:</span><span>{$$.minuteFormat(object.applyTime)}</span>
                                                <span style={{ color: '#86909C' }}>申请时间:</span>
                                                <span>{$$.minuteFormat(object.applyTime)}</span>
                </span>
                <span style={{ marginRight: '8px' }}>
                  <span style={{ color: '#86909C' }}>申请人:</span>
                </span>
                <span>
                  <span className='public-infoSubTitle'><span className='public-nameCard'>{(object?.applyUnitName)}&nbsp;&nbsp;<NameCard2 name={object.applyUserName} userId={object.applyUserId} /></span></span>
                                                <span className="public-infoSubTitle">
                                                    <span className="public-nameCard">
                                                        {object?.applyUnitName}&nbsp;&nbsp;
                                                        <NameCard2 name={object.applyUserName} userId={object.applyUserId} />
                </span>
              </div>}
                                                </span>
                                            </span>
            </div>
          }) : <div className='handle-content-empty' style={{ marginTop: '10%' }}>
                                    )}
                                </div>
                            );
                        })
                    ) : (
                        <div className="handle-content-empty" style={{ marginTop: '10%' }}>
            {$$.MyNewEmpty()}
          </div>}
                        </div>
                    )}
        </Scrollbars>
      </Spin>
      <PersonCard personView={personView} handleCancel={() => setPersonView(false)} personId={personId} />
    </div>
  )
    );
}
src/views/judicialSubmit/courtAuditDetail.jsx
@@ -203,11 +203,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -223,11 +219,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -243,11 +235,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -263,11 +251,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -359,11 +343,7 @@
                                                    ?.fileList?.map((item, index) => {
                                                        return (
                                                            <>
                                                                {item.suffix === 'pdf' ? (
                                                                    <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                                ) : (
                                                                    <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                                )}
                                                                <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                            </>
                                                        );
                                                    })
src/views/judicialSubmit/courtAuditEdit.jsx
@@ -316,11 +316,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -336,11 +332,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -356,11 +348,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -376,11 +364,7 @@
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    {item.suffix === 'pdf' ? (
                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                    ) : (
                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                    )}
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                                        })
@@ -623,11 +607,7 @@
                                                        ?.fileList?.map((item, index) => {
                                                            return (
                                                                <>
                                                                    {item.suffix === 'pdf' ? (
                                                                        <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} />
                                                                    ) : (
                                                                        <PreviewImage key={index} name={item.name} src={item.showUrl} />
                                                                    )}
                                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                                </>
                                                            );
                                                        })
src/views/judicialSubmit/courtEdit.jsx
@@ -11,7 +11,7 @@
import { Row, Col, Space, Typography, Empty } from 'antd';
import { Input, Select, Radio, Modal, Button, Form, Divider, DatePicker, Alert } from '@arco-design/web-react';
import { IconInfoCircleFill } from '@arco-design/web-react/icon';
import { Scrollbars } from "react-custom-scrollbars";
import { Scrollbars } from 'react-custom-scrollbars';
import * as $$ from '../../utils/utility';
import { useNavigate } from 'react-router-dom';
import ArcoUpload from '@/components/ArcoUpload';
@@ -46,7 +46,7 @@
}
// 提交审核
function judicConfirmApi(submitData) {
  return $$.ax.request({ url: `judicInfo/judicConfirm`, type: 'post', service: 'mediate', data: submitData, });
    return $$.ax.request({ url: `judicInfo/judicConfirm`, type: 'post', service: 'mediate', data: submitData });
}
// 获取助理列表
function listAssistApi(submitData) {
@@ -82,15 +82,14 @@
  return $$.ax.request({ url: `meetJudic/saveVideo`, type: 'post', service: 'mediate', data });
}
const CourtAuditEdit = () => {
  const formRef = useRef();
  const form = useRef();
  const formVideo = useRef();
  let navigate = useNavigate();
  const judicId = $$.getQueryString('judicId')
  const caseId = $$.getQueryString('caseId')
  const caseTaskId = $$.getQueryString('caseTaskId')
    const judicId = $$.getQueryString('judicId');
    const caseId = $$.getQueryString('caseId');
    const caseTaskId = $$.getQueryString('caseTaskId');
  const [caseCheckModal, setCaseCheckModal] = useState(false);
@@ -99,7 +98,6 @@
  // 数据
  const [formData, setFormData] = useState({});
  const [caseData, setCaseData] = useState({});
  const [filesList, setFilesList] = useState([]);
  // 司法确认部门单位
@@ -116,32 +114,31 @@
  // 选择法官弹窗
  const [isModalVisible, setIsModalVisible] = useState(false);
  const [selectObjModalData, setSelectObjModalData] = useState({})
    const [selectObjModalData, setSelectObjModalData] = useState({});
  // 司法确认结果是否同意
  const [agree, setAgree] = useState('')
    const [agree, setAgree] = useState('');
  function handleChangeFile(type, info, apiResult) {
    console.log('handleChangeFile', type, info, apiResult);
    let list = info.fileList ? info.fileList : [];
    // .map(item => ({ ...item, name: item.trueName }))
    setFilesList(list)
        setFilesList(list);
    // setResult(apiResult)
    console.log('list', list);
    if (list.length >= 1) {
      setStepsNum(1)
            setStepsNum(1);
    } else {
      setStepsNum(0)
            setStepsNum(0);
    }
  }
  //删除文件
  const handleDelFile = async (id) => {
    const res = await delFile(id)
        const res = await delFile(id);
    if (res.type) {
      $$.infoSuccess({ content: '删除成功!' });
    }
  }
    };
  // 修改
  function handleChangeValue(key, value) {
@@ -155,7 +152,7 @@
      if (formRef.current) {
        formRef.current.validate(undefined, (errors, values) => {
          if (!errors) {
            const data = formRef?.current.getFields()
                        const data = formRef?.current.getFields();
            console.log('data', data);
            $$.arcoModalInfo({
@@ -167,24 +164,23 @@
              okText: '确定',
              cancelText: '我再想想',
              onOk: () => {
                applyJudicial({ ...data, judicId, submitType: '1' }, type)
                saveVideo(caseId)
                                applyJudicial({ ...data, judicId, submitType: '1' }, type);
                                saveVideo(caseId);
              },
            });
          }
        })
                });
      }
    }
    if (type === 'draft') {
      const data = formRef?.current.getFields();
      applyJudicial({ ...data, judicId, submitType: '2' }, type)
            applyJudicial({ ...data, judicId, submitType: '2' }, type);
    }
  }
  // 保存调解视频
  async function saveVideo(caseId) {
    const res = await saveVideoApi({ caseId })
        const res = await saveVideoApi({ caseId });
    if (res.type) {
    }
  }
@@ -200,14 +196,13 @@
    }
  }
  // 助理列表字典值选择
  async function gatListCourt(data) {
    global.setSpinning(true);
    const res = await listAssistApi({ courtId: data?.courtId });
    global.setSpinning(false);
    if (res.type) {
      setListCourt(res.data || [])
            setListCourt(res.data || []);
    }
  }
@@ -220,7 +215,7 @@
      setData(res.data);
      gatListCourt(res.data || {});
      formRef.current.setFieldsValue(res.data || {});
      setAgree(res.data?.judicResult || '')
            setAgree(res.data?.judicResult || '');
    }
  }
  async function getCaseData() {
@@ -228,51 +223,52 @@
    const res = await getCaseDataApi({ id: caseId });
    global.setSpinning(false);
    if (res.type) {
      const { agentList, personList, ...rest } = res.data
      const parList = agentList.concat(personList)
      const newParList = parList?.map(item => {
        const fileInfoList = item.fileInfoList
            const { agentList, personList, ...rest } = res.data;
            const parList = agentList.concat(personList);
            const newParList =
                parList?.map((item) => {
                    const fileInfoList = item.fileInfoList;
        let file = [];//身份证明材料、企业登记材料
        let file1 = [];//法人、机构身份证明材料、代理人授权委托书
        if (fileInfoList && fileInfoList.length != 0) {
          fileInfoList.forEach(item => {
                        fileInfoList.forEach((item) => {
            if (item.ownerType == '22_00018-202' || item.ownerType == '22_00018-203') {
              item.fileList.forEach(res => {
                                item.fileList.forEach((res) => {
                file.push({
                  ...res,
                  uid: res.id,
                })
              })
                                    });
                                });
            }
            if (item.ownerType == '22_00018-204' || item.ownerType == '22_00018-207') {
              item.fileList.forEach(res => {
                                item.fileList.forEach((res) => {
                file1.push({
                  ...res,
                  uid: res.id,
                })
              })
                                    });
                                });
            }
          })
                        });
        }
        return {
          ...item,
          file,
          file1
        }
      }) || []
                        file1,
                    };
                }) || [];
      const obj = {
        ...rest,
        fakeData: newParList,
      }
      setCaseData(obj)
            };
            setCaseData(obj);
    }
  }
  // 视频调解部分
  // 添加预约重置
  function resetClick() {
    form.current.resetFields()
    form.current.setFieldValue()
        form.current.resetFields();
        form.current.setFieldValue();
  }
  function submitClick() {
@@ -282,12 +278,17 @@
          let submitData = form.current.getFields();
          submitData.orderStartTime = submitData.time[0];
          submitData.orderEndTime = submitData.time[1];
          delete submitData.time
                    delete submitData.time;
          console.log('submitData', submitData);
          // submitData.
          $$.modalInfo({
            title: '添加预约调解确认',
            content: <div>确认添加预约<span className='public-color'>{submitData.orderStartTime}</span>-<span className='public-color'>{submitData.orderEndTime}</span>的调解吗?</div>,
                        content: (
                            <div>
                                确认添加预约<span className="public-color">{submitData.orderStartTime}</span>-
                                <span className="public-color">{submitData.orderEndTime}</span>的调解吗?
                            </div>
                        ),
            okText: '确定添加',
            cancelText: '我再想想',
            onOk: () => addMeetInfo({ caseId, ...submitData }),
@@ -302,8 +303,8 @@
    const res = await addMeetInfoApi(submitData);
    global.setSpinning(false);
    if (res.type) {
      setPreBookVisible(false)
      form.current.resetFields()
            setPreBookVisible(false);
            form.current.resetFields();
      getMeetInfo(caseId);
    }
  }
@@ -311,14 +312,19 @@
    if (formVideo.current) {
      formVideo.current.validate(undefined, (errors, values) => {
        if (!errors) {
          let submitData = formVideo.current.getFields()
                    let submitData = formVideo.current.getFields();
          submitData.orderStartTime = submitData.time[0];
          submitData.orderEndTime = submitData.time[1];
          delete submitData.time
                    delete submitData.time;
          console.log('submitData', submitData);
          $$.modalInfo({
            title: '创建视频号确认',
            content: <div>确认创建<span className='public-color'>{submitData.orderStartTime}</span>-<span className='public-color'>{submitData.orderEndTime}</span>的视频号吗?</div>,
                        content: (
                            <div>
                                确认创建<span className="public-color">{submitData.orderStartTime}</span>-
                                <span className="public-color">{submitData.orderEndTime}</span>的视频号吗?
                            </div>
                        ),
            okText: '确定创建',
            cancelText: '我再想想',
            onOk: () => addRoomInfo({ caseId, ...submitData }),
@@ -334,14 +340,14 @@
    const res = await addRoomInfoApi(submitData);
    global.setSpinning(false);
    if (res.type) {
      setRadioVisible(false)
      formVideo.current.resetFields()
            setRadioVisible(false);
            formVideo.current.resetFields();
      getMeetInfo(caseId);
    }
  }
  function radioResetClick() {
    formVideo.current.resetFields()
        formVideo.current.resetFields();
  }
  function delClick() {
@@ -360,7 +366,7 @@
    global.setSpinning(false);
    if (res.type) {
      $$.infoSuccess({ content: '删除成功' });
      setPreBookData({})
            setPreBookData({});
    }
  }
@@ -372,28 +378,28 @@
    if (res.type) {
      let list = res.data || [];
      if (list?.length > 0) {
        setPreBookData(list[0])
                setPreBookData(list[0]);
      }
    }
  }
  function checkTimeRange(startTime, endTime, currentTime) {
    if (currentTime < new Date(startTime)) {
      return <div className='public-color'>未开始</div>; // 当前时间在时间范围之前
            return <div className="public-color">未开始</div>; // 当前时间在时间范围之前
    } else if (currentTime >= new Date(startTime) && currentTime <= new Date(endTime)) {
      return <div style={{ color: '#EF6C24' }}>进行中</div>; // 当前时间在时间范围内
    } else {
      return <div className='public-orange'>已结束</div>; // 当前时间在时间范围之后
            return <div className="public-orange">已结束</div>; // 当前时间在时间范围之后
    }
  }
  async function getTransactResult(id) {
    const res = await getTransactResultApi(id)
        const res = await getTransactResultApi(id);
    if (res.type) {
      if (res.data) {
        setTransactResult({ ...res.data })
                setTransactResult({ ...res.data });
      } else {
        setTransactResult(null)
                setTransactResult(null);
      }
    }
  }
@@ -402,7 +408,7 @@
  useEffect(() => {
    if (caseId) {
      getMeetInfo(caseId);
      getTransactResult(caseId)
            getTransactResult(caseId);
    }
    if (judicId) {
      getCaseData();
@@ -410,207 +416,343 @@
    }
  }, []);
  return (
    <NewPage pageHead={{ breadcrumbData: [{ title: '工作台' }, { title: '司法确认' }], title: '司法确认' }}>
      <Fragment>
        <Scrollbars style={{ height: 'calc(100vh - 219px)' }} autoHide>
          <div className=' dataSync-noScrollPage'>
                    <div className=" dataSync-noScrollPage">
            <Row gutter={[16, 16]}>
              <Col span={24}>
                <Space>
                  <div className='MediationInfo-subTitle'></div><span style={{ fontSize: '16px', lineHeight: '24px' }}>申请信息</span>
                                    <div className="MediationInfo-subTitle"></div>
                                    <span style={{ fontSize: '16px', lineHeight: '24px' }}>申请信息</span>
                </Space>
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>案件信息</div>
                                <div className="public-infoTitle">案件信息</div>
                {/* <div className='judicialSubmit-audit-case' onClick={() => setCaseCheckModal(true)}> */}
                
                <div className='judicialSubmit-audit-case' onClick={() => window.open(`${$$.windowUrl}/windowDetail?caseTaskId=${caseTaskId}&caseId=${caseId}`)}>
                                <div
                                    className="judicialSubmit-audit-case"
                                    onClick={() => window.open(`${$$.windowUrl}/windowDetail?caseTaskId=${caseTaskId}&caseId=${caseId}`)}
                                >
                  <div style={{ display: 'flex', gap: '16px', alignItems: 'center' }}>
                    <div><img src={judicial_5} alt="" srcset="" /></div>
                    <div>
                      <div className='judicialSubmit-audit-case-flex'>
                                            <img src={judicial_5} alt="" srcset="" />
                                        </div>
                                        <div>
                                            <div className="judicialSubmit-audit-case-flex">
                        <div>承办部门:{transactResult?.mediateUnitName || '-'}</div>
                        <div className='judicialSubmit-audit-case-subTitle'>申请方:{caseData.fakeData?.filter(i => i.perType === '15_020008-1')?.length === 1 ? caseData.fakeData?.filter(i => i.perType === '15_020008-1')[0].trueName : caseData.fakeData?.filter(i => i.perType === '15_020008-1')?.length > 1 ? `${caseData.fakeData?.filter(i => i.perType === '15_020008-1')[0].trueName}...等共${caseData.fakeData?.filter(i => i.perType === '15_020008-1')?.length}人` : '-'} | 被申请方:{caseData.fakeData?.filter(i => i.perType === '15_020008-2')?.length === 1 ? caseData.fakeData?.filter(i => i.perType === '15_020008-1')[0].trueName : caseData.fakeData?.filter(i => i.perType === '15_020008-2')?.length > 1 ? `${caseData.fakeData?.filter(i => i.perType === '15_020008-2')[0].trueName}...等共${caseData.fakeData?.filter(i => i.perType === '15_020008-2')?.length}人` : '-'}</div>
                      </div>
                      <div className='judicialSubmit-audit-case-subTitle'>办结时间:{$$.minuteFormat(transactResult?.closeTime)} | {transactResult?.mediResultName || '-'}</div>
                                                <div className="judicialSubmit-audit-case-subTitle">
                                                    申请方:
                                                    {caseData.fakeData?.filter((i) => i.perType === '15_020008-1')?.length === 1
                                                        ? caseData.fakeData?.filter((i) => i.perType === '15_020008-1')[0].trueName
                                                        : caseData.fakeData?.filter((i) => i.perType === '15_020008-1')?.length > 1
                                                        ? `${caseData.fakeData?.filter((i) => i.perType === '15_020008-1')[0].trueName}...等共${
                                                                caseData.fakeData?.filter((i) => i.perType === '15_020008-1')?.length
                                                          }人`
                                                        : '-'}{' '}
                                                    | 被申请方:
                                                    {caseData.fakeData?.filter((i) => i.perType === '15_020008-2')?.length === 1
                                                        ? caseData.fakeData?.filter((i) => i.perType === '15_020008-1')[0].trueName
                                                        : caseData.fakeData?.filter((i) => i.perType === '15_020008-2')?.length > 1
                                                        ? `${caseData.fakeData?.filter((i) => i.perType === '15_020008-2')[0].trueName}...等共${
                                                                caseData.fakeData?.filter((i) => i.perType === '15_020008-2')?.length
                                                          }人`
                                                        : '-'}
                    </div>
                  </div>
                  <div><img src={judicial_6} alt="" srcset="" /></div>
                                            <div className="judicialSubmit-audit-case-subTitle">
                                                办结时间:{$$.minuteFormat(transactResult?.closeTime)} | {transactResult?.mediResultName || '-'}
                                            </div>
                                        </div>
                                    </div>
                                    <div>
                                        <img src={judicial_6} alt="" srcset="" />
                                    </div>
                </div>
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>申请理由</div>
                <div className='public-infoSubTitle'>{data?.applyContent || '-'}</div>
                                <div className="public-infoTitle">申请理由</div>
                                <div className="public-infoSubTitle">{data?.applyContent || '-'}</div>
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>调解协议书</div>
                {
                  data?.fileList?.find(i => i.ownerType === '22_00018-302')?.fileList?.length ?
                    data?.fileList?.find(i => i.ownerType === '22_00018-302')?.fileList?.map((item, index) => {
                      return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</>
                                <div className="public-infoTitle">调解协议书</div>
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-302')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-302')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                    })
                    : <div className='public-infoSubTitle'>-</div>
                }
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>非诉讼调解协议司法确认申请书</div>
                {
                  data?.fileList?.find(i => i.ownerType === '22_00018-402')?.fileList?.length ?
                    data?.fileList?.find(i => i.ownerType === '22_00018-402')?.fileList?.map((item, index) => {
                      return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</>
                                <div className="public-infoTitle">非诉讼调解协议司法确认申请书</div>
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-402')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-402')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                    })
                    : <div className='public-infoSubTitle'>-</div>
                }
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>诉前联调协议案件移送函</div>
                {
                  data?.fileList?.find(i => i.ownerType === '22_00018-403')?.fileList?.length ?
                    data?.fileList?.find(i => i.ownerType === '22_00018-403')?.fileList?.map((item, index) => {
                      return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</>
                                <div className="public-infoTitle">诉前联调协议案件移送函</div>
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-403')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-403')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                    })
                    : <div className='public-infoSubTitle'>-</div>
                }
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>送达地址确认书</div>
                {
                  data?.fileList?.find(i => i.ownerType === '22_00018-108')?.fileList?.length ?
                    data?.fileList?.find(i => i.ownerType === '22_00018-108')?.fileList?.map((item, index) => {
                      return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</>
                                <div className="public-infoTitle">送达地址确认书</div>
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-108')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-108')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                    })
                    : <div className='public-infoSubTitle'>-</div>
                }
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>申请时间</div>
                <div className='public-infoSubTitle'>{$$.minuteFormat(data?.applyTime)}</div>
                                <div className="public-infoTitle">申请时间</div>
                                <div className="public-infoSubTitle">{$$.minuteFormat(data?.applyTime)}</div>
              </Col>
              <Col span={24}>
                <div className='public-infoTitle'>申请人</div>
                <div className='public-infoSubTitle'><span className='public-nameCard2'>{(data?.applyUnitName)}&nbsp;&nbsp;<NameCard2 name={data.applyUserName} userId={data.applyUserId} /></span></div>
                                <div className="public-infoTitle">申请人</div>
                                <div className="public-infoSubTitle">
                                    <span className="public-nameCard2">
                                        {data?.applyUnitName}&nbsp;&nbsp;
                                        <NameCard2 name={data.applyUserName} userId={data.applyUserId} />
                                    </span>
                                </div>
              </Col>
            </Row>
          </div>
          <div style={{ height: '16px' }}></div>
          <div className=' dataSync-noScrollPage'>
                    <div className=" dataSync-noScrollPage">
            <Row gutter={[20, 20]}>
              <Col span={24}>
                <Space>
                  <div className='MediationInfo-subTitle'></div><span style={{ fontSize: '16px', lineHeight: '24px' }}>司法确认信息</span>
                                    <div className="MediationInfo-subTitle"></div>
                                    <span style={{ fontSize: '16px', lineHeight: '24px' }}>司法确认信息</span>
                </Space>
              </Col>
              <Col span={24}>
                <table style={{ marginBottom: '0px' }} border="1" align="center" cellpadding="6" className="table">
                  <tr>
                    <th bgcolor="#F7F8FA" className="table-title" width="120" >承办法官</th>
                    <td width='380'><div className='public-infoSubTitle'><NameCard2 name={data.judgeName} userId={data.judicId} /></div></td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">助理/书记员</th>
                    <td width='380'><div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }} className='public-infoSubTitle'>{data?.judicAssistList?.map(i => (<NameCard2 name={i.assUserName} userId={i.assUserId} />))}</div></td>
                                        <th bgcolor="#F7F8FA" className="table-title" width="120">
                                            承办法官
                                        </th>
                                        <td width="380">
                                            <div className="public-infoSubTitle">
                                                <NameCard2 name={data.judgeName} userId={data.judicId} />
                                            </div>
                                        </td>
                                        <th bgcolor="#F7F8FA" className="table-title" width="120">
                                            助理/书记员
                                        </th>
                                        <td width="380">
                                            <div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }} className="public-infoSubTitle">
                                                {data?.judicAssistList?.map((i) => (
                                                    <NameCard2 name={i.assUserName} userId={i.assUserId} />
                                                ))}
                                            </div>
                                        </td>
                  </tr>
                </table>
              </Col>
              <Col span={24}>
                <div className='judicial-item' style={{ marginTop: '0', marginRight: '0' }}>
                  <div className='handle-content-empty judicial-item-left' >
                    <div className='judicial-item-title'><img src={judicial_1} alt="" srcset="" />预约信息</div>
                    {
                      preBookData?.orderStartTime ?
                        <div className='judicial-item-content'>
                          <div className='judicial-item-content-left'>
                            <div onClick={() => delClick()} className='judicial-item-content-left-del public-a'><img src={judicial_3} alt="" srcset="" /></div>
                            <div className='judicial-item-content-left-t'>
                              <div className='judicial-item-content-left-t-l'><div className='judicial-item-content-left-bigTitle public-color'>{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}</div><div className='public-color'>{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}</div></div>
                              <div className='judicial-item-content-left-t-l'>
                                <Space size='small'>
                                  <div className='judicial-item-content-left-inline'></div>
                                  <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', alignItems: 'center', justifyContent: 'center' }}>{checkTimeRange(preBookData?.orderStartTime, preBookData?.orderEndTime, new Date())}<div className='public-color judicial-item-content-left-time'>{$$.calculateTimeDifference(preBookData?.orderStartTime, preBookData?.orderEndTime)}</div></div>
                                  <div className='judicial-item-content-left-inline'></div>
                                <div className="judicial-item" style={{ marginTop: '0', marginRight: '0' }}>
                                    <div className="handle-content-empty judicial-item-left">
                                        <div className="judicial-item-title">
                                            <img src={judicial_1} alt="" srcset="" />
                                            预约信息
                                        </div>
                                        {preBookData?.orderStartTime ? (
                                            <div className="judicial-item-content">
                                                <div className="judicial-item-content-left">
                                                    <div onClick={() => delClick()} className="judicial-item-content-left-del public-a">
                                                        <img src={judicial_3} alt="" srcset="" />
                                                    </div>
                                                    <div className="judicial-item-content-left-t">
                                                        <div className="judicial-item-content-left-t-l">
                                                            <div className="judicial-item-content-left-bigTitle public-color">
                                                                {$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}
                                                            </div>
                                                            <div className="public-color">{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}</div>
                                                        </div>
                                                        <div className="judicial-item-content-left-t-l">
                                                            <Space size="small">
                                                                <div className="judicial-item-content-left-inline"></div>
                                                                <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', alignItems: 'center', justifyContent: 'center' }}>
                                                                    {checkTimeRange(preBookData?.orderStartTime, preBookData?.orderEndTime, new Date())}
                                                                    <div className="public-color judicial-item-content-left-time">
                                                                        {$$.calculateTimeDifference(preBookData?.orderStartTime, preBookData?.orderEndTime)}
                                                                    </div>
                                                                </div>
                                                                <div className="judicial-item-content-left-inline"></div>
                                </Space>
                              </div>
                              <div className='judicial-item-content-left-t-l'><div className='judicial-item-content-left-bigTitle public-color'>{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}</div><div className='public-color'>{$$.myTimeFormat(preBookData?.orderEndTime, 'YYYY年MM月DD日')}</div></div>
                                                        <div className="judicial-item-content-left-t-l">
                                                            <div className="judicial-item-content-left-bigTitle public-color">
                                                                {$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}
                                                            </div>
                                                            <div className="public-color">{$$.myTimeFormat(preBookData?.orderEndTime, 'YYYY年MM月DD日')}</div>
                                                        </div>
                            </div>
                            <Divider />
                            <div className='judicial-item-content-left-c-flex'>
                              <div className='judicial-item-content-left-c'>
                                <div className='judicial-item-content-left-c-title'>司法确认方式</div>
                                <div className='judicial-item-content-left-c-content'>{preBookData?.meetWayName || '-'}</div>
                                                    <div className="judicial-item-content-left-c-flex">
                                                        <div className="judicial-item-content-left-c">
                                                            <div className="judicial-item-content-left-c-title">司法确认方式</div>
                                                            <div className="judicial-item-content-left-c-content">{preBookData?.meetWayName || '-'}</div>
                              </div>
                              <div className='judicial-item-content-left-c'>
                                <div className='judicial-item-content-left-c-title'>远程视频司法确认号</div>
                                <div className='judicial-item-content-left-c-content'><span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span>&nbsp;&nbsp;{preBookData?.roomNo && <span onClick={() => {
                                  navigator.clipboard.writeText(preBookData?.roomNo).then(() => {
                                                        <div className="judicial-item-content-left-c">
                                                            <div className="judicial-item-content-left-c-title">远程视频司法确认号</div>
                                                            <div className="judicial-item-content-left-c-content">
                                                                <span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span>&nbsp;&nbsp;
                                                                {preBookData?.roomNo && (
                                                                    <span
                                                                        onClick={() => {
                                                                            navigator.clipboard
                                                                                .writeText(preBookData?.roomNo)
                                                                                .then(() => {
                                    $$.infoSuccess({ content: '复制成功' });
                                  }).catch(err => {
                                                                                })
                                                                                .catch((err) => {
                                    $$.catchApiError('复制失败', err);
                                  });
                                }} className='public-color public-a'>复制</span>}</div>
                                                                        }}
                                                                        className="public-color public-a"
                                                                    >
                                                                        复制
                                                                    </span>
                                                                )}
                              </div>
                              <div className='judicial-item-content-left-c'>
                                <div className='judicial-item-content-left-c-title'>司法确认地点</div>
                                <div className='judicial-item-content-left-c-content'>{preBookData?.meetAddr || '-'}</div>
                                                        </div>
                                                        <div className="judicial-item-content-left-c">
                                                            <div className="judicial-item-content-left-c-title">司法确认地点</div>
                                                            <div className="judicial-item-content-left-c-content">{preBookData?.meetAddr || '-'}</div>
                              </div>
                            </div>
                          </div>
                        </div> :
                        <Empty description={<span className='empty-text'>暂无数据</span>} image={empty}><Button onClick={() => setPreBookVisible(true)} type='outline'>添加预约</Button></Empty>
                    }
                  </div>
                  <div className='handle-content-empty judicial-item-left'>
                    <div className='judicial-item-title'><img src={judicial_2} alt="" srcset="" />远程视频司法确认</div>
                    {
                      preBookData?.orderStartTime ?
                        <div className='judicial-item-video'>
                          <div className='judicial-item-video-flex'>
                            <div className='judicial-item-video-img'><img src={judicial_4} alt="" srcset="" /></div>
                                        ) : (
                                            <Empty description={<span className="empty-text">暂无数据</span>} image={empty}>
                                                <Button onClick={() => setPreBookVisible(true)} type="outline">
                                                    添加预约
                                                </Button>
                                            </Empty>
                                        )}
                                    </div>
                                    <div className="handle-content-empty judicial-item-left">
                                        <div className="judicial-item-title">
                                            <img src={judicial_2} alt="" srcset="" />
                                            远程视频司法确认
                                        </div>
                                        {preBookData?.orderStartTime ? (
                                            <div className="judicial-item-video">
                                                <div className="judicial-item-video-flex">
                                                    <div className="judicial-item-video-img">
                                                        <img src={judicial_4} alt="" srcset="" />
                                                    </div>
                            <div>
                              <div className='judicial-item-content-left-c-content'><span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span>&nbsp;&nbsp;{preBookData?.roomNo && <span onClick={() => {
                                navigator.clipboard.writeText(preBookData?.roomNo).then(() => { $$.infoSuccess({ content: '复制成功' }) }).catch(err => { $$.catchApiError('复制失败', err) })
                              }} className='public-color public-a'>复制</span>}</div>
                              <div style={{ color: "#4E5969", marginTop: '4px' }}>{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}&nbsp;{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}-{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}</div>
                                                        <div className="judicial-item-content-left-c-content">
                                                            <span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span>&nbsp;&nbsp;
                                                            {preBookData?.roomNo && (
                                                                <span
                                                                    onClick={() => {
                                                                        navigator.clipboard
                                                                            .writeText(preBookData?.roomNo)
                                                                            .then(() => {
                                                                                $$.infoSuccess({ content: '复制成功' });
                                                                            })
                                                                            .catch((err) => {
                                                                                $$.catchApiError('复制失败', err);
                                                                            });
                                                                    }}
                                                                    className="public-color public-a"
                                                                >
                                                                    复制
                                                                </span>
                                                            )}
                                                        </div>
                                                        <div style={{ color: '#4E5969', marginTop: '4px' }}>
                                                            {$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}&nbsp;
                                                            {$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}-{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}
                            </div>
                          </div>
                          <Alert type='info' content={<span>请使用小鱼易连客户端加入该号码连线</span>} />
                        </div> :
                        <Empty description={<span className='empty-text'>暂无数据</span>} image={empty}><Button onClick={() => setRadioVisible(true)} type='outline'>创建视频号</Button></Empty>}
                                                </div>
                                                <Alert type="info" content={<span>请使用小鱼易连客户端加入该号码连线</span>} />
                                            </div>
                                        ) : (
                                            <Empty description={<span className="empty-text">暂无数据</span>} image={empty}>
                                                <Button onClick={() => setRadioVisible(true)} type="outline">
                                                    创建视频号
                                                </Button>
                                            </Empty>
                                        )}
                  </div>
                </div>
              </Col>
            </Row>
          </div>
          <div className=' dataSync-noScrollPage'>
                    <div className=" dataSync-noScrollPage">
            <Form
              ref={formRef}
              layout='vertical'
                            layout="vertical"
              requiredSymbol={false}
              scrollToFirstError={true}
              onChange={(first, allValues) => {
                if (first?.judicResult) {
                  setAgree(first?.judicResult)
                  formRef.current.clearFields()
                                    setAgree(first?.judicResult);
                                    formRef.current.clearFields();
                  formRef.current.setFieldsValue({
                    judicResult: first.judicResult,
                  });
                }
              }}
              initialValues={{
              }}//默认值
                            initialValues={{}} //默认值
            >
              <Row>
                <Col span={24}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>司法确认结果</div>)}
                    field='judicResult'
                                        label={<div style={{ display: 'flex' }}>司法确认结果</div>}
                                        field="judicResult"
                    rules={[{ required: true, message: '请选择司法确认结果' }]}
                  >
                    <Radio.Group>
                      <Space direction="vertical">
                        {[{ value: '22_00028-1', label: '已达成', }, { value: '22_00028-2', label: '未达成' }].map((x) => (
                                                {[
                                                    { value: '22_00028-1', label: '已达成' },
                                                    { value: '22_00028-2', label: '未达成' },
                                                ].map((x) => (
                          <Radio value={x.value} key={x.value} label={x.label}>
                            {x.label}
                          </Radio>
@@ -624,16 +766,15 @@
                  <>
                    <Col span={24}>
                      <FormItem
                        label={(<div style={{ display: 'flex' }}>未达成原因<div className="must">必填</div></div>)}
                        field='judicFalseCause'
                                                label={
                                                    <div style={{ display: 'flex' }}>
                                                        未达成原因<div className="must">必填</div>
                                                    </div>
                                                }
                                                field="judicFalseCause"
                        rules={[{ required: true, message: '未达成原因不能为空' }]}
                      >
                        <TextArea
                          rows={5}
                          maxLength={256}
                          autoSize={{ minRows: 4, maxRows: 8 }}
                          placeholder='请填写'
                        />
                                                <TextArea rows={5} maxLength={256} autoSize={{ minRows: 4, maxRows: 8 }} placeholder="请填写" />
                      </FormItem>
                    </Col>
                  </>
@@ -641,29 +782,31 @@
                {agree === '22_00028-1' && (
                  <>
                    <Col span={24} className="doubleFile">
                      <div style={{ display: 'flex', marginBottom: '8px' }}>裁定文书<div className="must">必填</div></div>
                                            <div style={{ display: 'flex', marginBottom: '8px' }}>
                                                裁定文书<div className="must">必填</div>
                                            </div>
                      <ArcoUpload
                        params={{
                          action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${caseId}&&ownerId=${judicId}&ownerType=22_00018-405`,
                        }}
                        formItemParams={{
                          rules: [{ message: '请上传裁定文书', required: true }]
                                                    rules: [{ message: '请上传裁定文书', required: true }],
                        }}
                        field='filesList'
                        label=''
                                                field="filesList"
                                                label=""
                        editData={{
                          filesList: filesList || []
                                                    filesList: filesList || [],
                        }}
                        handleDelFile={handleDelFile}
                        onFileListChange={(v) => {
                          let newList = v?.map(item => {
                                                    let newList = v?.map((item) => {
                            if (item.response) {
                              return item.response.data[0]
                                                            return item.response.data[0];
                            } else {
                              return item
                                                            return item;
                            }
                          })
                          setFilesList(newList)
                                                    });
                                                    setFilesList(newList);
                        }}
                      />
                    </Col>
@@ -673,58 +816,51 @@
                        params={{
                          action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${caseId}&&ownerId=${judicId}&ownerType=22_00018-401`,
                        }}
                        field='filesList1'
                        label=''
                                                field="filesList1"
                                                label=""
                        editData={{
                          filesList1: filesList || []
                                                    filesList1: filesList || [],
                        }}
                        handleDelFile={handleDelFile}
                        onFileListChange={(v) => {
                          let newList = v?.map(item => {
                                                    let newList = v?.map((item) => {
                            if (item.response) {
                              return item.response.data[0]
                                                            return item.response.data[0];
                            } else {
                              return item
                                                            return item;
                            }
                          })
                          setFilesList(newList)
                                                    });
                                                    setFilesList(newList);
                        }}
                      />
                    </Col>
                    <Col span={24}>
                      <FormItem
                        label={(<div style={{ display: 'flex' }}>诉前调确号</div>)}
                        field='mediateJudicNo'
                      >
                        <Input style={{ width: '450px' }} placeholder='请填写审判系统中的诉前调确号(如有)' allowClear />
                                            <FormItem label={<div style={{ display: 'flex' }}>诉前调确号</div>} field="mediateJudicNo">
                                                <Input style={{ width: '450px' }} placeholder="请填写审判系统中的诉前调确号(如有)" allowClear />
                      </FormItem>
                    </Col>
                    <Col span={24}>
                      <FormItem
                        label={(<div style={{ display: 'flex' }}>结案说明</div>)}
                        field='judicContent'
                      >
                        <TextArea
                          rows={5}
                          maxLength={256}
                          autoSize={{ minRows: 4, maxRows: 8 }}
                          placeholder='请填写'
                        />
                                            <FormItem label={<div style={{ display: 'flex' }}>结案说明</div>} field="judicContent">
                                                <TextArea rows={5} maxLength={256} autoSize={{ minRows: 4, maxRows: 8 }} placeholder="请填写" />
                      </FormItem>
                    </Col>
                  </>
                )}
              </Row>
            </Form >
          </div>
        </Scrollbars>
        <div className="dataSync-excel">
          <Space size="large" style={{ margin: '4px 14px' }}>
            <Button onClick={() => handleApply('submit')} type="primary" className="dialogPrimary">办结</Button>
            <Button onClick={() => handleApply('draft')} type="outline" className="dialogPrimary">保存</Button>
            <Button type='secondary' onClick={() => navigate(-1)}>返回上级页面</Button>
                        <Button onClick={() => handleApply('submit')} type="primary" className="dialogPrimary">
                            办结
                        </Button>
                        <Button onClick={() => handleApply('draft')} type="outline" className="dialogPrimary">
                            保存
                        </Button>
                        <Button type="secondary" onClick={() => navigate(-1)}>
                            返回上级页面
                        </Button>
          </Space>
        </div>
      </Fragment>
@@ -732,9 +868,9 @@
        <CaseDetail caseId={caseId} caseData={caseData} />
      </MyModal>
      <Modal
        title='添加预约'
                title="添加预约"
        style={{ width: '40%' }}
        className='judicial-handle-modal'
                className="judicial-handle-modal"
        onCancel={() => setPreBookVisible(false)}
        visible={preBookVisible}
        footer={null}
@@ -743,85 +879,94 @@
          <Col span={24} >
            <Form
              ref={form}
              layout='vertical'
                            layout="vertical"
              requiredSymbol={false}
              initialValues={{
                meetWay: '22_00021-3',
                meetWayName: '线上 + 线下'
                                meetWayName: '线上 + 线下',
              }}//默认值
              scrollToFirstError
            >
              <Row>
                <Col span={24}>
                  <Form.Item rules={[{ required: true, message: '请选择预约调解时间' }]} label={(<div style={{ display: 'flex' }}>预约调解时间<div className="must">必填</div></div>)} field="time">
                    <RangePicker
                      showTime={{ format: 'HH:mm' }}
                      allowClear={true}
                      style={{ width: '100%' }}
                    />
                                    <Form.Item
                                        rules={[{ required: true, message: '请选择预约调解时间' }]}
                                        label={
                                            <div style={{ display: 'flex' }}>
                                                预约调解时间<div className="must">必填</div>
                                            </div>
                                        }
                                        field="time"
                                    >
                                        <RangePicker showTime={{ format: 'HH:mm' }} allowClear={true} style={{ width: '100%' }} />
                  </Form.Item>
                </Col>
                <Col span={24}>
                  <FormItem
                    label='纠纷化解方式'
                    field='meetWay'
                  >
                                    <FormItem label="纠纷化解方式" field="meetWay">
                    <Select
                      placeholder='请选择'
                                            placeholder="请选择"
                      allowClear={false}
                      options={$$.options.meetWay}
                      onChange={(value, options) => {
                        form.current.setFieldValue('meetWayName', options && options.children)
                                                form.current.setFieldValue('meetWayName', options && options.children);
                      }}
                    />
                  </FormItem>
                </Col>
                <Col span={24}>
                  <FormItem label='纠纷化解地点' field='meetAddr'>
                    <Input placeholder='请填写' />
                                    <FormItem label="纠纷化解地点" field="meetAddr">
                                        <Input placeholder="请填写" />
                  </FormItem>
                </Col>
              </Row>
            </Form>
            <div style={{ display: 'flex', alignItems: 'center', gap: '16px', position: 'absolute', bottom: '0' }}>
              <Button type="primary" onClick={() => submitClick()}>提交</Button>
              <Button onClick={() => resetClick()} danger>重置</Button>
                            <Button type="primary" onClick={() => submitClick()}>
                                提交
                            </Button>
                            <Button onClick={() => resetClick()} danger>
                                重置
                            </Button>
            </div>
          </Col>
        </Row>
      </Modal>
      <Modal
        title='创建远程调解视频号'
                title="创建远程调解视频号"
        style={{ width: '40%' }}
        className='judicial-handle-modal'
                className="judicial-handle-modal"
        onCancel={() => setRadioVisible(false)}
        visible={radioVisible}
        footer={null}
      >
        <Row style={{ height: '480px', position: 'relative' }}>
          <Col span={24} >
            <Form
              ref={formVideo}
              layout='vertical'
              requiredSymbol={false}
              scrollToFirstError
            >
                        <Form ref={formVideo} layout="vertical" requiredSymbol={false} scrollToFirstError>
              <Row>
                <Col span={24}>
                  <Form.Item style={{ marginBottom: '8px' }} rules={[{ required: true, message: '请选择有效期' }]} label={(<div style={{ display: 'flex' }}>有效期<div className="must">必填</div></div>)} field="time">
                    <RangePicker
                      showTime={{ format: 'HH:mm' }}
                      allowClear={true}
                      style={{ width: '100%' }}
                    />
                                    <Form.Item
                                        style={{ marginBottom: '8px' }}
                                        rules={[{ required: true, message: '请选择有效期' }]}
                                        label={
                                            <div style={{ display: 'flex' }}>
                                                有效期<div className="must">必填</div>
                                            </div>
                                        }
                                        field="time"
                                    >
                                        <RangePicker showTime={{ format: 'HH:mm' }} allowClear={true} style={{ width: '100%' }} />
                  </Form.Item>
                  <Alert type='info' content={<span>创建成功后请在有效期内使用小鱼易连客户端加入该号码连线</span>} />
                                    <Alert type="info" content={<span>创建成功后请在有效期内使用小鱼易连客户端加入该号码连线</span>} />
                </Col>
              </Row>
            </Form>
            <div style={{ display: 'flex', alignItems: 'center', gap: '16px', position: 'absolute', bottom: '0' }}>
              <Button type="primary" onClick={() => radioSubmitClick()}>提交</Button>
              <Button onClick={() => radioResetClick()} danger>重置</Button>
                            <Button type="primary" onClick={() => radioSubmitClick()}>
                                提交
                            </Button>
                            <Button onClick={() => radioResetClick()} danger>
                                重置
                            </Button>
            </div>
          </Col>
        </Row>
@@ -829,7 +974,5 @@
    </NewPage >
  );
};
export default CourtAuditEdit;
src/views/register/closeCaseEdit/preview.jsx
@@ -329,10 +329,10 @@
          <div ><div className="title-text">事项来源</div></div>
          <div>{props.data?.canalName || '大厅来访'}</div>
        </Col>
        <Col span={16}>
        {/* <Col span={16}>
          <div ><div className="title-text">来访形式</div></div>
          <div>来访</div>
        </Col>
        </Col> */}
        <Col span={24}>
          <div className="title"><div className="title-text">事项概况</div></div>
          <div>{props.data?.caseDes || '-'} </div>
@@ -341,6 +341,10 @@
          <div className="title"><div className="title-text">事项申请</div></div>
          <div>{props.data?.caseClaim || '-'}</div>
        </Col>
        <Col span={24}>
          <div className="title"><div className="title-text">事项备注</div></div>
          <div>{props.data?.caseRemark || '-'}</div>
        </Col>
        <Col span={8}>
          <div className="title title-gap">
            {props.data?.majorStatus === 1 && <img src={majorStatus_1} alt="" srcset="" />}
src/views/register/eventFlow/component/AssignedModel.jsx
@@ -54,7 +54,7 @@
        if (type === 1) {
            formRef.current.setFieldValue(
                'assignContent',
                '本事项经初步核实,认为属于贵部门职责范围内的矛盾纠纷化解工作。请组织专门人员负责此事,尽快查明事实真相,依法依规进行处理,并在处理过程中充分考虑当事人的合理诉求,确保公平公正,维护当事人的合法权益。同时,请务必保持与当事人的沟通畅通,及时反馈办理进展,以增强矛盾纠纷化解工作的透明度和公信力。'
                '经核查,本矛盾纠纷事项属于贵单位职能管辖范围,请组织专人跟进化解,并及时反馈化解进展情况。'
            );
        } else {
            formRef.current.setFieldValue('assignContent', '');
src/views/register/eventFlow/component/EscalationModel.jsx
@@ -75,9 +75,9 @@
  const handleTemplate = (type) => {
    if (type === 1) {
      formRef.current.setFieldValue('appearContent', '经初步核查,该事项较为复杂,且涉及多个相关部门的协调配合,为确保能够高效、妥善地解决当事人的问题,特此请求上级给予指导和支持。')
      formRef.current.setFieldValue('appearContent', '经我部门核查,该矛盾纠纷涉及XX业务,化解事权应由XX部门牵头,特请求上级协调交办XX部门牵头办理。')
    } else {
      formRef.current.setFieldValue('appearContent', '')
      formRef.current.setFieldValue('appearContent', '经综合研判,该纠纷事权在XX区/镇街,特请移交XX区/镇街牵头办理。')
    }
  }
@@ -123,7 +123,8 @@
            </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' style={{ marginRight: '22px' }} onClick={() => { handleTemplate(1) }}>公共模板1:申请移交上级职能部门范本</div>
                <div className='myTag' style={{ marginRight: '22px' }} onClick={() => { handleTemplate(2) }}>公共模板2:跨区域纠纷移交上报范本</div>
              </div>
              <FormItem
                label={(<div style={{ display: 'flex' }}>上报意见<div className="must">必填</div></div>)}
src/views/register/handleFeedback/component/CaseResult.jsx
@@ -87,25 +87,40 @@
  const handleTemplate = (type) => {
    setSelectedTemplate(type);
    if (type === 1) {
      formRef.current.setFieldValue('windupContent', '双方当事人于xx时间xx地址已达成xx协议,纠纷已化解。')
    } else {
      formRef.current.setFieldValue('windupContent', '')
      formRef.current.setFieldValue('windupContent', '当事人XXX已于XX年X月X日支付赔偿金XX元,纠纷已化解。')
    } else if (type === 2) {
      formRef.current.setFieldValue('windupContent', '用人单位已于XX年X月X日补发劳动者工资差额人民币XX元整,纠纷已化解。')
    } else if (type === 3) {
      formRef.current.setFieldValue('windupContent', '双方当事人已达成协议,纠纷不涉及赔偿问题,纠纷已化解。')
    }
  }
  const handleTemplate1 = (type) => {
    setSelectedTemplate1(type);
    if (type === 1) {
      formRef.current.setFieldValue('agreeContent', '根据纠纷化解人员的协调,当事人双方同意如下调解协议:[简要说明协议第一条][简要说明协议第二条][……]本口头调解协议由纠纷化解人员记录,并已告知双方当事人。双方当事人确认无误。')
      formRef.current.setFieldValue('agreeContent', '据工作人员协调,当事人双方达成一致调解意见:\n1.被申请方一次性向申请方支付人民币 XX 元,于协议达成后XX日内付清;\n2.双方就此次纠纷不再追究任何法律责任。\n本口头调解协议由纠纷化解人员记录,并已告知双方当事人。双方当事人确认无误。')
    } else if (type === 2) {
      formRef.current.setFieldValue('agreeContent', '据工作人员协调,当事人双方达成一致调解意见:\n1.被申请方承诺每日XX时间段不得产生明显噪音;\n2.双方就此次纠纷不再追究任何法律责任。\n本口头调解协议由纠纷化解人员记录,并已告知双方当事人。双方当事人确认无误。')
    } else if (type === 3) {
      formRef.current.setFieldValue('agreeContent', '据工作人员协调,当事人双方达成一致调解意见:\n1.被申请方自即日起停止在公共区域堆放杂物;\n2.双方就此次纠纷不再追究任何法律责任。\n本口头调解协议由纠纷化解人员记录,并已告知双方当事人。双方当事人确认无误。')
    } else if (type === 4) {
      formRef.current.setFieldValue('agreeContent', '据工作人员协调,当事人双方达成一致调解意见:\n1.用人单位于XX时间补发劳动者工资XX元;\n2.双方就此次纠纷不再追究任何法律责任。\n本口头调解协议由纠纷化解人员记录,并已告知双方当事人。双方当事人确认无误。')
    }
  }
  const handleTemplate2 = (type) => {
    setSelectedTemplate2(type);
    // if (type === 1) {
    //   formRefWrite.current.setFieldValue('windupContent', '双方当事人于xx时间xx地址已达成xx协议,纠纷已化解。')
    // } else {
    //   formRefWrite.current.setFieldValue('windupContent', '')
    // }
    if (type === 1) {
      formRefWrite.current.setFieldValue('windupContent', '双方当事人于xx时间xx地址已达成xx协议,纠纷已化解。')
    } else {
      formRefWrite.current.setFieldValue('windupContent', '')
      formRefWrite.current.setFieldValue('windupContent', '当事人XXX已于XX年X月X日支付赔偿金XX元,纠纷已化解。')
    } else if (type === 2) {
      formRefWrite.current.setFieldValue('windupContent', '用人单位已于XX年X月X日补发劳动者工资差额人民币XX元整,纠纷已化解。')
    } else if (type === 3) {
      formRefWrite.current.setFieldValue('windupContent', '双方当事人已达成协议,纠纷不涉及赔偿问题,纠纷已化解。')
    }
  }
@@ -277,7 +292,28 @@
                                  style={{ marginRight: '22px' }}
                                  onClick={() => handleTemplate1(1)}
                                >
                                  公共模板:调解成功口头协议
                                  口头协议范本(经济纠纷)
                                </div>
                                <div
                                  className={`myTag ${selectedTemplate1 === 1 ? 'highlighted' : ''}`} // 条件样式
                                  style={{ marginRight: '22px' }}
                                  onClick={() => handleTemplate1(2)}
                                >
                                  口头协议范本(邻里纠纷-噪音)
                                </div>
                                <div
                                  className={`myTag ${selectedTemplate1 === 1 ? 'highlighted' : ''}`} // 条件样式
                                  style={{ marginRight: '22px' }}
                                  onClick={() => handleTemplate1(3)}
                                >
                                  口头协议范本(邻里纠纷-公共区域)
                                </div>
                                <div
                                  className={`myTag ${selectedTemplate1 === 1 ? 'highlighted' : ''}`} // 条件样式
                                  style={{ marginRight: '22px' }}
                                  onClick={() => handleTemplate1(4)}
                                >
                                  口头协议范本(劳资纠纷)
                                </div>
                              </div>
                            </>
@@ -299,7 +335,21 @@
                            style={{ marginRight: '22px' }}
                            onClick={() => handleTemplate(1)}
                          >
                            公共模板:化解成功协议履行情况范本
                            公共模板:赔偿纠纷和解协议
                          </div>
                          <div
                            className={`myTag ${selectedTemplate === 1 ? 'highlighted' : ''}`} // 条件样式
                            style={{ marginRight: '22px' }}
                            onClick={() => handleTemplate(2)}
                          >
                            公共模板:劳资纠纷和解协议
                          </div>
                          <div
                            className={`myTag ${selectedTemplate === 1 ? 'highlighted' : ''}`} // 条件样式
                            style={{ marginRight: '22px' }}
                            onClick={() => handleTemplate(3)}
                          >
                            公共模板:邻里纠纷和解协议
                          </div>
                        </div>
                        <FormItem
@@ -363,7 +413,21 @@
                            style={{ marginRight: '22px' }}
                            onClick={() => handleTemplate2(1)}
                          >
                            公共模板:化解成功协议履行情况范本
                            公共模板:赔偿纠纷和解协议
                          </div>
                          <div
                            className={`myTag ${selectedTemplate2 === 1 ? 'highlighted' : ''}`} // 条件样式
                            style={{ marginRight: '22px' }}
                            onClick={() => handleTemplate2(2)}
                          >
                            公共模板:劳资纠纷和解协议
                          </div>
                          <div
                            className={`myTag ${selectedTemplate2 === 1 ? 'highlighted' : ''}`} // 条件样式
                            style={{ marginRight: '22px' }}
                            onClick={() => handleTemplate2(3)}
                          >
                            公共模板:邻里纠纷和解协议
                          </div>
                        </div>
src/views/register/index.jsx
@@ -10,6 +10,7 @@
import { useNavigate } from 'react-router-dom';
import { tab0, tab1, tab2, tab3, tab4, tab5, tab6, allSign, tab1bg } from '@/assets/images';
import TableView from '../../components/TableView';
import NewPage from '../../components/NewPage';
import TableDraftSearch from '../../components/TableDraftSearch';
import TableSearch from '../../components/TableSearch';
import MyTabsNew from '../../components/MyTabsNew';
@@ -499,7 +500,12 @@
            title: '事项来源',
            dataIndex: 'caseSource',
            key: 'caseSource',
            width: 120,
            width: 150,
            render: (text, record) => {
                return record.caseSecondSource && record.caseSecondSource !== null
                    ? `${text}/${record.caseSecondSource}`
                    : text;
            },
        },
        {
            title: '问题属地',
@@ -3570,6 +3576,7 @@
    console.log('tableTab', tableTab, tabActivekey, tableData);
    return (
        <NewPage>
        <div className="VisitWorkBench">
            <div className="VisitWorkBench-top">
                <span style={{ fontWeight: 600 }}>工作总览</span>
@@ -3887,7 +3894,14 @@
                            handleText={'重置'}
                            form={form}
                            itemData={[
                                { type: 'RangePicker', name: 'updateTime', label: '保存时间', shortcutsPlacementLeft: true, shortcuts: $$.shortcutsList(), span: 6 },
                                    {
                                        type: 'RangePicker',
                                        name: 'updateTime',
                                        label: '保存时间',
                                        shortcutsPlacementLeft: true,
                                        shortcuts: $$.shortcutsList(),
                                        span: 6,
                                    },
                                { type: 'Input', name: 'plaintiffs', placeholder: '查询关键词', label: '申请方', span: 6 },
                                { type: 'Input', name: 'defendants', placeholder: '查询关键词', label: '被申请方', span: 6 },
                            ]}
@@ -3924,7 +3938,14 @@
                            textAlign={{ textAlign: 'left' }}
                            form={form}
                            itemData={[
                                { type: 'RangePicker', name: 'createTime', label: '登记时间', shortcutsPlacementLeft: true, shortcuts: $$.shortcutsList(), span: 6 },
                                    {
                                        type: 'RangePicker',
                                        name: 'createTime',
                                        label: '登记时间',
                                        shortcutsPlacementLeft: true,
                                        shortcuts: $$.shortcutsList(),
                                        span: 6,
                                    },
                                { type: 'Input', name: 'plaintiffs', placeholder: '查询关键词', label: '申请方', span: 6 },
                                { type: 'Input', name: 'defendants', placeholder: '查询关键词', label: '被申请方', span: 6 },
                                {
@@ -4167,6 +4188,7 @@
                caseClaim={caseClaim}
            />
        </div>
        </NewPage>
    );
};
src/views/register/matterDetail/ApplyInfo.jsx
@@ -2,7 +2,7 @@
 * @Company: hugeInfo
 * @Author: lwh
 * @Date: 2024-11-26 15:49:14
 * @LastEditTime: 2025-04-21 19:01:28
 * @LastEditTime: 2025-06-14 11:18:59
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description:
@@ -461,11 +461,7 @@
                        {fileData.fileList?.map((result, resIndex) => {
                            return (
                                <div style={{ display: 'inline-block' }}>
                                    {result.suffix === 'pdf' ? (
                                        <MyPDF name={result.name} fileUrl={result.showUrl} />
                                    ) : (
                                        <PreviewImage name={result.name} src={result.showUrl} />
                                    )}
                                    <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
                                    {resIndex !== fileData.fileList?.length - 1 && <>,</>}
                                </div>
                            );
@@ -490,11 +486,7 @@
                        {fileData.fileList?.map((result, resIndex) => {
                            return (
                                <div style={{ display: 'inline-block' }}>
                                    {result.suffix === 'pdf' ? (
                                        <MyPDF name={result.name} fileUrl={result.showUrl} />
                                    ) : (
                                        <PreviewImage name={result.name} src={result.showUrl} />
                                    )}
                                    <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
                                    {resIndex !== fileData.fileList?.length - 1 && <>,</>}
                                </div>
                            );
@@ -517,7 +509,10 @@
                        <span className="public-infoSubTitle">
                            <span className="public-nameCard">
                                &nbsp;&nbsp;
                                <NameCard2 name={data.value === 'auditPeople' ? object.auditUserName : object.applyUserName} userId={data.value === 'auditPeople' ? object.auditUserId : object.applyUserId} />
                                <NameCard2
                                    name={data.value === 'auditPeople' ? object.auditUserName : object.applyUserName}
                                    userId={data.value === 'auditPeople' ? object.auditUserId : object.applyUserId}
                                />
                            </span>
                        </span>
                    </span>
@@ -602,11 +597,7 @@
                        {fileData.fileList?.map((result, resIndex) => {
                            return (
                                <div style={{ display: 'inline-block' }}>
                                    {result.suffix === 'pdf' ? (
                                        <MyPDF name={result.name} fileUrl={result.showUrl} />
                                    ) : (
                                        <PreviewImage name={result.name} src={result.showUrl} />
                                    )}
                                    <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
                                    {resIndex !== fileData.fileList?.length - 1 && <>,</>}
                                </div>
                            );
src/views/register/matterDetail/DismissModule.jsx
@@ -36,11 +36,7 @@
                        {props.dismissData?.fileInfoList?.map((result, resIndex) => {
                            return (
                                <div style={{ display: 'inline-block' }}>
                                    {result.suffix === 'pdf' ? (
                                        <MyPDF name={result.name} fileUrl={result.showUrl} />
                                    ) : (
                                        <PreviewImage name={result.name} src={result.showUrl} />
                                    )}
                                    <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
                                    {/* <PreviewImage name={result.name} src={result.showUrl} /> */}
                                    {resIndex !== props.dismissData?.fileInfoList?.length - 1 && <>,</>}
                                </div>
src/views/register/matterDetail/HandleRecord.jsx
@@ -2,7 +2,7 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-09-06 09:40:00
 * @LastEditors: lwh
 * @LastEditTime: 2025-05-10 17:26:00
 * @LastEditTime: 2025-06-14 11:16:06
 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\matterDetail\HandleRecord.jsx
 * @Description: 办理记录
 */
@@ -143,11 +143,7 @@
                                                    <div>
                                                        {record?.fileInfoList?.map((result, index) => (
                                                            <>
                                                                {result.suffix === 'pdf' ? (
                                                                    <MyPDF name={result.name} fileUrl={result.showUrl} />
                                                                ) : (
                                                                    <PreviewImage name={result.name} src={result.showUrl} />
                                                                )}
                                                                <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
                                                            </>
                                                            // <div key={index} onClick={() => handleOpenFiles(item)} style={{ cursor: 'pointer' }}>
                                                            //     {item.name || '-'}
src/views/register/matterDetail/Judicial.jsx
@@ -1,4 +1,4 @@
import React, { useState, useEffect } from "react";
import React, { useState, useEffect } from 'react';
import { Row, Col, Space, Typography } from 'antd';
import { Modal, Divider } from '@arco-design/web-react';
import * as $$ from '../../../utils/utility';
@@ -6,7 +6,7 @@
import NameCard2 from '../../../components/NameCard2';
import { judicial_3 } from '@/assets/images';
import MyPDF from '../../../components/MyPDF';
import { judicial_7 } from "../../../assets/images";
import { judicial_7 } from '../../../assets/images';
// 司法确认详情接口
function getJudicInfoApi(submitData) {
@@ -25,19 +25,18 @@
const { Paragraph, Link, Text } = Typography;
const Judicial = (props) => {
  const [data, setData] = useState({});
  const [videoList, setVideoList] = useState([])
    const [videoList, setVideoList] = useState([]);
  // 预添加预约
  const [preBookData, setPreBookData] = useState({});
  const [radioVisible, setRadioVisible] = useState(false);
  function checkTimeRange(startTime, endTime, currentTime) {
    if (currentTime < new Date(startTime)) {
      return <div className='public-color'>未开始</div>; // 当前时间在时间范围之前
            return <div className="public-color">未开始</div>; // 当前时间在时间范围之前
    } else if (currentTime >= new Date(startTime) && currentTime <= new Date(endTime)) {
      return <div style={{ color: '#EF6C24' }}>进行中</div>; // 当前时间在时间范围内
    } else {
      return <div className='public-orange'>已结束</div>; // 当前时间在时间范围之后
            return <div className="public-orange">已结束</div>; // 当前时间在时间范围之后
    }
  }
  // 初始化附件回显
@@ -50,7 +49,6 @@
    }
  }
  // 获取预约调解记录
  async function getMeetInfo(id) {
    global.setSpinning(true);
@@ -59,179 +57,292 @@
    if (res.type) {
      let list = res.data || [];
      if (list?.length > 0) {
        setPreBookData(list[0])
                setPreBookData(list[0]);
      }
    }
  }
  const getVideo = async (id) => {
    const res = await getVideoApi(id)
        const res = await getVideoApi(id);
    if (res.type) {
      if (res.data) {
        setVideoList(res.data || [])
                setVideoList(res.data || []);
      } else {
        setVideoList(null)
                setVideoList(null);
      }
    }
  }
    };
  useEffect(() => {
    getJudicialApply(props.caseId)
    getMeetInfo(props.caseId)
    getVideo(props.caseId)
  }, [])
        getJudicialApply(props.caseId);
        getMeetInfo(props.caseId);
        getVideo(props.caseId);
    }, []);
  return (
    <div style={{ ...props.style, position: 'relative' }}>
      <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px' }}>
        <Space size='small'>
          <div className='MediationInfo-subTitle' style={{ marginTop: '-7px' }}></div><h4>司法确认信息</h4>
                <Space size="small">
                    <div className="MediationInfo-subTitle" style={{ marginTop: '-7px' }}></div>
                    <h4>司法确认信息</h4>
        </Space>
      </Col>
      <table border="1" align="center" cellpadding="8" className="table" >
        <tr>
          <th bgcolor="#F7F8FA" className="table-title" width="120">司法确认结果</th>
          <td width='380' style={{ color: data?.judicResult == '22_00028-1' ? '#00b42a' : '#f53f3f' }}>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">
                        司法确认结果
                    </th>
                    <td width="380" style={{ color: data?.judicResult == '22_00028-1' ? '#00b42a' : '#f53f3f' }}>
            {data?.judicResult == '22_00028-1' ? '已达成' : data?.judicResult == '22_00028-2' ? '未达成' : '-'}
          </td>
          <th bgcolor="#F7F8FA" className="table-title" width="120">预约信息</th>
          <td width='380'>{preBookData?.orderStartTime ? <span className="public-a public-color" onClick={() => { setRadioVisible(true) }}>点击查看</span> : '-'}</td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">
                        预约信息
                    </th>
                    <td width="380">
                        {preBookData?.orderStartTime ? (
                            <span
                                className="public-a public-color"
                                onClick={() => {
                                    setRadioVisible(true);
                                }}
                            >
                                点击查看
                            </span>
                        ) : (
                            '-'
                        )}
                    </td>
        </tr>
        <tr>
          <th bgcolor="#F7F8FA" className="table-title" width="120">司法确认部门</th>
          <td width='380'>{data?.courtName || '-'}</td>
          <th bgcolor="#F7F8FA" className="table-title" width="120">结案时间</th>
          <td width='380'>{$$.minuteFormat(data?.judicEndTime)}</td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">
                        司法确认部门
                    </th>
                    <td width="380">{data?.courtName || '-'}</td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">
                        结案时间
                    </th>
                    <td width="380">{$$.minuteFormat(data?.judicEndTime)}</td>
        </tr>
        <tr>
          <th bgcolor="#F7F8FA" className="table-title">承办法官</th>
          <td width='380'><div className='public-infoSubTitle'><NameCard2 name={data.judgeName} userId={data.judgeNameId || ''} /></div></td>
          <th bgcolor="#F7F8FA" className="table-title">助理/书记员</th>
          <td width='380'><div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }} className='public-infoSubTitle'>{data?.judicAssistList?.map(i => (<NameCard2 name={i.assUserName} userId={i.assUserId} />))}</div></td>
                    <th bgcolor="#F7F8FA" className="table-title">
                        承办法官
                    </th>
                    <td width="380">
                        <div className="public-infoSubTitle">
                            <NameCard2 name={data.judgeName} userId={data.judgeNameId || ''} />
                        </div>
                    </td>
                    <th bgcolor="#F7F8FA" className="table-title">
                        助理/书记员
                    </th>
                    <td width="380">
                        <div style={{ display: 'flex', gap: '16px', flexWrap: 'wrap' }} className="public-infoSubTitle">
                            {data?.judicAssistList?.map((i) => (
                                <NameCard2 name={i.assUserName} userId={i.assUserId} />
                            ))}
                        </div>
                    </td>
        </tr>
        {
          data?.judicResult == '22_00028-1' &&
                {data?.judicResult == '22_00028-1' && (
          <tr>
            <th bgcolor="#F7F8FA" className="table-title">司法确认案号</th>
            <td width='380'>{data?.judicNo || '-'}</td>
            <th bgcolor="#F7F8FA" className="table-title">诉前调确号</th>
            <td width='380'>{data?.mediateJudicNo || '-'}</td>
                        <th bgcolor="#F7F8FA" className="table-title">
                            司法确认案号
                        </th>
                        <td width="380">{data?.judicNo || '-'}</td>
                        <th bgcolor="#F7F8FA" className="table-title">
                            诉前调确号
                        </th>
                        <td width="380">{data?.mediateJudicNo || '-'}</td>
          </tr>
        }
                )}
        <tr>
          <th bgcolor="#F7F8FA" className="table-title">申请时间</th>
          <td width='380'>{$$.minuteFormat(data?.applyTime)}</td>
          <th bgcolor="#F7F8FA" className="table-title">申请部门</th>
          <td width='380'>{data?.applyUnitName || '-'}</td>
                    <th bgcolor="#F7F8FA" className="table-title">
                        申请时间
                    </th>
                    <td width="380">{$$.minuteFormat(data?.applyTime)}</td>
                    <th bgcolor="#F7F8FA" className="table-title">
                        申请部门
                    </th>
                    <td width="380">{data?.applyUnitName || '-'}</td>
        </tr>
        {
          data?.judicResult == '22_00028-1' &&
                {data?.judicResult == '22_00028-1' && (
          <>
            <tr>
              <th bgcolor="#F7F8FA" className="table-title">裁定文书</th>
              <td width='380' colspan='3'>{
                data?.fileList?.find(i => i.ownerType === '22_00018-405')?.fileList?.length ?
                  data?.fileList?.find(i => i.ownerType === '22_00018-405')?.fileList?.map((item, index) => {
                    return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</>
                            <th bgcolor="#F7F8FA" className="table-title">
                                裁定文书
                            </th>
                            <td width="380" colspan="3">
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-405')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-405')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                  })
                  : <div className='public-infoSubTitle'>-</div>
              }</td>
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
                            </td>
            </tr>
            <tr>
              <th bgcolor="#F7F8FA" className="table-title">询问笔录</th>
              <td width='380' colspan='3'>{
                data?.fileList?.find(i => i.ownerType === '22_00018-401')?.fileList?.length ?
                  data?.fileList?.find(i => i.ownerType === '22_00018-401')?.fileList?.map((item, index) => {
                    return <>{item.suffix === 'pdf' ? <MyPDF name={item?.name} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.name} src={item.showUrl} />}</>
                            <th bgcolor="#F7F8FA" className="table-title">
                                询问笔录
                            </th>
                            <td width="380" colspan="3">
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-401')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-401')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                  })
                  : <div className='public-infoSubTitle'>-</div>
              }</td>
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
                            </td>
            </tr>
            <tr>
              <th bgcolor="#F7F8FA" className="table-title">送达地址确认书</th>
              <td width='380' colspan='3'>{
                data?.fileList?.find(i => i.ownerType === '22_00018-108')?.fileList?.length ?
                  data?.fileList?.find(i => i.ownerType === '22_00018-108')?.fileList?.map((item, index) => {
                    return <>{item.suffix === 'pdf' ? <MyPDF name={item?.fileName} fileUrl={item?.showUrl} key={index} /> : <PreviewImage key={index} name={item.fileName} src={item.showUrl} />}</>
                            <th bgcolor="#F7F8FA" className="table-title">
                                送达地址确认书
                            </th>
                            <td width="380" colspan="3">
                                {data?.fileList?.find((i) => i.ownerType === '22_00018-108')?.fileList?.length ? (
                                    data?.fileList
                                        ?.find((i) => i.ownerType === '22_00018-108')
                                        ?.fileList?.map((item, index) => {
                                            return (
                                                <>
                                                    <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                                                </>
                                            );
                  })
                  : <div className='public-infoSubTitle'>-</div>
              }</td>
                                ) : (
                                    <div className="public-infoSubTitle">-</div>
                                )}
                            </td>
            </tr>
            {
              videoList?.length > 0 && <tr>
                <th bgcolor="#F7F8FA" className="table-title" width="120">司法确认视频</th>
                <td colspan='3'>
                        {videoList?.length > 0 && (
                            <tr>
                                <th bgcolor="#F7F8FA" className="table-title" width="120">
                                    司法确认视频
                                </th>
                                <td colspan="3">
                  {videoList?.map((item, index) => {
                    return <div key={'video' + index} style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
                      <img src={judicial_7} alt="" srcset="" /><Link onClick={() => { window.open(item.playUrl) }}>{item.videoName}</Link>
                                        return (
                                            <div key={'video' + index} style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
                                                <img src={judicial_7} alt="" srcset="" />
                                                <Link
                                                    onClick={() => {
                                                        window.open(item.playUrl);
                                                    }}
                                                >
                                                    {item.videoName}
                                                </Link>
                    </div>
                                        );
                  })}
                </td>
              </tr>
            }
                        )}
            <tr>
              <th bgcolor="#F7F8FA" className="table-title">结案说明</th>
              <td width='380' colspan='3'>{data?.judicContent || '-'}</td>
                            <th bgcolor="#F7F8FA" className="table-title">
                                结案说明
                            </th>
                            <td width="380" colspan="3">
                                {data?.judicContent || '-'}
                            </td>
            </tr>
          </>
        }
        {
          data?.judicResult == '22_00028-2' &&
                )}
                {data?.judicResult == '22_00028-2' && (
          <tr>
            <th bgcolor="#F7F8FA" className="table-title">未达成原因</th>
            <td width='380' colspan='3'>{data?.judicFalseCause || '-'}</td>
                        <th bgcolor="#F7F8FA" className="table-title">
                            未达成原因
                        </th>
                        <td width="380" colspan="3">
                            {data?.judicFalseCause || '-'}
                        </td>
          </tr>
        }
                )}
      </table>
      <Modal
        title='预约信息'
                title="预约信息"
        style={{ width: '40%' }}
        className='judicial-handle-modal'
                className="judicial-handle-modal"
        onCancel={() => setRadioVisible(false)}
        visible={radioVisible}
        footer={null}
      >
        <div style={{ marginBottom: '0' }} className='judicial-item-content'>
          <div className='judicial-item-content-left'>
                <div style={{ marginBottom: '0' }} className="judicial-item-content">
                    <div className="judicial-item-content-left">
            {/* <div className='judicial-item-content-left-del public-a'><img src={judicial_3} alt="" srcset="" /></div> */}
            <div className='judicial-item-content-left-t'>
              <div className='judicial-item-content-left-t-l'><div className='judicial-item-content-left-bigTitle public-color'>{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}</div><div className='public-color'>{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}</div></div>
              <div className='judicial-item-content-left-t-l'>
                <Space size='small'>
                  <div className='judicial-item-content-left-inline'></div>
                  <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', alignItems: 'center', justifyContent: 'center' }}>{checkTimeRange(preBookData?.orderStartTime, preBookData?.orderEndTime, new Date())}<div className='public-color judicial-item-content-left-time'>{$$.calculateTimeDifference(preBookData?.orderStartTime, preBookData?.orderEndTime)}</div></div>
                  <div className='judicial-item-content-left-inline'></div>
                        <div className="judicial-item-content-left-t">
                            <div className="judicial-item-content-left-t-l">
                                <div className="judicial-item-content-left-bigTitle public-color">{$$.myTimeFormat(preBookData?.orderStartTime, 'HH:mm')}</div>
                                <div className="public-color">{$$.myTimeFormat(preBookData?.orderStartTime, 'YYYY年MM月DD日')}</div>
                            </div>
                            <div className="judicial-item-content-left-t-l">
                                <Space size="small">
                                    <div className="judicial-item-content-left-inline"></div>
                                    <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', alignItems: 'center', justifyContent: 'center' }}>
                                        {checkTimeRange(preBookData?.orderStartTime, preBookData?.orderEndTime, new Date())}
                                        <div className="public-color judicial-item-content-left-time">
                                            {$$.calculateTimeDifference(preBookData?.orderStartTime, preBookData?.orderEndTime)}
                                        </div>
                                    </div>
                                    <div className="judicial-item-content-left-inline"></div>
                </Space>
              </div>
              <div className='judicial-item-content-left-t-l'><div className='judicial-item-content-left-bigTitle public-color'>{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}</div><div className='public-color'>{$$.myTimeFormat(preBookData?.orderEndTime, 'YYYY年MM月DD日')}</div></div>
                            <div className="judicial-item-content-left-t-l">
                                <div className="judicial-item-content-left-bigTitle public-color">{$$.myTimeFormat(preBookData?.orderEndTime, 'HH:mm')}</div>
                                <div className="public-color">{$$.myTimeFormat(preBookData?.orderEndTime, 'YYYY年MM月DD日')}</div>
                            </div>
            </div>
            <Divider />
            <div className='judicial-item-content-left-c-flex'>
              <div className='judicial-item-content-left-c'>
                <div className='judicial-item-content-left-c-title'>司法确认方式</div>
                <div className='judicial-item-content-left-c-content'>{preBookData?.meetWayName || '-'}</div>
                        <div className="judicial-item-content-left-c-flex">
                            <div className="judicial-item-content-left-c">
                                <div className="judicial-item-content-left-c-title">司法确认方式</div>
                                <div className="judicial-item-content-left-c-content">{preBookData?.meetWayName || '-'}</div>
              </div>
              <div className='judicial-item-content-left-c'>
                <div className='judicial-item-content-left-c-title'>远程视频司法确认号</div>
                <div className='judicial-item-content-left-c-content'><span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span>&nbsp;&nbsp;{preBookData?.roomNo && <span onClick={() => {
                  navigator.clipboard.writeText(preBookData?.roomNo).then(() => {
                            <div className="judicial-item-content-left-c">
                                <div className="judicial-item-content-left-c-title">远程视频司法确认号</div>
                                <div className="judicial-item-content-left-c-content">
                                    <span style={{ fontSize: '16px', lineHeight: '24px' }}>{preBookData?.roomNo || '-'}</span>&nbsp;&nbsp;
                                    {preBookData?.roomNo && (
                                        <span
                                            onClick={() => {
                                                navigator.clipboard
                                                    .writeText(preBookData?.roomNo)
                                                    .then(() => {
                    $$.infoSuccess({ content: '复制成功' });
                  }).catch(err => {
                                                    })
                                                    .catch((err) => {
                    $$.catchApiError('复制失败', err);
                  });
                }} className='public-color public-a'>复制</span>}</div>
                                            }}
                                            className="public-color public-a"
                                        >
                                            复制
                                        </span>
                                    )}
              </div>
              <div className='judicial-item-content-left-c'>
                <div className='judicial-item-content-left-c-title'>司法确认地点</div>
                <div className='judicial-item-content-left-c-content'>{preBookData?.meetAddr || '-'}</div>
                            </div>
                            <div className="judicial-item-content-left-c">
                                <div className="judicial-item-content-left-c-title">司法确认地点</div>
                                <div className="judicial-item-content-left-c-content">{preBookData?.meetAddr || '-'}</div>
              </div>
            </div>
          </div>
        </div>
      </Modal>
    </div>
  )
}
    );
};
export default Judicial
export default Judicial;
src/views/register/matterDetail/NewFileCheck.jsx
@@ -2,6 +2,7 @@
import { Row, Col, Space } from 'antd';
import { Select, DatePicker, Form, Button, Menu } from '@arco-design/web-react';
import * as $$ from '@/utils/utility';
import * as docx from 'docx-preview';
const FormItem = Form.Item;
const MenuItem = Menu.Item;
@@ -16,74 +17,82 @@
  },
};
const NewFileCheck = (props) => {
  const formRef = useRef();
  const [fileUrl, setFileUrl] = useState('')
  const [itemData, setItemData] = useState(null)
  const [list, setList] = useState([])
    const [fileUrl, setFileUrl] = useState('');
    const [itemData, setItemData] = useState(null);
    const [list, setList] = useState([]);
  const peopleTypeMap = {
    1: '工作人员',
    2: '当事人'
  }
        2: '当事人',
    };
    const containerRef = useRef(null);
  useEffect(() => {
    setList(props.menuList || [])
  }, [props.menuList])
        setList(props.menuList || []);
    }, [props.menuList]);
  //点击菜单
  const clickItem = (data) => {
    console.log(data);
    setItemData(data)
    setFileUrl(`${appUrl.fileUrl}/${appUrl.sys}${data.showUrl}`)
        setItemData(data);
    if (data.suffix === 'docx' || data.suffix === 'doc') {
      const renderDocx = async () => {
        try {
          const response = await fetch(`${appUrl.fileUrl}/${appUrl.sys}${data.showUrl}`);
          const blob = await response.blob();
          await docx.renderAsync(blob, containerRef.current);
        } catch (error) {
          console.error('文档加载失败', error);
  }
      };
      renderDocx();
    }
        setFileUrl(`${appUrl.fileUrl}/${appUrl.sys}${data.showUrl}`);
    };
  //查询
  const handleSUbmit = (type) => {
    const data = formRef.current.getFieldsValue();
    console.log('data', data);
    if (type === 'search') {
      let newList = props.menuList
            let newList = props.menuList;
      if (data.type) {
        newList = newList.filter(item => item.ownerType === data.type)
                newList = newList.filter((item) => item.ownerType === data.type);
      }
      if (data.name) {
        newList = newList.map(item => ({ ...item, fileList: item.fileList?.filter(i => i.uploaderType === data.name) }))
                newList = newList.map((item) => ({ ...item, fileList: item.fileList?.filter((i) => i.uploaderType === data.name) }));
      }
      if (data.time) {
        let timeStart = new Date(data.time[0]);
        let timeEnd = new Date(data.time[1]);
        newList = newList.map(item => ({ ...item, fileList: item.fileList?.filter(i => new Date(i.createTime) >= timeStart && new Date(i.createTime) <= timeEnd) }))
                newList = newList.map((item) => ({
                    ...item,
                    fileList: item.fileList?.filter((i) => new Date(i.createTime) >= timeStart && new Date(i.createTime) <= timeEnd),
                }));
      }
      setList(newList)
      setItemData(null)
      setFileUrl('')
            setList(newList);
            setItemData(null);
            setFileUrl('');
    }
    // 重置
    if (type === 'reset') {
      setList(props.menuList || [])
      setItemData(null)
      setFileUrl('')
            setList(props.menuList || []);
            setItemData(null);
            setFileUrl('');
    }
  }
    };
  console.log('list', list);
  return (
    <nav className="filesCheck-nav" style={{ borderRight: '1px solid transparent' }}>
      <Form
        ref={formRef}
        layout='horizontal'
        style={{ marginTop: '24px' }}
        scrollToFirstError={true}
        {...formItemLayout}
      >
            <Form ref={formRef} layout="horizontal" style={{ marginTop: '24px' }} scrollToFirstError={true} {...formItemLayout}>
        <Row gutter={24} style={{ marginRight: '0px' }}>
          <Col span={6}>
            <FormItem label='材料类型:' field='type'>
                        <FormItem label="材料类型:" field="type">
              <Select
                placeholder='请选择'
                                placeholder="请选择"
                allowClear
                options={[
                  {
@@ -99,91 +108,94 @@
            </FormItem>
          </Col>
          <Col span={7}>
            <FormItem
              label='上传时间:'
              field='time'
            >
              <DatePicker.RangePicker
                showTime
                shortcutsPlacementLeft={true}
                shortcuts={$$.shortcutsList()}
                separator='~'
                style={{ width: '100%' }}
              />
                        <FormItem label="上传时间:" field="time">
                            <DatePicker.RangePicker showTime shortcutsPlacementLeft={true} shortcuts={$$.shortcutsList()} separator="~" style={{ width: '100%' }} />
            </FormItem>
          </Col>
          <Col span={7}>
            <FormItem
              label='上传人类型:'
              field='name'
              onChange={(e) => console.log(e.target.value, 'vvv')}
            >
                        <FormItem label="上传人类型:" field="name" onChange={(e) => console.log(e.target.value, 'vvv')}>
              <Select
                placeholder='请选择'
                                placeholder="请选择"
                allowClear
                style={{ width: '100%' }}
                options={[
                  {
                    label: '工作人员',
                    value: 1
                                        value: 1,
                  },
                  {
                    label: '当事人',
                    value: 2
                  }
                                        value: 2,
                                    },
                ]}
              />
            </FormItem>
          </Col>
          <Col span={4}>
            <Space>
              <Button className="dialogPrimary" type='primary' onClick={() => handleSUbmit('search')}>查询</Button>
              <Button onClick={() => {
                            <Button className="dialogPrimary" type="primary" onClick={() => handleSUbmit('search')}>
                                查询
                            </Button>
                            <Button
                                onClick={() => {
                formRef.current.resetFields();
                handleSUbmit('reset')
              }}>重置</Button>
                                    handleSUbmit('reset');
                                }}
                            >
                                重置
                            </Button>
            </Space>
          </Col>
        </Row>
      </Form>
      <div style={{ display: 'flex', height: '550px' }}>
        <div style={{ width: '256px', borderRight: '1px solid #F0F0F0' }}>
          <Menu
            style={{ width: '100%', height: '100%' }}
                    <Menu style={{ width: '100%', height: '100%' }}>
                        {list?.map((item) => {
                            return (
                                <SubMenu key={item.id} title={item.ownerTypeName + `(${(item.fileList && item.fileList.length) || 0})`}>
                                    {item.fileList?.map((res) => {
                                        return (
                                            <MenuItem
                                                key={res.id}
                                                onClick={() => {
                                                    clickItem(res);
                                                }}
          >
            {list?.map(item => {
              return <SubMenu
                key={item.id}
                title={item.ownerTypeName + `(${item.fileList && item.fileList.length || 0})`}
              >
                {item.fileList?.map(res => {
                  return <MenuItem key={res.id} onClick={() => { clickItem(res) }}>{res.name}</MenuItem>
                                                {res.name}
                                            </MenuItem>
                                        );
                })}
              </SubMenu>
                            );
            })}
          </Menu>
        </div>
        <div style={{ flex: 1 }}>
          {
            itemData ? <Fragment>
                    {itemData ? (
                        <Fragment>
              <div style={{ background: '#e8f3ff', color: '#1A6FB8', padding: '5px 10px', marginBottom: '16px', marginLeft: '16px' }}>
                <span>材料名称:{itemData.name}</span>&nbsp;&nbsp;|&nbsp;&nbsp;
                <span>上传时间:{$$.timeFormat(itemData.updateTime)}</span>&nbsp;&nbsp;|&nbsp;&nbsp;
                <span>上传人:{itemData.uploaderName} {itemData.uploaderType && <span>({peopleTypeMap[itemData.uploaderType]})</span>}</span>
                                <span>
                                    上传人:{itemData.uploaderName} {itemData.uploaderType && <span>({peopleTypeMap[itemData.uploaderType]})</span>}
                                </span>
              </div>
              <div style={{ width: '100%', height: '470px', display: 'flex', justifyContent: 'center', alignItems: 'center', overflow: 'auto' }}>
                {
                  itemData.suffix === 'pdf' ?
                                {itemData.suffix === 'pdf' ? (
                    <embed src={fileUrl} type="application/pdf" width="100%" height="100%"></embed>
                    :
                                ) : itemData.suffix === 'docx' ? (
                                    <div ref={containerRef} style={{ width: '100%', height: '100%' }} className="docx-container" />
                                ) : (
                    <img src={fileUrl} alt="" style={{ maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' }} />
                }
                                )}
              </div>
            </Fragment> : <Fragment>
                        </Fragment>
                    ) : (
                        <Fragment>
              <div style={{ padding: '100px 0' }}>{$$.MyEmpty()}</div>
            </Fragment>
          }
                    )}
        </div>
      </div>
    </nav>
src/views/register/matterDetail/UniteHandle.jsx
@@ -148,7 +148,7 @@
          setIsModalVisible(false)
        }}
        onClose={() => setIsModalVisible(false)}
        type='dept'
        type='dept_union'
        isCheckbox={true}
      />
    </Modal>
src/views/register/matterDetail/index.jsx
@@ -245,10 +245,10 @@
              <div ><div className="title-text">事项来源</div></div>
              <div>{infoData.canalName || '-'}</div>
            </Col>
            <Col span={16}>
            {/* <Col span={16}>
              <div ><div className="title-text">来访形式</div></div>
              <div>{infoData.visitWayName || '-'}</div>
            </Col>
            </Col> */}
            <Col span={24}>
              <div className="title"><div className="title-text">事项概况</div></div>
              <div>{infoData.caseDes || '-'}</div>
@@ -257,6 +257,10 @@
              <div className="title"><div className="title-text">事项申请</div></div>
              <div>{infoData.caseClaim || '-'}</div>
            </Col>
            <Col span={24}>
              <div className="title"><div className="title-text">事项备注</div></div>
              <div>{infoData.caseRemark || '-'}</div>
            </Col>
            <Col span={8}>
          <div className="title title-gap">
            {props.data?.majorStatus === 1 && <img src={majorStatus_1} alt="" srcset="" />}
src/views/register/visit/SelfPreview.jsx
@@ -128,10 +128,10 @@
          <div><div className="title-text">事项来源</div></div>
          <div>自行排查</div>
        </Col>
        <Col span={8}>
        {/* <Col span={8}>
          <div ><div className="title-text">来访形式</div></div>
          <div>排查</div>
        </Col>
        </Col> */}
        <Col span={8}>
          <div ><div className="title-text">纠纷类型</div></div>
          <div>
@@ -171,6 +171,10 @@
        <Col span={24}>
          <div className="title"><div className="title-text">事项申请</div></div>
          <div>{props.data?.caseClaim || '-'}</div>
        </Col>
        <Col span={24}>
              <div className="title"><div className="title-text">事项备注</div></div>
              <div>{props.data?.caseRemark || '-'}</div>
        </Col>
        <Col span={8}>
          <div className="title title-gap">
@@ -230,7 +234,7 @@
              {props.transactResult?.fileInfoBaseDTOList?.map((item, index) => {
                console.log(item);
                return <div style={{ display: 'inline-block' }}>
                  {item.suffix === 'pdf' ? <MyPDF name={item.name} fileUrl={item.showUrl} key={index} /> : <PreviewImage name={item.name} src={item.showUrl} />}
                  <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                  {/* <PreviewImage name={item.name} src={item.showUrl} /> */}
                  {index !== props.transactResult?.fileInfoBaseDTOList.length - 1 && <>,</>}
                </div>
src/views/register/visit/component/SelfVisitorRegister.jsx
@@ -400,6 +400,34 @@
                            />
                        </FormItem>
                    </Col>
                    <Col span={24}>
                        <FormItem
                            label={
                                <div style={{ display: 'flex' }}>
                                    备注
                                    <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} />
                                    <div
                                        style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }}
                                        onClick={() => {
                                            setScanFile(true);
                                            setOcrText('caseRemark');
                                        }}
                                    >
                                        识别材料
                                    </div>
                                </div>
                            }
                            field="caseRemark"
                        >
                            <Input.TextArea
                                maxLength={500}
                                showWordLimit
                                rows={7}
                                placeholder="请填写备注"
                                wrapperStyle={{ width: '100%' }}
                            />
                        </FormItem>
                    </Col>
                    <div style={{ padding: '0px 16px', borderRadius: '2px', display: 'flex', alignItems: 'center' }}>
                        <img src={majorStatus_1} alt="" srcset="" />
                        <FormItem
src/views/register/visit/component/visitorRegister.jsx
@@ -411,6 +411,34 @@
                            />
                        </FormItem>
                    </Col>
                    <Col span={24}>
                        <FormItem
                            label={
                                <div style={{ display: 'flex' }}>
                                    备注
                                    <img src={scan} alt="" style={{ marginRight: '-2px', marginLeft: '8px' }} />
                                    <div
                                        style={{ marginLeft: '8px', color: '#1A6FB8', fontSize: '14px', cursor: 'pointer' }}
                                        onClick={() => {
                                            setScanFile(true);
                                            setOcrText('caseRemark');
                                        }}
                                    >
                                        识别材料
                                    </div>
                                </div>
                            }
                            field="caseRemark"
                        >
                            <Input.TextArea
                                maxLength={500}
                                showWordLimit
                                rows={7}
                                placeholder="请填写备注"
                                wrapperStyle={{ width: '100%' }}
                            />
                        </FormItem>
                    </Col>
                    <div style={{ padding: '0px 16px', borderRadius: '2px', display: 'flex', alignItems: 'center' }}>
                        <img src={majorStatus_1} alt="" srcset="" />
                        <FormItem
src/views/register/visit/index.jsx
@@ -2,7 +2,7 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-08-09 09:59:43
 * @LastEditors: lwh
 * @LastEditTime: 2025-05-30 17:04:48
 * @LastEditTime: 2025-06-13 15:16:34
 * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
 * @Description: 来访登记
 */
@@ -15,7 +15,6 @@
import '../index.less';
import { Space } from 'antd';
import { Button, Steps, Message } from '@arco-design/web-react';
import { visit_10 } from '../../../assets/images';
import { Modal } from 'antd';
import VisitorRegister from './component/visitorRegister';
import Preview from './preview';
src/views/register/visit/preview.jsx
@@ -330,10 +330,10 @@
          <div ><div className="title-text">事项来源</div></div>
          <div>{props.data?.canalName || '大厅来访'}</div>
        </Col>
        <Col span={16}>
        {/* <Col span={16}>
          <div ><div className="title-text">来访形式</div></div>
          <div>来访</div>
        </Col>
        </Col> */}
        <Col span={24}>
          <div className="title"><div className="title-text">事项概况</div></div>
          <div>{props.data?.caseDes || '-'} </div>
@@ -341,6 +341,10 @@
        <Col span={24}>
          <div className="title"><div className="title-text">事项申请</div></div>
          <div>{props.data?.caseClaim || '-'}</div>
        </Col>
        <Col span={24}>
          <div className="title"><div className="title-text">事项备注</div></div>
          <div>{props.data?.caseRemark || '-'}</div>
        </Col>
        <Col span={8}>
          <div className="title title-gap">
@@ -447,7 +451,7 @@
                <div style={{ display: 'flex', gap: '8px' }}>
                  {props.transactResult?.fileInfoBaseDTOList?.map((item, index) => {
                    return <div style={{ display: 'inline-block' }}>
                      {item.suffix === 'pdf' ? <MyPDF name={item.name} fileUrl={item.showUrl} key={index} /> : <PreviewImage name={item.name} src={item.showUrl} />}
                      <MyPDF key={index} name={item.name} fileUrl={item.showUrl} fileType={item.suffix} />
                      {/* <PreviewImage name={item.name} src={item.showUrl} /> */}
                      {/* {index !== props.transactResult?.fileInfoBaseDTOList.length - 1 && <>,</>} */}
                    </div>
src/views/windowDetail/ApplyInfo.jsx
@@ -446,10 +446,7 @@
        <div style={{ color: '#1A6FB8' }}>
          {fileData.fileList?.map((result, resIndex) => {
            return <div style={{ display: 'inline-block' }}>
              {result.suffix === 'pdf' ?
                <MyPDF name={result.name} fileUrl={result.showUrl} /> :
                <PreviewImage name={result.name} src={result.showUrl} />
              }
              <MyPDF key={resIndex} name={result.name} fileUrl={result.showUrl} fileType={result.suffix} />
              {resIndex !== fileData.fileList?.length - 1 && <>,</>}
            </div>
          }) || '-'}
src/views/windowDetail/index.jsx
@@ -199,6 +199,7 @@
      getCaseInfo(caseId);
      listFeedback(caseId);
      getData(caseId);
      getDismissData(caseId)
  }, [])
  //获取权限tab和按钮权限
src/views/workDash/index.jsx
@@ -1024,6 +1024,7 @@
                                placeholder: '请选择',
                                label: '配合部门',
                            },
                            { type: 'Select', name: 'systemSource', label: '系统来源', placeholder: '请选择', span: 8, selectdata: $$.options.systemSource },
                        ]}
                        handleReset={() => {
                            form.resetFields();
@@ -1169,19 +1170,19 @@
                                            <div style={{ display: 'flex', alignItems: 'center' }}>
                                                <span className="workDash-item-title-green"></span>
                                                <span style={{ color: '#4E5969', fontSize: '14px', display: 'flex', alignItems: 'center' }}>
                                                    化解成功:{data?.resolveNum || 0}件 | 成功率:<span style={{ color: '#00B42A' }}>{data?.resolveRate || '0'}%</span>
                                                    化解成功:{data?.finishNum || 0}件 | 成功率:<span style={{ color: '#00B42A' }}>{((data?.finishNum*100)/(data?.finishNum+data?.failNum) || 0).toFixed(2)}%</span>
                                                    <img style={{ width: '14px', height: '14px', marginLeft: '8px' }} src={workDash_5} alt="" srcset="" />
                                                </span>
                                            </div>
                                        </Space>
                                    </div>
                                    <div className="workDash-item-value">
                                        <div style={{ width: '50px' }}>{data?.finishNum || 0}</div>
                                        <div style={{ width: '50px' }}>{data?.finishNum+data?.failNum || 0}</div>
                                        <div style={{ width: '36px' }}></div>
                                        <Space split={<Divider type="vertical" />}>
                                            <div>
                                                <span className="workDash-item-title-red"></span>
                                                <span style={{ color: '#4E5969', fontSize: '14px' }}>化解不成功:{data?.unResolveNum || 0}件</span>
                                                <span style={{ color: '#4E5969', fontSize: '14px' }}>化解不成功:{data?.failNum || 0}件</span>
                                            </div>
                                        </Space>
                                    </div>