fix edits for borsemes
This commit is contained in:
@@ -174,7 +174,7 @@ import SettingValueField from './SettingValueField.vue'
|
||||
import SettingCard from './SettingCard.vue'
|
||||
import { refreshAppModeMenu } from '@/router'
|
||||
import { useUserStore } from '@/store/userStore'
|
||||
import { applyBannerEnabledFromRows, applyTrackingSystemsEnabledFromRows, applyConditionalOrderEnabledFromRows, setBannerEnabledFromSettings, setConditionalOrderEnabledFromSettings, setStoreModeFromSettings, setTrackingSystemsEnabledFromSettings } from '@/utils/config'
|
||||
import { applyBannerEnabledFromRows, applyTrackingSystemsEnabledFromRows, applyConditionalOrderEnabledFromRows, applyPriceProviderFromRows, setBannerEnabledFromSettings, setConditionalOrderEnabledFromSettings, setPriceProviderFromSettings, setStoreModeFromSettings, setTrackingSystemsEnabledFromSettings } from '@/utils/config'
|
||||
import {
|
||||
EDITABLE_SETTING_GROUPS,
|
||||
SYSTEM_SETTING_GROUPS,
|
||||
@@ -278,12 +278,9 @@ const filteredRows = computed(() =>
|
||||
sortRows(
|
||||
(baseData.value || []).filter((row) => {
|
||||
if (row.id == null || !matchesFilter(row)) return false
|
||||
if (isSystemMode.value) {
|
||||
// کارمزد سفارش شرطی فقط وقتی قابلیت سراسری روشن است دیده شود
|
||||
if (row.key === 'fee_conditional_order' && !isSettingVisible(row.key)) return false
|
||||
return true
|
||||
}
|
||||
return isEditable(row) && isSettingVisible(row.key)
|
||||
if (!isSettingVisible(row.key)) return false
|
||||
if (isSystemMode.value) return true
|
||||
return isEditable(row)
|
||||
})
|
||||
)
|
||||
)
|
||||
@@ -423,14 +420,21 @@ async function initConfig() {
|
||||
? await getSystemConfiguration()
|
||||
: await getEditableConfiguration()) ?? []
|
||||
baseData.value = rows.map(normalizeSettingRow)
|
||||
if (isSystemMode.value) {
|
||||
applyBannerEnabledFromRows(baseData.value)
|
||||
applyTrackingSystemsEnabledFromRows(baseData.value)
|
||||
applyConditionalOrderEnabledFromRows(baseData.value)
|
||||
} else {
|
||||
applyBannerEnabledFromRows(baseData.value)
|
||||
applyTrackingSystemsEnabledFromRows(baseData.value)
|
||||
applyConditionalOrderEnabledFromRows(baseData.value)
|
||||
applyBannerEnabledFromRows(baseData.value)
|
||||
applyTrackingSystemsEnabledFromRows(baseData.value)
|
||||
applyConditionalOrderEnabledFromRows(baseData.value)
|
||||
applyPriceProviderFromRows(baseData.value)
|
||||
// در صفحهٔ عادی price_provider (can_edit=0) نیست — از کل تنظیمات بخوان
|
||||
if (!baseData.value.some((row) => row.key === 'price_provider')) {
|
||||
try {
|
||||
const { getConfiguration } = await import('@/api/configuration')
|
||||
const all = await getConfiguration()
|
||||
applyPriceProviderFromRows(Array.isArray(all) ? all : [])
|
||||
} catch {
|
||||
/* کش قبلی میماند */
|
||||
}
|
||||
}
|
||||
if (!isSystemMode.value) {
|
||||
const storeRow = baseData.value.find((row) => row.key === 'is_store')
|
||||
if (storeRow) {
|
||||
setStoreModeFromSettings(isSwitchOn(storeRow.value))
|
||||
@@ -459,6 +463,11 @@ function onValueChange(row: Const, value: string) {
|
||||
|
||||
drafts.value[row.id] = value
|
||||
|
||||
// بلافاصله گروه Montzar را با انتخاب منبع قیمت همگام کن
|
||||
if (row.key === 'price_provider') {
|
||||
setPriceProviderFromSettings(value)
|
||||
}
|
||||
|
||||
// longtext هم باید ذخیره شود، فقط با delay بیشتر
|
||||
scheduleSave(row)
|
||||
}
|
||||
@@ -550,6 +559,9 @@ async function saveSettingRow(row: Const) {
|
||||
if (row.key === 'enable_conditional_order') {
|
||||
setConditionalOrderEnabledFromSettings(isSwitchOn(value))
|
||||
}
|
||||
if (row.key === 'price_provider') {
|
||||
setPriceProviderFromSettings(value)
|
||||
}
|
||||
savedFlashIds.value.add(id)
|
||||
if (saveTimers.has(id)) clearTimeout(saveTimers.get(id))
|
||||
saveTimers.set(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { Const } from '@/model/configuration'
|
||||
import { conditionalOrderEnabledSetting, isStoreApp } from '@/utils/config'
|
||||
import { conditionalOrderEnabledSetting, isStoreApp, priceProviderSetting } from '@/utils/config'
|
||||
|
||||
export type SettingFieldType =
|
||||
| 'text'
|
||||
@@ -209,6 +209,10 @@ export function isSettingVisible(key: string | undefined | null): boolean {
|
||||
if (HIDDEN_LEGACY_SETTING_KEYS.has(k)) return false
|
||||
if (STORE_ONLY_SETTING_KEYS.has(k) && !isStoreApp()) return false
|
||||
if (k === 'fee_conditional_order' && !conditionalOrderEnabledSetting.value) return false
|
||||
// گروه همکار Montzar فقط وقتی منبع قیمت montzar است
|
||||
if ((k.startsWith('montzar_') || k === 'display_montzar') && priceProviderSetting.value !== 'montzar') {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -552,7 +556,7 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
|
||||
sell_fee:
|
||||
'مبلغ کسر (ریال) از قیمت پایه برای سمت فروش. اگر خالی بگذارید، از «اختلاف پایه» استفاده میشود.',
|
||||
fee_service_charge_percentage:
|
||||
'درصد کارمزد هر معامله از مبلغ سفارش (اعشاری؛ مثلاً ۰٫۰۰۵ یعنی نیم در هزار).',
|
||||
'درصد کارمزد هر معامله (اعشاری؛ مثلاً ۰٫۰۰۵). روی همهٔ سفارشها اعمال میشود و با اختلاف قیمت محصول یا buy_fee/sell_fee قاطی نمیشود. محصول مقداری: اگر مبلغ ریالی قفل باشد کارمزد از فلز، اگر وزن قفل باشد از ریال. محصول تعدادی: کارمزد فقط از ریال.',
|
||||
fee_deduct_from_gold:
|
||||
'این کلید دیگر روی محاسبه اثری ندارد. مبنای کارمزد اکنون فیلدی است که مشتری وارد میکند: اگر «مبلغ ریالی» را وارد کند (مثلاً دقیقاً ۱۰۰ میلیون ریال) همان مبلغ معامله میشود و کارمزد از طلا کسر میشود؛ اگر «وزن» را وارد کند (مثلاً دقیقاً ۲ گرم) همان وزن معامله میشود و کارمزد از ریال کسر میشود. این قانون برای خرید و فروش یکسان است.',
|
||||
require_zero_main_gold_before_other_buy:
|
||||
@@ -872,6 +876,8 @@ export const SETTING_LOCKED_KEYS = new Set([
|
||||
'chart_id', 'chart_use_local_data',
|
||||
'external_order_api_enabled',
|
||||
'fee_deduct_from_gold',
|
||||
'fee_single',
|
||||
'referral_bonus_amount',
|
||||
'group_sms',
|
||||
'customer_direct_sms',
|
||||
'enable_conditional_order',
|
||||
@@ -921,7 +927,7 @@ export const SETTING_EDITABLE_KEYS = new Set([
|
||||
'deposit_sms_support_number', 'deposit_support_message_text',
|
||||
'deposit_account_holder', 'deposit_card_number', 'deposit_sheba',
|
||||
'endDay',
|
||||
'fee_free', 'fee_service_charge_percentage', 'fee_single',
|
||||
'fee_free', 'fee_service_charge_percentage',
|
||||
'gift_for_referral', 'gift_for_referrer',
|
||||
'invite_link_text',
|
||||
'jibit_verification',
|
||||
@@ -930,7 +936,7 @@ export const SETTING_EDITABLE_KEYS = new Set([
|
||||
'montzar_mobile', 'montzar_open_buy', 'montzar_open_sell',
|
||||
'montzar_password', 'montzar_price', 'montzar_product_id',
|
||||
'open_register',
|
||||
'referral_bonus_amount', 'referral_id', 'referral_limit', 'referral_gift_on_first_order',
|
||||
'referral_id', 'referral_limit', 'referral_gift_on_first_order',
|
||||
'register_jibit_verify', 'register_referral_bonus_message', 'register_referral_sms_to_referrer',
|
||||
'sell_fee', 'show_last_price', 'show_gold_ounce_price', 'startDay',
|
||||
'support_messengers', 'support_messenger_text',
|
||||
|
||||
Reference in New Issue
Block a user