import React, {useEffect, useState} from "react"; import { Loading, Empty, Button, Input, Tag, Image, Space } from '@nutui/nutui-react-taro' import {Search, Calendar, Truck, File} from '@nutui/icons-react-taro' import Taro from '@tarojs/taro' import {pageHjmBxLog} from "@/api/hjm/hjmBxLog"; import {HjmBxLog} from "@/api/hjm/hjmBxLog/model"; /** * 报险记录列表页面 */ const Bx: React.FC = () => { const [list, setList] = useState([]) const [loading, setLoading] = useState(false) const [keywords, setKeywords] = useState('') const [refreshing, setRefreshing] = useState(false) console.log(refreshing) // 获取状态显示 const getStatusDisplay = (status?: number) => { switch (status) { case 0: return {text: '待审核', color: '#faad14', bgColor: '#fffbe6'} case 1: return {text: '已通过', color: '#52c41a', bgColor: '#f6ffed'} case 2: return {text: '已驳回', color: '#ff4d4f', bgColor: '#fff2f0'} default: return {text: '未知', color: '#8c8c8c', bgColor: '#f5f5f5'} } } const reload = async (showLoading = true) => { try { if (showLoading) setLoading(true) setRefreshing(true) const res = await pageHjmBxLog({ keywords: keywords.trim(), userId: Taro.getStorageSync('UserId') }) setList(res?.list.map(d => { console.log(d,'ddd') d.image = JSON.parse(d.image); console.log(d) return d; }) || []) } catch (error) { console.error('获取报险记录失败:', error) Taro.showToast({ title: '获取报险记录失败', icon: 'error' }) } finally { setLoading(false) setRefreshing(false) } } const onSearch = () => { reload() } const onKeywordsChange = (value: string) => { setKeywords(value) } const onAddInsurance = () => { Taro.navigateTo({ url: '/hjm/bx/bx-add' }) } const viewDetail = (item: HjmBxLog) => { Taro.navigateTo({ url: `/hjm/bx/bx-detail?id=${item.id}` }) } useEffect(() => { reload().then() }, []) return ( <> {/* 搜索栏 */}
{/* 报险记录列表 */}
{loading && list.length === 0 ? (
加载中...
) : list.length === 0 ? ( ) : (
{list.map((item, index) => { const statusDisplay = getStatusDisplay(item.status) return (
viewDetail(item)} >
报险记录 #{item.id}
车辆编号:{item.carNo}
提交时间:{item.createTime}
{statusDisplay.text}
{/* 事故照片预览 */} {item.image && (
{item.image.map((image) => ( ))}
)} {/* 备注信息 */} {item.comments && (
{item.comments.length > 50 ? `${item.comments.substring(0, 50)}...` : item.comments }
)}
) })}
)}
{/* 浮动添加按钮 */} {/*
*/} {/* */} {/* 一键报险*/} {/* */} {/*
*/} ) } export default Bx