feat(web): 运维管理-备车/型号参数与需求说明更新

- 备车管理、新增备车、查看备车、备车-编辑:布局与字段调整,新增取消按钮
- 基本数据维护:型号参数列表/新增/查看/编辑页
- 车辆业务:备车-编辑页,示例图片、提交/保存/取消按钮
- 需求说明目录与文档整理

Made-with: Cursor
This commit is contained in:
王冕
2026-03-13 00:23:02 +08:00
parent cef9c8e24a
commit fc86688beb
17 changed files with 2658 additions and 274 deletions

View File

@@ -46,13 +46,13 @@ const Component = function () {
var cat = categories[i];
var items = inspectionCategoryItems[cat];
for (var j = 0; j < items.length; j++) {
list.push({ category: cat, checkItem: items[j], checked: true, remark: '' });
list.push({ category: cat, checkItem: items[j], checked: true, remark: '', treadDepth: '' });
}
}
return list;
}
// 只读:一条已填写的备车记录(不可编辑)
// 只读:一条已填写的备车记录(与新增备车字段一致,全部不可编辑)
var form = useMemo(function () {
return {
plateNo: '京A12345',
@@ -61,9 +61,11 @@ const Component = function () {
model: 'DFH1180',
vin: 'LGHXCAE28M1234567',
bodyAd: true,
adPhotos: ['https://picsum.photos/200/150?r=1', 'https://picsum.photos/200/150?r=2'],
adPhotos: ['https://picsum.photos/200/150?r=1'],
enlargePhotos: ['https://picsum.photos/200/150?r=2'],
tailboard: true,
trailerPlate: '京B67890',
spareTirePhotos: ['https://picsum.photos/200/150?r=3'],
spareTireTreadDepth: '5.2',
flawPhotos: ['https://picsum.photos/200/150?f=1'],
inspectionList: buildInspectionList()
};
@@ -125,8 +127,11 @@ const Component = function () {
{
title: '检查情况',
key: 'checked',
width: 100,
render: function (_, record) { return record.checked !== false ? '开' : '关'; }
width: 140,
render: function (_, record) {
if (record.category === '轮胎') return record.treadDepth ? record.treadDepth + ' mm' : '-';
return record.checked !== false ? '开' : '关';
}
},
{ title: '备注', dataIndex: 'remark', key: 'remark', render: function (val) { return val || '-'; } }
];
@@ -165,17 +170,13 @@ const Component = function () {
),
React.createElement(FormItem, { label: '车辆识别代码' },
React.createElement(Input, { value: form.vin, disabled: true, style: { width: '100%', background: '#f5f5f5' } })
),
React.createElement('div', { style: styles.formCol, key: 'ph0' }),
React.createElement(FormItem, { label: '车身广告' },
)
),
React.createElement('div', { style: styles.formRow },
React.createElement(FormItem, { label: '车身广告及放大字' },
React.createElement(Input, { value: form.bodyAd ? '开' : '关', disabled: true, style: { width: '100%', background: '#f5f5f5' } })
),
React.createElement('div', { style: styles.formCol, key: 'ph1' }),
React.createElement('div', { style: styles.formCol, key: 'ph2' }),
React.createElement(FormItem, { label: '尾板' },
React.createElement(Input, { value: form.tailboard ? '开' : '关', disabled: true, style: { width: '100%', background: '#f5f5f5' } })
),
React.createElement(FormItem, { label: '广告照片', fullWidth: true },
React.createElement(FormItem, { label: '广告照片' },
React.createElement('div', { style: { display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 8 } },
(form.adPhotos || []).map(function (url, i) {
return React.createElement('img', {
@@ -189,9 +190,44 @@ const Component = function () {
(form.adPhotos || []).length === 0 ? React.createElement('span', { style: { color: '#999' } }, '无') : null
)
),
React.createElement(FormItem, { label: '是否有挂' },
React.createElement(Input, { value: form.trailerPlate || '无', disabled: true, style: { width: '100%', maxWidth: 320, background: '#f5f5f5' } })
React.createElement(FormItem, { label: '放大字照片' },
React.createElement('div', { style: { display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 8 } },
(form.enlargePhotos || []).map(function (url, i) {
return React.createElement('img', {
key: i,
src: url,
alt: '',
style: { width: 64, height: 64, objectFit: 'cover', borderRadius: 4, cursor: 'pointer' },
onClick: function () { photoPreviewState[1]({ open: true, url: url }); }
});
}),
(form.enlargePhotos || []).length === 0 ? React.createElement('span', { style: { color: '#999' } }, '无') : null
)
)
),
React.createElement('div', { style: styles.formRow },
React.createElement(FormItem, { label: '尾板' },
React.createElement(Input, { value: form.tailboard ? '开' : '关', disabled: true, style: { width: '100%', background: '#f5f5f5' } })
),
React.createElement(FormItem, { label: '备胎照片' },
React.createElement('div', { style: { display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 8 } },
(form.spareTirePhotos || []).map(function (url, i) {
return React.createElement('img', {
key: i,
src: url,
alt: '',
style: { width: 64, height: 64, objectFit: 'cover', borderRadius: 4, cursor: 'pointer' },
onClick: function () { photoPreviewState[1]({ open: true, url: url }); }
});
}),
(form.spareTirePhotos || []).length === 0 ? React.createElement('span', { style: { color: '#999' } }, '无') : null
)
),
React.createElement(FormItem, { label: '备胎胎纹深度' },
React.createElement(Input, { value: form.spareTireTreadDepth || '', disabled: true, style: { width: '100%', background: '#f5f5f5' }, addonAfter: 'mm' })
)
),
React.createElement('div', { style: styles.formRow },
React.createElement(FormItem, { label: '瑕疵', fullWidth: true },
React.createElement('div', { style: { display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 8 } },
(form.flawPhotos || []).map(function (url, i) {
@@ -205,7 +241,9 @@ const Component = function () {
}),
(form.flawPhotos || []).length === 0 ? React.createElement('span', { style: { color: '#999' } }, '无') : null
)
),
)
),
React.createElement('div', { style: styles.formRow },
React.createElement(FormItem, { label: '车辆检查', fullWidth: true },
React.createElement(Button, { type: 'default', onClick: function () { drawerOpenState[1](true); } }, '备车检查单')
)