Split import page into separate local and remote database workflows.

Route IndexedDB and server import/export through dedicated APIs and UI panels so each storage target can be managed independently of the active data mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
gitrusprus
2026-07-06 15:43:09 +03:00
co-authored by Cursor
parent 986d36ff51
commit f5937040fa
6 changed files with 666 additions and 191 deletions
@@ -0,0 +1,20 @@
<template>
<div v-if="result" class="alert" :class="result.error ? 'alert-error' : 'alert-success'" style="margin-top:16px;">
<span v-if="result.error">{{ result.error }}</span>
<span v-else>
В файле: <strong>{{ result.total ?? result.created + result.skipped }}</strong>,
импортировано: <strong>{{ result.created }}</strong> контактов<template v-if="result.importedRelations">, <strong>{{ result.importedRelations }}</strong> связей</template>,
пропущено: {{ result.skipped }}.
<span v-if="result.errors?.length"> Ошибок: {{ result.errors.length }}.</span>
</span>
</div>
<div v-if="result?.errors?.length" style="margin-top:8px;">
<div v-for="e in result.errors" :key="e" class="text-muted" style="font-size:12px;">{{ e }}</div>
</div>
</template>
<script setup>
defineProps({
result: { type: Object, default: null },
})
</script>