diff --git a/apps/web-antd/src/components/promoter/PromoterDetailModal.vue b/apps/web-antd/src/components/promoter/PromoterDetailModal.vue index e826ec33..f04b899d 100644 --- a/apps/web-antd/src/components/promoter/PromoterDetailModal.vue +++ b/apps/web-antd/src/components/promoter/PromoterDetailModal.vue @@ -1,14 +1,27 @@ + + + + diff --git a/apps/web-antd/src/views/system/salesperson-dashboard/components/DashboardStatCard.vue b/apps/web-antd/src/views/system/salesperson-dashboard/components/DashboardStatCard.vue new file mode 100644 index 00000000..32185946 --- /dev/null +++ b/apps/web-antd/src/views/system/salesperson-dashboard/components/DashboardStatCard.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/apps/web-antd/src/views/system/salesperson-dashboard/components/DashboardStatGrid.vue b/apps/web-antd/src/views/system/salesperson-dashboard/components/DashboardStatGrid.vue new file mode 100644 index 00000000..3dc3e114 --- /dev/null +++ b/apps/web-antd/src/views/system/salesperson-dashboard/components/DashboardStatGrid.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/apps/web-antd/src/views/system/salesperson-dashboard/components/InputCountTrendChart.vue b/apps/web-antd/src/views/system/salesperson-dashboard/components/InputCountTrendChart.vue new file mode 100644 index 00000000..e449fb68 --- /dev/null +++ b/apps/web-antd/src/views/system/salesperson-dashboard/components/InputCountTrendChart.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/apps/web-antd/src/views/system/salesperson-dashboard/components/RankingList.vue b/apps/web-antd/src/views/system/salesperson-dashboard/components/RankingList.vue new file mode 100644 index 00000000..a82f3535 --- /dev/null +++ b/apps/web-antd/src/views/system/salesperson-dashboard/components/RankingList.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/apps/web-antd/src/views/system/salesperson-dashboard/components/RegionDistributionChart.vue b/apps/web-antd/src/views/system/salesperson-dashboard/components/RegionDistributionChart.vue new file mode 100644 index 00000000..d0ae9c2a --- /dev/null +++ b/apps/web-antd/src/views/system/salesperson-dashboard/components/RegionDistributionChart.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/apps/web-antd/src/views/system/salesperson-dashboard/index.vue b/apps/web-antd/src/views/system/salesperson-dashboard/index.vue new file mode 100644 index 00000000..2329d934 --- /dev/null +++ b/apps/web-antd/src/views/system/salesperson-dashboard/index.vue @@ -0,0 +1,544 @@ + + + + + + + + + + diff --git a/apps/web-antd/src/views/system/store-input/api/index.ts b/apps/web-antd/src/views/system/store-input/api/index.ts index f4449cca..9e2cc069 100644 --- a/apps/web-antd/src/views/system/store-input/api/index.ts +++ b/apps/web-antd/src/views/system/store-input/api/index.ts @@ -50,6 +50,16 @@ export async function getPromoterOptions() { }[]>(`${prefix}promoter-options`); } +export type PromoterStoreListItem = { + store_id: number; + name: string; + type: number; + type_label: string; + input_at: number; + total_amount: string; + month_amount: string; +}; + export async function getPromoterDetailApi(params: { id?: number; code?: string }) { return requestClient.get<{ id: number; @@ -58,10 +68,12 @@ export async function getPromoterDetailApi(params: { id?: number; code?: string code: string; phone: string; role_name: string; - clinic_input_count: number; - pharmacy_input_count: number; clinic_store_count: number; pharmacy_store_count: number; + store_total_count: number; + store_list: PromoterStoreListItem[]; + total_valid_amount: string; + month_valid_amount: string; }>(`${prefix}promoter-detail`, { params }); }