feat: 更新 FaceFilterSettings TypeScript 类型定义为三段式统一结构
变更内容: - 创建 src/types/faceFilter.ts 类型定义文件 - 新增 UiFilterRules, ProcessingThresholds, TraceSettings 三个子结构 - 更新 FaceFilterSettings 为三段式统一结构 - min_confidence 范围从 0-100 改为 0.0-1.0 - min_size 重命名为 min_bbox_size - 新增字段: max_confidence, max_bbox_size, source, backend_status 向后兼容性: - FaceFilterSettingsMigration.fromLegacy() 自动转换旧格式 - FaceFilterSettingsMigration.defaults() 提供默认值 - 保留向后兼容字段(deprecated 标记) 更新文件: - src/composables/useFaceFilter.ts: 使用新类型,更新变量名 - src/components/FaceFilterPanel.vue: 更新导入和变量引用 - docs/FACE_FILTER_SETTINGS_MIGRATION_GUIDE.md: 完整迁移指南 测试: - ✅ TypeScript 编译通过 - ✅ Vite build 成功 对应 Core API commit: 86c776ce
This commit is contained in:
@@ -108,7 +108,7 @@
|
||||
<label class="checkbox-label">
|
||||
<input
|
||||
type="checkbox"
|
||||
v-model="singleFrameSettings.single_frame_trace_vlm_enabled"
|
||||
v-model="faceFilterSettings.single_frame_trace_vlm_enabled"
|
||||
@change="markModified"
|
||||
/>
|
||||
VLM Processing
|
||||
@@ -120,7 +120,7 @@
|
||||
<label class="checkbox-label">
|
||||
<input
|
||||
type="checkbox"
|
||||
v-model="singleFrameSettings.single_frame_trace_group_enabled"
|
||||
v-model="faceFilterSettings.single_frame_trace_group_enabled"
|
||||
@change="markModified"
|
||||
/>
|
||||
Face Groups
|
||||
@@ -132,7 +132,7 @@
|
||||
<label class="checkbox-label">
|
||||
<input
|
||||
type="checkbox"
|
||||
v-model="singleFrameSettings.single_frame_trace_unassigned_enabled"
|
||||
v-model="faceFilterSettings.single_frame_trace_unassigned_enabled"
|
||||
@change="markModified"
|
||||
/>
|
||||
Unassigned List
|
||||
@@ -144,7 +144,7 @@
|
||||
<label class="checkbox-label">
|
||||
<input
|
||||
type="checkbox"
|
||||
v-model="singleFrameSettings.single_trace_group_filter_enabled"
|
||||
v-model="faceFilterSettings.single_trace_group_filter_enabled"
|
||||
@change="markModified"
|
||||
/>
|
||||
Single Trace Groups
|
||||
@@ -154,19 +154,19 @@
|
||||
|
||||
<div class="section-actions">
|
||||
<div class="auto-save-hint">
|
||||
{{ singleFrameSettingsLoading ? '⏳ Saving...' : '✓ Auto-saved' }}
|
||||
{{ faceFilterSettingsLoading ? '⏳ Saving...' : '✓ Auto-saved' }}
|
||||
</div>
|
||||
<button
|
||||
class="action-btn"
|
||||
@click="handleResetSingleFrame"
|
||||
:disabled="singleFrameSettingsLoading"
|
||||
:disabled="faceFilterSettingsLoading"
|
||||
>
|
||||
Reset to Default
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div v-if="singleFrameSettingsError" class="error-message">
|
||||
❌ {{ singleFrameSettingsError }}
|
||||
<div v-if="faceFilterSettingsError" class="error-message">
|
||||
❌ {{ faceFilterSettingsError }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, onBeforeUnmount } from 'vue';
|
||||
import { useFaceFilter, type QuickFilterRules } from '../composables/useFaceFilter';
|
||||
import { useFaceFilter, type UiFilterRules } from '../composables/useFaceFilter';
|
||||
|
||||
const props = defineProps<{
|
||||
fileUuid: string;
|
||||
@@ -242,10 +242,10 @@ const {
|
||||
updateRules,
|
||||
applyBackendFilter,
|
||||
resetToDefault,
|
||||
singleFrameSettings,
|
||||
singleFrameSettingsLoading,
|
||||
singleFrameSettingsError,
|
||||
singleFrameSettingsModified,
|
||||
faceFilterSettings,
|
||||
faceFilterSettingsLoading,
|
||||
faceFilterSettingsError,
|
||||
faceFilterSettingsModified,
|
||||
loadSingleFrameSettings,
|
||||
resetSingleFrameSettings,
|
||||
markSingleFrameSettingsModified,
|
||||
@@ -291,7 +291,7 @@ watch(showPanel, (show) => {
|
||||
}
|
||||
});
|
||||
|
||||
watch(singleFrameSettingsModified, (newVal, oldVal) => {
|
||||
watch(faceFilterSettingsModified, (newVal, oldVal) => {
|
||||
if (oldVal === true && newVal === false) {
|
||||
emit('settings-updated');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user