0922
This commit is contained in:
@ -48,8 +48,8 @@
|
||||
<el-date-picker v-model="dispatchDate" type="date" placeholder="派单日期" format="yyyy/MM/dd" value-format="yyyy/MM/dd"></el-date-picker>
|
||||
</div>
|
||||
<div class="filter-actions">
|
||||
<el-button type="primary" class="search-btn" @click="handleSearch">搜索</el-button>
|
||||
<el-button type="primary" class="create-btn" @click="handleExport">导出记录</el-button>
|
||||
<el-button type="primary" icon="Search" class="search-btn" @click="handleSearch"> 搜索 </el-button>
|
||||
<el-button type="primary" icon="Export" class="create-btn" @click="handleExport">导出记录</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -59,15 +59,25 @@
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">{{ totalDispatches }}</div>
|
||||
<div class="stat-label">本月派单总数</div>
|
||||
<div class="stat-trend">较上月 <span class="trend-up">↑ 12%</span></div>
|
||||
<div class="stat-trend">
|
||||
较上月
|
||||
<span :class="dispatchGrowthRate.includes('-') ? 'trend-down' : 'trend-up'">
|
||||
{{ dispatchGrowthRate.includes('-') ? '↓' : '↑' }} {{ dispatchGrowthRate }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="stat-icon">
|
||||
<img src="@/assets/images/paidan.png" alt="时间" class="stat-img" />
|
||||
<img src="@/assets/images/paidan.png" alt="派单" class="stat-img" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">{{ avgResponseTime }}</div>
|
||||
<div class="stat-label">平均响应时间</div>
|
||||
<div class="stat-trend">较上月 <span class="trend-down">↓ 5分钟</span></div>
|
||||
<div class="stat-trend">
|
||||
较上月
|
||||
<span :class="responseGrowthRate.includes('-') ? 'trend-up' : 'trend-down'">
|
||||
{{ responseGrowthRate.includes('-') ? '↓' : '↑' }} {{ responseGrowthRate }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="stat-icon">
|
||||
<img src="@/assets/images/shijian.png" alt="时间" class="stat-img" />
|
||||
</div>
|
||||
@ -83,7 +93,12 @@
|
||||
<div class="stat-card">
|
||||
<div class="stat-value">{{ completionRate }}</div>
|
||||
<div class="stat-label">按时完成率</div>
|
||||
<div class="stat-trend">较上月 <span class="trend-up">↑ 3%</span></div>
|
||||
<div class="stat-trend">
|
||||
较上月
|
||||
<span :class="completionGrowthRate.includes('-') ? 'trend-down' : 'trend-up'">
|
||||
{{ completionGrowthRate.includes('-') ? '↓' : '↑' }} {{ completionGrowthRate }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="stat-icon success">
|
||||
<img src="@/assets/images/wancheng.png" alt="完成" class="stat-img" />
|
||||
</div>
|
||||
@ -165,7 +180,7 @@
|
||||
import { ref, computed, reactive } from 'vue';
|
||||
import router from '@/router';
|
||||
import TitleComponent from './TitleComponent.vue';
|
||||
|
||||
import { gongdanRecord } from '@/api/zhinengxunjian/gongdan/index';
|
||||
// 激活的选项卡,默认显示派单记录
|
||||
const activeTab = ref('dispatch');
|
||||
|
||||
@ -175,10 +190,47 @@ const executor = ref('all');
|
||||
const dispatchDate = ref('');
|
||||
|
||||
// 统计数据
|
||||
const totalDispatches = ref(56);
|
||||
const avgResponseTime = ref('42分钟');
|
||||
const pendingDispatches = ref(7);
|
||||
const completionRate = ref('92%');
|
||||
const totalDispatches = ref('');
|
||||
const avgResponseTime = ref('');
|
||||
const pendingDispatches = ref('');
|
||||
const completionRate = ref('');
|
||||
|
||||
// 增长率数据
|
||||
const dispatchGrowthRate = ref('');
|
||||
const responseGrowthRate = ref('');
|
||||
const completionGrowthRate = ref('');
|
||||
|
||||
// 初始化加载数据
|
||||
const fetchStatisticsData = async () => {
|
||||
try {
|
||||
const response = await gongdanRecord();
|
||||
if (response.code === 200 && response.data) {
|
||||
// 更新统计数据,处理null值
|
||||
totalDispatches.value = response.data.bypds || '0';
|
||||
avgResponseTime.value = response.data.pjxysj ? `${response.data.pjxysj}分钟` : '0分钟';
|
||||
pendingDispatches.value = response.data.djsgd || '0';
|
||||
completionRate.value = response.data.aswcl ? `${response.data.aswcl}%` : '0%';
|
||||
|
||||
// 更新增长率数据,处理null值
|
||||
dispatchGrowthRate.value = response.data.pdzzl || '0%';
|
||||
responseGrowthRate.value = response.data.xysjzzl || '0分钟';
|
||||
completionGrowthRate.value = response.data.wczzl || '0%';
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取统计数据失败:', error);
|
||||
// 发生错误时使用默认值
|
||||
totalDispatches.value = '56';
|
||||
avgResponseTime.value = '42分钟';
|
||||
pendingDispatches.value = '7';
|
||||
completionRate.value = '92%';
|
||||
dispatchGrowthRate.value = '12%';
|
||||
responseGrowthRate.value = '-5分钟';
|
||||
completionGrowthRate.value = '3%';
|
||||
}
|
||||
};
|
||||
|
||||
// 页面加载时获取数据
|
||||
fetchStatisticsData();
|
||||
|
||||
// 派单记录数据
|
||||
const rawTableData = ref([
|
||||
|
||||
Reference in New Issue
Block a user