运维/交车:交车单页、交车明细样例、备车/查看页重命名及需求说明更新

Made-with: Cursor
This commit is contained in:
王冕
2026-03-16 14:08:27 +08:00
parent fc86688beb
commit e842a778a4
13 changed files with 909 additions and 162 deletions

View File

@@ -16,8 +16,9 @@ const Component = function () {
var message = antd.message;
// 基本情况
var brand = useState('');
var brand = useState(undefined);
var model = useState('');
var announcementModel = useState(''); // 公告型号,必填
var vehicleType = useState(undefined);
var fuelType = useState(undefined);
var plateColor = useState('绿牌');
@@ -44,6 +45,15 @@ const Component = function () {
var maintenanceList = useState([{ key: '1', item: '', kmCycle: '', monthCycle: '', laborCost: '', materialCost: '', total: '' }]);
var formErrors = useState({});
// 品牌选项(与型号参数.jsx 一致)
var brandOptions = [
{ value: '苏龙', label: '苏龙' },
{ value: '东风', label: '东风' },
{ value: '福田', label: '福田' },
{ value: '江淮', label: '江淮' },
{ value: '重汽', label: '重汽' },
{ value: '陕汽', label: '陕汽' }
];
// 车辆类型选项与备车管理.jsx 保持一致
var vehicleTypeOptions = [
{ value: '轻型厢式货车', label: '轻型厢式货车' },
@@ -105,8 +115,9 @@ const Component = function () {
function validate() {
var err = {};
if (!String(brand[0] || '').trim()) err.brand = '请输入品牌名称';
if (brand[0] == null || brand[0] === '') err.brand = '请选择品牌';
if (!String(model[0] || '').trim()) err.model = '请输入型号名称';
if (!String(announcementModel[0] || '').trim()) err.announcementModel = '请输入公告型号';
if (vehicleType[0] == null || vehicleType[0] === '') err.vehicleType = '请选择车辆类型';
formErrors[1](err);
return Object.keys(err).length === 0;
@@ -187,18 +198,21 @@ const Component = function () {
React.createElement(Card, { title: CardTitleWithBar('型号参数'), size: 'small', style: cardStyle },
React.createElement('div', { style: formRowStyle },
React.createElement(FormItem, { label: '品牌', required: true, error: formErrors[0].brand },
React.createElement(Input, { placeholder: '请输入品牌名称', value: brand[0], onChange: function (e) { brand[1](e.target.value); }, style: inputStyle, status: formErrors[0].brand ? 'error' : undefined })
React.createElement(Select, { placeholder: '请选择品牌', style: inputStyle, value: brand[0], onChange: function (v) { brand[1](v); }, allowClear: true, options: brandOptions, status: formErrors[0].brand ? 'error' : undefined })
),
React.createElement(FormItem, { label: '型号', required: true, error: formErrors[0].model },
React.createElement(Input, { placeholder: '请输入型号名称', value: model[0], onChange: function (e) { model[1](e.target.value); }, style: inputStyle, status: formErrors[0].model ? 'error' : undefined })
),
React.createElement(FormItem, { label: '公告型号', required: true, error: formErrors[0].announcementModel },
React.createElement(Input, { placeholder: '请输入公告型号', value: announcementModel[0], onChange: function (e) { announcementModel[1](e.target.value); }, style: inputStyle, status: formErrors[0].announcementModel ? 'error' : undefined })
),
React.createElement(FormItem, { label: '车辆类型', required: true, error: formErrors[0].vehicleType },
React.createElement(Select, { placeholder: '请选择车辆类型', style: inputStyle, value: vehicleType[0], onChange: function (v) { vehicleType[1](v); }, allowClear: true, options: vehicleTypeOptions, status: formErrors[0].vehicleType ? 'error' : undefined })
),
React.createElement(FormItem, { label: '燃料种类' },
React.createElement(Select, { placeholder: '请选择燃料种类', style: inputStyle, value: fuelType[0], onChange: function (v) { fuelType[1](v); }, allowClear: true, options: fuelTypeOptions })
),
React.createElement(FormItem, { label: '车颜色' },
React.createElement(FormItem, { label: '车颜色' },
React.createElement(Radio.Group, { value: plateColor[0], onChange: function (e) { plateColor[1](e.target.value); } },
React.createElement(Radio, { value: '绿牌' }, '绿牌'),
React.createElement(Radio, { value: '黄牌' }, '黄牌'),

View File

@@ -15,10 +15,19 @@ const Component = function () {
var Table = antd.Table;
// 只读数据(示例,与车辆管理-查看型号参数一致)
var brandOptions = [
{ value: '苏龙', label: '苏龙' },
{ value: '东风', label: '东风' },
{ value: '福田', label: '福田' },
{ value: '江淮', label: '江淮' },
{ value: '重汽', label: '重汽' },
{ value: '陕汽', label: '陕汽' }
];
var detail = useMemo(function () {
return {
brand: '苏龙',
model: '海格牌KLQ5180XYKFCEV',
announcementModel: 'KLQ5180XYKFCEV',
vehicleType: '18吨双飞翼货车',
fuelType: '氢',
plateColor: '绿牌',
@@ -96,18 +105,21 @@ const Component = function () {
React.createElement(Card, { title: CardTitleWithBar('型号参数'), size: 'small', style: cardStyle },
React.createElement('div', { style: formRowStyle },
React.createElement(FormItem, { label: '品牌' },
React.createElement(Input, { value: detail.brand, disabled: true, style: inputStyle })
React.createElement(Select, { value: detail.brand, disabled: true, style: inputStyle, options: brandOptions })
),
React.createElement(FormItem, { label: '型号' },
React.createElement(Input, { value: detail.model, disabled: true, style: inputStyle })
),
React.createElement(FormItem, { label: '公告型号' },
React.createElement(Input, { value: detail.announcementModel, disabled: true, style: inputStyle })
),
React.createElement(FormItem, { label: '车辆类型' },
React.createElement(Input, { value: detail.vehicleType, disabled: true, style: inputStyle })
),
React.createElement(FormItem, { label: '燃料种类' },
React.createElement(Input, { value: detail.fuelType, disabled: true, style: inputStyle })
),
React.createElement(FormItem, { label: '车颜色' },
React.createElement(FormItem, { label: '车颜色' },
React.createElement(Radio.Group, { value: detail.plateColor, disabled: true },
React.createElement(Radio, { value: '绿牌' }, '绿牌'),
React.createElement(Radio, { value: '黄牌' }, '黄牌'),

View File

@@ -18,6 +18,7 @@ const Component = function () {
var initialData = {
brand: '苏龙',
model: '海格牌KLQ5180XYKFCEV',
announcementModel: 'KLQ5180XYKFCEV',
vehicleType: '18吨双飞翼货车',
fuelType: '氢',
plateColor: '绿牌',
@@ -42,6 +43,15 @@ const Component = function () {
]
};
// 品牌选项(与型号参数-新增一致)
var brandOptions = [
{ value: '苏龙', label: '苏龙' },
{ value: '东风', label: '东风' },
{ value: '福田', label: '福田' },
{ value: '江淮', label: '江淮' },
{ value: '重汽', label: '重汽' },
{ value: '陕汽', label: '陕汽' }
];
// 车辆类型选项需包含初始值18吨双飞翼货车
var vehicleTypeOptions = [
{ value: '18吨双飞翼货车', label: '18吨双飞翼货车' },
@@ -68,6 +78,7 @@ const Component = function () {
// 基本情况
var brand = useState(initialData.brand);
var model = useState(initialData.model);
var announcementModel = useState(initialData.announcementModel || '');
var vehicleType = useState(initialData.vehicleType);
var fuelType = useState(initialData.fuelType);
var plateColor = useState(initialData.plateColor);
@@ -133,8 +144,9 @@ const Component = function () {
function validate() {
var err = {};
if (!String(brand[0] || '').trim()) err.brand = '请输入品牌名称';
if (brand[0] == null || brand[0] === '') err.brand = '请选择品牌';
if (!String(model[0] || '').trim()) err.model = '请输入型号名称';
if (!String(announcementModel[0] || '').trim()) err.announcementModel = '请输入公告型号';
if (vehicleType[0] == null || vehicleType[0] === '') err.vehicleType = '请选择车辆类型';
formErrors[1](err);
return Object.keys(err).length === 0;
@@ -215,18 +227,21 @@ const Component = function () {
React.createElement(Card, { title: CardTitleWithBar('型号参数'), size: 'small', style: cardStyle },
React.createElement('div', { style: formRowStyle },
React.createElement(FormItem, { label: '品牌', required: true, error: formErrors[0].brand },
React.createElement(Input, { placeholder: '请输入品牌名称', value: brand[0], onChange: function (e) { brand[1](e.target.value); }, style: inputStyle, status: formErrors[0].brand ? 'error' : undefined })
React.createElement(Select, { placeholder: '请选择品牌', style: inputStyle, value: brand[0], onChange: function (v) { brand[1](v); }, allowClear: true, options: brandOptions, status: formErrors[0].brand ? 'error' : undefined })
),
React.createElement(FormItem, { label: '型号', required: true, error: formErrors[0].model },
React.createElement(Input, { placeholder: '请输入型号名称', value: model[0], onChange: function (e) { model[1](e.target.value); }, style: inputStyle, status: formErrors[0].model ? 'error' : undefined })
),
React.createElement(FormItem, { label: '公告型号', required: true, error: formErrors[0].announcementModel },
React.createElement(Input, { placeholder: '请输入公告型号', value: announcementModel[0], onChange: function (e) { announcementModel[1](e.target.value); }, style: inputStyle, status: formErrors[0].announcementModel ? 'error' : undefined })
),
React.createElement(FormItem, { label: '车辆类型', required: true, error: formErrors[0].vehicleType },
React.createElement(Select, { placeholder: '请选择车辆类型', style: inputStyle, value: vehicleType[0], onChange: function (v) { vehicleType[1](v); }, allowClear: true, options: vehicleTypeOptions, status: formErrors[0].vehicleType ? 'error' : undefined })
),
React.createElement(FormItem, { label: '燃料种类' },
React.createElement(Select, { placeholder: '请选择燃料种类', style: inputStyle, value: fuelType[0], onChange: function (v) { fuelType[1](v); }, allowClear: true, options: fuelTypeOptions })
),
React.createElement(FormItem, { label: '车颜色' },
React.createElement(FormItem, { label: '车颜色' },
React.createElement(Radio.Group, { value: plateColor[0], onChange: function (e) { plateColor[1](e.target.value); } },
React.createElement(Radio, { value: '绿牌' }, '绿牌'),
React.createElement(Radio, { value: '黄牌' }, '黄牌'),