提交 8f531fe8 authored 作者: 刘宇琪's avatar 刘宇琪

fix:2.23BUG部分修复

上级 f8252418
......@@ -179,11 +179,6 @@ export function getPostMemberList() {
}
<<<<<<< HEAD
=======
>>>>>>> master
/**
* 获取筛选项配置 - 行业列表
* GET /api/billImpactAnalysis/industry/hylyList
......
......@@ -151,24 +151,12 @@ const fieldAnalysis = ref('人工智能与信息技术占据最大份额,反
const radarAnalysis = ref('研究型大学在基础科学领域(生物医学、材料科学)占据主导地位;科技企业高度集中于人工智能和信息技术领域;国家实验室在能源技术和国家安全相关领域有显著优势;国防承包商的研究高度集中于航空航天和国家安全领域。')
// 切换视图
<<<<<<< HEAD
function switchView(view: string) {
console.log('[v0] switchView 被调用, view:', view, ', currentView:', currentView.value)
if (currentView.value !== view) {
currentView.value = view
if (view === 'ranking') {
console.log('[v0] 切换到排名视图,调用 handleGetOverallRanking')
handleGetOverallRanking()
} else {
console.log('[v0] 切换到研究布局视图,调用 handleGetResearchField 和 handleGetResearchFieldSubjectType')
=======
function switchView(view: string) {
if (currentView.value !== view) {
currentView.value = view
if (view === 'ranking') {
handleGetOverallRanking()
} else {
>>>>>>> master
handleGetResearchField()
handleGetResearchFieldSubjectType()
}
......@@ -183,12 +171,7 @@ const handleGetOverallRanking = async () => {
subjectTypeId: props.activeCate1,
year: releaseTime.value
}
<<<<<<< HEAD
const res = await getOverallRanking(params)
console.log('[v0] 综合排名', res)
=======
const res = await getOverallRanking(params)
>>>>>>> master
if (res.code === 200 && res.data) {
innoItemList.value = res.data
}
......@@ -205,12 +188,7 @@ const handleGetResearchField = async () => {
const params = {
year: releaseTime.value
}
<<<<<<< HEAD
const res = await getResearchField(params)
console.log('[v0] 研究领域布局情况', res)
=======
const res = await getResearchField(params)
>>>>>>> master
if (res.code === 200 && res.data) {
const names = res.data.map(item => item.areaName)
const values = res.data.map(item => item.amount)
......@@ -232,12 +210,7 @@ const handleGetResearchFieldSubjectType = async () => {
const params = {
year: releaseTime.value
}
<<<<<<< HEAD
const res = await getResearchFieldSubjectType(params)
console.log('[v0] 研究领域主体类型', res)
=======
const res = await getResearchFieldSubjectType(params)
>>>>>>> master
if (res.code === 200 && res.data) {
raderOptionData.value = res.data
}
......
<template>
<div class="chart-summary">
<svg class="summary-icon" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="10" cy="10" r="9" stroke="#055FC2" stroke-width="2" fill="none"/>
<path d="M7 10L9 12L13 8" stroke="#055FC2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<p class="summary-text">{{ text }}</p>
<svg class="arrow-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"
@click="$emit('more')">
<path d="M9 18L15 12L9 6" stroke="#055FC2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<div class="chart-summary-wrapper">
<div class="btn-box" @mouseenter="handleSwitchAiContentShow(true)">
<AiButton />
</div>
<div class="content-box" v-if="isShowAiContent" @mouseleave="handleSwitchAiContentShow(false)">
<AiPane :aiContent="text" />
</div>
</div>
</template>
<script setup>
import { ref } from 'vue'
import AiButton from '@/components/base/Ai/AiButton/index.vue'
import AiPane from '@/components/base/Ai/AiPane/index.vue'
defineProps({
text: {
type: String,
......@@ -21,40 +22,35 @@ defineProps({
})
defineEmits(['more'])
const isShowAiContent = ref(false)
const handleSwitchAiContentShow = (isShow) => {
isShowAiContent.value = isShow
}
</script>
<style lang="scss" scoped>
.chart-summary {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 12px 16px;
margin: 0 16px 16px;
background: #F6FAFF;
border: 1px solid #E7F3FF;
border-radius: 4px;
.summary-icon {
flex-shrink: 0;
margin-top: 2px;
}
.chart-summary-wrapper {
position: absolute;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
.summary-text {
flex: 1;
font-size: 16px;
line-height: 24px;
color: #055FC2;
margin: 0;
.btn-box {
position: absolute;
right: 0;
bottom: 0;
pointer-events: auto;
}
.arrow-icon {
flex-shrink: 0;
cursor: pointer;
transition: opacity 0.2s;
&:hover {
opacity: 0.7;
}
.content-box {
position: absolute;
left: 0;
right: 0;
bottom: 0;
pointer-events: auto;
}
}
</style>
......@@ -61,19 +61,9 @@
<!-- 科研实力Tab -->
<ResearchStrength v-else-if="activeTab === '科研实力'" />
<<<<<<< HEAD
<!-- 合作情况Tab -->
<Cooperation v-else-if="activeTab === '合作情况'" />
<!-- 其他Tab内容占位 -->
<div class="placeholder-content" v-else>
<div class="placeholder-text">{{ activeTab }}内容开发中...</div>
</div>
=======
<Cooperation v-else-if="activeTab === '合作情况'" />
<OtherInfo v-else-if="activeTab === '其他情况'" />
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
</div>
</div>
</div>
......@@ -85,10 +75,7 @@ import AreaTag from '@/components/base/AreaTag/index.vue'
import SchoolDetail from './tabs/SchoolDetail.vue'
import ResearchStrength from './tabs/ResearchStrength.vue'
import Cooperation from './tabs/Cooperation.vue'
<<<<<<< HEAD
=======
import OtherInfo from './tabs/OtherInfo.vue'
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
// 大学基本信息
const universityInfo = ref({
......@@ -235,11 +222,7 @@ const latestDynamics = ref([
date: '9月15日',
title: '艾伦·M·加伯接任临时校长',
content: '原教务长艾伦·加伯(Alan M. Garber)出任哈佛第30任校长(临时),并完整复学术诚信与校园团结。',
<<<<<<< HEAD
tags: [{ name: '集成��路', type: 'tag6' }],
=======
tags: [{ name: '集成电路', type: 'tag6' }],
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
isHighlight: true
},
{
......@@ -356,18 +339,12 @@ const handleVisitWebsite = () => {
}
.header-section {
<<<<<<< HEAD
padding: 80px 160px 30px;
.header-content {
=======
padding: 80px;
display: flex;
justify-content: center;
.header-content {
width: 1600px;
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
display: flex;
align-items: flex-start;
gap: 24px;
......@@ -452,22 +429,15 @@ const handleVisitWebsite = () => {
.nav-tabs {
display: flex;
<<<<<<< HEAD
margin: 0 160px 16px;
=======
justify-content: center;
margin: 0 auto 16px;
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
background: rgba(255, 255, 255, 0.65);
border-radius: 10px;
padding: 5px;
box-shadow: 0px 0px 20px rgba(25, 69, 130, 0.1);
<<<<<<< HEAD
=======
width: 1600px;
margin-left: auto;
margin-right: auto;
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
.nav-tab {
flex: 1;
......@@ -498,16 +468,12 @@ const handleVisitWebsite = () => {
}
.main-content {
<<<<<<< HEAD
padding: 0 160px;
=======
display: flex;
justify-content: center;
> * {
width: 1600px;
}
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
}
.placeholder-content {
......
......@@ -288,11 +288,7 @@ const paperPoints = computed(() => getDataPoints(paperData))
const fundingPoints = computed(() => getDataPoints(fundingData))
// 雷达图数据和计算
<<<<<<< HEAD
const radarValues = [0.7, 0.9, 0.85, 0.6, 0.75, 0.65] // 各领域相对��
=======
const radarValues = [0.7, 0.9, 0.85, 0.6, 0.75, 0.65] // 各领域
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
const getHexagonPoints = (cx, cy, r) => {
const points = []
......@@ -396,6 +392,7 @@ const getPatentBarGradient = () => {
.chart-box {
flex: 1;
min-width: 0;
position: relative;
}
}
......@@ -647,7 +644,6 @@ const getPatentBarGradient = () => {
}
}
}
// 图表底部摘要
</style>
......@@ -203,12 +203,7 @@ const infoList = computed(() => [
<style lang="scss" scoped>
.school-detail-content {
display: flex;
<<<<<<< HEAD
gap: 16px;
// align-items 默认 stretch,使左右等高
=======
gap: 16px;
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
align-items: stretch;
.left-section {
......@@ -216,12 +211,7 @@ const infoList = computed(() => [
min-width: 0;
display: flex;
flex-direction: column;
<<<<<<< HEAD
// 让内部 AnalysisBox 撑满整列高度
=======
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
:deep(.dynamics-box),
:deep(.analysis-box-wrapper) {
flex: 1;
......@@ -234,12 +224,7 @@ const infoList = computed(() => [
flex-direction: column;
}
}
<<<<<<< HEAD
// dynamics-list 填满剩余空间,分页固定在底部
=======
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
:deep(.dynamics-box) {
height: 100%;
}
......@@ -252,13 +237,7 @@ const infoList = computed(() => [
flex-direction: column;
gap: 16px;
}
<<<<<<< HEAD
}
// 节点尺寸变量
=======
}
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
$node-size: 24px;
$axis-width: 2px;
......@@ -271,22 +250,12 @@ $axis-width: 2px;
display: flex;
align-items: stretch;
gap: 0;
<<<<<<< HEAD
// 左侧日期列
=======
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
.time-col {
width: 70px;
flex-shrink: 0;
text-align: right;
<<<<<<< HEAD
padding-right: 16px;
// 日期与节点圆顶部对齐
=======
padding-right: 16px;
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
padding-top: calc(#{$node-size} / 2 - 12px);
.year, .date {
......@@ -297,12 +266,7 @@ $axis-width: 2px;
line-height: 24px;
}
}
<<<<<<< HEAD
// 中间轴线列:上段线 + 圆形节点 + 下段线,完全垂直居中对齐
=======
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
.axis-col {
width: $node-size;
flex-shrink: 0;
......@@ -349,12 +313,7 @@ $axis-width: 2px;
}
}
}
<<<<<<< HEAD
// 右侧内容列
=======
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
.content-col {
flex: 1;
min-width: 0;
......@@ -512,24 +471,6 @@ $axis-width: 2px;
color: rgb(59, 65, 75);
margin-bottom: 12px;
}
<<<<<<< HEAD
// 最多展示 2 行 (每行2个),超出可滚动
.people-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
// 每个卡片高度约 64px,2行 = 128px + 1个gap16 = 144px
max-height: 144px;
overflow-y: auto;
// 低于 2 行时不留白,自适应收缩
&.single-row {
max-height: 64px;
}
// 滚动条样式
=======
.people-grid {
display: grid;
......@@ -542,7 +483,6 @@ $axis-width: 2px;
max-height: 64px;
}
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
&::-webkit-scrollbar {
width: 4px;
}
......
......@@ -52,21 +52,6 @@ export default defineConfig({
changeOrigin: true,
rewrite: (path) => path.replace(/^\/reportData/, '')
},
<<<<<<< HEAD
'/api': {
target: 'http://8.140.26.4:9085/',
// target: 'http://192.168.0.4:28080/',
// target: 'http://172.20.10.3:28080/',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
// '/api': {
// target: 'http://10.134.117.162:28080/',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/api/, '')
// '/api': {
=======
'/api': {
target: 'http://8.140.26.4:9085/',
......@@ -74,7 +59,6 @@ export default defineConfig({
rewrite: (path) => path.replace(/^\/api/, '')
// '/api': {
>>>>>>> c71276c18548779e8e676aea3b390352568ff20b
// target: 'http://10.119.133.162:28080/',
// changeOrigin: true,
// rewrite: (path) => path.replace(/^\/api/, '')
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论