|
@@ -131,8 +131,10 @@ import {
|
|
|
getDeptData,
|
|
|
exportSellerData, listInlineList,exportInlineList
|
|
|
} from '@/api/system/employeeStats'
|
|
|
+import {getCompanyList} from "@/api/company/company";
|
|
|
import {getUserList} from "@/api/company/companyUser";
|
|
|
import SelectTree from "@/components/TreeSelect/index.vue";
|
|
|
+import { exportLineCustomer } from '@/api/crm/customer'
|
|
|
|
|
|
export default {
|
|
|
name: "EmployeeStats",
|
|
@@ -211,48 +213,48 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- const values = data.map(item => Number(item[column.property]));
|
|
|
+ // 定义所有需要求和的列
|
|
|
+ const sumColumns = [
|
|
|
+ 'periodPersonNum', 'periodNum', 'sendNum', 'notRegisteredNum', 'registeredNum',
|
|
|
+ 'interruptNum', 'completedNum', 'qwRepeatNum', 'userRepeatNum', 'blackNum', 'deletedNum',
|
|
|
+ 'orderNum', 'orderMoneyTotal', 'redPackageMoneyTotal', 'callNum', 'receivePassNum',
|
|
|
+ 'receiveNotNum', 'callTimeTotal', 'remindPendingNum', 'remindProcessedNum',
|
|
|
+ // 增加其他所有需要计算的数值列
|
|
|
+ 'deleteNum', 'lineNum', 'orderTotalNum'
|
|
|
+ ];
|
|
|
|
|
|
- if (['periodPersonNum','periodNum', 'sendNum', 'notRegisteredNum', 'registeredNum',
|
|
|
- 'interruptNum', 'completedNum', 'qwRepeatNum', 'userRepeatNum','blackNum','deletedNum',
|
|
|
- 'orderNum','orderMoneyTotal','redPackageMoneyTotal','callNum','receivePassNum','receiveNotNum',
|
|
|
- 'callTimeTotal','remindPendingNum','remindProcessedNum'].includes(column.property)) {
|
|
|
- if (!values.every(value => isNaN(value))) {
|
|
|
- sums[index] = values.reduce((prev, curr) => {
|
|
|
- const value = Number(curr);
|
|
|
- if (!isNaN(value)) {
|
|
|
- return prev + curr;
|
|
|
- } else {
|
|
|
- return prev;
|
|
|
- }
|
|
|
- }, 0);
|
|
|
- } else {
|
|
|
- sums[index] = 'N/A';
|
|
|
- }
|
|
|
- if(['orderMoneyTotal','redPackageMoneyTotal'].includes(column.property)){
|
|
|
+ const rateColumns = ['regRate', 'finishedRate'];
|
|
|
+
|
|
|
+ if (sumColumns.includes(column.property)) {
|
|
|
+ const values = data.map(item => Number(item[column.property]) || 0);
|
|
|
+ sums[index] = values.reduce((prev, curr) => prev + curr, 0);
|
|
|
+
|
|
|
+ if(['orderMoneyTotal', 'redPackageMoneyTotal'].includes(column.property)){
|
|
|
sums[index] = sums[index].toFixed(2);
|
|
|
}
|
|
|
}
|
|
|
- else if (column.property === 'regRate') {
|
|
|
- const totalRegistered = data.reduce((sum, item) => sum + (Number(item.registeredNum) || 0), 0);
|
|
|
- const totalSendNum = data.reduce((sum, item) => sum + (Number(item.sendNum) || 0), 0);
|
|
|
+ else if (rateColumns.includes(column.property)) {
|
|
|
+ if (column.property === 'regRate') {
|
|
|
+ const totalRegistered = data.reduce((sum, item) => sum + (Number(item.registeredNum) || 0), 0);
|
|
|
+ const totalSendNum = data.reduce((sum, item) => sum + (Number(item.sendNum) || 0), 0);
|
|
|
|
|
|
- if (totalSendNum > 0) {
|
|
|
- const rate = (totalRegistered / totalSendNum * 100).toFixed(2);
|
|
|
- sums[index] = `${rate}%`;
|
|
|
- } else {
|
|
|
- sums[index] = '0.00%';
|
|
|
+ if (totalSendNum > 0) {
|
|
|
+ const rate = (totalRegistered / totalSendNum * 100).toFixed(2);
|
|
|
+ sums[index] = `${rate}%`;
|
|
|
+ } else {
|
|
|
+ sums[index] = '0.00%';
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- else if (column.property === 'finishedRate') {
|
|
|
- const totalCompleted = data.reduce((sum, item) => sum + (Number(item.completedNum) || 0), 0);
|
|
|
- const totalSendNum = data.reduce((sum, item) => sum + (Number(item.sendNum) || 0), 0);
|
|
|
+ else if (column.property === 'finishedRate') {
|
|
|
+ const totalCompleted = data.reduce((sum, item) => sum + (Number(item.completedNum) || 0), 0);
|
|
|
+ const totalSendNum = data.reduce((sum, item) => sum + (Number(item.sendNum) || 0), 0);
|
|
|
|
|
|
- if (totalSendNum > 0) {
|
|
|
- const rate = (totalCompleted / totalSendNum * 100).toFixed(2);
|
|
|
- sums[index] = `${rate}%`;
|
|
|
- } else {
|
|
|
- sums[index] = '0.00%';
|
|
|
+ if (totalSendNum > 0) {
|
|
|
+ const rate = (totalCompleted / totalSendNum * 100).toFixed(2);
|
|
|
+ sums[index] = `${rate}%`;
|
|
|
+ } else {
|
|
|
+ sums[index] = '0.00%';
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
@@ -261,7 +263,8 @@ export default {
|
|
|
});
|
|
|
|
|
|
return sums;
|
|
|
- },
|
|
|
+ }
|
|
|
+ ,
|
|
|
handleCompanyUserId(val){
|
|
|
if(val == null || val === '') {
|
|
|
this.queryParams.companyUserId = null;
|