车系 / 车型 / 任务
{addingSeries && (
setNewSeriesName(e.target.value)}
onKeyDown={e => {
if (e.key === 'Enter' && newSeriesName.trim()) {
createSeries.mutate({ name: newSeriesName.trim() });
setNewSeriesName('');
setAddingSeries(false);
}
if (e.key === 'Escape') setAddingSeries(false);
}}
/>
)}
{seriesList.map((series, si) => {
const expanded = expandedSeries.has(series.id);
const models = modelQueryResults[si]?.data ?? [];
const isSeriesSelected = selection.seriesId === series.id && !selection.modelId;
return (
{/* 车系行 */}
{
toggleSeries(series.id);
onSelect({ seriesId: series.id, modelId: null, taskId: null });
}}
>
{expanded ?
:
}
updateSeries.mutate({ id: series.id, name })}
/>
{/* 新增车型输入 */}
{addingModelFor === series.id && (
setNewModelName(e.target.value)}
onKeyDown={e => {
if (e.key === 'Enter' && newModelName.trim()) {
createModel.mutate({ seriesId: series.id, name: newModelName.trim() });
setNewModelName('');
setAddingModelFor(null);
setExpandedSeries(prev => {
const n = new Set(prev);
n.add(series.id);
return n;
});
}
if (e.key === 'Escape') setAddingModelFor(null);
}}
/>
)}
{/* 车型列表 */}
{expanded && models.map(model => {
const isModelSelected = selection.modelId === model.id;
return (
onSelect({ seriesId: series.id, modelId: model.id, taskId: null })}
>
updateModel.mutate({ id: model.id, name })}
/>
);
})}
);
})}
{seriesList.length === 0 && (
暂无车系,点击右上角新增
)}
);
}