From 0d19289fba9740a6a307f6d854fa0744bdb7fc86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Tue, 25 Aug 2026 10:08:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(staff):=20=E6=B2=9F=E9=80=9A=E6=95=B0?= =?UTF-8?q?=E5=BC=B9=E6=A1=86=E5=8A=A0=E6=B1=87=E6=80=BB=E8=AF=B4=E6=98=8E?= =?UTF-8?q?(=E5=AF=B9=E9=BD=90=E4=BA=91=E5=AE=A2:=E6=80=BBX=E4=BA=BA?= =?UTF-8?q?=E6=AC=A1,=E9=87=8D=E5=A4=8DY,=E5=89=A9=E4=BD=99Z=E6=9D=A1,?= =?UTF-8?q?=E7=8E=89=E7=BB=BF=E5=B7=A6=E8=BE=B9=E6=A1=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- yunkes/src/components/YkStaffDetailModal.vue | 4 ++++ yunkes/src/views/StaffList.vue | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/yunkes/src/components/YkStaffDetailModal.vue b/yunkes/src/components/YkStaffDetailModal.vue index 307e2a8..a5b3ec8 100644 --- a/yunkes/src/components/YkStaffDetailModal.vue +++ b/yunkes/src/components/YkStaffDetailModal.vue @@ -24,6 +24,8 @@ const props = defineProps<{ /** fetcher(page, page_size) → Page。宽松 Page:Customer 无 index signature, * 不可直接赋 Page>,故用 any 接纳 Page 等。 */ fetcher: (page: number, page_size: number) => Promise> + /** 弹框顶部汇总说明(对齐云客) */ + summaryText?: string pageSizes?: number[] }>() const emit = defineEmits<{ 'update:modelValue': [boolean] }>() @@ -63,6 +65,8 @@ watch( width="900px" @update:model-value="emit('update:modelValue', $event)" > +
{{ summaryText }}
+ Promise>( async () => ({ items: [], total: 0 }), ) const detailCols = ref([]) +const detailSummary = ref('') const fmtTime = (_r: any, _c: any, v: any): string => typeof v === 'number' && v > 0 ? formatTime(v) : v ? String(v) : '--' @@ -450,6 +451,10 @@ function openWechatCommModal(row: Account, metric: ChatMetric): void { staff_info: staffInfo, staff_wx: staffWx, })) + // 汇总说明(对齐云客) + const metricTitle = METRIC_TITLES[metric] + const statCount = stats.summary?.[metric === 'chat' ? 'chat_count' : metric === 'effective' ? 'effective_count' : metric === 'follow' ? 'follow_count' : metric === 'last_reply' ? 'last_reply_count' : 'no_reply_count'] ?? 0 + detailSummary.value = `${metricTitle}总${statCount}人次,其中重复客户${Math.max(0, statCount - filtered.length)}人次 剩余${filtered.length}条记录:` return { items, total: filtered.length, page, page_size } } detailOpen.value = true @@ -930,6 +935,7 @@ onMounted(() => {