Ver Fonte

feat: [CRM-客户分析]增加[时间间隔]选项

dhb52 há 1 ano atrás
pai
commit
b0d4c87d8e

+ 16 - 0
src/api/crm/statistics/customer.ts

@@ -55,6 +55,22 @@ export interface CrmStatisticsCustomerDealCycleByUserRespVO {
   customerDealCount: number
 }
 
+export const DATE_INTERVAL_OPTIONS = [
+  { value: 1, name: '今天' },
+  { value: 2, name: '昨天' },
+  { value: 3, name: '本周' },
+  { value: 4, name: '上周' },
+  { value: 5, name: '本月' },
+  { value: 6, name: '上月' },
+  { value: 7, name: '本季度' },
+  { value: 8, name: '上季度' },
+  { value: 9, name: '本年' },
+  { value: 10, name: '去年' },
+  { value: 11, name: '自定义' }
+]
+
+export const CUSTOMER_INTERVAL = 11
+
 // 客户分析 API
 export const StatisticsCustomerApi = {
   // 1.1 客户总量分析(按日期)

+ 13 - 1
src/views/crm/statistics/customer/index.vue

@@ -9,7 +9,17 @@
       :inline="true"
       label-width="68px"
     >
-      <el-form-item label="时间范围" prop="orderDate">
+      <el-form-item label="间隔类型" prop="intervalType">
+        <el-select v-model="queryParams.intervalType" class="!w-240px" placeholder="间隔类型">
+          <el-option
+            v-for="(intervalType, index) in DATE_INTERVAL_OPTIONS"
+            :label="intervalType.name"
+            :value="intervalType.value"
+            :key="index"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="时间范围" prop="orderDate" v-show="queryParams.intervalType === CUSTOMER_INTERVAL">
         <el-date-picker
           v-model="queryParams.times"
           :shortcuts="defaultShortcuts"
@@ -88,10 +98,12 @@ import CustomerFollowupSummary from './components/CustomerFollowupSummary.vue'
 import CustomerFollowupType from './components/CustomerFollowupType.vue'
 import CustomerConversionStat from './components/CustomerConversionStat.vue'
 import CustomerDealCycle from './components/CustomerDealCycle.vue'
+import { DATE_INTERVAL_OPTIONS, CUSTOMER_INTERVAL } from '@/api/crm/statistics/customer'
 
 defineOptions({ name: 'CrmStatisticsCustomer' })
 
 const queryParams = reactive({
+  intervalType: CUSTOMER_INTERVAL,
   deptId: useUserStore().getUser.deptId,
   userId: undefined,
   times: [