feat: 添加pinia持久化插件并优化布局和API配置
- 添加pinia-plugin-persistedstate依赖实现状态持久化 - 将多处actions-summary布局从2列改为4列 - 调整secondTop页面高度和滚动区域高度 - 更新API基础路径为192.168.15.53 - 添加seniorManager页面的用户下拉组件 - 创建senorManger.js API接口文件
This commit is contained in:
50
my-vue-app/src/api/senorManger.js
Normal file
50
my-vue-app/src/api/senorManger.js
Normal file
@@ -0,0 +1,50 @@
|
||||
import https from '../utils/https'
|
||||
|
||||
// 团队总业绩 /api/v1/level_three/overview/overall_team_performance
|
||||
export const getOverallTeamPerformance = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/overall_team_performance', params)
|
||||
}
|
||||
// 活跃组数 /api/v1/level_three/overview/total_group_count
|
||||
export const getTotalGroupCount = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/total_group_count', params)
|
||||
}
|
||||
|
||||
// 中心转化率 /api/v1/level_three/overview/center_conversion_rate
|
||||
export const getCenterConversionRate = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/center_conversion_rate', params)
|
||||
}
|
||||
|
||||
// 总通话次数 /api/v1/level_three/overview/total_call_count
|
||||
export const getTotalCallCount = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/total_call_count', params)
|
||||
}
|
||||
|
||||
// 获取新增客户数量、已加微客户数量以及新增客户与昨日对比情况 /api/v1/level_three/overview/new_customer
|
||||
export const getNewCustomer = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/new_customer', params)
|
||||
}
|
||||
|
||||
// 获取团队本期定金转化率、本月的定金转化率以及本期与上期的定金转化率对比情况 /api/v1/level_three/overview/deposit_conversion_rate
|
||||
export const getDepositConversionRate = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/deposit_conversion_rate', params)
|
||||
}
|
||||
|
||||
// 活跃客户沟通率 /api/v1/level_three/overview/active_customer_communication_rate
|
||||
export const getActiveCustomerCommunicationRate = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/active_customer_communication_rate', params)
|
||||
}
|
||||
// 平均应答时间 /api/v1/level_three/overview/average_answer_time
|
||||
export const getAverageAnswerTime = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/average_answer_time', params)
|
||||
}
|
||||
// 超时应答率、严重超时应答率 /api/v1/level_three/overview/timeout_rate
|
||||
export const getTimeoutRate = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/timeout_rate', params)
|
||||
}
|
||||
// 表格填写率 /api/v1/level_three/overview/table_filling_rate
|
||||
export const getTableFillingRate = (params) => {
|
||||
return https.post('/api/v1/level_three/overview/table_filling_rate', params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useUserStore } from '@/stores/user'
|
||||
|
||||
// 创建axios实例
|
||||
const service = axios.create({
|
||||
baseURL: 'http://192.168.15.54:8890' || '', // API基础路径,支持完整URL
|
||||
baseURL: 'http://192.168.15.53:8890' || '', // API基础路径,支持完整URL
|
||||
timeout: 15000, // 请求超时时间
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
|
||||
@@ -881,7 +881,7 @@ const addAction = () => {
|
||||
}
|
||||
|
||||
.actions-summary {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
|
||||
.action-item {
|
||||
|
||||
@@ -712,7 +712,7 @@ const getStatusText = (status) => {
|
||||
}
|
||||
|
||||
.actions-summary {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
|
||||
@@ -809,7 +809,7 @@ const getStatusText = (status) => {
|
||||
}
|
||||
|
||||
.action-items-compact {
|
||||
height: 400px;
|
||||
height: 380px;
|
||||
overflow: hidden;
|
||||
|
||||
:deep(.action-items) {
|
||||
@@ -839,7 +839,7 @@ const getStatusText = (status) => {
|
||||
}
|
||||
|
||||
.actions-summary {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
@@ -857,7 +857,7 @@ const getStatusText = (status) => {
|
||||
}
|
||||
|
||||
.actions-list {
|
||||
max-height: 200px;
|
||||
max-height: 230px;
|
||||
overflow-y: auto;
|
||||
|
||||
.action-item {
|
||||
|
||||
@@ -8,19 +8,7 @@
|
||||
<h1>高级经理指挥台</h1>
|
||||
<p>统筹多组运营,优化资源配置,驱动业绩增长,实现团队协同发展。</p>
|
||||
</div>
|
||||
<div
|
||||
class="header-ringht"
|
||||
style="display: flex; align-items: center; gap: 10px;margin-left: auto;"
|
||||
>
|
||||
<img
|
||||
src="https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png"
|
||||
alt="用户头像"
|
||||
class="avatar"
|
||||
@error="handleAvatarError"
|
||||
style="width: 35px; height: 35px"
|
||||
/>
|
||||
<span>你好,管理员</span>
|
||||
</div>
|
||||
<UserDropdown class="header-ringht" style="margin-left: auto;" />
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -154,6 +142,7 @@ import CustomerDetail from './components/CustomerDetail.vue'
|
||||
import ProblemRanking from './components/ProblemRanking.vue'
|
||||
import StatisticalIndicators from './components/StatisticalIndicators.vue'
|
||||
import manager from './components/manager.vue'
|
||||
import UserDropdown from '@/components/UserDropdown.vue'
|
||||
|
||||
const customerCommunicationRate = ref(85)
|
||||
const averageResponseTime = ref(15)
|
||||
@@ -726,6 +715,7 @@ const getStatusText = (status) => {
|
||||
.logo-section {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
@@ -809,7 +799,7 @@ const getStatusText = (status) => {
|
||||
}
|
||||
|
||||
.actions-summary {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user