update 数据统计看板增加文件操作统计图表
This commit is contained in:
@@ -16,3 +16,8 @@ export const getHourlyOnlineStatisticsApi = (params: any) => {
|
||||
export const getUserLoginStatisticsApi = (params: any) => {
|
||||
return post(`${PREFIX}systemLog/getUserLoginStatistics`, params);
|
||||
};
|
||||
|
||||
// 统计某时间段(天)的文件下载数
|
||||
export const getDailyOperateStatisticsApi = (params: any) => {
|
||||
return post(`${PREFIX}systemLog/getDailyOperateStatistics`, params);
|
||||
};
|
||||
|
||||
@@ -329,6 +329,7 @@ const lang = {
|
||||
'指标完成统计(学科)': 'Performance Completion Statistics (Discipline)',
|
||||
工位评审通过统计: 'Workspace Review Statistics',
|
||||
项目任务完成情况统计: 'Project Task Completion Statistics',
|
||||
文件操作统计: 'File Operate Statistics',
|
||||
},
|
||||
工位时间维护: {
|
||||
阶段: 'Phase',
|
||||
|
||||
@@ -324,6 +324,7 @@ const lang = {
|
||||
'指标完成统计(学科)': '指标完成统计(学科)',
|
||||
工位评审通过统计: '工位评审通过统计',
|
||||
项目任务完成情况统计: '项目任务完成情况统计',
|
||||
文件操作统计: '文件操作统计',
|
||||
},
|
||||
工位时间维护: {
|
||||
阶段: '阶段',
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
import { onMounted, ref, provide } from 'vue';
|
||||
import { getThemeColor } from '@/utils/theme';
|
||||
// 引入子组件
|
||||
import fileOperateChart from './dataStatistics/fileOperateChart.vue';
|
||||
import userGroupProjectChart from './dataStatistics/userGroupProjectChart.vue';
|
||||
import userTaskCompleteChart from './dataStatistics/userTaskCompleteChart.vue';
|
||||
import userDifficultyCoefficientChart from './dataStatistics/userDifficultyCoefficientChart.vue';
|
||||
@@ -145,6 +146,11 @@ const baseList = ref([
|
||||
processNodeColorList,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'fileOperate',
|
||||
component: fileOperateChart,
|
||||
props: {},
|
||||
},
|
||||
]);
|
||||
// 当前展示的图表
|
||||
const currentList = ref();
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
<template>
|
||||
<commonFilterChart
|
||||
:title="$t('数据统计.文件操作统计')"
|
||||
:charts-id="'chart-1-fileOperate'"
|
||||
:bar-type="'barChart'"
|
||||
:option="chartOption"
|
||||
:showChangeModel="true"
|
||||
:filterItems="[]"
|
||||
:extraFilters="extraFilters"
|
||||
@update="initUserProjectStatistics"
|
||||
>
|
||||
<template #extraFilters="{ extraFilters }">
|
||||
<el-form-item label="日期范围">
|
||||
<el-date-picker
|
||||
v-model="extraFilters.dateRange"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
:disabled-date="disabledDate"
|
||||
:clearable="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</commonFilterChart>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref } from 'vue';
|
||||
import commonFilterChart from '@/components/common/echartCard/commonFilterChart.vue';
|
||||
import { getDailyOperateStatisticsApi } from '@/api/system/systemLog';
|
||||
import { getThemeColor } from '@/utils/theme';
|
||||
import dayjs from 'dayjs';
|
||||
|
||||
const extraFilters = ref<any>({
|
||||
// dateRange默认设置近30天
|
||||
dateRange: [
|
||||
dayjs(new Date()).subtract(30, 'day').format('YYYY-MM-DD'),
|
||||
dayjs(new Date()).format('YYYY-MM-DD'),
|
||||
],
|
||||
});
|
||||
const disabledDate = (time: Date) => {
|
||||
return time.getTime() > Date.now();
|
||||
};
|
||||
|
||||
const getDailyOperate = async (date: any) => {
|
||||
const xData: any = [];
|
||||
const previewData: any = [];
|
||||
const downloadData: any = [];
|
||||
try {
|
||||
const res: any = await getDailyOperateStatisticsApi({
|
||||
createTimeArr: date.dateRange,
|
||||
});
|
||||
if (res.code === 200) {
|
||||
const data = res.data.reverse();
|
||||
data.forEach((item: any) => {
|
||||
xData.push(item.date);
|
||||
previewData.push(item.previewCount || 0);
|
||||
downloadData.push(item.downloadCount || 0);
|
||||
});
|
||||
}
|
||||
} catch {}
|
||||
|
||||
return {
|
||||
xData,
|
||||
previewData,
|
||||
downloadData,
|
||||
};
|
||||
};
|
||||
|
||||
// 初始化用户组项目统计
|
||||
const chartOption = ref();
|
||||
const initUserProjectStatistics = async (data: any) => {
|
||||
const { xData, previewData, downloadData } = await getDailyOperate(data);
|
||||
chartOption.value = {
|
||||
legend: {
|
||||
data: ['预览', '下载'],
|
||||
},
|
||||
grid: {
|
||||
bottom: '50',
|
||||
},
|
||||
xAxis: {
|
||||
data: xData,
|
||||
},
|
||||
yAxis: {
|
||||
minInterval: 1,
|
||||
},
|
||||
dataZoom: xData.length > 4,
|
||||
series: [
|
||||
{
|
||||
type: 'bar',
|
||||
name: '预览',
|
||||
data: previewData,
|
||||
itemStyle: {
|
||||
color: getThemeColor('--el-color-primary'),
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'bar',
|
||||
name: '下载',
|
||||
data: downloadData,
|
||||
itemStyle: {
|
||||
color: getThemeColor('--el-color-success'),
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
// getDailyOperate();
|
||||
// initUserProjectStatistics();
|
||||
});
|
||||
</script>
|
||||
@@ -86,6 +86,7 @@ const baseTable = [
|
||||
{ key: 'performanceCompletionMechine', title: '指标完成统计(机台)', inBoard: true },
|
||||
{ key: 'performanceCompletionDiscipline', title: '指标完成统计(学科)', inBoard: true },
|
||||
{ key: 'reviewPassed', title: '工位评审通过统计', inBoard: true },
|
||||
{ key: 'fileOperate', title: '文件下载统计', inBoard: true },
|
||||
];
|
||||
const vxeTableRef = ref<any>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user