4 files added
6 files modified
| | |
| | | * @Company: hugeInfo |
| | | * @Author: ldh |
| | | * @Date: 2022-02-16 11:25:57 |
| | | * @LastEditTime: 2024-09-09 10:07:53 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @LastEditTime: 2024-09-10 09:56:16 |
| | | * @LastEditors: lwh |
| | | * @Version: 1.0.0 |
| | | * @Description: api地址 |
| | | */ |
| | | export const debug = { |
| | | // web服务 |
| | | // baseUrl: 'http://gz.hugeinfo.com.cn', |
| | | baseUrl: "http://192.168.3.108:9002", |
| | | // baseUrl: 'http://mdqgnh.natappfree.cc', |
| | | // web服务 |
| | | // baseUrl: 'http://gz.hugeinfo.com.cn', |
| | | // baseUrl: "http://192.168.3.108:9002", |
| | | // baseUrl: 'http://6dycet.natappfree.cc', //yj |
| | | baseUrl: 'http://8pxgs3.natappfree.cc', |
| | | // 附件服务 |
| | | // fileUrl: "http://192.168.3.108:9002", |
| | | // fileUrl: 'http://gz.hugeinfo.com.cn', |
| | | // fileUrl: 'http://6dycet.natappfree.cc', |
| | | fileUrl: 'http://8pxgs3.natappfree.cc', |
| | | // 文件查看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', |
| | | |
| | | // 附件服务 |
| | | fileUrl: "http://192.168.3.108:9002", |
| | | // fileUrl: 'http://gz.hugeinfo.com.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", |
| | | |
| | | // 不同服务接口type |
| | | mediate: "dyh-mediate", // dyh-mediate |
| | | cust: "dyh-cust", // dyh-cust |
| | | oper: "dyh-oper", // dyh-oper |
| | | sys: "dyh-sys", // dyh-sys |
| | | disp: "dyh-disp", //dyh-disp |
| | | utils: "dyh-utils", |
| | | // 不同服务接口type |
| | | mediate: 'dyh-mediate', // dyh-mediate |
| | | cust: 'dyh-cust', // dyh-cust |
| | | oper: 'dyh-oper', // dyh-oper |
| | | sys: 'dyh-sys', // dyh-sys |
| | | disp: 'dyh-disp', //dyh-disp |
| | | utils: 'dyh-utils', |
| | | }; |
| | | |
| | | // 正式版 |
| | | export const web = { |
| | | // web服务 |
| | | baseUrl: "/gz-dyh", |
| | | // baseUrl: 'http://146.4.99.61:8088/byzfw', |
| | | // web服务 |
| | | baseUrl: '/gz-dyh', |
| | | // baseUrl: 'http://146.4.99.61:8088/byzfw', |
| | | |
| | | // 附件服务 |
| | | fileUrl: "https://dyh.hugeinfo.com.cn", |
| | | // 附件服务 |
| | | fileUrl: 'https://dyh.hugeinfo.com.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: "dyh-mediate", // dyh-mediate |
| | | cust: "dyh-cust", // dyh-cust |
| | | oper: "dyh-oper", // dyh-oper |
| | | sys: "dyh-sys", // dyh-sys |
| | | disp: "dyh-disp", //dyh-disp |
| | | utils: "dyh-utils", |
| | | // 不同服务接口type |
| | | mediate: 'dyh-mediate', // dyh-mediate |
| | | cust: 'dyh-cust', // dyh-cust |
| | | oper: 'dyh-oper', // dyh-oper |
| | | sys: 'dyh-sys', // dyh-sys |
| | | disp: 'dyh-disp', //dyh-disp |
| | | utils: 'dyh-utils', |
| | | }; |
New file |
| | |
| | | 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; |
New file |
| | |
| | | @import '../../styles/theme.less'; |
| | | |
| | | // 查看更多 |
| | | .tableSearch-searchMore { |
| | | color: @main-color; |
| | | margin-left: 16px; |
| | | cursor: pointer; |
| | | |
| | | &-icon { |
| | | transition: transform 0.3s; |
| | | } |
| | | |
| | | &-iconRotate { |
| | | transform: rotate(180deg); |
| | | } |
| | | } |
| | |
| | | * @Company: hugeInfo |
| | | * @Author: ldh |
| | | * @Date: 2022-03-28 11:22:41 |
| | | * @LastEditTime: 2024-09-08 15:15:51 |
| | | * @LastEditors: dminyi 1301963064@qq.com |
| | | * @LastEditTime: 2024-09-10 09:35:19 |
| | | * @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'; |
| | |
| | | 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 = () => { |
| | | // 判断用户修改自身信息时更新头部的用户名称 |
| | |
| | | <Route path="visit/eventFlow/:caseTaskId?/:caseId?" element={<EventFlow />} /> |
| | | <Route path="visit/handleFeedback/:caseTaskId?/:caseId?" element={<HandleFeedback />} /> |
| | | <Route path="visit/fileMessage" 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 />} /> |
| | |
| | | <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" />} /> |
| | | {/* 基础信息管理 */} |
New file |
| | |
| | | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | // 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 |
| | |
| | | */ |
| | | data: { |
| | | imgUrl: $$.url.img, |
| | | fileUrl: $$.baseUrl + $$.url.fileShowUrl, |
| | | submitData: {}, |
| | | oneList: [], |
| | | fileList: [] |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 预览图片 |
| | | 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(); |
| | |
| | | |
| | | <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" /> |
| | |
| | | }); |
| | | 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({ |