added some text handling 3

This commit is contained in:
2026-07-08 18:24:55 +03:30
parent 89e2643dff
commit 01437afa84
19 changed files with 683 additions and 168 deletions
@@ -1,16 +1,18 @@
<template>
<a-tooltip
placement="top"
:title="tooltipText"
overlay-class-name="dashboard-help-tooltip"
:overlay-style="{ zIndex: TOOLTIP_ABOVE_MODAL_Z_INDEX }"
:overlay-inner-style="{ maxWidth: '26rem', direction: 'rtl', textAlign: 'right', whiteSpace: 'pre-line' }"
:overlay-inner-style="tooltipInnerStyle"
:mouse-enter-delay="0.15"
>
<template #title>
<AdminHelpTooltipContent :content="parsed" />
</template>
<span
class="dashboard-help-trigger inline-flex shrink-0 items-center justify-center"
role="img"
:aria-label="tooltipText"
:aria-label="plainText"
tabindex="0"
>
<IosInfoBadge :size="badgeSize" />
@@ -21,7 +23,9 @@
<script setup lang="ts">
import type { DashboardHelp } from '@/pages/dashboard/dashboardSectionCopy'
import IosInfoBadge from '@/pages/dashboard/components/IosInfoBadge.vue'
import AdminHelpTooltipContent from '@/components/AdminHelpTooltipContent.vue'
import { TOOLTIP_ABOVE_MODAL_Z_INDEX } from '@/constants/overlayZIndex'
import { adminHelpPlainText } from '@/utils/adminHelpFormat'
const props = withDefaults(
defineProps<{
@@ -35,13 +39,18 @@ const props = withDefaults(
const badgeSize = computed(() => props.size)
const tooltipText = computed(() => {
const blocks = [props.help.description?.trim()].filter(Boolean)
if (props.help.formula?.trim()) {
blocks.push(props.help.formula.trim())
}
return blocks.join('\n\n')
})
const parsed = computed(() => ({
description: props.help.description?.trim() ?? '',
formula: props.help.formula?.trim() || undefined,
}))
const plainText = computed(() => adminHelpPlainText(parsed.value))
const tooltipInnerStyle = {
maxWidth: '26rem',
direction: 'rtl',
textAlign: 'right',
}
</script>
<style scoped>
@@ -56,4 +65,9 @@ const tooltipText = computed(() => {
z-index: 1250 !important;
pointer-events: none;
}
.ant-tooltip.dashboard-help-tooltip .ant-tooltip-inner {
direction: rtl;
text-align: right;
}
</style>
@@ -1,10 +1,6 @@
<template>
<section class="dashboard-income-summary">
<DashboardSectionHeader title="خلاصه درآمد معاملات" :help="help" />
<p class="dashboard-income-summary__intro">
سود اختلاف قیمت و کارمزد جدا محاسبه می‌شوند. جمع = هر دو. همه مبالغ
<strong>ریال</strong> هستند (نه تومان).
</p>
<div class="dashboard-income-summary__grid">
<article
@@ -95,13 +91,6 @@ const rows = computed(() => [
color: var(--admin-text);
}
.dashboard-income-summary__intro {
margin: 0 0 0.5rem;
font-size: 0.6875rem;
line-height: 1.55;
color: var(--admin-text-secondary);
}
.dashboard-income-summary__grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
+1 -1
View File
@@ -58,7 +58,7 @@ export const dashboardKpi = {
} as const satisfies Record<string, DashboardHelp>
export const dashboardTradingIncomeSummary = help(
'تفکیک درآمد از معاملات در بازه انتخابی: سود اختلاف قیمت و کارمزد ریالی جدا، و جمع هر دو.',
'در بازهٔ انتخابی، درآمد معاملات را به دو بخش می‌بینید: سود اختلاف قیمت و کارمزد ریالی. همهٔ مبالغ به ریال هستند (نه تومان).',
'جمع سود معاملات = سود اختلاف قیمت + کارمزد معاملات'
)