提交 199fd9dd authored 作者: 张伊明's avatar 张伊明

合并分支 'zz-dev' 到 'pre'

feat:资助体系图表切换时间或经费项目时,重新调用ai 查看合并请求 !309
流水线 #349 已通过 于阶段
in 2 分 22 秒
......@@ -15,8 +15,8 @@
<div class="main-content" ref="homeMainRef" :class="{ 'scroll-main': isShow }">
<div class="home-top-bg"></div>
<!-- 搜索栏部分 -->
<SearchContainer v-if="homeMainRef" :countInfo="cooperationCountInfo" placeholder="搜索合作限制"
:containerRef="homeMainRef" areaName="" />
<SearchContainer v-if="homeMainRef" placeholder="搜索合作限制" :containerRef="homeMainRef" areaName=""
style="height: fit-content" />
<!-- 最新动态 -->
<div class="newdata" id="position1">
......@@ -164,7 +164,7 @@ const handleToPosi = id => {
background-size: 100% 100%;
position: absolute;
width: 100%;
height: 100%;
z-index: -100;
top: -64px;
}
......@@ -177,7 +177,7 @@ const handleToPosi = id => {
.search {
width: 960px;
height: 168px;
margin: 0 auto 68px auto;
.search-main {
......@@ -368,12 +368,12 @@ const handleToPosi = id => {
.reslib {
width: 1600px;
height: 1633px;
margin: 0 auto 0px auto;
.reslib-main {
width: 1600px;
height: 1565px;
margin-top: 26px;
}
}
......
......@@ -14,7 +14,7 @@
<div class="select-box">
<el-select v-model="sortModel" class="resource-library-sort-select" placeholder="发布时间" style="width: 120px"
:teleported="true" placement="bottom-start" :popper-options="resourceLibrarySortPopperOptions"
@change="handleResourceLibrarySortChange">
@change="handleResourceLibrarySortChange" popper-class="datasub-select-popper">
<template #prefix>
<img v-if="sortModel !== true" src="@/views/thinkTank/ThinkTankDetail/thinkDynamics/images/image down.png"
class="resource-library-sort-prefix-img" alt="" @click.stop="toggleResourceLibrarySortPrefix" />
......@@ -322,7 +322,9 @@ onMounted(async () => {
margin: 0;
padding: 0;
}
:global(.datasub-select-popper .el-select-dropdown__item) {
padding-left: 20px;
}
.reslib-page {
width: 1600px;
......@@ -459,6 +461,10 @@ onMounted(async () => {
height: 24px;
margin-right: 0 !important;
}
:deep(.el-checkbox__label) {
font-size: 16px;
}
}
}
}
......
......@@ -14,8 +14,8 @@
<div class="main-content" ref="containerRef">
<div class="home-top-bg"></div>
<!-- 搜索栏部分 -->
<SearchContainer style="margin-bottom: 48px; height: fit-content" v-if="containerRef" :countInfo="countInfo"
placeholder="搜索科研资助实体、资助记录" :containerRef="containerRef" areaName="" />
<SearchContainer style="margin-bottom: 52px; height: fit-content" v-if="containerRef" placeholder="搜索科研资助实体、资助记录"
:containerRef="containerRef" areaName="" />
<!-- <div class="search"> -->
<!-- <div class="search-main">
......
......@@ -1611,9 +1611,9 @@ onMounted(() => {
.page-box {
/* 最大 300px:允许变小,但绝不变大 */
flex: 0 1 300px;
flex: 0 1 600px;
width: 100%;
max-width: 300px;
max-width: 600px;
min-width: 0;
display: flex;
justify-content: flex-end;
......@@ -1621,7 +1621,7 @@ onMounted(() => {
}
.page-box :deep(.el-pagination) {
max-width: 100%;
min-width: 0;
overflow: hidden;
}
......
......@@ -105,6 +105,11 @@ const handleGetThinkTankReportSummary = async () => {
if (res.code === 200 && res.data) {
reportUrl.value = res.data.reportUrl;
thinkInfo.value = res.data;
const title = String(res.data.name || "").trim();
if (title) {
document.title = title;
window.sessionStorage.setItem("curTabName", title);
}
console.log(reportUrl.value, "reportUrl.value");
}
} catch (error) {
......
......@@ -459,7 +459,7 @@ const handleGetThinkTankReportIndustryCloud = async () => {
}));
// 该接口数据用于「报告关键词云」
box5Data.value = data;
console.log("box5Data", box5Data.value);
console.log("box5Data", box5Data.value);
if (data.length) {
box5WordCloudKey.value += 1;
}
......@@ -1377,9 +1377,9 @@ onMounted(() => {
.page-box {
/* 最大 300px:允许变小,但绝不变大 */
flex: 0 1 300px;
flex: 0 1 600px;
width: 100%;
max-width: 300px;
max-width: 600px;
min-width: 0;
display: flex;
justify-content: flex-end;
......@@ -1387,7 +1387,7 @@ onMounted(() => {
}
.page-box :deep(.el-pagination) {
max-width: 100%;
min-width: 0;
overflow: hidden;
}
......
......@@ -72,8 +72,8 @@
</div> -->
<AnalysisBox title="项目报告" :showAllBtn="true">
<div class="box2-main">
<div class="box2-item" v-for="(report, idx) in reportList" :key="idx">
<div class="box2-item-content">
<div class="box2-item" v-for="(report, idx) in reportList" :key="report.id || idx">
<div class="box2-item-content" @click="handleClickProjectReport(report)">
<div class="left"><img :src="report.imgUrl" alt="" /></div>
<div class="right-content">
<div class="report-title">{{ report.nameZh }}</div>
......@@ -222,7 +222,7 @@ const getOpinionExpandKey = (item, index) => {
}
return `idx-${index}`;
};
const reportList = ref({});
const reportList = ref([]);
const formatDate = (dateStr) => {
if (!dateStr) return "";
const date = new Date(dateStr)
......@@ -237,12 +237,29 @@ const handleGetThinkTankReport = async () => {
const res = await getThinkTankProjectRelated(router.currentRoute._value.params.id);
console.log("报告全局信息", res);
if (res.code === 200 && res.data) {
reportList.value = res.data;
reportList.value = Array.isArray(res.data) ? res.data : [];
}
} catch (error) {
console.error("获取相关报告error", error);
}
};
/** 新标签页打开智库报告详情 /thinkTank/reportDetail/:id */
const handleClickProjectReport = (report) => {
const id = report?.id;
if (!id) {
ElMessage.warning("报告 id 为空,无法跳转");
return;
}
const reportTitle = String(report?.nameZh || report?.name || "").trim();
const route = router.resolve({
name: "ReportDetail",
params: { id: String(id) },
query: reportTitle ? { name: reportTitle } : {}
});
window.open(route.href, "_blank");
};
const handleClickReportAuthor = async (author) => {
const personId = author?.personId;
if (!personId) return;
......@@ -807,6 +824,7 @@ onMounted(() => {
height: 90px;
margin-top: 7px;
display: flex;
cursor: pointer;
.left {
width: 56px;
......
......@@ -100,7 +100,7 @@
</div>
<div class="right-footer">
<div class="info">
{{ total }}智库报告
{{ total }}国会听证会
</div>
<div class="page-box">
<el-pagination :page-size="10" background layout="prev, pager, next" :total="total"
......@@ -290,7 +290,7 @@ const handleToReportDetail = item => {
gap: 16px;
height: 100%;
margin-bottom: 100px;
margin-bottom: 80px;
......@@ -489,14 +489,9 @@ const handleToReportDetail = item => {
.right {
width: 1224px;
.card-box {
height: 100%;
display: flex;
......
......@@ -70,7 +70,7 @@
</div>
<div class="right-footer">
<div class="info">
{{ total }}智库报告
{{ total }}调查项目
</div>
<div class="page-box">
<el-pagination :page-size="12" background layout="prev, pager, next" :total="total"
......@@ -218,6 +218,7 @@ const handleToReportDetail = item => {
.main-content {
display: flex;
gap: 16px;
margin-bottom: 80px;
.left {
width: 360px;
......@@ -359,11 +360,10 @@ const handleToReportDetail = item => {
.right {
width: 1284px;
height: 1377px;
.card-box {
width: 1226px;
height: 1248px;
display: flex;
flex-wrap: wrap;
......
......@@ -219,6 +219,7 @@ const handleToReportDetail = item => {
.main-content {
display: flex;
gap: 16px;
margin-bottom: 80px;
.left {
width: 360px;
......@@ -359,12 +360,10 @@ const handleToReportDetail = item => {
}
.right {
width: 1284px;
height: 1377px;
.card-box {
width: 1226px;
height: 1248px;
display: flex;
flex-wrap: wrap;
......
......@@ -734,7 +734,7 @@ const handleClickPerson = async item => {
}
});
window.open(route.href, "_blank");
} else {
ElMessage.warning("找不到当前人员的类型值!");
......@@ -819,7 +819,7 @@ onMounted(() => {
display: flex;
margin-top: 12px;
width: 332px;
height: 24px;
margin-left: 34px;
.item-left {
......@@ -836,7 +836,7 @@ onMounted(() => {
.item-right {
width: 240px;
height: 24px;
color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei;
font-size: 16px;
......
......@@ -53,7 +53,7 @@
</div>
</div>
<div class="right-footer">
<div class="info">{{ total }}政府报告</div>
<div class="info">{{ total }}智库报告</div>
<div class="page-box">
<el-pagination :page-size="12" background layout="prev, pager, next" :total="total"
@current-change="emit('page-change', $event)" :current-page="currentPage" />
......@@ -198,8 +198,7 @@ const formatDate = (str) => {
.card-box {
width: 1226px;
max-height: 1248px;
min-height: 616px;
display: flex;
flex-wrap: wrap;
gap: 16px 16px;
......
......@@ -54,7 +54,7 @@
</div>
</div>
<div class="right-footer">
<div class="info">{{ total }}智库报告</div>
<div class="info">{{ total }}调查项目</div>
<div class="page-box">
<el-pagination :page-size="12" background layout="prev, pager, next" :total="total"
@current-change="emit('page-change', $event)" :current-page="currentPage" />
......@@ -174,8 +174,7 @@ const handleTimeGroupChange = (val) => {
.card-box {
width: 1226px;
max-height: 1248px;
min-height: 616px;
display: flex;
flex-wrap: wrap;
gap: 16px 16px;
......
......@@ -87,7 +87,7 @@
</div>
<div class="right-footer">
<div class="info">
{{ hearingData.length }}智库报告
{{ hearingData.length }}国会听证会
</div>
<div class="page-box">
<el-pagination :page-size="pageSize" background layout="prev, pager, next" :total="total"
......@@ -193,193 +193,193 @@ const handlePageChange = page => {
width: 1600px;
display: flex;
gap: 16px;
}
.left {
width: 360px;
height: 100%;
padding-bottom: 24px;
box-sizing: border-box;
border: 1px solid rgba(234, 236, 238, 1);
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(94, 95, 95, 0.1);
background: rgba(255, 255, 255, 1);
position: relative;
}
.select-box-header {
display: flex;
gap: 17px;
.icon {
margin-top: 4px;
width: 8px;
height: 16px;
background: var(--color-main-active);
border-radius: 0 4px 4px 0;
}
.title {
height: 24px;
color: var(--color-main-active);
font-family: "Source Han Sans CN";
font-size: 16px;
font-weight: 700;
line-height: 24px;
letter-spacing: 1px;
text-align: left;
.left {
width: 360px;
height: 100%;
padding-bottom: 24px;
box-sizing: border-box;
border: 1px solid rgba(234, 236, 238, 1);
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(94, 95, 95, 0.1);
background: rgba(255, 255, 255, 1);
position: relative;
}
}
.select-research-box {
width: 360px;
height: 284px;
margin-top: 16px;
}
.select-time-box {
margin-top: 16px;
width: 360px;
}
.select-hearing-box {
margin-top: 16px;
width: 360px;
}
.select-box-header {
display: flex;
gap: 17px;
.select-main {
margin-left: 24px;
margin-top: 12px;
.checkbox-group {
display: grid;
grid-template-columns: repeat(2, 160px);
gap: 8px 4px;
.icon {
margin-top: 4px;
width: 8px;
height: 16px;
background: var(--color-main-active);
border-radius: 0 4px 4px 0;
}
.filter-checkbox {
width: 160px;
.title {
height: 24px;
margin-right: 0 !important;
color: var(--color-main-active);
font-family: "Source Han Sans CN";
font-size: 16px;
font-weight: 700;
line-height: 24px;
letter-spacing: 1px;
text-align: left;
}
}
.hearing-grid {
grid-template-columns: 160px;
width: 259px;
gap: 4px;
.select-research-box {
width: 360px;
height: 284px;
margin-top: 16px;
}
}
.right {
width: 1224px;
.select-time-box {
margin-top: 16px;
width: 360px;
}
.card-box {
width: 100%;
.select-hearing-box {
margin-top: 16px;
width: 360px;
}
display: flex;
background: rgba(255, 255, 255, 1);
box-sizing: border-box;
border: 1px solid rgba(234, 236, 238, 1);
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(94, 95, 95, 0.1);
padding-right: 36px;
height: 100%;
.select-main {
margin-left: 24px;
margin-top: 12px;
.card-content {
width: 1211px;
.checkbox-group {
display: grid;
grid-template-columns: repeat(2, 160px);
gap: 8px 4px;
margin-top: 33px;
margin-left: 37px;
padding-bottom: 27px;
.filter-checkbox {
width: 160px;
height: 24px;
margin-right: 0 !important;
}
}
.hearing-grid {
grid-template-columns: 160px;
width: 259px;
gap: 4px;
}
}
.right {
width: 1224px;
}
.right-footer {
margin-top: 43px;
display: flex;
justify-content: space-between;
.info {
height: 19px;
color: rgba(132, 136, 142, 1);
font-family: Microsoft YaHei;
font-size: 14px;
font-weight: 400;
line-height: 18px;
letter-spacing: 0px;
text-align: left;
}
}
.card-box {
width: 100%;
.card-item {
width: 100%;
height: 77px;
display: flex;
display: flex;
background: rgba(255, 255, 255, 1);
box-sizing: border-box;
border: 1px solid rgba(234, 236, 238, 1);
border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(94, 95, 95, 0.1);
padding-right: 36px;
.card-content {
width: 1211px;
.card-item-img {
width: 56px;
height: 77px;
margin-right: 22px;
flex-shrink: 0;
margin-top: 33px;
margin-left: 37px;
padding-bottom: 27px;
}
}
.right-footer {
margin-top: 43px;
display: flex;
justify-content: space-between;
.info {
height: 19px;
color: rgba(132, 136, 142, 1);
font-family: Microsoft YaHei;
font-size: 14px;
font-weight: 400;
line-height: 18px;
letter-spacing: 0px;
text-align: left;
}
}
}
.card-item-text {
.card-item {
width: 100%;
height: 77px;
display: flex;
flex-direction: column;
.card-item-title {
color: rgb(59, 65, 75);
font-family: "Source Han Sans CN";
font-size: 18px;
font-weight: 700;
line-height: 22px;
margin-bottom: 2px;
display: inline-flex;
cursor: pointer;
.card-item-img {
width: 56px;
height: 77px;
margin-right: 22px;
flex-shrink: 0;
}
.card-item-time {
color: rgb(95, 101, 108);
font-family: "Source Han Sans CN";
font-size: 14px;
font-weight: 400;
line-height: 22px;
margin-bottom: 7px;
text-align: left;
display: inline-flex;
.card-item-text {
.card-open-image {
width: 16px;
height: 16px;
margin-left: 9px;
margin-top: 3px;
display: flex;
flex-direction: column;
.card-item-title {
color: rgb(59, 65, 75);
font-family: "Source Han Sans CN";
font-size: 18px;
font-weight: 700;
line-height: 22px;
margin-bottom: 2px;
display: inline-flex;
cursor: pointer;
}
}
.card-item-category {
gap: 8px;
height: 24px;
display: flex;
.card-item-time {
color: rgb(95, 101, 108);
font-family: "Source Han Sans CN";
font-size: 14px;
font-weight: 400;
line-height: 22px;
margin-bottom: 7px;
text-align: left;
display: inline-flex;
.card-open-image {
width: 16px;
height: 16px;
margin-left: 9px;
margin-top: 3px;
cursor: pointer;
}
}
.card-item-category {
gap: 8px;
height: 24px;
display: flex;
}
}
}
}
.divider {
height: 1px;
background: rgb(234, 236, 238);
margin: 16px 0;
.divider {
height: 1px;
background: rgb(234, 236, 238);
margin: 16px 0;
}
}
</style>
......@@ -81,7 +81,7 @@
</div>
</div>
<div class="right-footer">
<div class="info">{{ total }}智库报告</div>
<div class="info">{{ total }}政策建议</div>
<div class="page-box">
<el-pagination :page-size="pageSize" background layout="prev, pager, next" :total="total"
@current-change="p => emit('page-change', p)" :current-page="currentPage" />
......@@ -298,7 +298,7 @@ const handleYearGroupChange = (val) => {
.right {
width: 1224px;
height: 1377px;
.card-box {
width: 100%;
......@@ -316,61 +316,26 @@ const handleYearGroupChange = (val) => {
height: 1067px;
margin-top: 33px;
margin-left: 37px;
}
}
.card-item {
width: 100%;
height: 100%;
display: flex;
.divider {
height: 1px;
background: rgb(234, 236, 238);
margin: 16px 0;
}
.card-item-img {
width: 56px;
height: 77px;
margin-right: 22px;
flex-shrink: 0;
img {
.card-item {
width: 100%;
height: 100%;
}
}
.card-item-text {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 7px;
.card-item-title {
color: rgb(59, 65, 75);
font-family: "Source Han Sans CN";
font-size: 18px;
font-weight: 700;
line-height: 22px;
display: inline-flex;
}
display: flex;
.card-item-time {
color: rgb(95, 101, 108);
font-family: "Source Han Sans CN";
font-size: 14px;
font-weight: 400;
line-height: 22px;
text-align: left;
display: inline-flex;
.card-open-image {
width: 16px;
height: 16px;
margin-left: 9px;
margin-top: 3px;
cursor: pointer;
.card-item-img {
width: 56px;
height: 77px;
margin-right: 22px;
flex-shrink: 0;
img {
width: 100%;
......@@ -378,97 +343,141 @@ const handleYearGroupChange = (val) => {
}
}
.card-item-text {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 7px;
}
.card-item-title {
color: rgb(59, 65, 75);
font-family: "Source Han Sans CN";
font-size: 18px;
font-weight: 700;
line-height: 22px;
display: inline-flex;
}
}
.card-item-time {
color: rgb(95, 101, 108);
font-family: "Source Han Sans CN";
font-size: 14px;
font-weight: 400;
line-height: 22px;
.card-item-category {
gap: 8px;
height: 24px;
display: flex;
overflow: hidden;
white-space: nowrap;
}
text-align: left;
display: inline-flex;
.tag-box {
.card-open-image {
width: 16px;
height: 16px;
margin-left: 9px;
margin-top: 3px;
cursor: pointer;
display: flex;
gap: 8px;
.tag {
height: 22px;
padding: 0 8px;
box-sizing: border-box;
border: 1px solid rgba(230, 231, 232, 1);
border-radius: 4px;
background: rgba(247, 248, 249, 1);
color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei;
font-size: 14px;
font-weight: 400;
line-height: 20px;
}
}
img {
width: 100%;
height: 100%;
}
}
.file-box {
display: flex;
gap: 8px;
}
.file {
height: 32px;
display: flex;
justify-content: center;
align-items: center;
gap: 12px;
border-radius: 4px;
background: rgba(246, 250, 255, 1);
padding-left: 8px;
padding-right: 8px;
.type {
height: 22px;
padding: 0 4px;
border-radius: 4px;
background: rgba(231, 243, 255, 1);
color: rgba(5, 95, 194, 1);
font-family: "Source Han Sans CN";
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.card-item-category {
gap: 8px;
height: 24px;
display: flex;
overflow: hidden;
white-space: nowrap;
}
.title {
color: rgba(5, 95, 194, 1);
font-family: "Source Han Sans CN";
font-size: 16px;
font-weight: 400;
line-height: 24px;
.tag-box {
display: flex;
gap: 8px;
.tag {
height: 22px;
padding: 0 8px;
box-sizing: border-box;
border: 1px solid rgba(230, 231, 232, 1);
border-radius: 4px;
background: rgba(247, 248, 249, 1);
color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei;
font-size: 14px;
font-weight: 400;
line-height: 20px;
}
}
.more {
width: 20px;
height: 20px;
display: flex;
margin-top: 2px;
cursor: pointer;
.file-box {
.img {
width: 100%;
height: 100%;
display: flex;
gap: 8px;
.file {
height: 32px;
display: flex;
justify-content: center;
align-items: center;
gap: 12px;
border-radius: 4px;
background: rgba(246, 250, 255, 1);
padding-left: 8px;
padding-right: 8px;
.type {
height: 22px;
padding: 0 4px;
border-radius: 4px;
background: rgba(231, 243, 255, 1);
color: rgba(5, 95, 194, 1);
font-family: "Source Han Sans CN";
font-size: 14px;
font-weight: 400;
line-height: 22px;
}
.title {
color: rgba(5, 95, 194, 1);
font-family: "Source Han Sans CN";
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.more {
width: 20px;
height: 20px;
display: flex;
margin-top: 2px;
cursor: pointer;
.img {
width: 100%;
height: 100%;
}
}
}
}
}
}
}
.right-footer {
margin-top: 43px;
display: flex;
......@@ -487,11 +496,4 @@ const handleYearGroupChange = (val) => {
}
}
}
.divider {
height: 1px;
background: rgb(234, 236, 238);
margin: 16px 0;
}
</style>
......@@ -4243,7 +4243,7 @@ onBeforeUnmount(() => {
.home-main-footer {
overflow: hidden;
background: rgba(247, 248, 249, 1);
height: 1700px;
.home-main-footer-header {
width: 1600px;
......@@ -4332,6 +4332,7 @@ onBeforeUnmount(() => {
width: 1600px;
display: flex;
gap: 16px;
margin-bottom: 140px;
.left {
width: 360px;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论