From 1bc276147d39a6c185f1d9ae4596ea2b9950d050 Mon Sep 17 00:00:00 2001 From: AyrisAI Date: Tue, 21 Jul 2026 10:23:57 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20i=C3=A7=20i=C3=A7e=20akordeonlarda=20ok?= =?UTF-8?q?=20y=C3=B6n=C3=BC=20(named=20group)=20+=20form=20alan=20s=C4=B1?= =?UTF-8?q?ralamas=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- src/components/Admin/Field.vue | 37 +++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/components/Admin/Field.vue b/src/components/Admin/Field.vue index 45b5b44..a18b1a9 100644 --- a/src/components/Admin/Field.vue +++ b/src/components/Admin/Field.vue @@ -47,13 +47,13 @@
{{ @@ -241,10 +241,37 @@ const displayLabel = computed(() => { .replace(/^./, (c) => c.toUpperCase()); }); +// Öncelikli metin alanları — formda en üstte görünsün +const KEY_ORDER = [ + "title", + "name", + "label", + "fullName", + "subtitle", + "price", + "discount", + "excerpt", + "description", + "text", + "content", + "startDate", + "endDate", + "enabled", +]; + const objectKeys = computed(() => { - const keys = Object.keys(value.value).filter((k) => k !== "__component"); - // Meta/SEO en sona - return keys.sort((a, b) => (a === "meta" ? 1 : b === "meta" ? -1 : 0)); + const obj = value.value; + const weight = (k: string) => { + if (k === "meta") return 100; // SEO her zaman en sonda + const v = obj[k]; + if (Array.isArray(v)) return 50; // listeler (öğeler vb.) en altta + if (v !== null && typeof v === "object") return 40; // görsel gibi nesneler + const i = KEY_ORDER.indexOf(k); + return i === -1 ? 30 : i; // bilinen metinler önce, kalan primitifler sonra + }; + return Object.keys(obj) + .filter((k) => k !== "__component") + .sort((a, b) => weight(a) - weight(b)); }); function stripHtml(s: string) {