|
@@ -1,4 +1,4 @@
|
|
|
-<!-- 数据统计 - 员工客户分析 -->
|
|
|
+<!-- 数据统计 - 员工业绩分析 -->
|
|
|
<template>
|
|
|
<ContentWrap>
|
|
|
<!-- 搜索工作栏 -->
|
|
@@ -9,16 +9,13 @@
|
|
|
:inline="true"
|
|
|
label-width="68px"
|
|
|
>
|
|
|
- <el-form-item label="时间范围" prop="orderDate">
|
|
|
+ <el-form-item label="选择年份" prop="orderDate">
|
|
|
<el-date-picker
|
|
|
- v-model="queryParams.times"
|
|
|
- :shortcuts="defaultShortcuts"
|
|
|
+ v-model="queryParams.times[0]"
|
|
|
class="!w-240px"
|
|
|
- end-placeholder="结束日期"
|
|
|
- start-placeholder="开始日期"
|
|
|
- type="daterange"
|
|
|
- value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
|
|
|
+ type="year"
|
|
|
+ value-format="YYYY"
|
|
|
+ :default-time="[new Date().getFullYear()]"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="归属部门" prop="deptId">
|
|
@@ -62,7 +59,7 @@
|
|
|
<ContractPricePerformance :query-params="queryParams" ref="ContractPricePerformanceRef" />
|
|
|
</el-tab-pane>
|
|
|
<!-- 员工回款金额统计 -->
|
|
|
- <el-tab-pane label="员工回款金额统计" name="followupType" lazy>
|
|
|
+ <el-tab-pane label="员工回款金额统计" name="ReceivablePricePerformance" lazy>
|
|
|
<ReceivablePricePerformance
|
|
|
:query-params="queryParams"
|
|
|
ref="ReceivablePricePerformanceRef"
|
|
@@ -76,21 +73,20 @@
|
|
|
import * as DeptApi from '@/api/system/dept'
|
|
|
import * as UserApi from '@/api/system/user'
|
|
|
import { useUserStore } from '@/store/modules/user'
|
|
|
-import { beginOfDay, defaultShortcuts, endOfDay, formatDate } from '@/utils/formatTime'
|
|
|
+import { beginOfDay, formatDate } from '@/utils/formatTime'
|
|
|
import { defaultProps, handleTree } from '@/utils/tree'
|
|
|
import ContractCountPerformance from './components/ContractCountPerformance.vue'
|
|
|
import ContractPricePerformance from './components/ContractPricePerformance.vue'
|
|
|
import ReceivablePricePerformance from './components/ReceivablePricePerformance.vue'
|
|
|
|
|
|
-defineOptions({ name: 'CrmStatisticsPerformance' })
|
|
|
+defineOptions({ name: 'CrmStatisticsCustomer' })
|
|
|
|
|
|
const queryParams = reactive({
|
|
|
deptId: useUserStore().getUser.deptId,
|
|
|
userId: undefined,
|
|
|
times: [
|
|
|
- // 默认显示最近一周的数据
|
|
|
- formatDate(beginOfDay(new Date(new Date().getTime() - 3600 * 1000 * 24 * 7))),
|
|
|
- formatDate(endOfDay(new Date(new Date().getTime() - 3600 * 1000 * 24)))
|
|
|
+ // 默认显示当年的数据
|
|
|
+ formatDate(beginOfDay(new Date(new Date().getTime() - 3600 * 1000 * 24 * 7)))
|
|
|
]
|
|
|
})
|
|
|
|
|
@@ -104,6 +100,7 @@ const userListByDeptId = computed(() =>
|
|
|
: []
|
|
|
)
|
|
|
|
|
|
+// TODO @scholar:改成尾注释,保证 vue 内容短一点;变量名小写
|
|
|
// 活跃标签
|
|
|
const activeTab = ref('ContractCountPerformance')
|
|
|
// 1.员工合同数量统计
|
|
@@ -115,6 +112,19 @@ const ReceivablePricePerformanceRef = ref()
|
|
|
|
|
|
/** 搜索按钮操作 */
|
|
|
const handleQuery = () => {
|
|
|
+ // 从 queryParams.times[0] 中获取到了年份
|
|
|
+ const selectYear = parseInt(queryParams.times[0])
|
|
|
+
|
|
|
+ // 创建一个新的 Date 对象,设置为指定的年份的第一天
|
|
|
+ const fullDate = new Date(selectYear, 0, 1, 0, 0, 0)
|
|
|
+
|
|
|
+ // 将完整的日期时间格式化为需要的字符串形式,比如 2004-01-01 00:00:00
|
|
|
+ // TODO @scholar:看看,是不是可以使用 year 哈
|
|
|
+ queryParams.times[0] = `${fullDate.getFullYear()}-${String(fullDate.getMonth() + 1).padStart(
|
|
|
+ 2,
|
|
|
+ '0'
|
|
|
+ )}-${String(fullDate.getDate()).padStart(2, '0')} ${String(fullDate.getHours()).padStart(2, '0')}:${String(fullDate.getMinutes()).padStart(2, '0')}:${String(fullDate.getSeconds()).padStart(2, '0')}`
|
|
|
+
|
|
|
switch (activeTab.value) {
|
|
|
case 'ContractCountPerformance':
|
|
|
ContractCountPerformanceRef.value?.loadData?.()
|