feat(部门分析): 添加部门整体分析报告功能
实现部门分析弹窗的数据获取与展示功能,新增getTeamEntiretyReport API接口 调整多个组件高度以优化布局
This commit is contained in:
@@ -89,4 +89,9 @@ export const getTeamEveryGroupReport = (params) => {
|
|||||||
return https.post('/api/v1/level_three/overview/team_every_group_report', params)
|
return https.post('/api/v1/level_three/overview/team_every_group_report', params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 部门整体分析报告 /api/v1/level_three/overview/team_entirety_report
|
||||||
|
export const getTeamEntiretyReport = (params) => {
|
||||||
|
return https.post('/api/v1/level_three/overview/team_entirety_report', params)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -504,7 +504,7 @@ const downloadRecording = (index) => {
|
|||||||
background: white;
|
background: white;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
height: 400px;
|
height: 420px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-header {
|
.chart-header {
|
||||||
|
|||||||
@@ -504,7 +504,7 @@ const downloadRecording = (index) => {
|
|||||||
background: white;
|
background: white;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
height: 400px;
|
height: 416px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chart-header {
|
.chart-header {
|
||||||
@@ -554,7 +554,7 @@ const downloadRecording = (index) => {
|
|||||||
.recording-section {
|
.recording-section {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 200px;
|
min-height: 200px;
|
||||||
max-height: 300px;
|
max-height: 330px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,8 +43,18 @@
|
|||||||
<button class="close-btn" @click="closeDepartmentAnalysisModal">×</button>
|
<button class="close-btn" @click="closeDepartmentAnalysisModal">×</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p>这里是部门分析的内容</p>
|
<div v-if="departmentAnalysisData && departmentAnalysisData.length > 0">
|
||||||
<!-- 你可以在这里添加具体的部门分析内容 -->
|
<div v-for="(report, index) in departmentAnalysisData" :key="index" class="report-item">
|
||||||
|
<h4>报告时间: {{ report.start_time }} 至 {{ report.end_time }}</h4>
|
||||||
|
<div v-if="report.report && report.report !== 'None' && report.report.trim() !== ''" class="report-content" v-html="formatReportContent(report.report)"></div>
|
||||||
|
<div v-else class="no-report">
|
||||||
|
<p>暂无分析报告</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<p>暂无部门分析数据</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -257,7 +267,8 @@ import PerformanceComparison from './components/PerformanceComparison.vue'; // 1
|
|||||||
import { getOverallTeamPerformance,getTotalGroupCount,getConversionRate,getTotalCallCount,
|
import { getOverallTeamPerformance,getTotalGroupCount,getConversionRate,getTotalCallCount,
|
||||||
getNewCustomer,getDepositConversionRate,getActiveCustomerCommunicationRate,getAverageAnswerTime,
|
getNewCustomer,getDepositConversionRate,getActiveCustomerCommunicationRate,getAverageAnswerTime,
|
||||||
getTimeoutRate,getTableFillingRate,getUrgentNeedToAddress,getTeamRanking,getTeamRankingInfo,
|
getTimeoutRate,getTableFillingRate,getUrgentNeedToAddress,getTeamRanking,getTeamRankingInfo,
|
||||||
getAbnormalResponseRate,getTeamSalesFunnel,getExcellentRecordFile,getTeamEveryGroupReport } from '@/api/senorManger.js'
|
getAbnormalResponseRate,getTeamSalesFunnel,getExcellentRecordFile,getTeamEveryGroupReport,
|
||||||
|
getTeamEntiretyReport } from '@/api/senorManger.js'
|
||||||
import { useUserStore } from '@/stores/user.js'
|
import { useUserStore } from '@/stores/user.js'
|
||||||
import FeedbackForm from "@/components/FeedbackForm.vue";
|
import FeedbackForm from "@/components/FeedbackForm.vue";
|
||||||
|
|
||||||
@@ -395,6 +406,8 @@ const showDepartmentAnalysis = ref(false)
|
|||||||
const showTeamAnalysis = ref(false)
|
const showTeamAnalysis = ref(false)
|
||||||
// 团队分析数据
|
// 团队分析数据
|
||||||
const teamAnalysisData = ref([])
|
const teamAnalysisData = ref([])
|
||||||
|
// 部门分析数据
|
||||||
|
const departmentAnalysisData = ref([])
|
||||||
|
|
||||||
// 更新CheckType的方法
|
// 更新CheckType的方法
|
||||||
const updateCheckType = async (newValue) => {
|
const updateCheckType = async (newValue) => {
|
||||||
@@ -416,8 +429,37 @@ const closeFeedbackFormModal = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 部门分析弹窗控制方法
|
// 部门分析弹窗控制方法
|
||||||
const showDepartmentAnalysisModal = () => {
|
const showDepartmentAnalysisModal = async () => {
|
||||||
showDepartmentAnalysis.value = true
|
showDepartmentAnalysis.value = true
|
||||||
|
// 获取部门分析数据
|
||||||
|
try {
|
||||||
|
// 获取当前登录的高级经理信息
|
||||||
|
const currentUser = userStore.userInfo;
|
||||||
|
const params = {
|
||||||
|
user_name: currentUser.username,
|
||||||
|
user_level: currentUser.user_level.toString(),
|
||||||
|
part_count: 1 // 默认获取最近1份报告
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await getTeamEntiretyReport(params)
|
||||||
|
|
||||||
|
// 根据API响应结构调整数据处理逻辑
|
||||||
|
if (response.data) {
|
||||||
|
if (Array.isArray(response.data)) {
|
||||||
|
// 如果response.data本身就是数组
|
||||||
|
departmentAnalysisData.value = response.data
|
||||||
|
} else if (response.data.data && Array.isArray(response.data.data)) {
|
||||||
|
// 如果response.data.data是数组
|
||||||
|
departmentAnalysisData.value = response.data.data
|
||||||
|
} else {
|
||||||
|
// 其他情况,可能是单个对象
|
||||||
|
departmentAnalysisData.value = [response.data]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('获取部门分析数据失败:', error)
|
||||||
|
departmentAnalysisData.value = []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const closeDepartmentAnalysisModal = () => {
|
const closeDepartmentAnalysisModal = () => {
|
||||||
@@ -430,7 +472,8 @@ const showTeamAnalysisModal = async () => {
|
|||||||
// 获取团队分析数据
|
// 获取团队分析数据
|
||||||
try {
|
try {
|
||||||
const params = {
|
const params = {
|
||||||
department_name: selectedGroup.value.name + '-' + selectedGroup.value.leader
|
department_name: selectedGroup.value.name + '-' + selectedGroup.value.leader,
|
||||||
|
part_count: 1 // 默认获取最近1份报告
|
||||||
}
|
}
|
||||||
const response = await getTeamEveryGroupReport(params)
|
const response = await getTeamEveryGroupReport(params)
|
||||||
// 根据API响应结构调整数据处理逻辑
|
// 根据API响应结构调整数据处理逻辑
|
||||||
|
|||||||
Reference in New Issue
Block a user