fix(structure): 允许清除已删除字段的索引引用

Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
This commit is contained in:
zipgandzipg authored and GitHub committed 2026-08-05 23:57:30 +08:00
1 parent e1822cb704
commit 51dedaa5b7
3 files changed
+23 -7

No files matched your search

@@ -55,6 +55,7 @@ import {
dataTypeLengthInputValue,
dataTypeLengthUnitValue,
defaultNewColumnDataType,
filterStructureIndexColumnOptions,
generateIndexName,
generateUniqueIndexName,
getColumnEditorControls,
@@ -2108,11 +2109,10 @@ const availableColumnNames = computed(() =>
);
const colSearch = ref("");
const filteredColumnNames = computed(() => {
const q = colSearch.value.toLowerCase().trim();
if (!q) return availableColumnNames.value;
return availableColumnNames.value.filter((c) => c.toLowerCase().includes(q));
});
function filteredIndexColumnNames(selectedColumns: readonly string[]): string[] {
return filterStructureIndexColumnOptions(availableColumnNames.value, selectedColumns, colSearch.value);
}
function toggleIndexColumn(index: EditableStructureIndex, col: string) {
const previousColumns = [...index.columns];
@@ -3163,7 +3163,7 @@ watch([activeTab, ddlLoading], ([tab, loading]) => {
<div class="px-[var(--structure-cell-px)] pb-1 pt-0.5">
<Input v-model="colSearch" :class="structureControlClass" :placeholder="t('grid.search')" @click.stop />
</div>
<DropdownMenuCheckboxItem v-for="col in filteredColumnNames" :key="col" :checked="index.columns.includes(col)" :class="index.columns.includes(col) ? 'bg-primary/10' : ''" @select.prevent @click="toggleIndexColumn(index, col)">
<DropdownMenuCheckboxItem v-for="col in filteredIndexColumnNames(index.columns)" :key="col" :checked="index.columns.includes(col)" :class="index.columns.includes(col) ? 'bg-primary/10' : ''" @select.prevent @click="toggleIndexColumn(index, col)">
{{ col }}
</DropdownMenuCheckboxItem>
</DropdownMenuContent>
@@ -3199,7 +3199,7 @@ watch([activeTab, ddlLoading], ([tab, loading]) => {
<div class="px-[var(--structure-cell-px)] pb-1 pt-0.5">
<Input v-model="colSearch" :class="structureControlClass" :placeholder="t('grid.search')" @click.stop />
</div>
<DropdownMenuCheckboxItem v-for="col in filteredColumnNames" :key="col" :checked="index.includedColumns.includes(col)" :class="index.includedColumns.includes(col) ? 'bg-primary/10' : ''" @select.prevent @click="toggleIncludedColumn(index, col)">
<DropdownMenuCheckboxItem v-for="col in filteredIndexColumnNames(index.includedColumns)" :key="col" :checked="index.includedColumns.includes(col)" :class="index.includedColumns.includes(col) ? 'bg-primary/10' : ''" @select.prevent @click="toggleIncludedColumn(index, col)">
{{ col }}
</DropdownMenuCheckboxItem>
</DropdownMenuContent>