This commit is contained in:
2026-07-02 01:25:29 +03:30
parent e5995939f4
commit 7ea7fa9ae9
6 changed files with 28 additions and 28 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ export interface DashboardFinance {
fullPriceSood?: number
fullPriceKarmozd?: number
fullPriceKaermozd?: number
/** سود اسپرد + کارمزد */
/** سود اختلاف قیمت + کارمزد */
totalTradingProfit?: number
orderCount?: number
Gifts?: string
@@ -2,7 +2,7 @@
<section class="dashboard-income-summary">
<DashboardSectionHeader title="خلاصه درآمد معاملات" :help="help" />
<p class="dashboard-income-summary__intro">
سود اسپرد (اختلاف قیمت) و کارمزد جدا محاسبه می‌شوند. جمع = هر دو. همه مبالغ
سود اختلاف قیمت و کارمزد جدا محاسبه می‌شوند. جمع = هر دو. همه مبالغ
<strong>ریال</strong> هستند (نه تومان).
</p>
@@ -49,21 +49,21 @@ const props = defineProps<{
const help = dashboardTradingIncomeSummary
const unit = DASHBOARD_RIAL_UNIT
const spreadRial = computed(() => Number(props.finance?.fullPriceSood ?? 0))
const priceDiffRial = computed(() => Number(props.finance?.fullPriceSood ?? 0))
const commissionRial = computed(() =>
Number(props.finance?.fullPriceKarmozd ?? props.finance?.fullPriceKaermozd ?? 0)
)
const totalRial = computed(() =>
Number(props.finance?.totalTradingProfit ?? spreadRial.value + commissionRial.value)
Number(props.finance?.totalTradingProfit ?? priceDiffRial.value + commissionRial.value)
)
const rows = computed(() => [
{
key: 'spread',
label: 'سود اسپرد',
hint: 'اختلاف قیمت پایه و قیمت مشتری',
amount: formatDashboardAmount(spreadRial.value),
help: dashboardKpi.spreadProfit,
key: 'priceDiff',
label: 'سود اختلاف قیمت',
hint: 'فاصله بین قیمت پایه و قیمت مشتری',
amount: formatDashboardAmount(priceDiffRial.value),
help: dashboardKpi.priceDiffProfit,
isTotal: false,
},
{
@@ -77,7 +77,7 @@ const rows = computed(() => [
{
key: 'total',
label: 'جمع سود',
hint: 'اسپرد + کارمزد',
hint: 'اختلاف قیمت + کارمزد',
amount: formatDashboardAmount(totalRial.value),
help: dashboardKpi.totalTradingProfit,
isTotal: true,
@@ -284,7 +284,7 @@ export function useDashboardPage() {
return {
...chartSurfaceOptions(),
chart: { type: 'donut', fontFamily: 'inherit', offsetY: 4, foreColor: chartSurfaceOptions().chart.foreColor },
labels: ['سود اسپرد', 'کارمزد معامله', 'ارزش هدایا (گرم)'],
labels: ['سود اختلاف قیمت', 'کارمزد معامله', 'ارزش هدایا (گرم)'],
colors: ['#10b981', '#f59e0b', '#8b5cf6'],
legend: {
position: 'bottom',
+12 -12
View File
@@ -27,17 +27,17 @@ export const dashboardGateway = help(
)
export const dashboardKpi = {
spreadProfit: help(
'مجموع سود اسپرد (اختلاف قیمت پایه و قیمت مشتری) — فقط از تفاوت buy/sell price. کارمزد جداگانه در کارت «کارمزد معامله» است.',
'سود اسپرد = جمع «سود کل» (total_fee) هر سفارش در بازه'
priceDiffProfit: help(
'مجموع سود اختلاف قیمت (فاصله بین قیمت پایه و قیمت مشتری) — فقط از تفاوت buy/sell price. کارمزد جداگانه در کارت «کارمزد معامله» است.',
'سود اختلاف قیمت = جمع «سود کل» (total_fee) هر سفارش در بازه'
),
commission: help(
'مجموع کارمزد ریالی معاملات (درصد/وزن کارمزد) — جدا از سود اسپرد.',
'مجموع کارمزد ریالی معاملات (درصد/وزن کارمزد) — جدا از سود اختلاف قیمت.',
'کارمزد = جمع service_charge_price هر سفارش در بازه'
),
totalTradingProfit: help(
'مجموع سود اسپرد و کارمزد — همان ردیف «جمع» در خلاصه درآمد.',
'جمع = سود اسپرد + کارمزد معاملات'
'مجموع سود اختلاف قیمت و کارمزد — همان ردیف «جمع» در خلاصه درآمد.',
'جمع = سود اختلاف قیمت + کارمزد معاملات'
),
orderCount: help(
'تعداد همه سفارش‌هایی که در بازه انتخابی ثبت شده‌اند (هر وضعیتی).',
@@ -58,8 +58,8 @@ export const dashboardKpi = {
} as const satisfies Record<string, DashboardHelp>
export const dashboardTradingIncomeSummary = help(
'تفکیک درآمد از معاملات در بازه انتخابی: سود اسپرد (اختلاف قیمت) و کارمزد ریالی جدا، و جمع هر دو.',
'جمع سود معاملات = سود اسپرد + کارمزد معاملات'
'تفکیک درآمد از معاملات در بازه انتخابی: سود اختلاف قیمت و کارمزد ریالی جدا، و جمع هر دو.',
'جمع سود معاملات = سود اختلاف قیمت + کارمزد معاملات'
)
export const dashboardDateRange = help(
@@ -77,7 +77,7 @@ export const dashboardDateMetrics = {
'تراز قیمت−پرداخت = جمع |قیمت اصلی − پرداختی| − (گرم هدیه × مظنه)'
),
totalTradingProfit: help(
'همان «جمع سود معاملات» در خلاصه بالا — اسپرد + کارمزد.',
'همان «جمع سود معاملات» در خلاصه بالا — اختلاف قیمت + کارمزد.',
'جمع = fullPriceSood + fullPriceKarmozd'
),
gifts: help(
@@ -88,8 +88,8 @@ export const dashboardDateMetrics = {
export const dashboardCharts = {
incomeMix: help(
'تفکیک درآمد: سود اسپرد (اختلاف قیمت)، کارمزد ریالی، و ارزش هدایا.',
'درآمد = سود اسپرد + کارمزد + (گرم هدیه × مظنه)'
'تفکیک درآمد: سود اختلاف قیمت، کارمزد ریالی، و ارزش هدایا.',
'درآمد = سود اختلاف قیمت + کارمزد + (گرم هدیه × مظنه)'
),
buySellVolume: help(
'مقدار طلای خرید و فروش مشتری در هر روز (فقط سفارش موفق).',
@@ -112,7 +112,7 @@ export const dashboardOrders = {
),
recent: help(
'۱۴ سفارش آخر با جزئیات مظنه و سود.',
'مظنه = قیمت پایه | قیمت مشتری = مظنه ± اسپرد | سود/گرم = تفاوت اسپرد'
'مظنه = قیمت پایه | قیمت مشتری = مظنه ± اختلاف قیمت | سود/گرم = همان اختلاف قیمت'
),
} as const satisfies Record<string, DashboardHelp>
+4 -4
View File
@@ -341,8 +341,8 @@
<th class="px-2 py-2 text-right">مقدار</th>
<th class="px-2 py-2 text-right">مظنه/گرم</th>
<th class="px-2 py-2 text-right">قیمت مشتری</th>
<th class="px-2 py-2 text-right">سود اسپرد/گرم</th>
<th class="px-2 py-2 text-right">سود اسپرد کل</th>
<th class="px-2 py-2 text-right">سود اختلاف قیمت/گرم</th>
<th class="px-2 py-2 text-right">سود کل اختلاف قیمت</th>
<th class="px-2 py-2 text-right">کارمزد (ریال)</th>
<th class="px-2 py-2 text-right">وضعیت</th>
<th class="px-2 py-2 text-right">تاریخ</th>
@@ -522,9 +522,9 @@ const {
} = useDashboardPage()
const tradingProfitTotal = computed(() => {
const spread = Number(finance.value?.fullPriceSood ?? 0)
const priceDiff = Number(finance.value?.fullPriceSood ?? 0)
const commission = Number(finance.value?.fullPriceKarmozd ?? finance.value?.fullPriceKaermozd ?? 0)
return Number(finance.value?.totalTradingProfit ?? spread + commission)
return Number(finance.value?.totalTradingProfit ?? priceDiff + commission)
})
const {
@@ -279,7 +279,7 @@ const KEY_HELP_FALLBACK: Record<string, string> = {
show_last_price:
'وقتی قیمت زنده در دسترس نباشد: روشن = آخرین قیمت ذخیره‌شده نشان داده می‌شود؛ خاموش = به‌جای صفر پیام «مظنه در دسترس نیست» نمایش داده می‌شود.',
fee_single:
'اختلاف پایه (ریال) بین قیمت خرید و فروش روی مظنه. معمولاً نصف فاصله اسپرد کل است.',
'اختلاف پایه (ریال) بین قیمت خرید و فروش روی مظنه. معمولاً نصف مجموع اختلاف قیمت خرید و فروش است.',
buy_fee:
'مبلغ اضافه (ریال) روی قیمت پایه برای سمت خرید. اگر خالی بگذارید، از «اختلاف پایه» استفاده می‌شود.',
sell_fee: