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

@@ -1,11 +1,12 @@
// 【重要】必须使用 const Component 作为组件变量名
// 加氢记录(列表 + 筛选2026年3月版
// 加氢站管理 - 加氢订单(列表 + 筛选2026年3月版
const Component = function () {
var useState = React.useState;
var useMemo = React.useMemo;
var antd = window.antd;
var Breadcrumb = antd.Breadcrumb;
var Card = antd.Card;
var Table = antd.Table;
var Button = antd.Button;
@@ -13,9 +14,9 @@ const Component = function () {
var Input = antd.Input;
var DatePicker = antd.DatePicker;
var Space = antd.Space;
var Modal = antd.Modal;
var message = antd.message;
var Option = Select.Option;
var RangePicker = DatePicker.RangePicker || DatePicker.RangePicker;
// 筛选状态
@@ -29,6 +30,8 @@ const Component = function () {
var plateNo = plateNoState[0];
var setPlateNo = plateNoState[1];
var requirementModalVisible = useState(false);
// 模拟:加氢站与加氢记录数据
var stationList = useMemo(function () {
return [
@@ -97,28 +100,35 @@ const Component = function () {
}
function handleExport() {
// 实际项目中这里调用导出接口;此处仅做提示
message.info('导出当前筛选条件下的加氢记录(示例)');
message.info('导出当前筛选条件下的加氢订单(示例)');
}
var requirementContent = '加氢订单一个「数字化资产ONEOS运管平台」中的「加氢站管理-加氢订单」模块。\n\n#1.面包屑:加氢站管理-加氢订单\n\n#2.筛选:支持加氢站、加氢时间、车牌号等筛选;\n2.1.加氢站:选择器,选择加氢站;\n2.2.加氢时间:日期时间范围选择器,支持开始时间-结束时间;\n2.3.车牌号:输入框,支持模糊匹配;\n右侧为查询、重置按钮。\n\n#3.列表加氢订单列表展示序号、加氢站、加氢时间、车牌号、加氢量kg、金额支持分页与导出。';
return React.createElement('div', { style: layoutStyle },
React.createElement('div', { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginBottom: 16 } },
React.createElement(Breadcrumb, {
items: [
{ title: '加氢站管理' },
{ title: '加氢订单' }
]
}),
React.createElement(Button, { type: 'link', style: { padding: 0 }, onClick: function () { requirementModalVisible[1](true); } }, '查看需求说明')
),
React.createElement(Card, { title: '筛选', style: cardStyle },
React.createElement('div', {
style: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: '16px 24px', alignItems: 'flex-end' }
},
React.createElement('div', { style: filterItemStyle },
React.createElement('div', { style: filterLabelStyle }, '站点筛选'),
React.createElement('div', { style: filterLabelStyle }, '加氢站'),
React.createElement(Select, {
placeholder: '请选择加氢站',
allowClear: true,
style: { width: '100%' },
value: station,
onChange: function (v) { setStation(v); }
},
stationList.map(function (s) {
return React.createElement(Option, { key: s.value, value: s.value }, s.label);
})
)
onChange: function (v) { setStation(v); },
options: stationList
})
),
React.createElement('div', { style: filterItemStyle },
React.createElement('div', { style: filterLabelStyle }, '加氢时间'),
@@ -139,15 +149,15 @@ const Component = function () {
})
)
),
React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', marginTop: 16 } },
React.createElement(Space, null,
React.createElement(Button, { type: 'primary' }, '查询'),
React.createElement(Button, { onClick: handleReset }, '重置')
),
React.createElement(Button, { onClick: handleExport }, '导出')
React.createElement('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 8, marginTop: 16 } },
React.createElement(Button, { onClick: handleReset }, '重置'),
React.createElement(Button, { type: 'primary' }, '查询')
)
),
React.createElement(Card, { title: '加氢记录', style: cardStyle },
React.createElement(Card, { title: '加氢订单列表', style: cardStyle },
React.createElement('div', { style: { display: 'flex', justifyContent: 'flex-end', marginBottom: 16 } },
React.createElement(Button, { onClick: handleExport }, '导出')
),
React.createElement(Table, {
rowKey: 'id',
columns: columns,
@@ -157,7 +167,15 @@ const Component = function () {
size: 'middle',
scroll: { x: 700 }
})
)
),
React.createElement(Modal, {
title: '需求说明',
open: requirementModalVisible[0],
onCancel: function () { requirementModalVisible[1](false); },
width: 560,
footer: React.createElement(Button, { onClick: function () { requirementModalVisible[1](false); } }, '关闭'),
bodyStyle: { maxHeight: '70vh', overflow: 'auto' }
}, React.createElement('div', { style: { padding: '8px 0', whiteSpace: 'pre-wrap', fontSize: 13, lineHeight: 1.6 } }, requirementContent))
);
};