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

This commit is contained in:
2025-07-03 14:30:23 +03:00
parent e9287be1ff
commit af80fa9540
33 changed files with 2833 additions and 223 deletions

View File

@@ -2,7 +2,7 @@
<BaseLayout>
<div class="create-table-container">
<h2>Создать новую таблицу</h2>
<form @submit.prevent="handleCreateTable" class="create-table-form">
<form v-if="isAdmin" @submit.prevent="handleCreateTable" class="create-table-form">
<label>Название таблицы</label>
<input v-model="newTableName" required placeholder="Введите название" />
<label>Описание</label>
@@ -17,6 +17,7 @@
<button type="button" @click="goBack">Отмена</button>
</div>
</form>
<div v-else class="empty-table-placeholder">Нет прав для создания таблицы</div>
</div>
</BaseLayout>
</template>
@@ -26,11 +27,13 @@ import { ref } from 'vue';
import { useRouter } from 'vue-router';
import BaseLayout from '../../components/BaseLayout.vue';
import tablesService from '../../services/tablesService';
import { useAuthContext } from '@/composables/useAuth';
const router = useRouter();
const newTableName = ref('');
const newTableDescription = ref('');
const newTableIsRagSourceId = ref(2);
const { isAdmin } = useAuthContext();
async function handleCreateTable() {
if (!newTableName.value) return;

View File

@@ -4,9 +4,10 @@
<h2>Удалить таблицу?</h2>
<p>Вы уверены, что хотите удалить эту таблицу? Это действие необратимо.</p>
<div class="actions">
<button class="danger" @click="remove">Удалить</button>
<button v-if="isAdmin" class="danger" @click="remove">Удалить</button>
<button @click="cancel">Отмена</button>
</div>
<div v-if="!isAdmin" class="empty-table-placeholder">Нет прав для удаления таблицы</div>
</div>
</BaseLayout>
</template>
@@ -14,8 +15,10 @@
import { useRoute, useRouter } from 'vue-router';
import BaseLayout from '../../components/BaseLayout.vue';
import axios from 'axios';
import { useAuthContext } from '@/composables/useAuth';
const $route = useRoute();
const router = useRouter();
const { isAdmin } = useAuthContext();
async function remove() {
await axios.delete(`/api/tables/${$route.params.id}`);

View File

@@ -5,10 +5,11 @@
<button class="nav-btn" @click="goToTables">Таблицы</button>
<button class="nav-btn" @click="goToCreate">Создать таблицу</button>
<button class="close-btn" @click="closeTable">Закрыть</button>
<button class="action-btn" @click="goToEdit">Редактировать</button>
<button class="danger-btn" @click="goToDelete">Удалить</button>
<button v-if="isAdmin" class="action-btn" @click="goToEdit">Редактировать</button>
<button v-if="isAdmin" class="danger-btn" @click="goToDelete">Удалить</button>
</div>
<UserTableView :table-id="Number($route.params.id)" />
<UserTableView v-if="isAdmin" :table-id="Number($route.params.id)" />
<div v-else class="empty-table-placeholder">Нет данных для отображения</div>
</div>
</BaseLayout>
</template>
@@ -17,8 +18,10 @@
import BaseLayout from '../../components/BaseLayout.vue';
import UserTableView from '../../components/tables/UserTableView.vue';
import { useRoute, useRouter } from 'vue-router';
import { useAuthContext } from '@/composables/useAuth';
const $route = useRoute();
const router = useRouter();
const { isAdmin } = useAuthContext();
function closeTable() {
if (window.history.length > 1) {

View File

@@ -3,7 +3,8 @@
<div class="tables-list-block">
<button class="close-btn" @click="goBack">×</button>
<h2>Список таблиц</h2>
<UserTablesList />
<UserTablesList v-if="isAdmin" />
<div v-else class="empty-table-placeholder">Нет данных для отображения</div>
</div>
</BaseLayout>
</template>
@@ -12,8 +13,10 @@
import BaseLayout from '../../components/BaseLayout.vue';
import UserTablesList from '../../components/tables/UserTablesList.vue';
import { useRouter } from 'vue-router';
import { useAuthContext } from '@/composables/useAuth';
// import TagsTableView from '../../components/tables/TagsTableView.vue'; // больше не используется
const router = useRouter();
const { isAdmin } = useAuthContext();
function goBack() {
router.push({ name: 'crm' });
}