diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 38f0294..b449560 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -148,6 +148,11 @@ .app-content .card .card-title-icon { color: #3b4261; } +/* GnTagInput: подпись живёт внутри рамки поля (в отличие от GnInput) — у кита + она прилипает к границе; небольшой отступ делает это незаметным всюду */ +.tag-input > .label { + padding: 0.4rem 0.75rem 0; +} /* иконка внутри бейджа (GnBadge не имеет пропа icon — кладём в слот) */ .badge .ph { margin-right: 0.35em; diff --git a/frontend/src/components/TaskForm.vue b/frontend/src/components/TaskForm.vue index fe64a21..ce39336 100644 --- a/frontend/src/components/TaskForm.vue +++ b/frontend/src/components/TaskForm.vue @@ -5,7 +5,6 @@ import { deadlinePeriodOptions, recurKindOptions, priorityOptions, gradeToPriority, priorityToGrade, weekdayShort } from '../taskui' import { useToast } from 'gnexus-ui-kit/vue' import MdEditor from './MdEditor.vue' -import QuickPrompt from './QuickPrompt.vue' // Полная форма задачи: тип (радио), описание (Markdown-редактор с тулбаром), // метаданные, дедлайн, рекуррентность, вложения (Ctrl+V — картинка), @@ -206,23 +205,6 @@ } } -// Создание проекта на лету — модальное окно вместо window.prompt -const promptOpen = ref(false) - -function openPrompt() { - promptOpen.value = true -} - -async function onPromptConfirm(name: string) { - try { - const p = await api.createProject(name) - projects.value.push(p) - form.value.project_id = p.id - } catch (e) { - toast.error({ title: t('common.error'), text: String(e) }) - } -} - const projectOptions = () => [ { value: '', label: t('common.noProject') }, ...projects.value.map((p) => ({ value: String(p.id), label: p.name })), @@ -252,11 +234,6 @@ icon="ph-folder" :options="projectOptions()" /> -
- - {{ t('stack.newProject') }} - -
- - + +
+ {{ t('stack.form.estimateLegend') }} + + +
{{ t('stack.deadline.legend') }} @@ -357,8 +338,6 @@ - -