fix(settings): show API SuperAdmin keys even if frontend catalog lags
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -39,7 +39,7 @@ import {
|
||||
normalizeSettingRow,
|
||||
resolveSettingFieldType,
|
||||
} from '@/config/khanegiSettingCatalog'
|
||||
import { isSuperAdminSystemSettingKey, SUPERADMIN_SYSTEM_SETTING_KEYS } from '@/config/superAdminSettingKeys'
|
||||
import { SUPERADMIN_EDITABLE_SETTING_KEYS, SUPERADMIN_SYSTEM_SETTING_KEYS } from '@/config/superAdminSettingKeys'
|
||||
import type { KhanegiSettingRow } from '@/config/khanegiSettingRow'
|
||||
import { useAuthStore } from '@/stores/auth'
|
||||
|
||||
@@ -136,12 +136,15 @@ const filteredRows = computed(() => {
|
||||
const q = search.value.trim().toLowerCase()
|
||||
return [...items.value]
|
||||
.filter((row) => {
|
||||
if (!isSuperAdminSystemSettingKey(row.key)) return false
|
||||
if (!isSettingVisible(row.key)) return false
|
||||
const key = String(row.key || '').trim()
|
||||
if (!key) return false
|
||||
// کلیدهای مالک نصب را نشان نده؛ بقیه (از API یا کاتالوگ SA) بمانند
|
||||
if (SUPERADMIN_EDITABLE_SETTING_KEYS.has(key)) return false
|
||||
if (!isSettingVisible(key)) return false
|
||||
if (filterType.value && resolveSettingFieldType(row) !== filterType.value) return false
|
||||
if (!q) return true
|
||||
return (
|
||||
(row.key || '').toLowerCase().includes(q) ||
|
||||
key.toLowerCase().includes(q) ||
|
||||
(row.title_fa || '').toLowerCase().includes(q) ||
|
||||
(row.value || '').toLowerCase().includes(q) ||
|
||||
(row.description || '').toLowerCase().includes(q)
|
||||
@@ -309,13 +312,18 @@ function errText(e: any) {
|
||||
}
|
||||
|
||||
function mergeSystemCatalogRows(rows: KhanegiSettingRow[]): KhanegiSettingRow[] {
|
||||
const byKey = new Map(rows.map((row) => [rowKey(row), row]))
|
||||
return [...SUPERADMIN_SYSTEM_SETTING_KEYS]
|
||||
.sort((a, b) => a.localeCompare(b))
|
||||
.map((key) => {
|
||||
const found = byKey.get(key)
|
||||
if (found) return normalizeSettingRow(found)
|
||||
return normalizeSettingRow({
|
||||
const byKey = new Map<string, KhanegiSettingRow>()
|
||||
// اول پاسخ API — تا کلید جدید سوپرادمین (مثل enable_automation) قبل از آپدیت کاتالوگ فرانت هم دیده شود
|
||||
for (const row of rows) {
|
||||
const key = rowKey(row)
|
||||
if (!key) continue
|
||||
byKey.set(key, normalizeSettingRow(row))
|
||||
}
|
||||
for (const key of SUPERADMIN_SYSTEM_SETTING_KEYS) {
|
||||
if (byKey.has(key)) continue
|
||||
byKey.set(
|
||||
key,
|
||||
normalizeSettingRow({
|
||||
key,
|
||||
value: '',
|
||||
title_fa: '',
|
||||
@@ -323,8 +331,12 @@ function mergeSystemCatalogRows(rows: KhanegiSettingRow[]): KhanegiSettingRow[]
|
||||
type: '',
|
||||
is_active: 1,
|
||||
can_edit: 0,
|
||||
})
|
||||
})
|
||||
}),
|
||||
)
|
||||
}
|
||||
return [...byKey.values()].sort((a, b) =>
|
||||
(a.title_fa || a.key || '').localeCompare(b.title_fa || b.key || '', 'fa'),
|
||||
)
|
||||
}
|
||||
|
||||
function applyItems(raw: unknown[]) {
|
||||
@@ -674,7 +686,11 @@ onMounted(load)
|
||||
</a-collapse>
|
||||
<a-empty
|
||||
v-else
|
||||
description="هنوز تنظیم سیستمی منتقل نشده — از فرم بالا با یوزر و پسورد ادمین خانگی بگیرید"
|
||||
:description="
|
||||
search.trim() || filterType
|
||||
? 'نتیجهای برای این فیلتر پیدا نشد'
|
||||
: 'هنوز تنظیم سیستمی منتقل نشده — از فرم بالا با یوزر و پسورد ادمین خانگی بگیرید'
|
||||
"
|
||||
/>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user