@@ -85,31 +48,31 @@
- ID: {{ lab.idcode || lab.id }} + ID: {{ lab.basicInformation.name0 || lab.id }}
- 工程研究中心图片 + 工程研究中心图片
研究中心名称: - {{ lab.name }} + {{ lab.basicInformation.name1 }}
所属领域: - {{ lab.field }} + {{ lab.basicInformation.name2 }}
所属学校: - {{ lab.school }} + {{ lab.basicInformation.name3 }}
主管部门: - {{ lab.department }} + {{ lab.basicInformation.name4 }}
@@ -226,68 +189,23 @@ const labs = ref([]); // 根据搜索过滤工程研究中心 const filteredLabs = ref([]); -// 为每个工程研究中心分配唯一的图片 -function assignUniqueLabImages() { - // 确保每个工程研究中心都有不同的图片 - labs.value.forEach((lab, index) => { - // 计算1-6之间的序号,确保均匀分布 - const photoIndex = (index % 6) + 1; - lab.image = `/image/实验室${photoIndex}.png`; - }); -} - // 在组件挂载时获取维度数据 onMounted(async () => { - try { - // 获取工程研究中心评估维度数据 - const response = await axios.get(`${getApiBaseUrl()}/admin-api/pg/J-dimensions/lab`); - dimensions.value = response.data.data; - dimensions.value.forEach(dim => { - if (typeof dim.subDimensions === 'string') { - try { - dim.subDimensions = JSON.parse(dim.subDimensions); - } catch (error) { - console.error(`解析 subDimensions 失败: ${dim.name}`, error); - dim.subDimensions = []; // 解析失败时设为空数组 - } - } - }); - // 加载工程研究中心数据 - await loadLabs(); - // 在此不需要调用handleSearch,因为loadLabs中已经调用了 - } catch (error) { - console.error('获取维度数据失败:', error); - ElMessage.error('获取维度数据失败'); - } + await loadLabs(); }); // 加载工程研究中心数据 const loadLabs = async () => { try { - const response = await axios.get(`${getApiBaseUrl()}/admin-api/pg/J-labs/labs`); + const response = await axios.get(`${getApiBaseUrl()}/admin-api/pg/evaluation-results/get-release`); labs.value = response.data.data; - - // 为工程研究中心分配唯一的图片 - assignUniqueLabImages(); - - // 确保每个工程研究中心都有分数 - labs.value.forEach(lab => { - // 确保有分数 - if (!lab.score && lab.evaluationData && lab.evaluationData.length > 0) { - // 计算平均分作为综合得分 - lab.score = Math.round(lab.evaluationData.reduce((a, b) => a + b, 0) / lab.evaluationData.length); - } - }); - // 先更新过滤的工程研究中心列表 handleSearch(); - // 给一个短暂的延时,确保DOM已经更新 setTimeout(() => { updateAllRadarCharts(); }, 100); } catch (error) { - console.error('获取工程研究中心数据失败:', error); ElMessage.error('获取工程研究中心数据失败'); } }; @@ -310,61 +228,13 @@ const updateAllRadarCharts = () => { const chart = echarts.init(chartDom); // 从二级维度生成指标 - const indicators = []; - if (dimensions.value && dimensions.value.length > 0) { - dimensions.value.forEach(dim => { - if (dim.subDimensions && dim.subDimensions.length > 0) { - dim.subDimensions.forEach(subDim => { - indicators.push({ - name: subDim.name, - max: 100 - }); - }); - } - }); - } - - // 如果没有维度,使用默认维度 - if (indicators.length === 0) { - indicators.push( - { name: '创新水平', max: 100 }, - { name: '研究能力', max: 100 }, - { name: '成果转化', max: 100 }, - { name: '学科建设', max: 100 }, - { name: '行业贡献', max: 100 }, - { name: '发展潜力', max: 100 } - ); - } - + // const indicators = lab.dynamicColumns.index; + const indicators = lab.dynamicColumns.index.map(index => ({ name: index.label})); // 准备雷达图数据 - let radarData = []; + let radarData = lab.result; - // 检查是否有二级维度评估数据 - let hasSubDimensionData = false; - if (lab.sub_dimension_evaluations && Object.keys(lab.sub_dimension_evaluations).length > 0) { - dimensions.value.forEach(dim => { - if (dim.subDimensions && dim.subDimensions.length > 0 && - lab.sub_dimension_evaluations[dim.name]) { - dim.subDimensions.forEach(subDim => { - if (lab.sub_dimension_evaluations[dim.name][subDim.name] !== undefined) { - hasSubDimensionData = true; - radarData.push(lab.sub_dimension_evaluations[dim.name][subDim.name]); - } - }); - } - }); - } - - // 如果没有二级维度数据,使用传统的evaluationData - if (!hasSubDimensionData) { - // 确保评估数据与指标数量匹配 - if (!lab.evaluationData || lab.evaluationData.length !== indicators.length) { - // 生成随机评估数据,范围在60-90之间 - lab.evaluationData = indicators.map(() => Math.floor(Math.random() * 31) + 60); - } - radarData = lab.evaluationData; - } - + + console.log('radarData:', indicators,radarData); chart.setOption({ radar: { indicator: indicators, @@ -428,8 +298,8 @@ const handleSearch = () => { filteredLabs.value = labs.value; } else { filteredLabs.value = labs.value.filter(lab => - lab.name.includes(searchQuery.value) || - (lab.idcode && lab.idcode.includes(searchQuery.value)) + lab.basicInformation.name1.includes(searchQuery.value) || + (lab.name0 && lab.name0.includes(searchQuery.value)) ); }