广州市综治平台前端
xusd
8 days ago 0a81ff5257909cac9534b40b806484240c384f4d
fix:全流程督办;结案审核查看结案信息;纠纷类型调整
7 files modified
471 ■■■■■ changed files
src/utils/caseTypeSelect.js 225 ●●●● patch | view | raw | blame | history
src/views/disputeLedger/index.jsx 43 ●●●●● patch | view | raw | blame | history
src/views/register/closingReview/index.jsx 61 ●●●●● patch | view | raw | blame | history
src/views/register/eventFlow/component/EventFlow.jsx 61 ●●●● patch | view | raw | blame | history
src/views/register/matterDetail/fileMessage.jsx 2 ●●● patch | view | raw | blame | history
src/views/register/matterDetail/index.jsx 77 ●●●●● patch | view | raw | blame | history
src/views/windowDetail/index.jsx 2 ●●● patch | view | raw | blame | history
src/utils/caseTypeSelect.js
@@ -241,6 +241,13 @@
        "icon": null,
        "parentId": "24_01-4",
        "children": null
      },
      {
        "label": "道路交通事故纠纷",
        "value": "24_02-58",
        "icon": null,
        "parentId": "24_01-4",
        "children": null
      }
    ]
  },
@@ -310,6 +317,34 @@
      {
        "label": "租赁纠纷",
        "value": "24_02-46",
        "icon": null,
        "parentId": "24_01-7",
        "children": null
      },
      {
        "label": "山林土地纠纷",
        "value": "24_02-65",
        "icon": null,
        "parentId": "24_01-7",
        "children": null
      },
      {
        "label": "建设用地使用权纠纷",
        "value": "24_02-64",
        "icon": null,
        "parentId": "24_01-7",
        "children": null
      },
      {
        "label": "房屋宅基地纠纷",
        "value": "24_02-68",
        "icon": null,
        "parentId": "24_01-7",
        "children": null
      },
      {
        "label": "征地纠纷",
        "value": "24_02-66",
        "icon": null,
        "parentId": "24_01-7",
        "children": null
@@ -413,6 +448,34 @@
        "icon": null,
        "parentId": "24_01-1",
        "children": null
      },
      {
        "label": "知识产权纠纷",
        "value": "24_02-59",
        "icon": null,
        "parentId": "24_01-1",
        "children": null
      },
      {
        "label": "生产经营纠纷",
        "value": "24_02-69",
        "icon": null,
        "parentId": "24_01-1",
        "children": null
      },
      {
        "label": "股权转让纠纷",
        "value": "24_02-62",
        "icon": null,
        "parentId": "24_01-1",
        "children": null
      },
      {
        "label": "所有权纠纷",
        "value": "24_02-60",
        "icon": null,
        "parentId": "24_01-1",
        "children": null
      }
    ]
  },
@@ -430,22 +493,36 @@
        "children": null
      },
      {
        "label": "租赁纠纷",
        "value": "24_02-51",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
      },
      {
        "label": "劳务费",
        "value": "24_02-52",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
      },
      {
        "label": "其他民事经济纠纷",
        "value": "24_02-53",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
      },
      {
        "label": "借贷纠纷",
        "value": "24_02-57",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
      },
      {
        "label": "继承纠纷",
        "value": "24_02-61",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
      },
      {
        "label": "损害赔偿纠纷",
        "value": "24_02-63",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
      },
      {
        "label": "债务纠纷",
        "value": "24_02-73",
        "icon": null,
        "parentId": "24_01-9",
        "children": null
@@ -481,110 +558,32 @@
    "parentId": "root",
    "children": [
      {
        "label": "劳动争议纠纷",
        "value": "24_02-56",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },
      {
        "label": "借贷纠纷",
        "value": "24_02-57",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "道路交通事故纠纷",
        "value": "24_02-58",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "知识产权纠纷",
        "value": "24_02-59",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },{
        "label": "所有权纠纷",
        "value": "24_02-60",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "继承纠纷",
        "value": "24_02-61",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "股权转让纠纷",
        "value": "24_02-62",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "损害赔偿纠纷",
        "value": "24_02-63",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "建设用地使用权纠纷",
        "value": "24_02-64",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "山林土地纠纷",
        "value": "24_02-65",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "征地纠纷",
        "value": "24_02-66",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },
      {
        "label": "消费纠纷",
        "value": "24_02-67",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },
      {
        "label": "房屋宅基地纠纷",
        "value": "24_02-68",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "生产经营纠纷",
        "value": "24_02-69",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "环境污染纠纷",
        "value": "24_02-70",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "互联网纠纷",
        "value": "24_02-71",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }, {
        "label": "其他",
        "value": "24_02-72",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },
      {
        "label": "涉退役军人纠纷",
        "value": "24_02-74",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },
      {
        "label": "涉行政争议纠纷",
        "value": "24_02-75",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      },
      {
        "label": "涉法涉诉纠纷",
        "value": "24_02-76",
        "icon": null,
        "parentId": "24_01-11",
        "children": null
      }
    ]
  }
src/views/disputeLedger/index.jsx
@@ -116,6 +116,7 @@
    function handleSearch(type, session) {
        if (type === 'reset') {
            if (session) {
                // 获取图标数据
                getListData(
                    {
                        [session.key]: session.value[0],
@@ -132,7 +133,7 @@
                    },
                    activeKey
                );
                // 更新实时动态数据
                // 独立获取实时动态数据
                getCaseInfoData({
                    [session.key]: session.value[0],
                    createStart: $$.dateFormat(session.createStart),
@@ -140,6 +141,7 @@
                    ...listDataSearch
                });
            } else {
                // 获取图标数据
                getListData(
                    {
                        [normalSearch.key]: normalSearch.value[0],
@@ -156,7 +158,7 @@
                    },
                    activeKey
                );
                // 更新实时动态数据
                // 独立获取实时动态数据
                getCaseInfoData({
                    [normalSearch.key]: normalSearch.value[0],
                    createStart: $$.dateFormat(normalSearch.createStart),
@@ -172,9 +174,10 @@
            $$.changeTimNeweFormat(values, 'endTime', 'closeStart', 'closeEnd');
            $$.searchCascader(values, 'queCode', normalSearch.level, ['queCity', 'queArea', 'queRoad', 'queVillage']);
            $$.searchCascader(values, 'caseType', 1, ['caseType', 'caseType']);
            // 获取图标数据
            getListData({ ...values }, session);
            ledgerCount({ ...values }, session);
            // 更新实时动态数据
            // 独立获取实时动态数据
            getCaseInfoData({ ...values, ...listDataSearch });
            return;
        }
@@ -184,15 +187,6 @@
    async function getListData(submitData, ledgerType) {
        global.setSpinning(true);
        const res = await getListDataApi({ ...submitData, ledgerType });
        if (ledgerType === 0 || ledgerType === 1) {
            const res1 = await getCaseInfoDataApi({ ...submitData, ...listDataSearch }); //获取实时动态数据
            if (res1.type) {
                setListData({
                    total: res1?.data?.totalElements || 0,
                    tableData: res1?.data?.content || [],
                });
            }
        }
        global.setSpinning(false);
        if (res.type) {
            let nowData = res.data || {};
@@ -200,7 +194,6 @@
            // !allData.hasOwnProperty('sysNum') && ledgerCount(submitData, ledgerType);
            // setSearch(submitData);
        }
    }
    // 饼图点击进入下一层级
@@ -371,15 +364,31 @@
    // 页码修改
    function handleChangePage(page, pageSize) {
        let paramsObj = Object.assign({ ...normalSearch, ...listDataSearch }, { page, size: pageSize });
        // 获取表单中当前的值
        let values = form.getFieldsValue();
        // 处理时间格式
        $$.changeTimNeweFormat(values, 'createTime', 'createStart', 'createEnd');
        $$.changeTimNeweFormat(values, 'endTime', 'closeStart', 'closeEnd');
        // 处理级联选择器格式
        $$.searchCascader(values, 'queCode', normalSearch.level, ['queCity', 'queArea', 'queRoad', 'queVillage']);
        $$.searchCascader(values, 'caseType', 1, ['caseType', 'caseType']);
        // 构建分页参数
        let paramsObj = {
            ...values,
            ...listDataSearch,
            page,
            size: pageSize
        };
        getCaseInfoData({ ...paramsObj });
    }
    // 获取实时动态数据
    async function getCaseInfoData(submitData) {
        global.setSpinning(true);
        const res = await getCaseInfoDataApi({ ...submitData });
        global.setSpinning(false);
        setListDataSearch({ ...listDataSearch, page: submitData.page, size: submitData.size });
        if (res.type) {
            setListData({
@@ -399,8 +408,6 @@
    useEffect(() => {
        treeByUserId();
        // 初始化时获取实时动态数据
        getCaseInfoData({ ...listDataSearch });
    }, []);
    return (
src/views/register/closingReview/index.jsx
@@ -16,7 +16,11 @@
}
function listFeedbackApi(id) {
    return $$.ax.request({ url: `caseFeedback/listFeedback?id=` + id, type: 'get', service: 'mediate' });
  }
}
function getTransactResultApi(caseId) {
    return $$.ax.request({ url: `caseInfoUnfold/getTransactResult?caseId=${caseId}`, type: 'get', service: 'mediate' });
}
const myTab = [
    {
@@ -48,17 +52,32 @@
    const [tabsList, setTabsList] = useState([]);
    const [tabsActive, setTabsActive] = useState();
    const [list, setList] = useState([])
    const [TransactResult, setTransactResult] = useState([])
    useEffect(() => {
        getAuthor();
        listFeedback(caseId);
        getTransactResult(caseId);
    }, [])
    const getTransactResult = async (id) => {
        const res = await getTransactResultApi(id)
        if (res.type) {
            if (res.data) {
                setTransactResult({ ...res.data })
            } else {
                setTransactResult(null)
            }
        }
    }
    const listFeedback = async (id) => {
        const res = await listFeedbackApi(id)
        if (res.type) {
          let data = res.data.caseFeedbackList
          setList(data)
            let data = res.data.caseFeedbackList
            setList(data)
        }
      }
    }
    //获取权限tab和按钮权限
    const getAuthor = async () => {
        const res = await getTabButton(caseTaskId)
@@ -74,21 +93,21 @@
                //没有tab就不展示
            } else {
                const list = myTab.filter(item => {
          const flag = tabList.some(result => {
            if (result.id === item.key) {
              return true
            }
          })
          return flag
        }).map(item => {
          const data = tabList.find(res => res.id == item.key)
          return {
            ...item,
            label: data.name
          }
        })
        setTabsList(list)
        setTabsActive(moutedTab || list[0].key)
                    const flag = tabList.some(result => {
                        if (result.id === item.key) {
                            return true
                        }
                    })
                    return flag
                }).map(item => {
                    const data = tabList.find(res => res.id == item.key)
                    return {
                        ...item,
                        label: data.name
                    }
                })
                setTabsList(list)
                setTabsActive(moutedTab || list[0].key)
            }
        }
    }
@@ -96,10 +115,10 @@
    //根据id定义组件
    const getTypeDom = (key) => {
        if (key === 'dslxq' || key === 'sxxq') {
            return <EventFlow listFeedback={list} authorData={authorData} caseId={caseId} />
            return <EventFlow listFeedback={list} transactResult={TransactResult} authorData={authorData} caseId={caseId} />
        }
        if (key === 'sqjl') {
            return <ApplyInfo caseId={caseId}/>
            return <ApplyInfo caseId={caseId} />
        }
        if (key === 'jash') {
            return <ReviewExamine caseTaskId={caseTaskId} caseId={caseId} />
src/views/register/eventFlow/component/EventFlow.jsx
@@ -9,6 +9,7 @@
import AssignedModel from './AssignedModel';
import MatterDetail from '../../matterDetail';
import SupervisingView from '../../matterDetail/Supervising';
import SupervisingViews from '../../matterDetail/SupervisingViews';
import * as $$ from '@/utils/utility';
import { useNavigate } from 'react-router-dom';
import NotEntertained from './NotEntertained';
@@ -38,6 +39,11 @@
// 删除已结案数据
function deleteCaseInfoByIdApi(data) {
    return $$.ax.request({ url: `caseInfo/deleteCaseById`, type: 'post', service: 'mediate', data });
}
//督办添加id
function getNewTimeIdApi(id) {
    return $$.ax.request({ url: `caseUtils/getNewTimeId`, type: 'get', service: 'utils' });
}
@@ -154,18 +160,12 @@
            key: 'tabcl',
        },
        {
            label: '拒收',
            label: '督办',
            type: 'outline',
            click: () => {
                Modal.confirm({
                    title: '拒收确认',
                    content: '确定拒收吗?',
                    onOk: () => {
                        handleCaseCancel();
                    },
                });
                handleSupervisingAdd();
            },
            key: 'js',
            key: 'db',
            status: 'danger',
        },
    ];
@@ -180,6 +180,8 @@
    const [progressData, setProgressData] = useState({});
    const [notVisible, setNotVisible] = useState(false); //不予受理弹窗控制
    const [detailData, setDetailData] = useState({});
    const [supervising, setSupervising] = useState(false); //督办弹窗控制
    const [supervisingId, setSupervisingId] = useState('');
    useEffect(() => {
        if (props.authorData) {
@@ -270,6 +272,20 @@
        }
    };
    //添加督办
    const handleSupervisingAdd = () => {
        setSupervising(!supervising);
        getNewTimeId();
    };
    //获取添加督办id
    const getNewTimeId = async () => {
        const res = await getNewTimeIdApi();
        if (res.type) {
            setSupervisingId(res.data);
        }
    };
    return (
        <Fragment>
            <div className="dataSync">
@@ -287,7 +303,7 @@
                        </div>
                    )}
                    <MatterDetail listFeedback={props.listFeedback} caseId={props.caseId} detailData={detailData} windowDetail={props.windowDetail} gridDetail={props.gridDetail} />
                    <MatterDetail transactResult={props.transactResult} listFeedback={props.listFeedback} caseId={props.caseId} detailData={detailData} windowDetail={props.windowDetail} gridDetail={props.gridDetail} />
                    {props.authorType != 'sxxq' && (
                        <div className="dataSync-hasTabPage" style={{ marginTop: '-8px' }}>
@@ -392,6 +408,16 @@
                        }}
                    />
                </Modal>
                <SupervisingViews
                    visible={supervising}
                    title="督办"
                    handleOnCancel={() => setSupervising(false)}
                    caseId={props.caseId}
                    supervisingId={supervisingId}
                    getTableData={() => {
                        // 督办成功后可以在这里刷新数据
                    }}
                />
                {(!props?.windowDetail && !props?.gridDetail) && (
                    <div className="dataSync-excel">
                        <Space size="middle" style={{ margin: '4px 14px' }}>
@@ -411,6 +437,21 @@
                        </Space>
                    </div>
                )}
                {(props?.windowDetail || props?.gridDetail) && (
                    <div className="dataSync-excel">
                        <Space size="middle" style={{ margin: '4px 14px' }}>
                            {staticButtonList?.map((item) => {
                                const { label, key, click, ...rest } = item;
                                return (
                                    <Button key={key} onClick={click} {...rest}>
                                        {label}
                                    </Button>
                                );
                            })}
                        </Space>
                    </div>
                )}
            </div>
        </Fragment>
    );
src/views/register/matterDetail/fileMessage.jsx
@@ -495,7 +495,7 @@
      return <ApplyInfo caseId={caseId} />
    }
    if (key === 'dslxq' || key === 'sxxq') {
      return <EventFlow listFeedback={list} authorType={key} authorData={{ buttonList: staticButtonList }} caseId={caseId} caseTaskId={caseTaskId} moutedTab={moutedTab} />
      return <EventFlow transactResult={TransactResult} listFeedback={list} authorType={key} authorData={{ buttonList: staticButtonList }} caseId={caseId} caseTaskId={caseTaskId} moutedTab={moutedTab} />
    }
    if (key === 'sfqr') {
      return <div style={{ backgroundColor: '#ffff', margin: '0 16px 0px 16px', padding: '12px', marginTop: '8px' }}>
src/views/register/matterDetail/index.jsx
@@ -11,7 +11,7 @@
import AgentDialog from "../visit/component/agentDialog";
import { useNavigate } from 'react-router-dom';
import HandleRecord from './HandleRecord';
import MyPDF from '@/components/MyPDF';
function getCaseInfoApi(id) {
  return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
}
@@ -328,6 +328,81 @@
              <HandleRecord isReview={true} data={props?.listFeedback} noEdit />
            </div>)
          }
      {props?.transactResult && <>
        <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '16px', marginTop: '20px' }}>
          <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: props.transactResult.mediResult == '22_00025-2' ? '#f53f3f' : '#00b42a' }}>
              {props.transactResult.mediResultName || '-'}
            </td>
            <th bgcolor="#F7F8FA" className="table-title" width="120">经办人</th>
            <td width='380'>
              <NameCard2 name={props.transactResult.mediator} userId={props.transactResult.mediatorId} />
            </td>
          </tr>
          <tr>
            <th bgcolor="#F7F8FA" className="table-title">承办部门</th>
            <td>{props.transactResult.mediateUnitName || '-'}</td>
            <th bgcolor="#F7F8FA" className="table-title">配合部门</th>
            <td>{props.transactResult.assistUnitName || '-'}</td>
          </tr>
          <tr>
            <th bgcolor="#F7F8FA" className="table-title" width="120">受理时间</th>
            <td width='380'>{$$.minuteFormat(props.transactResult?.acceptTime) || '-'}</td>
            <th bgcolor="#F7F8FA" className="table-title" width="120">办结时间</th>
            <td width='380'>{$$.minuteFormat(props.transactResult?.closeTime) || '-'}</td>
          </tr>
          <tr>
            <th bgcolor="#F7F8FA" className="table-title" width="120">办理意见</th>
            <td width='380' colspan='3'>{props.transactResult?.handleContent || '-'}</td>
          </tr>
          {
            props.transactResult.mediResult == '22_00025-1' && <tr>
              <th bgcolor="#F7F8FA" className="table-title" width="120">协议履行情况</th>
              <td width='380' colspan='3'>{props.transactResult?.windupContent || '-'}</td>
            </tr>
          }
          {
            props.transactResult.mediResult == '22_00025-1' && <tr>
              <th bgcolor="#F7F8FA" className="table-title" width="120">协议类型</th>
              <td width='380' colspan='3'>{props.transactResult.agreeType == '24_00003-2' ? '书面协议' : '口头协议'}</td>
            </tr>
          }
          {
            props.transactResult.agreeType == '24_00003-1' && <tr>
              <th bgcolor="#F7F8FA" className="table-title" width="120">协议要点</th>
              <td width='380' colspan='3'>{props.transactResult?.agreeContent || '-'}</td>
            </tr>
          }
          {
            props.transactResult.agreeType == '24_00003-2' && <tr>
              <th bgcolor="#F7F8FA" className="table-title" width="120">协议文书</th>
              <td colspan='3'>
                <div style={{ display: 'flex', gap: '8px' }}>
                  {props.transactResult?.fileInfoBaseDTOList?.map((item, index) => {
                    return <div style={{ display: 'inline-block' }}>
                      <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>
                  })}
                </div>
              </td>
            </tr>
          }
          {
            props.transactResult.mediResult == '22_00025-2' && <tr>
              <th bgcolor="#F7F8FA" className="table-title" width="120">无法化解理由</th>
              <td width='380' colspan='3'>{props.transactResult?.windupContent || '-'}</td>
            </tr>
          }
        </table>
      </>}
          {(infoData?.canal === '22_00001-1' || infoData?.canal === '22_00001-3') &&
            <>
              <Col span={24} style={{ marginTop: '12px' }}>
src/views/windowDetail/index.jsx
@@ -495,7 +495,7 @@
      return <ApplyInfo caseId={caseId} />
    }
    if (key === 'dslxq' || key === 'sxxq') {
      return <EventFlow listFeedback={list} windowDetail={true} authorType={key} authorData={{ buttonList: [] }} caseId={caseId} caseTaskId={caseTaskId} moutedTab={moutedTab} />
      return <EventFlow listFeedback={list} windowDetail={true} authorType={key} authorData={{ buttonList: [{ id: 'db', name: '督办' }] }} caseId={caseId} caseTaskId={caseTaskId} moutedTab={moutedTab} />
    }
    if (key === 'sfqr') {
      return <div style={{ backgroundColor: '#ffff', margin: '0 16px 0px 16px', padding: '12px', marginTop: '8px' }}>