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>
21 lines
933 B
Vue
21 lines
933 B
Vue
<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>
|