update 数据统计看板增加文件操作统计图表

This commit is contained in:
2026-03-06 16:04:00 +08:00
parent 47f25830cc
commit 9f6ec705ac
6 changed files with 128 additions and 0 deletions

View File

@@ -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);
};

View File

@@ -329,6 +329,7 @@ const lang = {
'指标完成统计(学科)': 'Performance Completion Statistics (Discipline)',
: 'Workspace Review Statistics',
: 'Project Task Completion Statistics',
: 'File Operate Statistics',
},
: {
: 'Phase',

View File

@@ -324,6 +324,7 @@ const lang = {
'指标完成统计(学科)': '指标完成统计(学科)',
: '工位评审通过统计',
: '项目任务完成情况统计',
: '文件操作统计',
},
: {
: '阶段',

View File

@@ -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();

View File

@@ -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>

View File

@@ -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>();