feat: 添加数据集信息表单组件,包含数据集名称和目标模型选择

This commit is contained in:
Vixalie
2026-03-28 08:41:28 +08:00
parent c8576425a4
commit f32364c25b
4 changed files with 50 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import { activeDatasetMeta } from '$lib/stores/dataset';
import { currentActivate } from '$lib/stores/navigate';
import { invoke } from '@tauri-apps/api/core';
import { get } from 'svelte/store';
import DatasetInfoForm from './DatasetInfoForm.svelte';
afterNavigate(() => {
currentActivate.set('dataset');
@@ -15,6 +16,7 @@ afterNavigate(() => {
<main class="px-4 py-4 size-full flex flex-col items-stretch gap-1 overflow-hidden">
<h2>Dataset Settings</h2>
<hr class="border-zinc-500" />
<DatasetInfoForm />
<h2>Environment Check</h2>
<hr class="border-zinc-500" />
</main>

View File

@@ -0,0 +1,9 @@
<script lang="ts">
import DatasetName from './meta-form/DatasetName.svelte';
import SelectModel from './meta-form/SelectModel.svelte';
</script>
<div class="flex flex-col gap-2 px-4 py-4">
<DatasetName />
<SelectModel />
</div>

View File

@@ -0,0 +1,16 @@
<script lang="ts">
import { activeDatasetMeta } from '$lib/stores/dataset';
import { onMount } from 'svelte';
import { get } from 'svelte/store';
let name = $state('');
onMount(() => {
name = get(activeDatasetMeta)?.name ?? '';
});
</script>
<label class="input w-fit in-focus-within:outline-0">
<span class="label min-w-[10em]">Dataset Name</span>
<input type="text" bind:value={name} class="min-w-[20em] focus:outline-0" />
</label>

View File

@@ -0,0 +1,23 @@
<script lang="ts">
import { activeDatasetMeta } from '$lib/stores/dataset';
import { ModelChoices, type TargetModels } from '$lib/types/models';
import { onMount } from 'svelte';
import { get } from 'svelte/store';
let selected: TargetModels | null = $state(null);
onMount(() => {
selected = get(activeDatasetMeta)?.targetModel ?? null;
});
async function saveTargetModel() {}
</script>
<label class="input w-fit in-focus-within:outline-0">
<span class="label min-w-[10em]">Target Model</span>
<select bind:value={selected} onselect={saveTargetModel} class="min-w-[20em] focus:outline-0">
{#each ModelChoices as model}
<option value={model.value}>{model.label}</option>
{/each}
</select>
</label>