Files
ONE-OS/web端/运维管理/车辆业务/查看故障.jsx
王冕 d432d51eed feat(web): 同步 web 端目录更新至 Gitea
包含加氢站站点信息、运维交车/故障、台账与数据分析等页面新增与改动。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 19:57:30 +08:00

227 lines
11 KiB
JavaScript

// 【重要】必须使用 const Component 作为组件变量名
// ONEOS-web - 运维管理 - 车辆业务 - 查看故障
const Component = function () {
var useState = React.useState;
var antd = window.antd;
var Button = antd.Button;
var Input = antd.Input;
var Select = antd.Select;
var DatePicker = antd.DatePicker;
var Form = antd.Form;
var Row = antd.Row;
var Col = antd.Col;
var Breadcrumb = antd.Breadcrumb;
var Layout = antd.Layout;
var message = antd.message;
var Card = antd.Card;
var Upload = antd.Upload;
var _form = Form.useForm();
var faultForm = _form[0];
// 故障等级枚举
var faultLevelOptions = [
{ label: '特急', value: '特急' },
{ label: '紧急', value: '紧急' },
{ label: '一般', value: '一般' },
{ label: '提示', value: '提示' }
];
// 故障类型枚举
var faultTypeOptions = [
{ label: '底盘故障', value: '底盘故障' },
{ label: '三电故障', value: '三电故障' },
{ label: '整车系统', value: '整车系统' },
{ label: '燃料电池系统故障', value: '燃料电池系统故障' },
{ label: '供氢系统故障', value: '供氢系统故障' },
{ label: '空调系统故障', value: '空调系统故障' },
{ label: '冷机故障', value: '冷机故障' },
{ label: '其他故障', value: '其他故障' }
];
// 故障来源枚举
var faultSourceOptions = [
{ label: '客户报告', value: '客户报告' },
{ label: '定期保养', value: '定期保养' },
{ label: '司机操作问题', value: '司机操作问题' }
];
// 解决情况枚举
var resolveStatusOptions = [
{ label: '未解决', value: '未解决' },
{ label: '临时排故', value: '临时排故' },
{ label: '已解决', value: '已解决' }
];
var plateOptions = [
{ label: '沪A12345', value: '沪A12345', brand: '一汽解放', model: 'J6P', company: '上海羚牛', vin: 'LNW1234567890ABCD' },
{ label: '浙B88888', value: '浙B88888', brand: '东风商用车', model: '天龙', company: '浙江羚牛', vin: 'LNW0987654321EFGH' },
{ label: '苏C66666', value: '苏C66666', brand: '福田欧曼', model: 'EST', company: '苏州冷链速运有限公司', vin: 'LNW1357924680IJKL' },
{ label: '沪D99999', value: '沪D99999', brand: '陕汽重卡', model: '德龙', company: '上海城配物流有限公司', vin: 'LNW2468013579MNOP' }
];
var handleBack = function () {
message.info('返回列表');
};
// 模拟数据加载
React.useEffect(function() {
var mockData = { key: '1', code: 'F-2024-001', plate: '沪A12345', brand: '一汽解放', model: 'J6P', company: '上海羚牛', type: '底盘故障', level: '紧急', source: '客户报告', status: '未解决', reportTime: '2024-05-10 08:30:00', lastOperator: '王婷婷', lastOperationTime: '2024-05-10 09:00:00', desc: '车辆重载下制动踏板偏软,制动距离明显变长' };
if (mockData.reportTime) {
if (typeof window.dayjs === 'function') {
mockData.reportTime = window.dayjs(mockData.reportTime);
} else if (typeof window.moment === 'function') {
mockData.reportTime = window.moment(mockData.reportTime);
}
}
faultForm.setFieldsValue(mockData);
}, []);
return React.createElement(Layout, { className: 'arco-theme-overrides', style: { minHeight: '100vh', background: '#f2f3f5', fontFamily: 'Inter, Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif' } },
React.createElement('style', null, `
.arco-theme-overrides .ant-btn { border-radius: 4px; }
.arco-theme-overrides .ant-btn-primary { background-color: #165dff; border-color: #165dff; }
.arco-theme-overrides .ant-btn-primary:hover { background-color: #4080ff; border-color: #4080ff; }
.arco-grouped-form-page { display: flex; flex-direction: column; min-height: 100vh; }
.arco-grouped-form-page-content { flex: 1; padding: 16px 20px 24px; }
.arco-grouped-form-page .ant-card { margin-bottom: 16px; border-radius: 4px; border: none; box-shadow: 0 1px 2px rgba(0,0,0,0.06); }
.arco-grouped-form-page .ant-card-head { border-bottom: none; padding: 20px 24px 0; min-height: auto; }
.arco-grouped-form-page .ant-card-head-title { font-size: 16px; font-weight: 500; color: #1d2129; padding: 0; }
.arco-grouped-form-page .ant-card-body { padding: 24px; }
.arco-grouped-form-page .ant-form-vertical .ant-form-item-label { padding-bottom: 8px; height: auto; line-height: 1.5715; }
.arco-grouped-form-page .ant-form-item { margin-bottom: 24px; }
.arco-grouped-form-page .ant-input,
.arco-grouped-form-page .ant-select-selector,
.arco-grouped-form-page .ant-picker,
.arco-grouped-form-page .ant-input-affix-wrapper { background-color: #f2f3f5; border: 1px solid #e5e6eb; border-radius: 2px; transition: all 0.1s cubic-bezier(0, 0, 1, 1); }
.arco-grouped-form-page .ant-input[disabled],
.arco-grouped-form-page .ant-select-disabled .ant-select-selector,
.arco-grouped-form-page .ant-picker-disabled { color: #86909c; background-color: #f2f3f5; border-color: #e5e6eb; cursor: not-allowed; }
.arco-grouped-form-page .ant-input-affix-wrapper[disabled] { background-color: #f2f3f5; border-color: #e5e6eb; cursor: not-allowed; }
.arco-grouped-form-page .ant-input-affix-wrapper > input.ant-input { background-color: transparent; }
.arco-grouped-form-footer { background: #fff; padding: 16px 24px; border-top: 1px solid #e5e6eb; display: flex; justify-content: flex-end; align-items: center; gap: 12px; position: sticky; bottom: 0; z-index: 100; box-shadow: 0 -2px 10px rgba(0,0,0,0.05); }
.arco-grouped-form-footer .ant-btn { border-radius: 5px; height: 32px; padding: 4px 16px; font-size: 14px; }
.arco-theme-overrides .ant-breadcrumb { color: #86909c; font-size: 14px; white-space: nowrap; flex-shrink: 0; margin-bottom: 20px; }
.arco-theme-overrides .ant-breadcrumb a { color: #4e5969; }
.arco-theme-overrides .ant-breadcrumb a:hover { color: #165dff; background-color: transparent; }
.arco-theme-overrides .ant-form-item-label > label { color: #4e5969; white-space: nowrap; }
.arco-theme-overrides .ant-form-item-label > label::after { display: none !important; content: "" !important; margin: 0 !important; }
`),
React.createElement('div', { className: 'arco-grouped-form-page' },
React.createElement('div', { className: 'arco-grouped-form-page-content' },
React.createElement(Breadcrumb, {
separator: React.createElement('span', { style: { color: '#c9cdd4' } }, '/'),
items: [
{ title: '首页' },
{ title: '运维管理' },
{ title: '车辆业务' },
{ title: React.createElement('a', { onClick: function(e) { e.preventDefault(); handleBack(); } }, '故障管理') },
{ title: React.createElement('span', { style: { color: '#1d2129' } }, '查看故障单') }
]
}),
React.createElement(Form, { form: faultForm, layout: 'vertical', disabled: true },
// 车辆信息
React.createElement(Card, { title: '车辆信息', bordered: false },
React.createElement(Row, { gutter: 24 },
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '车牌号', name: 'plate', rules: [{ required: true, message: '请选择车牌号' }] },
React.createElement(Select, {
placeholder: '请选择车牌号',
options: plateOptions,
showSearch: true
})
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '车辆品牌', name: 'brand' },
React.createElement(Input, { placeholder: '自动带入', disabled: true, style: { backgroundColor: '#f2f3f5', color: '#86909c' } })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '车辆型号', name: 'model' },
React.createElement(Input, { placeholder: '自动带入', disabled: true, style: { backgroundColor: '#f2f3f5', color: '#86909c' } })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '运营公司', name: 'company' },
React.createElement(Input, { placeholder: '自动带入', disabled: true, style: { backgroundColor: '#f2f3f5', color: '#86909c' } })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '车辆识别代码', name: 'vin' },
React.createElement(Input, { placeholder: '自动带入', disabled: true, style: { backgroundColor: '#f2f3f5', color: '#86909c' } })
)
)
)
),
// 故障信息
React.createElement(Card, { title: '故障信息', bordered: false },
React.createElement(Row, { gutter: 24 },
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '故障类型', name: 'type', rules: [{ required: true, message: '请选择故障类型' }] },
React.createElement(Select, { placeholder: '请选择故障类型', options: faultTypeOptions })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '故障来源', name: 'source', rules: [{ required: true, message: '请选择故障来源' }] },
React.createElement(Select, { placeholder: '请选择故障来源', options: faultSourceOptions })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '故障等级', name: 'level', rules: [{ required: true, message: '请选择故障等级' }] },
React.createElement(Select, { placeholder: '请选择故障等级', options: faultLevelOptions })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '故障上报时间', name: 'reportTime', rules: [{ required: true, message: '请选择故障上报时间' }] },
React.createElement(DatePicker, { style: { width: '100%' }, placeholder: '请选择上报时间', showTime: true })
)
),
React.createElement(Col, { span: 8 },
React.createElement(Form.Item, { label: '解决情况', name: 'status', rules: [{ required: true, message: '请选择故障解决情况' }] },
React.createElement(Select, { placeholder: '请选择故障解决情况', options: resolveStatusOptions })
)
)
)
),
// 故障证据与描述
React.createElement(Card, { title: '故障证据与描述', bordered: false },
React.createElement(Row, { gutter: 24 },
React.createElement(Col, { span: 24 },
React.createElement(Form.Item, { label: '故障描述', name: 'desc', rules: [{ required: true, message: '请填写故障描述' }] },
React.createElement(Input.TextArea, {
placeholder: '在何种状态下,产生何种现象,导致何种事故',
style: { height: 80, minHeight: 80, resize: 'none' }
})
)
),
React.createElement(Col, { span: 24 },
React.createElement(Form.Item, { label: '故障证据', name: 'evidence' },
React.createElement(Upload, { listType: 'picture-card' }),
React.createElement('div', { style: { fontSize: 12, color: '#86909c', marginTop: 8 } }, '支持上传照片、视频、录音')
)
)
)
)
)
),
// 底部操作栏
React.createElement('div', { className: 'arco-grouped-form-footer' },
React.createElement(Button, { onClick: handleBack, style: { borderRadius: 5 } }, '返回列表')
)
)
);
};
if (typeof module !== 'undefined' && module.exports) module.exports = Component;