forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-10 0ad93f9314ffa6db1c4da2c0be5cec1c02f10bea
Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master
4 files added
6 files modified
688 ■■■■ changed files
gz-customerSystem/src/api/appUrl.js 20 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/components/NewTableSearch/index.jsx 150 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/components/NewTableSearch/index.less 16 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/router/router.js 141 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/comprehensive/index.jsx 324 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/comprehensive/index.less patch | view | raw | blame | history
gz-wxparty/api/api.js 8 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterDetail/index.js 13 ●●●●● patch | view | raw | blame | history
gz-wxparty/pages/myRegisterList/index.wxml 2 ●●● patch | view | raw | blame | history
gz-wxparty/pages/register/index.js 14 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/api/appUrl.js
@@ -2,8 +2,8 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-16 11:25:57
 * @LastEditTime: 2024-09-10 09:48:04
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-10 09:56:16
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: api地址
 */
@@ -44,14 +44,14 @@
  // 附件服务
  fileUrl: "https://zfw-dyh.by.gov.cn",
  // 文件查看url 后面接附件编号
  fileShowUrl: "/dyh-sys/api/v1/fileInfo/show/",
  // 文件下载url 后面接附件编号
  fileDownUrl: "/dyh-sys/api/v1/fileInfo/down/",
  // 在线文档编辑链接
  fileDocx: "/word/docDraft/showWord",
  // 签章的文档编辑链接
  fileDocx2: "/InsertSeal/Word/AddSeal1/Word1",
    // 文件查看url 后面接附件编号
    fileShowUrl: '/dyh-sys/api/v1/fileInfo/show/',
    // 文件下载url 后面接附件编号
    fileDownUrl: '/dyh-sys/api/v1/fileInfo/down/',
    // 在线文档编辑链接
    fileDocx: '/word/docDraft/showWord',
    // 签章的文档编辑链接
    fileDocx2: '/InsertSeal/Word/AddSeal1/Word1',
  // 不同服务接口type
  mediate: "gzdyh-mediate", // dyh-mediate
gz-customerSystem/src/components/NewTableSearch/index.jsx
New file
@@ -0,0 +1,150 @@
import React, { useState } from 'react';
import PropTypes from 'prop-types';
import { Form, Row, Col, Input, DatePicker, Select, Button, TreeSelect } from 'antd';
import { DownOutlined } from '@ant-design/icons';
import * as $$ from '../../utils/utility';
import './index.less';
const { RangePicker } = DatePicker;
const { Option } = Select;
/**
 * form, // form组件
 * itemData, // 搜索的数据数组
 * labelLength, // form的label标签字符串的长度
 * rowNum, // 一行放多少个搜索item
 * handleRest, // 重置
 * handleSearch, // 搜索
 */
const NewTableSearch = ({ form, itemData, labelLength = 5, rowNum = 3, handleReset, handleSearch }) => {
  const [searchMore, setSearchMore] = useState(false);
  const span = 24 / rowNum;
  let display = false;
  // 是否需要展开 or 收起
  const lineNum = rowNum * 2;
  if (itemData.length > lineNum) display = true;
  // 系统字体大小
  const fontSize = parseInt(getComputedStyle(window.document.getElementsByTagName('HTML')[0]).fontSize);
  // 输出placeholder
  function setPlaceholder(key, type) {
    let str = '';
    switch (key) {
      case 'caseNo':
        str = '输入查询案号';
        break;
      case 'judicNo':
        str = '输入查询司法确认案号';
        break;
      case 'plaintiffs':
        str = '申请方当事人/代理人姓名';
        break;
      case 'defendants':
        str = '被申请方当事人/代理人姓名';
        break;
      case 'addr':
        str = '输入纠纷发生详细地址的关键词';
        break;
      default:
        str = type === 'Select' ? '全部' : '请输入';
        break;
    }
    return str;
  }
  return (
    <Form form={form} labelAlign="right" className="tableSearch">
      <Row gutter={[24, 16]}>
        {itemData.map((x, t) => {
          let placeholder = x.placeholder || setPlaceholder(x.name, x.type);
          let allowClear = x.allowClear || true;
          let dom = null;
          let rules = {};
          if (x.type === 'Input') {
            dom = <Input placeholder={placeholder} allowClear {...x} />;
            rules = { max: x.max || 32, message: '搜索内容过长' };
          }
          if (x.type === 'Select') {
            dom = (
              <Select allowClear placeholder={placeholder} {...x}>
                {x.selectdata?.map((y) => (
                  <Option key={y.value}>{y.label}</Option>
                ))}
              </Select>
            );
          }
          if (x.type === 'RangePicker') {
            rules = { type: 'array' };
            dom = (
              <RangePicker
                style={{ width: '100%' }}
                ranges={{
                  '今日': [$$.myMoment(), $$.myMoment()],
                  '本月': [$$.myMoment().startOf('month'), $$.myMoment().endOf('month')],
                }}
                allowClear
                {...x}
              />
            );
          }
          if (x.type === 'TreeSelect') {
            dom = (
              <TreeSelect
                showSearch
                placeholder={placeholder}
                dropdownStyle={{ maxHeight: 500, overflow: 'auto' }}
                treeData={x.treedata}
                treeDefaultExpandAll
                allowClear
                filterTreeNode={(inputValue, treeNode) => (treeNode.label.indexOf(inputValue) !== -1 ? true : false)}
                {...x}
              />
            );
          }
          return (
            <>
              <Col span={8} style={display && { display: searchMore ? 'block' : t < lineNum ? 'block' : 'none' }} key={t + 1}>
                <Form.Item name={x.name} rules={[rules]} label={<div style={{ width: `${fontSize * labelLength}px` }}>{x.label}</div>}>
                  {dom}
                </Form.Item>
              </Col>
              <Col span={8}></Col>
              <Col span={8}></Col>
            </>
          );
        })}
      </Row>
      <Row style={{ marginTop: '16px' }}>
        <Col span={24} style={{ textAlign: 'right' }}>
          <Button className="public-buttonMargin" onClick={handleReset}>
            重置
          </Button>
          <Button type="primary" htmlType="submit" onClick={handleSearch}>
            查询
          </Button>
          {display && (
            <span className="tableSearch-searchMore" onClick={() => setSearchMore(!searchMore)}>
              {!searchMore ? '展开' : '折叠'}
              <DownOutlined className={`tableSearch-searchMore-icon ${searchMore && 'tableSearch-searchMore-iconRotate'}`} />
            </span>
          )}
        </Col>
      </Row>
    </Form>
  );
};
NewTableSearch.propTypes = {
  itemData: PropTypes.array,
  labelLength: PropTypes.number,
  rowNum: PropTypes.number,
  handleReset: PropTypes.func,
  handleSearch: PropTypes.func,
};
export default NewTableSearch;
gz-customerSystem/src/components/NewTableSearch/index.less
New file
@@ -0,0 +1,16 @@
@import '../../styles/theme.less';
// 查看更多
.tableSearch-searchMore {
    color: @main-color;
    margin-left: 16px;
    cursor: pointer;
    &-icon {
        transition: transform 0.3s;
    }
    &-iconRotate {
        transform: rotate(180deg);
    }
}
gz-customerSystem/src/router/router.js
@@ -2,88 +2,83 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-03-28 11:22:41
 * @LastEditTime: 2024-09-09 15:48:38
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-10 10:14:40
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: 路由
 */
import React, { useState } from "react";
import { ConfigProvider, Empty } from "antd";
import "moment/locale/zh-cn";
import zhCN from "antd/es/locale/zh_CN";
import {
  HashRouter as Router,
  Route,
  Routes,
  Navigate,
} from "react-router-dom";
import Loading from "../components/Loading";
import React, { useState } from 'react';
import { ConfigProvider, Empty } from 'antd';
import 'moment/locale/zh-cn';
import zhCN from 'antd/es/locale/zh_CN';
import { HashRouter as Router, Route, Routes, Navigate } from 'react-router-dom';
import Loading from '../components/Loading';
import Layout from "../components/Layout";
import Layout from '../components/Layout';
// 工作台
import Workbench from "../views/workbench";
import Workbench from '../views/workbench';
//登录注册
import LogAndSign from "../views/logAndSign";
import LogAndSign from '../views/logAndSign';
// 基础信息管理 - 角色管理
import Role from "../views/basicInformation/role";
import Role from '../views/basicInformation/role';
// 基础信息管理 - 部门组织
import Organization from "../views/basicInformation/organization";
import Organization from '../views/basicInformation/organization';
// 基础信息管理 - 人员管理
import Personnel from "../views/basicInformation/personnel";
import Personnel from '../views/basicInformation/personnel';
// 纠纷登记 - 快速登记
import Register from "../views/disputeRegistration/register";
import Register from '../views/disputeRegistration/register';
// 纠纷登记 - 常规登记
import CasePerfection from "../views/disputeRegistration/casePerfection";
import CasePerfection from '../views/disputeRegistration/casePerfection';
// 纠纷登记 - 草稿箱
import RegisterList from "../views/disputeRegistration/registerList";
import RegisterList from '../views/disputeRegistration/registerList';
// 签收列表
import SignForList from "../views/signForList";
import SignForList from '../views/signForList';
// 文件查看页面
import FilesCheck from "../views/filesCheck";
import FilesCheck from '../views/filesCheck';
// 案件详情页
import CaseDetail from "../views/caseDetail";
import CaseDetail from '../views/caseDetail';
// 调解总览修改页面
import Modify from "../views/caseDetail/components/modify";
import Modify from '../views/caseDetail/components/modify';
// 调度处理 - 调度中心
import MediateList from "../views/dispatch/mediateList";
import MediateList from '../views/dispatch/mediateList';
// 调度处理 - 调度历史
import MediateHis from "../views/dispatch/mediateHis";
import MediateHis from '../views/dispatch/mediateHis';
// 调度处理 - 预审异常
import MediateAbnormal from "../views/dispatch/mediateAbnormal";
import MediateAbnormal from '../views/dispatch/mediateAbnormal';
// 任务处理 - 我的待办,我的已办
import TaskProcessing from "../views/task/taskProcessing";
import TaskProcessing from '../views/task/taskProcessing';
// 任务处理 - 我的退回
import MyReturn from "../views/task/myReturn";
import MyReturn from '../views/task/myReturn';
// 调解 - 我的调解
import MyMediation from "../views/mediate/myMediation";
import MyMediation from '../views/mediate/myMediation';
// 调解-一本账
import Ledger from "../views/mediate/ledger";
import LedgerEdit from "../views/mediate/ledger/ledgerEdit";
import Ledger from '../views/mediate/ledger';
import LedgerEdit from '../views/mediate/ledger/ledgerEdit';
// 调解 - 调解档案
import MediateArchives from "../views/mediate/mediateArchives";
import MediateArchives from '../views/mediate/mediateArchives';
// 调解 - 调解总览
import MediateAll from "../views/mediate/mediateAll";
import MediateAll from '../views/mediate/mediateAll';
//调解 - 调解大数据
import MediateBigData from "../views/mediate/mediateBigData";
import MediateBigData from '../views/mediate/mediateBigData';
// 司法联动
import JudicialLinkage from "../views/judicialLinkage";
import JudicialLinkage from '../views/judicialLinkage';
// 网格联动
import GridLinkage from "../views/gridLinkage";
import GridLinkage from '../views/gridLinkage';
// 人民调解联动
import RmtjLinkage from "../views/mediate/rmtjLinkage";
import RmtjLinkage from '../views/mediate/rmtjLinkage';
// 人民调解初审
import FirstTrial from "../views/mediate/firstTrial";
import FirstTrial from '../views/mediate/firstTrial';
// 司法局审核
import JudicialExamine from "../views/mediate/judicialExamine";
import JudicialExamine from '../views/mediate/judicialExamine';
// 调解视窗
import MediationWindow from '../views/mediationWindow';
@@ -91,63 +86,66 @@
import MediationWindowDetail from '../views/mediationWindow/detail';
// 调解视窗 - 调解成功
import MediationWindowSuccess from "../views/mediationWindow/success";
import MediationWindowSuccess from '../views/mediationWindow/success';
// 司法确认视窗
import JudicialWindow from "../views/judicialWindow";
import JudicialWindow from '../views/judicialWindow';
// 司法确认 - 申请列表
import ApplicationList from "../views/judicialConfirmation/applicationList";
import ApplicationList from '../views/judicialConfirmation/applicationList';
// 司法确认 - 申请列表 - 发起申请
import ApplyJudicial from "../views/judicialConfirmation/applicationList/ApplyJudicial";
import ApplyJudicial from '../views/judicialConfirmation/applicationList/ApplyJudicial';
// 司法确认 - 申请列表 - 详情查看
import JudicialApplyDetail from "../views/judicialConfirmation/applicationList/JudicialApplyDetail";
import JudicialApplyDetail from '../views/judicialConfirmation/applicationList/JudicialApplyDetail';
// 司法确认 - 申请审查列表
import CourtOffice from "../views/judicialConfirmation/courtOffice";
import CourtOffice from '../views/judicialConfirmation/courtOffice';
// 司法确认 - 申请审查列表 - 审查
import JudicialAudit from "../views/judicialConfirmation/courtOffice/JudicialAudit";
import JudicialAudit from '../views/judicialConfirmation/courtOffice/JudicialAudit';
// 司法确认 - 审查历史列表
import CourtReview from "../views/judicialConfirmation/courtReview";
import CourtReview from '../views/judicialConfirmation/courtReview';
// 司法确认 - 审查历史列表 - 详情
import JudicialAuditDetail from "../views/judicialConfirmation/courtReview/JudicialAuditDetail";
import JudicialAuditDetail from '../views/judicialConfirmation/courtReview/JudicialAuditDetail';
// 司法确认 - 司法确认分案
import JudicialDivision from "../views/judicialConfirmation/judicialDivision";
import JudicialDivision from '../views/judicialConfirmation/judicialDivision';
// 司法确认 - 司法确认分案 - 分案
import JudicialDivisionDetail from "../views/judicialConfirmation/judicialDivision/JudicialDivisionDetail";
import JudicialDivisionDetail from '../views/judicialConfirmation/judicialDivision/JudicialDivisionDetail';
// 司法确认 - 我的司法确认
import MyConfirmation from "../views/judicialConfirmation/myConfirmation";
import MyConfirmation from '../views/judicialConfirmation/myConfirmation';
// 司法确认 - 总览
import JudicialOverview from "../views/judicialConfirmation/overview";
import JudicialOverview from '../views/judicialConfirmation/overview';
// 工作流
// 工作流模板管理
import WorkflowTemplate from "../views/workflow/workflowTemplate";
import WorkflowTemplate from '../views/workflow/workflowTemplate';
// 工作流模板管理 - 工作流模板新建,修改
import WorkflowTemplateEdit from "../views/workflow/workflowTemplate/WorkflowTemplateEdit";
import WorkflowTemplateEdit from '../views/workflow/workflowTemplate/WorkflowTemplateEdit';
// 工作流管理
import WorkflowManage from "../views/workflow/workflowManage";
import WorkflowManage from '../views/workflow/workflowManage';
// 工作流管理 - 工作流新建,修改
import WorkflowManageEdit from "../views/workflow/workflowManage/WorkflowManageEdit";
import WorkflowManageEdit from '../views/workflow/workflowManage/WorkflowManageEdit';
// 工作流管理 - 工作流详情查看
import WorkflowManageDetail from "../views/workflow/workflowManage/WorkflowManageDetail";
import WorkflowManageDetail from '../views/workflow/workflowManage/WorkflowManageDetail';
// 综合查询
import Comprehensive from '../views/comprehensive';
// 数据分析
import DataSearch from "../views/statistic/dataSearch";
import DataSearch from '../views/statistic/dataSearch';
//来访登记
import Visit from "../views/register/visit";
import Visit from '../views/register/visit';
//事件流转
import EventFlow from "../views/register/eventFlow";
import EventFlow from '../views/register/eventFlow';
//办理反馈
import HandleFeedback from "../views/register/handleFeedback";
import HandleFeedback from '../views/register/handleFeedback';
//档案信息
import FileMessage from "../views/register/matterDetail/fileMessage";
import FileMessage from '../views/register/matterDetail/fileMessage';
//结案审核
import ClosingReview from "../views/register/closingReview";
import ClosingReview from '../views/register/closingReview';
//工作台
import VisitWorkBench from "../views/register";
import VisitWorkBench from '../views/register';
import Test from "../views/test";
import Test from '../views/test';
const Routers = () => {
    // 判断用户修改自身信息时更新头部的用户名称
@@ -222,8 +220,8 @@
                        <Route path="visit/eventFlow/:caseTaskId?/:caseId?" element={<EventFlow />} />
                        <Route path="visit/handleFeedback/:caseTaskId?/:caseId?" element={<HandleFeedback />} />
                        <Route path="visit/fileMessage/:caseTaskId?/:caseId?" element={<FileMessage />} />
                        <Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />}/>
                        <Route path="visit/visitWorkBench" element={<VisitWorkBench />}/>
                        <Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />} />
                        <Route path="visit/visitWorkBench" element={<VisitWorkBench />} />
                        {/* 工作流模块 */}
                        <Route path="workflowTemplate" element={<WorkflowTemplate />} />
@@ -231,12 +229,13 @@
                        <Route path="workflowManage" element={<WorkflowManage />} />
                        <Route path="workflowManage/workflowManageEdit" element={<WorkflowManageEdit />} />
                        <Route path="workflowManage/workflowManageDetail" element={<WorkflowManageDetail />} />
                        {/* 综合查询 */}
                        <Route path="comprehensive" element={<Comprehensive />} />
                        {/* 数据分析 */}
                        <Route path="dataSearch" element={<DataSearch />} />
                        {/* 调解视窗成功页 */}
                        <Route path="myAdjust/mediationWindowSuccess" element={<MediationWindowSuccess />} />
                    </Route>
                    <Route path="/operation" element={<Navigate to="/operation/personnel" />} />
                    {/* 基础信息管理 */}
gz-customerSystem/src/views/comprehensive/index.jsx
New file
@@ -0,0 +1,324 @@
import React, { useEffect, useState } from 'react';
import Page from '../../components/Page/index';
import { Form, Typography, Space, Tooltip } from 'antd';
import { FolderFilled } from '@ant-design/icons';
import * as $$ from '../../utils/utility';
import { useLocation, useNavigate } from 'react-router-dom';
import TableView from '../../components/TableView';
import NewTableSearch from '../../components/NewTableSearch';
import MyTabs from '../../components/MyTabs';
const { Link } = Typography;
// 获取数据
function getMyMediationDataApi(submitData) {
  return $$.ax.request({ url: 'caseTask/pageMyMediate', type: 'get', data: submitData, service: 'mediate' });
}
function getCacheLatjCaseGuideApi(submitData) {
  return $$.ax.request({ url: 'guide/cacheLatjCaseGuide', type: 'get', data: submitData, service: 'mediate' });
}
function getCacheOpenAiCaseGuideApi(submitData) {
  return $$.ax.request({ url: 'guide/cacheOpenAiCaseGuideList', type: 'get', data: submitData, service: 'mediate' });
}
const Comprehensive = () => {
  const [form] = Form.useForm();
  let location = useLocation();
  let navigate = useNavigate();
  // 搜索
  const [search, setSearch] = useState({ page: 1, size: 10, pageType: '1', joinRole: '1' });
  // 数据
  const [data, setData] = useState({ tableData: [] });
  // 表头
  const columns = () => {
    const columnOne =
      search.pageType === '3'
        ? [
          {
            title: '调解结果',
            dataIndex: 'mediResultName',
            record: (text, record) =>
              !text ? '-' : <div className={`public-tag public-tag-${record.mediResult === '22_00025-1' ? 'tagGreen' : 'tagRed'}`}>{text}</div>,
          },
        ]
        : [];
    const columnTwo =
      search.pageType === '3'
        ? [{ title: '调解结束时间', dataIndex: 'mediEndTime' }]
        : [
          // TODO:暂时取消,后续可根据需求改动
          // {
          //     title: '处理时限',
          //     dataIndex: 'expireTime',
          //     render: (text, record) => {
          //         let obj = $$.getHours(text);
          //         return record.status === '1' ? (
          //             <span className={obj.isNegativeNum ? 'tableView-dangerTime' : ''}>{!!text ? `${obj.hours}小时` : '-'}</span>
          //         ) : (
          //             '-'
          //         );
          //     },
          // },
        ];
    const columnThree = search.joinRole === '2' ? [{ title: '调解员', dataIndex: 'mediator' }] : [];
    const columnsData = [
      {
        title: '调解案号',
        dataIndex: 'caseNo',
        render: (text, record) => (
          <Space size={0}>
            {record.taskType === '2' && <div className="myMediation-tuiTag">退</div>}
            {record.serieStatus === '2' ? (
              <Space size={4}>
                <FolderFilled className="public-folder" />
                <span>系列案</span>
              </Space>
            ) : (
              <Tooltip placement="topLeft" title={text}>
                {text}
              </Tooltip>
            )}
          </Space>
        ),
      },
      { title: '调解进度', dataIndex: 'processName' },
      ...columnOne,
      { title: '申请人', dataIndex: 'plaintiffs' },
      { title: '被申请人', dataIndex: 'defendants' },
      { title: '纠纷发生地', dataIndex: 'addr' },
      { title: '调解类型', dataIndex: 'mediTypeName' },
      { title: '纠纷类型', dataIndex: 'caseTypeName' },
      { title: '申请渠道', dataIndex: 'canalName' },
      { title: '纠纷受理时间', dataIndex: 'acceptTime' },
      ...columnTwo,
      ...columnThree,
      { title: '协助调解员', width: 100, dataIndex: 'otherMediator' },
      {
        title: '操作',
        dataIndex: 'action',
        width: 50,
        render: (_, record) => {
          let type = 'check';
          if (search.joinRole === '2') {
            type = 'check'
          } else if (search.joinRole === '1') {
            if (search.pageType == '3') {
              type = 'check';
            } else {
              type = 'handle'
            }
          }
          // if (search.joinRole === '1' && (search.pageType === '1' || search.pageType === '2')) {
          //   type = 'handle';
          // }
          // if (search.joinRole === '2' && (search.pageType === '1' || search.pageType === '2')) {
          //   type = 'feedback';
          // }
          // if (search.joinRole === '2' && search.pageType === '3' && record.feedbackStatus === '1') {
          //   type = 'feedback';
          // }
          return <Link onClick={() => handleJump(type, record)}>{type === 'check' ? '查看' : '调解'}</Link>;
        },
      },
    ];
    return columnsData;
  };
  // 跳转详情页
  function handleJump(type, info) {
    if (type === 'feedback') {
      // 协助反馈
      $$.setSessionStorage(location.pathname, {
        search,
        breadcrumbData: [{ title: '我的调解', url: '/mediate/myAdjust' }, { title: '我协助的' }],
        title: info.caseNo,
        tableActive: info.id,
        tabs: [{ label: '调解', key: 'feedBack' }],
        pageFrom: 'myMediationFeedBack',
      });
      navigate(`/mediate/caseDetail?caseId=${info.id}&taskId=${info.taskId}&back=${location.pathname}`);
    }
    // 查看
    if (type === 'check') {
      $$.setSessionStorage(location.pathname, {
        search,
        breadcrumbData: [{ title: '我的调解', url: '/mediate/myAdjust' }, { title: '查看' }],
        title: info.caseNo,
        tableActive: info.id,
        pageFrom: 'myMediation',
      });
      navigate(`/mediate/caseDetail?caseId=${info.id}&taskId=${info.taskId}&back=${location.pathname}`);
    }
    // 调解
    if (type === 'handle') {
      // getCacheOpenAiCaseGuide({ caseId: info.id, guideType: 3 })
      // getCacheLatjCaseGuide({ caseId: info.id })
      if (info.serieStatus === '2') {
        // 系列案
        $$.setSessionStorage(location.pathname, {
          search,
          breadcrumbData: [{ title: '我的调解', url: '/mediate/myAdjust' }, { title: '我负责的' }],
          title: info.caseNo,
          tableActive: info.id,
          tabs: [{ label: '调解', key: 'caseFolderFeedBack' }],
          pageFrom: 'myMediationCaseFolderFeedBack',
        });
        navigate(`/mediate/caseDetail?caseId=${info.id}&taskId=${info.taskId}&back=${location.pathname}`);
      } else {
        // 非系列案
        $$.setSessionStorage(location.pathname, {
          search,
          tableActive: info.id,
        });
        navigate(`/mediate/myAdjust/mediationWindow?caseId=${info.id}&taskId=${info.taskId}&taskType=${info.taskType}&back=${location.pathname}`);
      }
    }
  }
  // 页码修改
  function handleChangePage(page, pageSize) {
    let paramsObj = Object.assign(search, { page, size: pageSize });
    setSearch(paramsObj);
    getMyMediationData(paramsObj);
  }
  // 搜索 or 重置
  function handleSearch(type, session) {
    let paramsObj = {};
    if (type === 'search') {
      paramsObj = { ...search, ...form.getFieldsValue(), page: 1 };
      $$.changeTimeFormat(paramsObj, 'acceptTime', 'acceptStart', 'acceptEnd');
      $$.changeTimeFormat(paramsObj, 'mediEndTime', 'mediEndTimeStart', 'mediEndTimeEnd');
      $$.changeTimeFormat(paramsObj, 'mediStartTime', 'mediStartTimeStart', 'mediStartTimeEnd');
    }
    if (type === 'reset') {
      paramsObj = { page: 1, size: 10, pageType: '1', joinRole: '1' };
      form.resetFields();
      form.setFieldsValue({ joinRole: '1' });
    }
    if (type === 'recurrent') {
      paramsObj = { ...search, ...session.search };
      let copyObj = { ...paramsObj };
      if (copyObj.acceptStart) {
        copyObj.acceptTime = [$$.myMoment(copyObj.acceptStart), $$.myMoment(copyObj.acceptEnd)];
      }
      if (copyObj.mediEndTimeStart) {
        copyObj.mediEndTime = [$$.myMoment(copyObj.mediEndTimeStart), $$.myMoment(copyObj.mediEndTimeEnd)];
      }
      if (copyObj.mediStartTimeStart) {
        copyObj.mediStartTime = [$$.myMoment(copyObj.mediStartTimeStart), $$.myMoment(copyObj.mediStartTimeEnd)];
      }
      form.setFieldsValue(copyObj);
    }
    getMyMediationData(paramsObj, session?.tableActive);
  }
  // 获取数据
  async function getMyMediationData(submitData, tableActive) {
    global.setSpinning(true);
    const res = await getMyMediationDataApi(submitData);
    global.setSpinning(false);
    if (res.type) {
      setSearch(submitData);
      setData({
        total: res.data?.dtoPage?.totalElements,
        tableData: res.data?.dtoPage?.content || [],
        tableActive,
        countDtj: res.data.countDtj,
        countTjz: res.data.countTjz,
        countTjjs: res.data.countTjjs,
      });
    }
  }
  // 初始化
  useEffect(() => {
    let type = false;
    let values = $$.getSessionStorage(location.pathname);
    type = $$.getQueryString('isBack') && !!values;
    type ? handleSearch('recurrent', values) : handleSearch('reset');
    if (!!values) {
      $$.clearSessionStorage(location.pathname);
    }
  }, []);
  const countDtj = (search.pageType === '1' ? data.total : data.countDtj) || 0;
  const countTjz = (search.pageType === '2' ? data.total : data.countTjz) || 0;
  const countTjjs = (search.pageType === '3' ? data.total : data.countTjjs) || 0;
  return (
    <Page pageHead={{ title: '综合查询', subtitle: '管理员名下综合查询列表' }}>
      <div className="myMediation">
        <div className="myMediation-search">
          <NewTableSearch
            labelLength={6}
            form={form}
            itemData={[
              { type: 'RangePicker', name: 'acceptTime', label: '办结时间' },
              { type: 'RangePicker', name: 'acceptTime', label: '归档时间' },
              { type: 'Input', name: 'defendants', label: '被申请人' },
              { type: 'Input', name: 'caseNo', label: '调解案号' },
              { type: 'Input', name: 'addr', label: '纠纷发生地' },
              {
                type: 'Select',
                name: 'joinRole',
                label: '参与角色',
                selectdata: [
                  { label: '我负责的', value: '1' },
                  { label: '我协助的', value: '2' },
                ],
              },
              { type: 'RangePicker', name: 'mediStartTime', label: '调解开始时间' },
              { type: 'RangePicker', name: 'mediEndTime', label: '调解结束时间' },
              { type: 'Select', name: 'mediResult', label: '调解结果', selectdata: $$.options.mediResult },
            ]}
            handleReset={() => handleSearch('reset')}
            handleSearch={() => handleSearch('search')}
          />
        </div>
        <div className="pageTabs">
          <MyTabs
            tabs={[
              { key: '1', label: `待调解(${$$.showMoreNum(countDtj)})` },
              { key: '2', label: `调解中(${$$.showMoreNum(countTjz)})` },
              { key: '3', label: `调解结束(${$$.showMoreNum(countTjjs)})` },
            ]}
            activeKey={search.pageType}
            onChange={(activeKey) => getMyMediationData({ ...search, page: 1, size: 10, pageType: activeKey })}
          />
        </div>
        <div className="pageTable">
          <TableView
            showHeader
            title="查询结果"
            columns={columns()}
            dataSource={data.tableData}
            pagination={{
              current: search.page,
              pageSize: search.size,
              total: data.total,
              onChange: (page, pageSize) => handleChangePage(page, pageSize),
            }}
            rowClassName={(record) => (record.id === data.tableActive ? 'tableRowActive' : '')}
          />
        </div>
      </div>
    </Page>
  );
};
export default Comprehensive;
gz-customerSystem/src/views/comprehensive/index.less
gz-wxparty/api/api.js
@@ -20,11 +20,11 @@
  assets: 'https://zfw-dyh.by.gov.cn/gz/wechat/js/',
  txt: 'https://zfw-dyh.by.gov.cn/gz/wechat/txt/',
  // 文件查看url 后面接附件编号
  fileShowUrl: 'gzdyh-sys/api/v1/fileInfo/show/',
  // 文件下载url 后面接附件编号
  fileDownUrl: 'gzdyh-sys/api/v1/fileInfo/down/',
  // 不同服务接口type
  // fileShowUrl: 'dyh-sys',
  // fileDownUrl: 'dyh-sys',
  // mediate: 'dyh-mediate', // dyh-mediate
  // cust: 'dyh-cust', // dyh-cust
  // oper: 'dyh-oper', // dyh-oper
@@ -33,6 +33,8 @@
  // utils: 'dyh-utils', //dyh-utils
  // 正式环境
  fileShowUrl: 'gzdyh-sys',
  fileDownUrl: 'gzdyh-sys',
  mediate: 'gzdyh-mediate', // gzdyh-mediate
  cust: 'gzdyh-cust', // gzdyh-cust
  oper: 'gzdyh-oper', // gzdyh-oper
gz-wxparty/pages/myRegisterDetail/index.js
@@ -29,6 +29,7 @@
   */
  data: {
    imgUrl: $$.url.img,
    fileUrl: $$.baseUrl + $$.url.fileShowUrl,
    submitData: {},
    oneList: [],
    fileList: []
@@ -57,6 +58,18 @@
    });
  },
  // 预览图片
  handlePreviewImage(e) {
    let item = e.currentTarget.dataset.item;
    let index = e.currentTarget.dataset.index;
    console.log('item,', item);
    console.log('item,', `${this.data.fileUrl}${item.showUrl}`);
    wx.previewImage({
      current: `${this.data.fileUrl}${item.showUrl}`,
      urls: [`${this.data.fileUrl}${item.showUrl}`] // 需要预览的图片http链接列表
    });
  },
  // 获取纠纷案件详情
  async getById(data) {
    $$.showLoading();
gz-wxparty/pages/myRegisterList/index.wxml
@@ -13,7 +13,7 @@
<view class="list" wx:for="{{dataList}}" data-item="{{ item }}" data-index="{{ index }}" wx:key="index">
  <view style="{{!item.show&&'border-bottom:none'}}" class="list-top">
    <view>2024年7月12日反映诉求</view>
    <view><time-format format="YYYY年MM月DD日" value="{{item.createTime}}" />反映诉求</view>
    <view class="list-top-r">
      <view class="list-top-r-tag">{{item.processStatusName||'-'}}</view>
      <van-icon wx:if="{{item.show}}" size='16' bindtap="changeShow" data-index="{{ index }}" name="{{imgUrl}}myRegisterList_1.png" />
gz-wxparty/pages/register/index.js
@@ -382,13 +382,13 @@
        });
        return;
      }
      if (!this.data.fileList?.length <= 0) {
        // 附件上传提示
        this.setData({
          showFileTip: true
        })
        return;
      }
      // if (!this.data.fileList?.length <= 0) {
      //   // 附件上传提示
      //   this.setData({
      //     showFileTip: true
      //   })
      //   return;
      // }
      // 提交AI接口
      this.getaw(newData);
      this.setData({