This commit is contained in:
ljx
2025-09-12 23:26:37 +08:00
parent 010d3d8c3c
commit 5f0368dad2
4 changed files with 79 additions and 30 deletions

View File

@ -1,11 +1,29 @@
<template> <template>
<div class="upload-file"> <div class="upload-file">
<el-upload ref="fileUploadRef" multiple :action="realUploadUrl" :before-upload="handleBeforeUpload" <el-upload
:file-list="fileList" :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" ref="fileUploadRef"
:on-success="handleUploadSuccess" :show-file-list="showFileList" :on-preview="handlePreview" :headers="headers" multiple
class="upload-file-uploader" :list-type="isConstruction ? 'picture-card' : 'text'" :accept="accept" :drag="isDarg" :action="realUploadUrl"
:data="data" :auto-upload="autoUpload" :on-change="handleChange" :on-remove="handleRemove" :method="method" :before-upload="handleBeforeUpload"
:http-request="customUpload"> :file-list="fileList"
:limit="limit"
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:show-file-list="showFileList"
:on-preview="handlePreview"
:headers="headers"
class="upload-file-uploader"
:list-type="isConstruction ? 'picture-card' : 'text'"
:accept="accept"
:drag="isDarg"
:data="data"
:auto-upload="autoUpload"
:on-change="handleChange"
:on-remove="handleRemove"
:method="method"
:http-request="customUpload"
>
<slot> <slot>
<div> <div>
<!-- 上传按钮 --> <!-- 上传按钮 -->
@ -24,10 +42,20 @@
的文件 的文件
</div> </div>
<!-- 文件列表 --> <!-- 文件列表 -->
<transition-group v-if="!isConstruction && !isImportInfo" <transition-group
class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul" @click.stop> v-if="!isConstruction && !isImportInfo"
<li style="margin-top: 10px" v-for="(file, index) in fileList" :key="file.uid" class="upload-file-list el-upload-list el-upload-list--text"
class="el-upload-list__item ele-upload-list__item-content" v-if="autoUpload"> name="el-fade-in-linear"
tag="ul"
@click.stop
>
<li
style="margin-top: 10px"
v-for="(file, index) in fileList"
:key="file.uid"
class="el-upload-list__item ele-upload-list__item-content"
v-if="autoUpload"
>
<el-link :href="`${file.url}`" :underline="false" target="_blank"> <el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span> <span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link> </el-link>
@ -79,7 +107,7 @@ const props = defineProps({
// 数量限制 // 数量限制
limit: propTypes.number.def(5), limit: propTypes.number.def(5),
// 大小限制(MB) // 大小限制(MB)
fileSize: propTypes.number.def(5), fileSize: propTypes.number.def(10),
// 文件类型, 例如['png', 'jpg', 'jpeg'] // 文件类型, 例如['png', 'jpg', 'jpeg']
// fileType: propTypes.array.def(['doc', 'xls', 'ppt', 'txt', 'pdf', 'png', 'jpg', 'jpeg', 'zip']), // fileType: propTypes.array.def(['doc', 'xls', 'ppt', 'txt', 'pdf', 'png', 'jpg', 'jpeg', 'zip']),
fileType: propTypes.array.def(['pdf']), fileType: propTypes.array.def(['pdf']),
@ -440,7 +468,7 @@ defineExpose({ submitUpload });
} }
} }
>span { > span {
width: 100%; width: 100%;
} }
} }

View File

@ -56,7 +56,7 @@ const props = defineProps({
// 图片数量限制 // 图片数量限制
limit: propTypes.number.def(5), limit: propTypes.number.def(5),
// 大小限制(MB) // 大小限制(MB)
fileSize: propTypes.number.def(5), fileSize: propTypes.number.def(10),
// 文件类型, 例如['png', 'jpg', 'jpeg'] // 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: propTypes.array.def(['png', 'jpg', 'jpeg']), fileType: propTypes.array.def(['png', 'jpg', 'jpeg']),
// 是否显示提示 // 是否显示提示

View File

@ -46,8 +46,10 @@ export let pieOption = {
label: { label: {
alignTo: 'edge', alignTo: 'edge',
formatter: function (params) { formatter: function (params) {
console.log(params, 3333333333);
// 只显示前三个数据项 // 只显示前三个数据项
return `{name|${params.data.name}}\n{percent|${params.data.completionRate}MW}`; return `{name|${params.data.name}}\n{percent|${(params.data.completionRate / 100).toFixed(2)}%}`;
}, },
minMargin: 10, minMargin: 10,
edgeDistance: 20, edgeDistance: 20,

View File

@ -110,23 +110,23 @@ const getData = async () => {
if (res.code == 200) { if (res.code == 200) {
capacityData.value = res.data; capacityData.value = res.data;
// processedDataList.value = res.data.projectProgressDetailList; // processedDataList.value = res.data.projectProgressDetailList;
let totalCapacity = 0; // let totalCapacity = 0;
const processedData = res.data.projectProgressDetailList.map((item) => { // const processedData = res.data.projectProgressDetailList.map((item) => {
const capacity = parseInt(item.projectCapacity) || 0; // const capacity = parseInt(item.projectCapacity) || 0;
totalCapacity += capacity; // totalCapacity += capacity;
return { // return {
name: item.projectName, // name: item.projectName,
value: capacity, // value: capacity,
completionRate: item.completionRate // completionRate: item.completionRate
}; // };
}); // });
// 计算每个项目的百分比 // // 计算每个项目的百分比
processedData.forEach((item) => { // processedData.forEach((item) => {
item.percentage = totalCapacity > 0 ? ((item.value / totalCapacity) * 100).toFixed(2) : '0%'; // item.percentage = totalCapacity > 0 ? ((item.value / totalCapacity) * 100).toFixed(2) : '0%';
}); // });
processedDataList.value = processedData; // processedDataList.value = processedData;
initPieChart(); // initPieChart();
} }
}; };
// 初始化饼图 // 初始化饼图
@ -158,6 +158,25 @@ const getOutputData = async () => {
designAreaData.value = res.data.map((item: any) => Number((item.plannedCapacity * item.progressPercentage) / 100)); designAreaData.value = res.data.map((item: any) => Number((item.plannedCapacity * item.progressPercentage) / 100));
transferAreaData.value = res.data.map((item: any) => Number(item.plannedCapacity)); transferAreaData.value = res.data.map((item: any) => Number(item.plannedCapacity));
barNames.value = res.data.map((item: any) => item.projectName); barNames.value = res.data.map((item: any) => item.projectName);
let totalCapacity = 0;
const processedData = res.data.map((item) => {
const capacity = item.plannedCapacity * item.progressPercentage || 0;
totalCapacity += capacity;
return {
name: item.projectName,
value: capacity,
completionRate: item.progressPercentage
};
});
// 计算每个项目的百分比
processedData.forEach((item) => {
item.percentage = totalCapacity > 0 ? ((item.value / totalCapacity) * 100).toFixed(2) : '0%';
});
console.log(processedData, 55555555);
processedDataList.value = processedData;
initPieChart();
initLineChart(); initLineChart();
} }
}; };