diff --git a/admin/src/views/first_visit/conversion/index.vue b/admin/src/views/first_visit/conversion/index.vue index 4951e9cd4..126ecd409 100644 --- a/admin/src/views/first_visit/conversion/index.vue +++ b/admin/src/views/first_visit/conversion/index.vue @@ -122,7 +122,7 @@

明细数据列表

-

部门层级汇总;开口率=开口/加粉,挂号率=付费挂号/加粉,接诊率=接诊诊单/加粉

+

展开部门可查看人员明细;挂号=已支付且实收低于 10 元的订单,预约=有效预约记录;开口率=开口/加粉,挂号率=挂号/加粉,面诊率=面诊/预约,接诊率=接诊诊单/加粉

{{ dashboard.rows.length }} 个顶层节点
@@ -133,16 +133,23 @@ default-expand-all class="detail-table" > - + + @@ -154,6 +161,9 @@ + + + @@ -278,7 +288,7 @@ const timeOptions = [ const metricCards: Array<{ key: string; label: string; type: MetricType; hint: string }> = [ { key: 'add_fans_count', label: '加粉数', type: 'count', hint: '企微新增客户' }, { key: 'total_open_count', label: '开口数', type: 'count', hint: '来源于个人业绩录入' }, - { key: 'interview_count', label: '面诊', type: 'count', hint: '已完成挂号' }, + { key: 'interview_count', label: '面诊', type: 'count', hint: '已完成预约' }, { key: 'completed_order_count', label: '接诊诊单', type: 'count', hint: '业务订单,按创建人归属并过滤无效单' }, { key: 'completed_order_amount', label: '诊单金额', type: 'money', hint: '排除取消、拒收、退款及已退款订单' }, { key: 'avg_unit_price', label: '平均客单价', type: 'money', hint: '诊单金额 / 接诊诊单' }, @@ -475,6 +485,8 @@ onMounted(loadDashboard) :deep(td.el-table__cell) { color: #273347; font-size: 12px; } :deep(.el-table__row--level-0 > td.el-table__cell) { background: #edf7f5; font-weight: 650; } strong.is-parent { color: #172033; font-weight: 700; } + strong.is-member { color: #314158; font-weight: 600; } + .role-tag { margin-left: 7px; vertical-align: middle; } } .target-panel { padding-bottom: 18px; } diff --git a/admin/src/views/first_visit/doctor_dashboard/index.vue b/admin/src/views/first_visit/doctor_dashboard/index.vue index cf7399b7b..66750efda 100644 --- a/admin/src/views/first_visit/doctor_dashboard/index.vue +++ b/admin/src/views/first_visit/doctor_dashboard/index.vue @@ -5,7 +5,7 @@

医生看板

-

从挂号、面诊到接诊成交,统一观察医生经营表现

+

从挂号、预约、面诊到接诊成交,统一观察医生经营表现

@@ -70,8 +70,8 @@
总挂号 - {{ formatNumber(dashboard.summary.appointment_total) }} - 完成 {{ formatNumber(dashboard.summary.interview_count) }} · 完成率 {{ formatPercent(dashboard.summary.appointment_completion_rate) }} + {{ formatNumber(dashboard.summary.registration_total) }} + 已支付且实收金额大于 0、低于 10 元的订单
@@ -109,9 +109,9 @@
- 挂号完成率 + 预约完成率 {{ formatPercent(dashboard.summary.appointment_completion_rate) }} - {{ dashboard.meta.time_label }} · {{ dashboard.meta.doctor_count }} 位有数据医生 + 总预约 {{ formatNumber(dashboard.summary.appointment_total) }} · {{ dashboard.meta.doctor_count }} 位有数据医生
@@ -212,7 +212,7 @@ - + @@ -248,7 +248,7 @@
- {{ dashboard.meta.appointment_rule }};{{ dashboard.meta.performance_rule }}。 + {{ dashboard.meta.registration_rule }};{{ dashboard.meta.appointment_rule }};{{ dashboard.meta.performance_rule }}。
@@ -279,14 +279,14 @@ const emptyDashboard = () => ({ meta: { time_type: 'month', time_label: '本月', start_date: '', end_date: '', generated_at: '', scope_value: 4, scope_label: '', scope_kind: '', selected_dept_name: '', selected_doctor_name: '', - doctor_count: 0, appointment_rule: '', performance_rule: '' + doctor_count: 0, registration_rule: '', appointment_rule: '', performance_rule: '' }, filters: { departments: [] as any[], doctors: [] as Array<{ id: number; name: string; disable: number }>, can_filter_department: true }, summary: { - appointment_total: 0, interview_count: 0, order_count: 0, deal_amount: 0, + registration_total: 0, appointment_total: 0, interview_count: 0, order_count: 0, deal_amount: 0, avg_order_amount: null as number | null, appointment_completion_rate: null as number | null, receive_conversion_rate: null as number | null, missed_count: 0, cancelled_count: 0 }, @@ -453,7 +453,7 @@ function exportRows() { ElMessage.warning('当前范围暂无可导出的医生数据') return } - const headers = ['医生', '状态', '挂号', '面诊', '接诊', '接诊率', '成交金额', '过号', '取消'] + const headers = ['医生', '状态', '预约', '面诊', '接诊', '接诊率', '成交金额', '过号', '取消'] const lines = dashboard.rows.map((row: any) => [ row.doctor_name, row.status === 'disabled' ? '停用' : '活跃', row.appointment_total, row.interview_count, row.order_count, formatPercent(row.receive_conversion_rate), row.deal_amount, diff --git a/admin/src/views/first_visit/my_patients/index.vue b/admin/src/views/first_visit/my_patients/index.vue index 6ef4ffaee..b977e3369 100644 --- a/admin/src/views/first_visit/my_patients/index.vue +++ b/admin/src/views/first_visit/my_patients/index.vue @@ -72,7 +72,7 @@