This commit is contained in:
2025-12-23 14:44:57 +08:00
parent b5716b5944
commit 005c058d8b
2 changed files with 49 additions and 65 deletions

View File

@@ -6,44 +6,27 @@
:api="listBigFileApi"
fullHeight
showCheckbox
v-model:searchParams="searchParams"
:defaultSearchParams="{ fileSizeUnit: 'TB'}"
:actionList="actionList"
@checkbox-all="checkboxChangeFun"
@checkbox-change="checkboxChangeFun"
>
<template #form-fileSize>
<el-input class="w80 mr5" v-model="searchParams.fileSize"></el-input>
<el-select class="w80" v-model="searchParams.fileSizeUnit">
<el-option v-for="item in unitList" :label="item" :value="item" :key="item"></el-option>
</el-select>
</template>
<template #leftOptions>
<div>
<el-form :inline="true" class="filter-form" :model="filterFormData">
<!-- <el-form-item label="文件名称:">
<el-input v-model="filterFormData.fileName"></el-input>
</el-form-item>
<el-form-item label="文件大小(≥)">
<el-input class="w80 mr5" v-model="filterFormData.fileSize"></el-input>
<el-select class="w80" v-model="filterFormData.fileSizeUnit">
<el-option v-for="item in unitList" :label="item" :value="item" :key="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="文件生成时间:" >
<el-date-picker
v-model="filterFormData.createTime"
type="datetime"
placeholder="选择具体的时间"
format="YYYY-MM-DD HH:mm:ss"
date-format="MMM DD, YYYY"
time-format="HH:mm"
/>
</el-form-item> -->
<el-form-item >
<el-button type="primary" @click="clickDeleteFun" :disabled="chosenData.length === 0">批量删除</el-button>
</el-form-item>
</el-form>
</div>
<el-button type="primary" @click="clickDeleteFun" :disabled="chosenData.length === 0">批量删除</el-button>
</template>
</BaseTable>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, computed } from 'vue';
import { ref, computed } from 'vue';
import BaseTable from '@/components/common/table/baseTable.vue';
import { listBigFileApi, batchDeleteBigFileApi } from '@/api/data/data';
import { ElMessage, ElMessageBox } from 'element-plus';
@@ -52,12 +35,6 @@ import { useI18n } from 'vue-i18n';
const baseTableRef = ref();
const { t } = useI18n();
const filterFormData = reactive<any>({
fileName: '',
fileSize: '',
fileSizeUnit: 'TB',
createTime: '',
});
// 操作栏
const actionList = computed(() => {
return [
@@ -79,20 +56,19 @@ const checkboxChangeFun = (data: any) => {
chosenData.value = data.records;
};
const fileName = ref('');
const createTime = ref('');
const fileSize = ref('');
const fileSizeUnit = ref('');
// 搜索项插槽的参数
/*
当配置的搜索项无法满足需求时,可以自定义搜索项,
1在参数配置中选择插槽
2写插槽 插槽名称 #form-参数名
3v-model:searchParams="searchParams" 中设置插槽部分的参数
*/
const searchParams = ref<any>({
fileSize: '',
fileSizeUnit: 'TB',
});
const unitList = ref(['TB', 'GB', 'MB', 'KB']);
const searchFun = () => {
fileName.value = filterFormData.fileName;
createTime.value = filterFormData.createTime;
fileSize.value = filterFormData.fileSize;
fileSizeUnit.value = filterFormData.fileSizeUnit;
};
// 点击批量删除
const clickDeleteFun = () => {
ElMessageBox.confirm('是否确认删除该配置?', '提示', {
@@ -131,21 +107,12 @@ const deleteFileFun = async (row:any) => {
.setting-page{
width: 100%;
height: 100%;
.filter-form{
.el-form-item{
margin-bottom: 0 !important;
.w80{
width: 80px;
width: 100px;
}
.mr5{
margin-right: 5px;
}
}
}
}
</style>

View File

@@ -28,9 +28,8 @@ import { ref, onMounted } from 'vue';
import EchartCard from '@/components/common/echartCard/index.vue';
import { getCommonCompleteStatisticsApi } from '@/api/project/node';
import { getTaskAchieveStatisticsApi } from '@/api/project/task';
import { useDict } from '@/utils/useDict';
import { getThemeColor } from '@/utils/theme';
import { TASK_PROCESS_STATUS_OBJ } from '@/utils/enum/task';
import { TASK_PROCESS_STATUS_OBJ, TASK_PROCESS_STATUS } from '@/utils/enum/task';
// 进度状态颜色列表
const statusColorList = [
@@ -49,10 +48,10 @@ const achievementColorList = [
// ***************** 进度统计 *****************
const ProjectTaskProgressChartRef = ref();
const queryProjectTaskProgress = async () => {
const getCommonOptionFun = async () => {
let xData: any = [];
const seriesData: any = [];
let titles: any = [];
let legendData: any = [];
const res: any = await getCommonCompleteStatisticsApi({
queryType: 'task',
resultTagType: 'tag6',
@@ -66,7 +65,7 @@ const queryProjectTaskProgress = async () => {
return item.name;
});
titles = res.data.allExeStatus.map((item: any) => {
legendData = res.data.allExeStatus.map((item: any) => {
return TASK_PROCESS_STATUS_OBJ[item];
});
@@ -77,9 +76,19 @@ const queryProjectTaskProgress = async () => {
const obj: any = {
name: TASK_PROCESS_STATUS_OBJ[str],
type: 'bar',
stack: 'total', // 堆叠效果
emphasis: {
focus: 'series',
},
label: {
show: false, // 暂不展示,效果很一般
position: TASK_PROCESS_STATUS_OBJ[str] === TASK_PROCESS_STATUS_OBJ[TASK_PROCESS_STATUS.COMPLETED] ? 'right' : '',
formatter: (params: any) => {
return params.value ? TASK_PROCESS_STATUS_OBJ[str] === TASK_PROCESS_STATUS_OBJ[TASK_PROCESS_STATUS.COMPLETED]
? `———${params.value}`
: params.value : '';
},
},
data: [],
};
@@ -90,7 +99,15 @@ const queryProjectTaskProgress = async () => {
seriesData.push(obj);
}
}
console.log('进度统计', seriesData);
return {
xData,
seriesData,
legendData,
};
};
const queryProjectTaskProgress = async () => {
const { xData, seriesData, legendData } = await getCommonOptionFun();
// console.log('进度统计', seriesData);
ProjectTaskProgressChartRef.value.commonChartRef.disposeEchartsByKey('chart-progress');
ProjectTaskProgressChartRef.value.commonChartRef.option = {
color: statusColorList,
@@ -103,7 +120,7 @@ const queryProjectTaskProgress = async () => {
legend: {
top: '0%',
left: 'center',
data: titles,
data: legendData,
// itemWidth: 12,
// itemHeight: 12,
},
@@ -162,7 +179,7 @@ const queryProjectTaskAchievement = async () => {
tag9: '',
tag10: '',
});
console.log('达成统计', res.data.result);
// console.log('达成统计', res.data.result);
// 把res.data.allAchieveStatus数组转换为对象的keyvalue默认是0
const achieveStatusObj: any = {};
res.data.allAchieveStatus.forEach((item: any) => {
@@ -174,7 +191,7 @@ const queryProjectTaskAchievement = async () => {
achieveStatusObj[key] += item.statusCount[key];
}
});
console.log('achieveStatusObj', achieveStatusObj);
// console.log('achieveStatusObj', achieveStatusObj);
const seriesData = [
{ value: 580, name: '未分析' },
@@ -217,7 +234,7 @@ const queryProjectTaskAchievement = async () => {
{
name: '',
type: 'pie',
radius: ['0%', '55%'],
radius: ['30%', '55%'],
center: ['60%', '45%'],
label: {
formatter: (params: { name: any; percent: any; }) => {