| | |
| | | drag |
| | | multiple |
| | | style={{ ...props.style }} |
| | | accept='.png,.jpg,.pdf,.doc,.docx' |
| | | accept='.png,.jpg,.pdf,.docx' |
| | | onDrop={(e) => { |
| | | }} |
| | | tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M' |
| | |
| | | * @Company: hugeInfo |
| | | * @Author: ldh |
| | | * @Date: 2022-03-05 17:14:00 |
| | | * @LastEditTime: 2022-11-29 15:25:05 |
| | | * @LastEditors: ldh |
| | | * @LastEditTime: 2025-06-24 09:35:43 |
| | | * @LastEditors: lwh |
| | | * @Version: 1.0.0 |
| | | * @Description: 公共上传组件 |
| | | * 附件类型对照 |
| | |
| | | const props = { |
| | | name: 'file', |
| | | multiple: false, |
| | | accept: '.doc,.docx,.xls,.xlsx,.png,.jpg,.jpeg,.pdf', |
| | | accept: '.docx,.xls,.xlsx,.png,.jpg,.jpeg,.pdf', |
| | | action: `${appUrl.baseUrl}/${appUrl.mediate}/api/v1/caseInfo/inCaseByExcel`, |
| | | headers: { |
| | | Authorization: $$.getSessionStorage('customerSystemToken'), |
| | |
| | | * @Author: dminyi 1301963064@qq.com |
| | | * @Date: 2024-08-29 14:57:06 |
| | | * @LastEditors: lwh |
| | | * @LastEditTime: 2025-01-02 16:14:02 |
| | | * @LastEditTime: 2025-06-24 16:38:35 |
| | | * @FilePath: \gzDyh\gz-customerSystem\src\components\ProgressStep\VisitStep.jsx |
| | | * @Description: 来访登记步骤条 |
| | | */ |
| | |
| | | import { Tooltip } from 'antd'; |
| | | import { ledger_8, ledger_7, ledger_12, ledger_13, ledger_14 } from '../../assets/images'; |
| | | import * as $$ from '../../utils/utility'; |
| | | import PreviewImage from '@/components/PreviewImage'; |
| | | import MyPDF from '@/components/MyPDF'; |
| | | import './index.less'; |
| | | |
| | | /** |
| | |
| | | const typeDom = (data) => { |
| | | console.log(data); |
| | | const dom = data.fileInfoList?.map((result, resIndex) => { |
| | | return <div style={{ display: 'inline-block' }}> |
| | | <PreviewImage name={result.name} src={result.showUrl} /> |
| | | {resIndex !== data.fileInfoList?.length - 1 && <>,</>} |
| | | return <div key={resIndex}> |
| | | <MyPDF name={result.name} fileUrl={result.showUrl} fileType={result.suffix} /> |
| | | {/* {resIndex !== data.fileInfoList?.length - 1 && <>,</>} */} |
| | | </div> |
| | | }) |
| | | console.log(dom); |
| | |
| | | }, |
| | | ]; |
| | | |
| | | // 是否 |
| | | const isOrNot = [ |
| | | { |
| | | value: '1', |
| | | label: '是', |
| | | }, |
| | | { |
| | | value: '0', |
| | | label: '否', |
| | | }, |
| | | ]; |
| | | |
| | | // VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV 暂时用不到,防止以后会用的,先保留 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV |
| | | |
| | | // 调解类型 |
| | |
| | | resultList, |
| | | rmtjList, |
| | | inputWay, |
| | | isOrNot, |
| | | }; |
| | | |
| | | export default obj; |
| | |
| | | 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) |
| | | } |
| | | } |
| | |
| | | // 超时办件列表 |
| | | 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); |
| | | } |
| | | } |
| | | |
| | |
| | | }, |
| | | }, |
| | | { |
| | | title: '任务节点', |
| | | dataIndex: 'nodeName', |
| | | width: 150, |
| | | sorter: true, |
| | | sortNumber: 1, //设置这个传给后端的 |
| | | }, |
| | | { |
| | | title: '处理时限', |
| | | dataIndex: 'timeLimit', |
| | | defaultSortOrder: 'descend', |
| | |
| | | {`超${$$.formatHoursToDaysAndHours(text)}`} |
| | | </div> |
| | | ); |
| | | }, |
| | | }, |
| | | { |
| | | title: '是否处理', |
| | | dataIndex: 'taskStatus', |
| | | width: 80, |
| | | render: (text) => { |
| | | return <span>{text === 1 ? '是' : '否'}</span>; |
| | | }, |
| | | }, |
| | | { |
| | |
| | | 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(); |
| | |
| | | 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); |
| | | }} |
| | | /> |
| | |
| | | <div> |
| | | {radioData.radio2 === '1' && ( |
| | | <TableView |
| | | key={`timeout-table-${radioData.tab2}`} // 添加key强制重新渲染 |
| | | columns={fxColumns} |
| | | dataSource={tableData.list} |
| | | size="small" |