added chat 3
This commit is contained in:
@@ -427,13 +427,17 @@ async function initConfig() {
|
|||||||
applyAppNotificationEnabledFromRows(baseData.value)
|
applyAppNotificationEnabledFromRows(baseData.value)
|
||||||
applyPriceProviderFromRows(baseData.value)
|
applyPriceProviderFromRows(baseData.value)
|
||||||
applySupportChatMenuEnabledFromRows(baseData.value)
|
applySupportChatMenuEnabledFromRows(baseData.value)
|
||||||
// در صفحهٔ عادی price_provider (can_edit=0) نیست — از کل تنظیمات بخوان
|
// در صفحهٔ عادی price_provider و show_to_users_chat (can_edit=0) نیستند — از کل تنظیمات بخوان
|
||||||
if (!baseData.value.some((row) => row.key === 'price_provider')) {
|
if (
|
||||||
|
!baseData.value.some((row) => row.key === 'price_provider') ||
|
||||||
|
!baseData.value.some((row) => row.key === 'show_to_users_chat')
|
||||||
|
) {
|
||||||
try {
|
try {
|
||||||
const { getConfiguration } = await import('@/api/configuration')
|
const { getConfiguration } = await import('@/api/configuration')
|
||||||
const all = await getConfiguration()
|
const all = await getConfiguration()
|
||||||
applyPriceProviderFromRows(Array.isArray(all) ? all : [])
|
const rows = Array.isArray(all) ? all : []
|
||||||
applySupportChatMenuEnabledFromRows(Array.isArray(all) ? all : [])
|
applyPriceProviderFromRows(rows)
|
||||||
|
applySupportChatMenuEnabledFromRows(rows)
|
||||||
} catch {
|
} catch {
|
||||||
/* کش قبلی میماند */
|
/* کش قبلی میماند */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { Const } from '@/model/configuration'
|
import type { Const } from '@/model/configuration'
|
||||||
import { conditionalOrderEnabledSetting, isStoreApp, priceProviderSetting } from '@/utils/config'
|
import { conditionalOrderEnabledSetting, isStoreApp, priceProviderSetting, showToUsersChatSetting } from '@/utils/config'
|
||||||
|
|
||||||
export type SettingFieldType =
|
export type SettingFieldType =
|
||||||
| 'text'
|
| 'text'
|
||||||
@@ -209,6 +209,8 @@ export function isSettingVisible(key: string | undefined | null): boolean {
|
|||||||
if (HIDDEN_LEGACY_SETTING_KEYS.has(k)) return false
|
if (HIDDEN_LEGACY_SETTING_KEYS.has(k)) return false
|
||||||
if (STORE_ONLY_SETTING_KEYS.has(k) && !isStoreApp()) return false
|
if (STORE_ONLY_SETTING_KEYS.has(k) && !isStoreApp()) return false
|
||||||
if (k === 'fee_conditional_order' && !conditionalOrderEnabledSetting.value) return false
|
if (k === 'fee_conditional_order' && !conditionalOrderEnabledSetting.value) return false
|
||||||
|
// سوییچ مشتری has_chat فقط وقتی قابلیت چت دیپلوی روشن است
|
||||||
|
if (k === 'has_chat' && !showToUsersChatSetting.value) return false
|
||||||
// گروه همکار Montzar فقط وقتی منبع قیمت montzar است
|
// گروه همکار Montzar فقط وقتی منبع قیمت montzar است
|
||||||
if ((k.startsWith('montzar_') || k === 'display_montzar') && priceProviderSetting.value !== 'montzar') {
|
if ((k.startsWith('montzar_') || k === 'display_montzar') && priceProviderSetting.value !== 'montzar') {
|
||||||
return false
|
return false
|
||||||
@@ -689,9 +691,9 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
|
|||||||
support_messengers:
|
support_messengers:
|
||||||
'فقط مواردی که در این لیست ثبت شوند در منوی شناور پشتیبانی اپ مشتری نمایش داده میشوند. برای تماس تلفنی یا پیامک، نوع «تماس تلفنی» / «پیامک» را با شماره اضافه کنید. لیست میتواند خالی باشد؛ اگر چت فعال باشد، پشتیبانی مستقیم به صفحه چت میرود.',
|
'فقط مواردی که در این لیست ثبت شوند در منوی شناور پشتیبانی اپ مشتری نمایش داده میشوند. برای تماس تلفنی یا پیامک، نوع «تماس تلفنی» / «پیامک» را با شماره اضافه کنید. لیست میتواند خالی باشد؛ اگر چت فعال باشد، پشتیبانی مستقیم به صفحه چت میرود.',
|
||||||
show_to_users_chat:
|
show_to_users_chat:
|
||||||
'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیشنیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است. سوییچ مشتری (has_chat) جداگانه در تنظیمات عادی است.',
|
'روشن: قابلیت چت پشتیبانی برای این دیپلوی فعال است (منوی ادمین و پیشنیاز نمایش به کاربر). خاموش: چت در ادمین و اپ کاربر مخفی است و سوییچ «چت پشتیبانی» (has_chat) از تنظیمات عادی هم برداشته میشود.',
|
||||||
has_chat:
|
has_chat:
|
||||||
'روشن: چت پشتیبانی در اپ مشتری نمایش داده میشود (اگر نمایش چت به کاربران هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.',
|
'روشن: چت پشتیبانی در اپ مشتری نمایش داده میشود (فقط وقتی show_to_users_chat هم روشن باشد). خاموش: دکمه و صفحه چت برای کاربر مخفی است.',
|
||||||
chat_api:
|
chat_api:
|
||||||
'هاست سرور چت جدا (بدون https)، مثلاً chat.example.ir — برای WebSocket و ساخت روم.',
|
'هاست سرور چت جدا (بدون https)، مثلاً chat.example.ir — برای WebSocket و ساخت روم.',
|
||||||
chat_api_key:
|
chat_api_key:
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ export const priceProviderSetting = ref('')
|
|||||||
/** reactive — منوی افقی / دکمه «چت پشتیبانی» */
|
/** reactive — منوی افقی / دکمه «چت پشتیبانی» */
|
||||||
export const supportChatMenuEnabledSetting = ref(false)
|
export const supportChatMenuEnabledSetting = ref(false)
|
||||||
|
|
||||||
|
/** reactive — سوییچ دیپلوی show_to_users_chat (برای مخفی کردن has_chat در تنظیمات عادی) */
|
||||||
|
export const showToUsersChatSetting = ref(false)
|
||||||
|
|
||||||
export const accountingProviderSetting = ref<AccountingProvider>('none')
|
export const accountingProviderSetting = ref<AccountingProvider>('none')
|
||||||
|
|
||||||
let tahesabEnabledFromSettings: boolean | null = null
|
let tahesabEnabledFromSettings: boolean | null = null
|
||||||
@@ -153,6 +156,10 @@ export function setSupportChatMenuEnabledFromSettings(value: boolean): void {
|
|||||||
supportChatMenuEnabledSetting.value = value
|
supportChatMenuEnabledSetting.value = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function setShowToUsersChatFromSettings(value: boolean): void {
|
||||||
|
showToUsersChatSetting.value = value
|
||||||
|
}
|
||||||
|
|
||||||
let lastShowToUsersChat = ''
|
let lastShowToUsersChat = ''
|
||||||
let lastHasChat = ''
|
let lastHasChat = ''
|
||||||
let lastChatApi = ''
|
let lastChatApi = ''
|
||||||
@@ -189,6 +196,7 @@ export function applySupportChatMenuEnabledFromRows(
|
|||||||
}
|
}
|
||||||
if (!touched) return
|
if (!touched) return
|
||||||
|
|
||||||
|
setShowToUsersChatFromSettings(isSwitchOn(lastShowToUsersChat))
|
||||||
setSupportChatMenuEnabledFromSettings(
|
setSupportChatMenuEnabledFromSettings(
|
||||||
resolveSupportChatMenuEnabled((key) => {
|
resolveSupportChatMenuEnabled((key) => {
|
||||||
if (key === 'show_to_users_chat') return lastShowToUsersChat
|
if (key === 'show_to_users_chat') return lastShowToUsersChat
|
||||||
|
|||||||
Reference in New Issue
Block a user