ваше сообщение коммита

This commit is contained in:
2025-06-01 17:26:59 +03:00
parent 2507d776e0
commit 77f09a03a5
19 changed files with 514 additions and 769 deletions

View File

@@ -2,30 +2,31 @@
<div class="dynamic-tables-modal">
<div class="modal-header">
<h2>Пользовательские таблицы</h2>
<button class="close-btn" @click="$emit('close')">×</button>
<button class="close-btn" @click="closeModal">×</button>
</div>
<UserTablesList @open-table="openTable" @table-deleted="onTableDeleted" />
<DynamicTableEditor v-if="selectedTable" :table-id="selectedTable.id" @close="closeEditor" />
<UserTablesList
:selected-table-id="selectedTableId"
@update:selected-table-id="val => selectedTableId = val"
/>
</div>
</template>
<script setup>
import { ref } from 'vue';
import UserTablesList from './UserTablesList.vue';
import DynamicTableEditor from './DynamicTableEditor.vue';
const selectedTable = ref(null);
function openTable(table) {
selectedTable.value = table;
}
function closeEditor() {
selectedTable.value = null;
}
function onTableDeleted(deletedTableId) {
if (selectedTable.value && selectedTable.value.id === deletedTableId) {
selectedTable.value = null;
}
const selectedTableId = ref(null);
function closeModal() {
selectedTableId.value = null;
// эмитим наружу, чтобы закрыть модалку
// (если используется <DynamicTablesModal @close=... />)
// иначе просто убираем модалку
// eslint-disable-next-line vue/custom-event-name-casing
// $emit('close') не работает в <script setup>, используем defineEmits
emit('close');
}
const emit = defineEmits(['close']);
</script>
<style scoped>