| | |
| | | |
| | | import React, { useEffect, useState } from 'react'; |
| | | import Page from '../../components/Page/index'; |
| | | import NewPage from '../../components/NewPage/index'; |
| | | import { Form, Typography, Space, Tooltip } from 'antd'; |
| | | import { FolderFilled } from '@ant-design/icons'; |
| | | import * as $$ from '../../utils/utility'; |
| | |
| | | import TableView from '../../components/TableView'; |
| | | import NewTableSearch from '../../components/NewTableSearch'; |
| | | import MyTabs from '../../components/MyTabs'; |
| | | |
| | | import './index.less' |
| | | const { Link } = Typography; |
| | | |
| | | // 获取数据 |
| | | function getMyMediationDataApi(submitData) { |
| | | return $$.ax.request({ url: 'caseTask/pageMyMediate', type: 'get', data: submitData, service: 'mediate' }); |
| | | function getCaseInfoDataApi(submitData) { |
| | | return $$.ax.request({ url: 'caseInfo/pageQueryAll', type: 'get', data: submitData, service: 'mediate' }); |
| | | } |
| | | |
| | | function getCacheLatjCaseGuideApi(submitData) { |
| | |
| | | let navigate = useNavigate(); |
| | | |
| | | // 搜索 |
| | | const [search, setSearch] = useState({ page: 1, size: 10, pageType: '1', joinRole: '1' }); |
| | | const [search, setSearch] = useState({ page: 1, size: 10, }); |
| | | |
| | | // 数据 |
| | | 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: '事项状态', width: 80, dataIndex: 'statusName' }, |
| | | { title: '事项来源', width: 80, dataIndex: 'canalName' }, |
| | | { title: '事项等级', width: 80, dataIndex: 'caseLevel' }, |
| | | { title: '纠纷类型', width: 150, dataIndex: 'caseTypeName' }, |
| | | { title: '承办部门', width: 150, dataIndex: 'mediateUnitName' }, |
| | | { title: '配合部门', width: 150, dataIndex: 'assistUnitName' }, |
| | | // 22_00025-1 成功 22_00025-2 化解不成功 |
| | | { title: '化解结果', width: 100, dataIndex: 'mediResult', render: (text) => <div className={text === '22_00025-1' ? 'comprehensive-green' : text === '22_00025-2' ? 'comprehensive-red' : '-'} >{text === '22_00025-1' ? '化解成功' : text === '22_00025-2' ? '化解不成功' : '-'}</div> }, |
| | | { title: '办结时间', width: 100, dataIndex: 'closeTime', render: (text) => <span>{$$.dateFormat(text)}</span> }, |
| | | { title: '申请方', dataIndex: 'action', render: (text, record) => <div>{record.plaintiffList?.length > 0 ? record.plaintiffList?.map(i => i.trueName)?.join(',') : '-'}</div> }, |
| | | { title: '被申请方', dataIndex: 'action', render: (text, record) => <div>{record.defendantList?.length > 0 ? record.defendantList?.map(i => i.trueName)?.join(',') : '-'}</div> }, |
| | | { title: '登记机构', dataIndex: 'inputUnitName' }, |
| | | { |
| | | 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 <Link onClick={() => handleJump(record)}>详情</Link>; |
| | | }, |
| | | }, |
| | | ]; |
| | |
| | | function handleChangePage(page, pageSize) { |
| | | let paramsObj = Object.assign(search, { page, size: pageSize }); |
| | | setSearch(paramsObj); |
| | | getMyMediationData(paramsObj); |
| | | getCaseInfoData(paramsObj); |
| | | } |
| | | |
| | | |
| | | // 导出数据 |
| | | function downloadXls() { |
| | | window.open(`${$$.appUrl.baseUrl}/dyh-mediate/api/web/caseInfo/exportQueryAll`); |
| | | }; |
| | | |
| | | // 搜索 or 重置 |
| | | function handleSearch(type, session) { |
| | |
| | | $$.changeTimeFormat(paramsObj, 'mediStartTime', 'mediStartTimeStart', 'mediStartTimeEnd'); |
| | | } |
| | | if (type === 'reset') { |
| | | paramsObj = { page: 1, size: 10, pageType: '1', joinRole: '1' }; |
| | | paramsObj = { page: 1, size: 10 }; |
| | | form.resetFields(); |
| | | form.setFieldsValue({ joinRole: '1' }); |
| | | } |
| | |
| | | } |
| | | form.setFieldsValue(copyObj); |
| | | } |
| | | getMyMediationData(paramsObj, session?.tableActive); |
| | | getCaseInfoData(paramsObj, session?.tableActive); |
| | | } |
| | | |
| | | // 获取数据 |
| | | async function getMyMediationData(submitData, tableActive) { |
| | | async function getCaseInfoData(submitData, tableActive) { |
| | | global.setSpinning(true); |
| | | const res = await getMyMediationDataApi(submitData); |
| | | const res = await getCaseInfoDataApi(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, |
| | | total: res.data?.totalElements, |
| | | tableData: res.data?.content || [], |
| | | }); |
| | | } |
| | | } |
| | |
| | | } |
| | | }, []); |
| | | |
| | | 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"> |
| | | <NewPage |
| | | pageHead={ |
| | | { breadcrumbData: [{ title: '工作台' }, { title: '综合查询' }], title: '综合查询' } |
| | | } |
| | | > |
| | | <div className="comprehensive"> |
| | | <div className="pageSearch"> |
| | | <div className='comprehensive-title'>查询条件</div> |
| | | <NewTableSearch |
| | | exportButton={downloadXls} |
| | | 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: 'RangePicker', name: 'acceptTime', label: '办结时间', span: 8 }, |
| | | { type: 'RangePicker', name: 'acceptTime', label: '归档时间', span: 8 }, |
| | | { |
| | | type: 'Select', |
| | | name: 'joinRole', |
| | | label: '参与角色', |
| | | label: '纠纷类型', |
| | | span: 12, |
| | | 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 }, |
| | | { |
| | | type: 'Select', |
| | | name: 'joinRole', |
| | | label: '承办部门', |
| | | selectdata: [ |
| | | { label: '我负责的', value: '1' }, |
| | | { label: '我协助的', value: '2' }, |
| | | ], |
| | | }, |
| | | { |
| | | type: 'Select', |
| | | name: 'joinRole', |
| | | label: '登记机构', |
| | | selectdata: [ |
| | | { label: '我负责的', value: '1' }, |
| | | { label: '我协助的', value: '2' }, |
| | | ], |
| | | }, |
| | | { type: 'Input', name: 'defendants', label: '被申请人' }, |
| | | { type: 'Input', name: 'caseNo', label: '调解案号' }, |
| | | ]} |
| | | 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"> |
| | | |
| | | <div style={{ marginTop: '8px' }} className="pageTable"> |
| | | <TableView |
| | | showHeader |
| | | title="查询结果" |
| | |
| | | /> |
| | | </div> |
| | | </div> |
| | | </Page> |
| | | </NewPage> |
| | | ); |
| | | }; |
| | | |