广州市综治平台前端
1f3626ae3932c3460d8608255c03aa834a2b221a..b4725b231cfe2a710288e8bd0b1b9d990989f90c
2 days ago xusd
Merge branch 'feature/gzdyh_city_bugfix' of http://120.79...
b4725b diff | tree
2 days ago xusd
fix:超时办件优化
9cbfaa diff | tree
3 files modified
132 ■■■■ changed files
src/utils/selectOption.js 13 ●●●●● patch | view | raw | blame | history
src/views/workEfficiency/component/TimeoutDialog.jsx 53 ●●●● patch | view | raw | blame | history
src/views/workEfficiency/index.jsx 66 ●●●● patch | view | raw | blame | history
src/utils/selectOption.js
@@ -787,6 +787,18 @@
    },
];
// 是否
const isOrNot = [
    {
        value: '1',
        label: '是',
    },
    {
        value: '0',
        label: '否',
    },
];
// VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 暂时用不到,防止以后会用的,先保留 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
// 调解类型
@@ -1603,6 +1615,7 @@
    resultList,
    rmtjList,
    inputWay,
    isOrNot,
};
export default obj;
src/views/workEfficiency/component/TimeoutDialog.jsx
@@ -211,23 +211,56 @@
    caseId: '',
    type: 0,
  })
  const [isResetting, setIsResetting] = useState(false); // 添加重置标志位
  useEffect(() => {
    getTableData()
    if (!isResetting) {
      getTableData()
    }
  }, [searchData])
  // 监听timeoutKey变化,重置数据
  useEffect(() => {
    setIsResetting(true); // 开始重置
    // 重置表格数据
    setTableData([]);
    setTotal(0);
    // 重置搜索条件
    setSearchData({
      page: 1,
      size: 10,
      sortType: 2,
      sortColmn: 1,
    });
    // 重置表单
    form.resetFields();
    // 重置选择状态
    setSelectedRowKeys([]);
    setSelectedRows([]);
    // 延迟重置标志位,确保重置完成后再允许API调用
    setTimeout(() => {
      setIsResetting(false);
    }, 100);
  }, [props.timeoutKey]);
  //获取表格数据
  const getTableData = async () => {
    setLoading(true)
    const res = await getTable({
      ...searchData,
      queryType: dialogTypeMap[props.timeoutKey],
      ...props.search,
    })
    if (res.type) {
      const { data } = res
      setTableData(data?.content)
      setTotal(data.totalElements)
    try {
      const res = await getTable({
        ...searchData,
        queryType: dialogTypeMap[props.timeoutKey],
        ...props.search,
      })
      if (res.type) {
        const { data } = res
        setTableData(data?.content)
        setTotal(data.totalElements)
      }
    } catch (error) {
      console.error('获取表格数据失败:', error)
    } finally {
      setLoading(false)
    }
  }
src/views/workEfficiency/index.jsx
@@ -295,13 +295,38 @@
    // 超时办件列表
    async function pageQuantity(search, values = {}) {
        global.setSpinning(true);
        const res = await pageQuantityApi({ ...search, ...values });
        global.setSpinning(false);
        if (res.type) {
            let data = res.data.content || [];
            let total = res?.data?.totalElements || 0;
            setTableData({ list: data, total });
            setTimeoutSearch(search);
        try {
            const res = await pageQuantityApi({ ...search, ...values });
            if (res.type) {
                let data = res.data.content || [];
                let total = res?.data?.totalElements || 0;
                setTableData({
                    list: data,
                    total,
                    page: search.page || 1,
                    size: search.size || 10
                });
                setTimeoutSearch(search);
            } else {
                // API调用失败时,确保数据状态正确
                setTableData({
                    list: [],
                    total: 0,
                    page: search.page || 1,
                    size: search.size || 10
                });
            }
        } catch (error) {
            console.error('获取超时办件列表失败:', error);
            // 异常时,确保数据状态正确
            setTableData({
                list: [],
                total: 0,
                page: search.page || 1,
                size: search.size || 10
            });
        } finally {
            global.setSpinning(false);
        }
    }
@@ -525,6 +550,13 @@
            },
        },
        {
            title: '任务节点',
            dataIndex: 'nodeName',
            width: 150,
            sorter: true,
            sortNumber: 1, //设置这个传给后端的
        },
        {
            title: '处理时限',
            dataIndex: 'timeLimit',
            defaultSortOrder: 'descend',
@@ -537,6 +569,14 @@
                        {`超${$$.formatHoursToDaysAndHours(text)}`}
                    </div>
                );
            },
        },
        {
            title: '是否处理',
            dataIndex: 'taskStatus',
            width: 80,
            render: (text) => {
                return <span>{text === 1 ? '是' : '否'}</span>;
            },
        },
        {
@@ -753,6 +793,7 @@
                                    treedata: $$.caseTypeSelect.caseTypeSelect,
                                },
                                { type: 'Select', name: 'canal', label: '事项来源', placeholder: '请选择', span: 8, selectdata: $$.options.caseCanal },
                                { type: 'Select', name: 'taskStatus', label: '任务是否处理', placeholder: '请选择', span: 8, selectdata: $$.options.isOrNot },
                            ]}
                            handleReset={() => {
                                form.resetFields();
@@ -1112,7 +1153,15 @@
                                    activeKey={radioData.tab2}
                                    onChange={(v) => {
                                        setRadioData({ ...radioData, tab2: v });
                                        pageQuantity({ ...timeoutSearch, queryType: v }, search);
                                        // 立即清空数据,确保TableView显示清空状态
                                        setTableData({ list: [], total: 0, page: 1, size: 10 });
                                        // 重置分页状态,避免列表内容重复
                                        const resetSearch = {
                                            ...timeoutSearch,
                                            queryType: v,
                                            page: 1
                                        };
                                        pageQuantity(resetSearch, search);
                                        listTimeOutTaskGroup({ queryType: v }, search);
                                    }}
                                />
@@ -1132,6 +1181,7 @@
                            <div>
                                {radioData.radio2 === '1' && (
                                    <TableView
                                        key={`timeout-table-${radioData.tab2}`} // 添加key强制重新渲染
                                        columns={fxColumns}
                                        dataSource={tableData.list}
                                        size="small"