diff --git a/mpuniapp/pages/owner/leads.uvue b/mpuniapp/pages/owner/leads.uvue index 9353e32..7e17b99 100644 --- a/mpuniapp/pages/owner/leads.uvue +++ b/mpuniapp/pages/owner/leads.uvue @@ -27,60 +27,7 @@ - - - - {{ statsTotal }} - {{ t('statTotal') }} - - - - - - {{ statsHot }} - - {{ t('statHot') }} - - - - {{ statsNew }} - {{ t('statNew') }} - - - - {{ statsWon }} - {{ t('statWon') }} - - - - - - - - {{ radarLineOne }} - - - {{ radarMoreLabel }} - - - - + { return `${count}`; }); -const statsTotal = computed((): number => { - return state.total > 0 ? state.total : state.list.length; -}); - -const statsHot = computed((): number => { - let count = 0; - for (let i = 0; i < state.list.length; i++) { - const item = state.list[i]; - if (item.status === 'hot' || item.intentScore >= 80) { - count++; - } - } - return count; -}); - -const statsNew = computed((): number => { - let count = 0; - for (let i = 0; i < state.list.length; i++) { - const item = state.list[i]; - if (item.status === 'new') { - count++; - } - } - return count; -}); - -const statsWon = computed((): number => { - let count = 0; - for (let i = 0; i < state.list.length; i++) { - const item = state.list[i]; - if (item.status === 'won') { - count++; - } - } - return count; -}); - -const radarLineOne = computed((): string => { - if (state.radarTracks.length < 1) { - return ''; - } - return formatRadarLine(state.radarTracks[0]); -}); - -const hasRadarAlert = computed((): boolean => { - return radarLineOne.value !== ''; -}); - const pageRtlClass = computed((): string => { return isRtl(getCurrentLocale()) ? 'leads-rtl' : ''; }); @@ -598,143 +497,7 @@ onShow(() => { font-weight: 500; } -/* Row 2: Micro Metrics Bar (Compact High-Information Bar) */ -.micro-stats-bar { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - background-color: var(--oc-surface, #F7F8FA); - border: 1px solid var(--oc-border, #E3E7ED); - border-radius: 12px; - padding: 6px 12px; - margin-block-end: var(--oc-space-8, 8px); -} - -.micro-stat-item { - flex: 1; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding-block: 2px; - border-radius: 8px; - transition: background-color 150ms cubic-bezier(0.2, 0.8, 0.2, 1); -} - -.micro-stat-item:active { - background-color: #EBF5FF; -} - -.micro-stat-active { - background-color: #EBF5FF; -} - -.micro-stat-num-row { - display: flex; - flex-direction: row; - align-items: center; -} - -.micro-hot-dot { - width: 5px; - height: 5px; - border-radius: 3px; - background-color: var(--oc-error, #F04438); - margin-inline-end: 4px; -} - -.micro-stat-num { - font-size: 15px; - font-weight: 800; - color: var(--oc-text, #101828); - line-height: 1.2; -} - -.text-brand { - color: var(--oc-primary, #0B5CFF); -} - -.text-hot { - color: var(--oc-error, #F04438); -} - -.text-won { - color: var(--oc-success, #12B76A); -} - -.micro-stat-label { - font-size: 10px; - font-weight: 600; - color: var(--oc-text-2, #667085); - margin-block-start: 1px; -} - -.micro-stat-divider { - width: 1px; - height: 20px; - background-color: var(--oc-border, #E3E7ED); -} - -/* Row 3: Radar Alert Capsule */ -.radar-capsule-bar { - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - height: 28px; - padding-inline: 10px; - background-color: #F5F9FF; - border: 1px solid #D1E4FF; - border-radius: 8px; - margin-block-end: var(--oc-space-8, 8px); - transition: opacity 150ms cubic-bezier(0.2, 0.8, 0.2, 1); -} - -.radar-capsule-bar:active { - opacity: 0.85; -} - -.radar-capsule-left { - display: flex; - flex-direction: row; - align-items: center; - flex: 1; - overflow: hidden; -} - -.radar-pulse-dot { - width: 6px; - height: 6px; - border-radius: 3px; - background-color: var(--oc-primary, #0B5CFF); - margin-inline-end: 6px; - flex-shrink: 0; -} - -.radar-capsule-text { - font-size: 11px; - color: var(--oc-text, #101828); - font-weight: 500; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.radar-capsule-right { - display: flex; - align-items: center; - margin-inline-start: 8px; - flex-shrink: 0; -} - -.radar-capsule-link { - font-size: 11px; - color: var(--oc-primary, #0B5CFF); - font-weight: 600; -} - -/* Row 4: Search Input & Primary CTA Integrated */ +/* Row 2: Search Input & Primary CTA Integrated */ .search-row { display: flex; flex-direction: row;