性能优化和样式更新

This commit is contained in:
2026-06-23 10:08:39 +08:00
parent c3739b18eb
commit 58260797b2
4 changed files with 163 additions and 47 deletions
+7 -1
View File
@@ -45,6 +45,8 @@ const selectedFolderId = computed({
// 保存预设时是否同时标记为收藏
const saveAsFavorite = ref(false);
const viewMode = ref<'compact' | 'detail'>('compact');
// 左侧光标所在的 token 序号,用于在右侧映射中定位高亮
const activeTokenIndex = ref<number | null>(null);
const showPresetDropdown = ref(false);
const showTranslationPopup = ref(false);
const translationTargetToken = ref<string | null>(null);
@@ -829,6 +831,7 @@ const unmappedTokens = computed(() => {
});
function isUnmapped(key: string): boolean {
void store.mappingVersion; // 追踪映射变更以触发响应式刷新
const { core } = parseDetailedToken(key);
const tag = store.getTagByKey(core);
return !tag || !tag.translation?.[selectedLang.value];
@@ -842,6 +845,7 @@ function handleApplyTranslation(results: { key: string; trans: string }[]) {
}
function displayTrans(key: string): string {
void store.mappingVersion; // 追踪映射变更以触发响应式刷新
const { core, weight, wrappers, prefix, suffix } = parseDetailedToken(key);
const tag = store.getTagByKey(core);
const translatedCore = tag?.translation?.[selectedLang.value] ?? tag?.key ?? core;
@@ -870,11 +874,13 @@ function isRemoveDisabled(token: string): boolean {
:get-suggestions="(prefix, limit) => store.getSuggestions(prefix, limit)"
@update-suggestions="updateSuggestionsFromText" @copy="copyLeft" @replace-cn-comma="replaceCnComma"
@format-prompt="formatPrompt" @unify-priority="unifyPriorityStyle" @toggle-underscore="toggleUnderscoreSpace"
@add-tag="handleAddTag" @drag-tag-start="handleQuickAddDragStart" @drag-tag-end="handleQuickAddDragEnd" />
@add-tag="handleAddTag" @drag-tag-start="handleQuickAddDragStart" @drag-tag-end="handleQuickAddDragEnd"
@locate-token="(i) => activeTokenIndex = i >= 0 ? i : null" />
<TokenMappingPanel ref="tokenMappingRef" :tokens="tokens" :selected-lang="selectedLang"
v-model:view-mode="viewMode" :dragging-index="draggingIndex" :over-index="overIndex" :insert-side="insertSide"
:is-dragging="isDragging" :edit-suggestions="editSuggestions" :numeric-mode="numericMode"
:active-index="activeTokenIndex"
:display-trans="displayTrans" :is-unmapped="isUnmapped" :get-token-wrapper-info="getTokenWrapperInfo"
:has-weight-suffix="hasWeightSuffix" :get-suggestions="(prefix, limit) => store.getSuggestions(prefix, limit)"
@pointer-down="onPointerDown" @panel-dragover="handlePanelDragOver" @panel-dragleave="handlePanelDragLeave"