修复:保险支持5张图片

This commit is contained in:
2025-06-15 00:43:58 +08:00
parent 47b6a3d8de
commit 6a700e9d4b
7 changed files with 350 additions and 69 deletions

View File

@@ -29,6 +29,7 @@ function BxAdd() {
const [bxFiled2, setBxFiled2] = useState<CmsWebsiteField>()
const [carInfo, setCarInfo] = useState<HjmCar | null>(null)
const [fileList, setFileList] = useState<any[]>([]) // 图片文件列表
const [lastSubmitTime, setLastSubmitTime] = useState<number>(0) // 最后提交时间
const [formData, setFormData] = useState<HjmBxLog>({
carId: undefined,
accidentType: undefined,
@@ -64,7 +65,6 @@ function BxAdd() {
})
pageHjmCar({driverId: Taro.getStorageSync('UserId')}).then(res => {
const car = res?.list[0];
setLoading(true)
if (car) {
setCarInfo(car)
setFormData(prev => ({
@@ -217,6 +217,26 @@ function BxAdd() {
// 提交表单
const handleSubmit = async () => {
// 防止重复提交 - 检查loading状态
if (loading) {
Taro.showToast({
title: '正在提交中,请稍候...',
icon: 'loading'
})
return
}
// 防止快速连续点击 - 2秒内不允许重复提交
const now = Date.now()
if (now - lastSubmitTime < 2000) {
Taro.showToast({
title: '请勿频繁提交',
icon: 'none'
})
return
}
setLastSubmitTime(now)
// 表单验证
if (!formData.carId) {
Taro.showToast({
@@ -278,6 +298,8 @@ function BxAdd() {
icon: 'success'
})
formData.image = ''
setTimeout(() => {
Taro.navigateBack()
}, 2000)
@@ -513,9 +535,11 @@ function BxAdd() {
<Button
type="primary"
block
loading={loading}
disabled={loading}
onClick={handleSubmit}
>
{loading ? '提交中...' : '提交报险申请'}
</Button>
</div>
</div>

View File

@@ -13,6 +13,7 @@ import Taro from '@tarojs/taro'
import {pageHjmBxLog} from "@/api/hjm/hjmBxLog";
import {HjmBxLog} from "@/api/hjm/hjmBxLog/model";
/**
* 报险记录列表页面
*/
@@ -45,7 +46,12 @@ const Bx: React.FC = () => {
keywords: keywords.trim()
})
setList(res?.list || [])
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({
@@ -227,14 +233,16 @@ const Bx: React.FC = () => {
{/* 事故照片预览 */}
{item.image && (
<div style={{marginBottom: '12px'}}>
<Image
src={item.image}
width="60"
height="60"
radius="6px"
mode="aspectFill"
/>
<div style={{marginBottom: '12px'}} className={'flex gap-2'}>
{item.image.map((image) => (
<Image
src={image.url}
width="60"
height="60"
radius="6px"
mode="aspectFill"
/>
))}
</div>
)}
@@ -262,27 +270,20 @@ const Bx: React.FC = () => {
</div>
{/* 浮动添加按钮 */}
<div style={{
position: 'fixed',
bottom: '20px',
right: '20px',
zIndex: 30
}}>
<Button
type="primary"
shape="round"
size="large"
onClick={onAddInsurance}
style={{
width: '56px',
height: '56px',
borderRadius: '28px',
boxShadow: '0 4px 12px rgba(0,0,0,0.15)'
}}
>
+
</Button>
</div>
{/*<div style={{*/}
{/* position: 'fixed',*/}
{/* bottom: '20px',*/}
{/* right: '20px',*/}
{/* zIndex: 30*/}
{/*}}>*/}
{/* <Button*/}
{/* type="primary"*/}
{/* size="large"*/}
{/* onClick={onAddInsurance}*/}
{/* >*/}
{/* 一键报险*/}
{/* </Button>*/}
{/*</div>*/}
</>
)
}