diff --git a/package.json b/package.json index 4b5816bc..58460358 100644 --- a/package.json +++ b/package.json @@ -102,6 +102,7 @@ "postcss-html": "^1.6.0", "postcss-scss": "^4.0.9", "prettier": "^3.2.5", + "prettier-eslint": "^16.3.0", "rimraf": "^5.0.5", "rollup": "^4.12.0", "sass": "^1.69.5", diff --git a/src/api/crm/permission/index.ts b/src/api/crm/permission/index.ts index e1f31747..4f88b14f 100644 --- a/src/api/crm/permission/index.ts +++ b/src/api/crm/permission/index.ts @@ -15,9 +15,9 @@ export interface PermissionVO { } export interface TransferReqVO { - bizId: number // 模块编号 + id: number // 模块编号 newOwnerUserId: number // 新负责人的用户编号 - oldOwnerPermissionLevel: number // 老负责人加入团队后的权限级别 + oldOwnerPermissionLevel?: number // 老负责人加入团队后的权限级别 toBizTypes?: number[] // 转移客户时,需要额外有【联系人】【商机】【合同】的 checkbox 选择 } diff --git a/src/api/crm/statistics/customer.ts b/src/api/crm/statistics/customer.ts index 4358db77..815fe653 100644 --- a/src/api/crm/statistics/customer.ts +++ b/src/api/crm/statistics/customer.ts @@ -14,21 +14,21 @@ export interface CrmStatisticsCustomerSummaryByUserRespVO { receivablePrice: number } -export interface CrmStatisticsFollowupSummaryByDateRespVO { +export interface CrmStatisticsFollowUpSummaryByDateRespVO { time: string - followupRecordCount: number - followupCustomerCount: number + followUpRecordCount: number + followUpCustomerCount: number } -export interface CrmStatisticsFollowupSummaryByUserRespVO { +export interface CrmStatisticsFollowUpSummaryByUserRespVO { ownerUserName: string followupRecordCount: number followupCustomerCount: number } -export interface CrmStatisticsFollowupSummaryByTypeRespVO { - followupType: string - followupRecordCount: number +export interface CrmStatisticsFollowUpSummaryByTypeRespVO { + followUpType: string + followUpRecordCount: number } export interface CrmStatisticsCustomerContractSummaryRespVO { @@ -44,6 +44,18 @@ export interface CrmStatisticsCustomerContractSummaryRespVO { orderDate: Date } +export interface CrmStatisticsPoolSummaryByDateRespVO { + time: string + customerPutCount: number + customerTakeCount: number +} + +export interface CrmStatisticsPoolSummaryByUserRespVO { + ownerUserName: string + customerPutCount: number + customerTakeCount: number +} + export interface CrmStatisticsCustomerDealCycleByDateRespVO { time: string customerDealCycle: number @@ -72,23 +84,23 @@ export const StatisticsCustomerApi = { }) }, // 2.1 客户跟进次数分析(按日期) - getFollowupSummaryByDate: (params: any) => { + getFollowUpSummaryByDate: (params: any) => { return request.get({ - url: '/crm/statistics-customer/get-followup-summary-by-date', + url: '/crm/statistics-customer/get-follow-up-summary-by-date', params }) }, // 2.2 客户跟进次数分析(按用户) - getFollowupSummaryByUser: (params: any) => { + getFollowUpSummaryByUser: (params: any) => { return request.get({ - url: '/crm/statistics-customer/get-followup-summary-by-user', + url: '/crm/statistics-customer/get-follow-up-summary-by-user', params }) }, // 3.1 获取客户跟进方式统计数 - getFollowupSummaryByType: (params: any) => { + getFollowUpSummaryByType: (params: any) => { return request.get({ - url: '/crm/statistics-customer/get-followup-summary-by-type', + url: '/crm/statistics-customer/get-follow-up-summary-by-type', params }) }, @@ -99,14 +111,28 @@ export const StatisticsCustomerApi = { params }) }, - // 5.1 获取客户成交周期(按日期) + // 5.1 获取客户公海分析(按日期) + getPoolSummaryByDate: (param: any) => { + return request.get({ + url: '/crm/statistics-customer/get-pool-summary-by-date', + params: param + }) + }, + // 5.2 获取客户公海分析(按用户) + getPoolSummaryByUser: (param: any) => { + return request.get({ + url: '/crm/statistics-customer/get-pool-summary-by-user', + params: param + }) + }, + // 6.1 获取客户成交周期(按日期) getCustomerDealCycleByDate: (params: any) => { return request.get({ url: '/crm/statistics-customer/get-customer-deal-cycle-by-date', params }) }, - // 5.2 获取客户成交周期(按用户) + // 6.2 获取客户成交周期(按用户) getCustomerDealCycleByUser: (params: any) => { return request.get({ url: '/crm/statistics-customer/get-customer-deal-cycle-by-user', diff --git a/src/api/crm/statistics/performance.ts b/src/api/crm/statistics/performance.ts new file mode 100644 index 00000000..2318505e --- /dev/null +++ b/src/api/crm/statistics/performance.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +export interface StatisticsPerformanceRespVO { + time: string + currentMonthCount: number + lastMonthCount: number + lastYearCount: number +} + +// 排行 API +export const StatisticsPerformanceApi = { + // 员工获得合同金额统计 + getContractPricePerformance: (params: any) => { + return request.get({ + url: '/crm/statistics-performance/get-contract-price-performance', + params + }) + }, + // 员工获得回款统计 + getReceivablePricePerformance: (params: any) => { + return request.get({ + url: '/crm/statistics-performance/get-receivable-price-performance', + params + }) + }, + //员工获得签约合同数量统计 + getContractCountPerformance: (params: any) => { + return request.get({ + url: '/crm/statistics-performance/get-contract-count-performance', + params + }) + } +} diff --git a/src/api/crm/statistics/portrait.ts b/src/api/crm/statistics/portrait.ts new file mode 100644 index 00000000..c7a25725 --- /dev/null +++ b/src/api/crm/statistics/portrait.ts @@ -0,0 +1,60 @@ +import request from '@/config/axios' + +export interface CrmStatisticCustomerBaseRespVO { + customerCount: number + dealCount: number + dealPortion: string | number +} + +export interface CrmStatisticCustomerIndustryRespVO extends CrmStatisticCustomerBaseRespVO { + industryId: number + industryPortion: string | number +} + +export interface CrmStatisticCustomerSourceRespVO extends CrmStatisticCustomerBaseRespVO { + source: number + sourcePortion: string | number +} + +export interface CrmStatisticCustomerLevelRespVO extends CrmStatisticCustomerBaseRespVO { + level: number + levelPortion: string | number +} + +export interface CrmStatisticCustomerAreaRespVO extends CrmStatisticCustomerBaseRespVO { + areaId: number + areaName: string + areaPortion: string | number +} + +// 客户分析 API +export const StatisticsPortraitApi = { + // 1. 获取客户行业统计数据 + getCustomerIndustry: (params: any) => { + return request.get({ + url: '/crm/statistics-portrait/get-customer-industry-summary', + params + }) + }, + // 2. 获取客户来源统计数据 + getCustomerSource: (params: any) => { + return request.get({ + url: '/crm/statistics-portrait/get-customer-source-summary', + params + }) + }, + // 3. 获取客户级别统计数据 + getCustomerLevel: (params: any) => { + return request.get({ + url: '/crm/statistics-portrait/get-customer-level-summary', + params + }) + }, + // 4. 获取客户地区统计数据 + getCustomerArea: (params: any) => { + return request.get({ + url: '/crm/statistics-portrait/get-customer-area-summary', + params + }) + } +} diff --git a/src/api/mall/statistics/member.ts b/src/api/mall/statistics/member.ts index 92af031e..d9accf92 100644 --- a/src/api/mall/statistics/member.ts +++ b/src/api/mall/statistics/member.ts @@ -5,7 +5,7 @@ import { formatDate } from '@/utils/formatTime' /** 会员分析 Request VO */ export interface MemberAnalyseReqVO { - times: [dayjs.ConfigType, dayjs.ConfigType] + times: dayjs.ConfigType[] } /** 会员分析 Response VO */ diff --git a/src/assets/imgs/diy/app-nav-bar-mp.png b/src/assets/imgs/diy/app-nav-bar-mp.png new file mode 100644 index 00000000..c982804c Binary files /dev/null and b/src/assets/imgs/diy/app-nav-bar-mp.png differ diff --git a/src/components/Crontab/src/Crontab.vue b/src/components/Crontab/src/Crontab.vue index 90b40b2f..e61fef89 100644 --- a/src/components/Crontab/src/Crontab.vue +++ b/src/components/Crontab/src/Crontab.vue @@ -503,9 +503,13 @@ const submit = () => { emit('update:modelValue', defaultValue.value) dialogVisible.value = false } + +const inputChange = () => { + emit('update:modelValue', defaultValue.value) +}