提交 b46bec00 authored 作者: 胡卉清's avatar 胡卉清

合并分支 'dev_hhq' 到 'master'

Dev hhq 查看合并请求 !56
...@@ -380,7 +380,7 @@ const box3Data = ref({ ...@@ -380,7 +380,7 @@ const box3Data = ref({
// ] // ]
}); });
const box3SelectYear = ref("2024"); const box3SelectYear = ref("2025");
const box3YearList = ref([ const box3YearList = ref([
{ {
label: "2025", label: "2025",
......
...@@ -308,21 +308,31 @@ const handleCurrentChange = page => { ...@@ -308,21 +308,31 @@ const handleCurrentChange = page => {
handleGetThinkDynamicsReport() handleGetThinkDynamicsReport()
}; };
function arrayToString(arr) {
return arr.reduce((acc, item) => {
if (item !== null && item !== undefined && item !== "") {
return acc === "" ? item : acc + "," + item;
}
return acc;
}, "");
}
// 获取智库动态报告 // 获取智库动态报告
const handleGetThinkDynamicsReport = async () => { const handleGetThinkDynamicsReport = async () => {
console.log(selectedReportTypeList.value, 'selectedReportTypeList.value')
console.log(selectedResearchTypeList.value, 'selectedResearchTypeList.value')
try { try {
const parmas = { const parmas = {
id: router.currentRoute._value.params.id, id: router.currentRoute._value.params.id,
startDate: getDateYearsAgo(selectedYear.value), startDate: getDateYearsAgo(selectedYear.value),
parmas: { parmas: {
searchText: searchReport.value,
authorName: author.name,
sortFun: sort.value, sortFun: sort.value,
authorName: author.value ? author.value : null, authorName: author.value ? author.value : null,
currentPage: currentPage.value, currentPage: currentPage.value - 1,
pageSize: 12, pageSize: 12,
reportTypeIds: selectedReportTypeList.value ? selectedReportTypeList.value : null, reportTypeIds: arrayToString(selectedReportTypeList.value) === '' ? null : arrayToString(selectedResearchTypeList.value),
researchTypeIds: selectedResearchTypeList.value ? selectedResearchTypeList.value : null researchTypeIds: arrayToString(selectedResearchTypeList.value) === '' ? null : arrayToString(selectedResearchTypeList.value)
} }
} }
...@@ -331,6 +341,9 @@ const handleGetThinkDynamicsReport = async () => { ...@@ -331,6 +341,9 @@ const handleGetThinkDynamicsReport = async () => {
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
curFooterList.value = res.data.content curFooterList.value = res.data.content
total.value = res.data.totalElements total.value = res.data.totalElements
} else if (res.code === 500 && res.message === '未找到对应筛选的报告') {
curFooterList.value = []
total.value = 0
} }
} catch (error) { } catch (error) {
console.error("获取智库动态报告error", error); console.error("获取智库动态报告error", error);
......
...@@ -78,17 +78,12 @@ ...@@ -78,17 +78,12 @@
</div> </div>
<div class="content">{{ item.desc }}</div> <div class="content">{{ item.desc }}</div>
<div class="tag-box"> <div class="tag-box">
<div <div class="tag" :class="{
class="tag" tag1: val.status === 1,
:class="{ tag2: val.status === 2,
tag1: val.status === 1, tag3: val.status === 3,
tag2: val.status === 2, tag4: val.status === 4
tag3: val.status === 3, }" v-for="(val, idx) in item.tagList" :key="idx">
tag4: val.status === 4
}"
v-for="(val, idx) in item.tagList"
:key="idx"
>
{{ val.name }} {{ val.name }}
</div> </div>
</div> </div>
...@@ -113,12 +108,8 @@ ...@@ -113,12 +108,8 @@
</div> </div>
</div> </div>
<div style="display: flex"> <div style="display: flex">
<img <img src="./assets/images/right-left-icon1.png" alt=""
src="./assets/images/right-left-icon1.png" style="margin-top: 174px; width: 24px; height: 48px" @click="changeBox1Data('previous')" />
alt=""
style="margin-top: 174px; width: 24px; height: 48px"
@click="changeBox1Data('previous')"
/>
<div class="box1-main"> <div class="box1-main">
<div class="box1-main-left"> <div class="box1-main-left">
<img :src="box1Data[box1DataIndex]?.imageUrl" alt="" /> <img :src="box1Data[box1DataIndex]?.imageUrl" alt="" />
...@@ -126,11 +117,7 @@ ...@@ -126,11 +117,7 @@
<div class="box1-main-right"> <div class="box1-main-right">
<div class="title">{{ box1Data[box1DataIndex]?.reportName }}</div> <div class="title">{{ box1Data[box1DataIndex]?.reportName }}</div>
<div class="tag-box"> <div class="tag-box">
<div <div class="tag" v-for="(item, index) in box1Data[box1DataIndex]?.industryVOList" :key="index">
class="tag"
v-for="(item, index) in box1Data[box1DataIndex]?.industryVOList"
:key="index"
>
{{ item }} {{ item }}
</div> </div>
</div> </div>
...@@ -146,12 +133,8 @@ ...@@ -146,12 +133,8 @@
</div> </div>
</div> </div>
</div> </div>
<img <img src="./assets/images/right-left-icon2.png" alt=""
src="./assets/images/right-left-icon2.png" style="margin-top: 174px; width: 24px; height: 48px" @click="changeBox1Data('next')" />
alt=""
style="margin-top: 174px; width: 24px; height: 48px"
@click="changeBox1Data('next')"
/>
</div> </div>
</div> </div>
<div class="box2"> <div class="box2">
...@@ -166,14 +149,11 @@ ...@@ -166,14 +149,11 @@
</div> </div>
<div class="box2-main"> <div class="box2-main">
<div class="box2-main-item" v-for="(item, index) in warningList" :key="index"> <div class="box2-main-item" v-for="(item, index) in warningList" :key="index">
<div <div class="item-left" :class="{
class="item-left" itemLeftStatus1: item.status === '一般风险 ' || item.status === '暂无数值',
:class="{ itemLeftStatus2: item.status === '重大风险',
itemLeftStatus1: item.status === '一般风险 ' || item.status === '暂无数值', itemLeftStatus3: item.status === '特别重大'
itemLeftStatus2: item.status === '重大风险', }">
itemLeftStatus3: item.status === '特别重大'
}"
>
{{ item.status || "一般风险" }} {{ item.status || "一般风险" }}
</div> </div>
<div class="item-right"> <div class="item-right">
...@@ -227,20 +207,14 @@ ...@@ -227,20 +207,14 @@
<div class="header-title">{{ "智库人物动态" }}</div> <div class="header-title">{{ "智库人物动态" }}</div>
</div> </div>
<div class="box4-tag-box"> <div class="box4-tag-box">
<div <div class="tag" :class="{
class="tag" tagActive: box4ActiveTag === tag.name,
:class="{ tag1: tag.status === 1,
tagActive: box4ActiveTag === tag.name, tag2: tag.status === 2,
tag1: tag.status === 1, tag3: tag.status === 3,
tag2: tag.status === 2, tag4: tag.status === 4,
tag3: tag.status === 3, tag5: tag.status === 5
tag4: tag.status === 4, }" v-for="(tag, index) in box4TagList" :key="index" @click="handleClickBox4Tag(tag.name)">
tag5: tag.status === 5
}"
v-for="(tag, index) in box4TagList"
:key="index"
@click="handleClickBox4Tag(tag.name)"
>
{{ tag.name }} {{ tag.name }}
</div> </div>
</div> </div>
...@@ -272,13 +246,8 @@ ...@@ -272,13 +246,8 @@
</div> </div>
<div class="box5-select-box"> <div class="box5-select-box">
<el-select v-model="box5selectetedYear" placeholder="选择时间" style="width: 120px"> <el-select v-model="box5selectetedYear" placeholder="选择时间" style="width: 120px">
<el-option <el-option v-for="item in box5YearList" :key="item.value" :label="item.label" :value="item.value"
v-for="item in box5YearList" @click="changeBox5Data(item.value)" />
:key="item.value"
:label="item.label"
:value="item.value"
@click="changeBox5Data(item.value)"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -292,13 +261,8 @@ ...@@ -292,13 +261,8 @@
<div class="header-title">{{ "政策建议领域分布" }}</div> <div class="header-title">{{ "政策建议领域分布" }}</div>
<div class="box6-select-box"> <div class="box6-select-box">
<el-select v-model="box6selectetedYear" placeholder="选择时间" style="width: 120px"> <el-select v-model="box6selectetedYear" placeholder="选择时间" style="width: 120px">
<el-option <el-option v-for="item in box6YearList" :key="item.value" :label="item.label" :value="item.value"
v-for="item in box6YearList" @click="handleBox6()" />
:key="item.value"
:label="item.label"
:value="item.value"
@click="handleBox6()"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -327,28 +291,19 @@ ...@@ -327,28 +291,19 @@
</div> </div>
<div class="box8-select-box"> <div class="box8-select-box">
<el-select v-model="box8selectetedYear" placeholder="选择时间" style="width: 120px"> <el-select v-model="box8selectetedYear" placeholder="选择时间" style="width: 120px">
<el-option <el-option v-for="item in box8YearList" :key="item.value" :label="item.label" :value="item.value"
v-for="item in box8YearList" @click="changeBox8Data(item.value)" />
:key="item.value"
:label="item.label"
:value="item.value"
@click="changeBox8Data(item.value)"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="box8-main"> <div class="box8-main">
<div class="box8-item" v-for="(item, index) in box8Data" :key="index"> <div class="box8-item" v-for="(item, index) in box8Data" :key="index">
<div <div class="item-left"
class="item-left" :class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }">
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ index + 1 }} {{ index + 1 }}
</div> </div>
<div <div class="item-center"
class="item-center" :class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }">
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ item.clause }} {{ item.clause }}
</div> </div>
<div class="item-right">{{ `${item.count}份报告 >` }}</div> <div class="item-right">{{ `${item.count}份报告 >` }}</div>
...@@ -362,13 +317,8 @@ ...@@ -362,13 +317,8 @@
<DivideHeader id="position4" class="divide-header" :titleText="'资源库'"></DivideHeader> <DivideHeader id="position4" class="divide-header" :titleText="'资源库'"></DivideHeader>
<div class="home-main-footer-header"> <div class="home-main-footer-header">
<div class="btn-box"> <div class="btn-box">
<div <div class="btn" :class="{ btnActive: activeCate === cate }" v-for="(cate, index) in categoryList"
class="btn" :key="index" @click="handleClickCate(cate)">
:class="{ btnActive: activeCate === cate }"
v-for="(cate, index) in categoryList"
:key="index"
@click="handleClickCate(cate)"
>
{{ cate }} {{ cate }}
</div> </div>
</div> </div>
...@@ -382,21 +332,11 @@ ...@@ -382,21 +332,11 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>
全部领域 全部领域
</el-checkbox> </el-checkbox>
<el-checkbox <el-checkbox v-for="research in areaList" :key="research.id" v-model="selectedAreaList"
v-for="research in areaList" :label="research.id" @change="handleCheckedAreaChange()" class="filter-checkbox">
:key="research.id"
v-model="selectedAreaList"
:label="research.id"
@change="handleCheckedAreaChange()"
class="filter-checkbox"
>
{{ research.name }} {{ research.name }}
</el-checkbox> </el-checkbox>
</div> </div>
...@@ -410,22 +350,24 @@ ...@@ -410,22 +350,24 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox <el-checkbox v-model="checkAllTime" :indeterminate="isIndeterminateTime"
v-for="time in pubTimeList" @change="handleCheckAllChangeTime">
:key="time.id" 全部时间
v-model="selectedPubTimeList"
:label="time.id"
class="filter-checkbox"
>
{{ time.name }}
</el-checkbox> </el-checkbox>
<el-checkbox-group v-model="selectedPubTimeList">
<el-checkbox v-for="time in pubTimeList" :key="time.id" :label="time.id" class="filter-checkbox"
@change="handleCheckedAreaChangeTime()">
{{ time.name }}
</el-checkbox>
</el-checkbox-group>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="right"> <div class="right">
<div class="card-box"> <div class="card-box">
<div class="footer-card" v-for="(item, index) in curFooterList" :key="index"> <div class="footer-card" v-for="(item, index) in curFooterList" :key="index"
@click="handleToReportDetail(item.id)">
<div class="footer-card-top"> <div class="footer-card-top">
<img :src="item.imageUrl" alt="" /> <img :src="item.imageUrl" alt="" />
</div> </div>
...@@ -441,14 +383,8 @@ ...@@ -441,14 +383,8 @@
<div class="right-footer"> <div class="right-footer">
<div class="info">{{ total }}项调查</div> <div class="info">{{ total }}项调查</div>
<div class="page-box"> <div class="page-box">
<el-pagination <el-pagination :page-size="12" background layout="prev, pager, next" :total="total"
:page-size="12" @current-change="handleCurrentChange" :current-page="currentPage" />
background
layout="prev, pager, next"
:total="total"
@current-change="handleCurrentChange()"
:current-page="currentPage"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -1137,45 +1073,72 @@ const handleCheckAllChange = val => { ...@@ -1137,45 +1073,72 @@ const handleCheckAllChange = val => {
} }
// selectedAreaList.value = val ? areaList : [] // selectedAreaList.value = val ? areaList : []
// isIndeterminate.value = false // isIndeterminate.value = false
handleGetetThinkTankReport();
}; };
const handleCheckedAreaChange = () => { const handleCheckedAreaChange = () => {
// console.log(selectedAreaList.value, "handleCheckedAreaChange"); // console.log(selectedAreaList.value, "handleCheckedAreaChange");
console.log(selectedAreaList.value, "当前选中的领域");
selectedAreaList.value.length !== areaList.value.length selectedAreaList.value.length !== areaList.value.length
? (isIndeterminate.value = true) ? (isIndeterminate.value = true)
: ((checkAll.value = true), (isIndeterminate.value = false)); : ((checkAll.value = true), (isIndeterminate.value = false));
handleGetetThinkTankReport();
}; };
const pubTimeList = ref([ const pubTimeList = ref([
{ {
id: "全部时间", id: 2025,
name: "全部时间" name: "2025"
},
{
id: "2025年",
name: "2025年"
},
{
id: "2024年",
name: "2024年"
}, },
{ {
id: "2023年", id: 2024,
name: "2023年" name: "2024"
}, },
{ {
id: "2022年", id: 2023,
name: "2022年" name: "2023"
}, },
{ {
id: "2021年", id: 2022,
name: "2021年" name: "2022"
}, },
{ {
id: "更早时间", id: 2021,
name: "更早时间" name: "2021"
} }
// {
// id: "更早时间",
// name: "更早时间"
// }
]); ]);
const selectedPubTimeList = ref(["全部时间"]); const selectedPubTimeList = ref([""]);
const checkAllTime = ref(false);
const isIndeterminateTime = ref(true);
const handleCheckAllChangeTime = val => {
// console.log(val, "handleCheckAllChange");
if (val) {
isIndeterminateTime.value = false;
selectedPubTimeList.value.length !== pubTimeList.value.length
? (selectedPubTimeList.value = pubTimeList.value.map(obj => obj.id))
: "";
} else {
selectedPubTimeList.value = [];
}
// selectedAreaList.value = val ? areaList : []
// isIndeterminate.value = false
handleGetetThinkTankReport();
};
const handleCheckedAreaChangeTime = () => {
// console.log(selectedAreaList.value, "handleCheckedAreaChange");
console.log(selectedPubTimeList.value, "当前选中的时间");
selectedPubTimeList.value.length !== pubTimeList.value.length
? (isIndeterminateTime.value = true)
: ((checkAllTime.value = true), (isIndeterminateTime.value = false));
handleGetetThinkTankReport();
};
const curFooterList = ref([ const curFooterList = ref([
{ {
...@@ -1255,16 +1218,26 @@ const currentPage = ref(1); ...@@ -1255,16 +1218,26 @@ const currentPage = ref(1);
const total = ref(0); const total = ref(0);
// 处理页码改变事件 // 处理页码改变事件
const handleCurrentChange = page => { const handleCurrentChange = page => {
console.log(page, 'pagepagepage')
currentPage.value = page; currentPage.value = page;
handleGetetThinkTankReport(); handleGetetThinkTankReport();
}; }
function arrayToString(arr) {
return arr.reduce((acc, item) => {
if (item !== null && item !== undefined && item !== "") {
return acc === "" ? item : acc + "," + item;
}
return acc;
}, "");
}
//获取智库报告 //获取智库报告
const handleGetetThinkTankReport = async () => { const handleGetetThinkTankReport = async () => {
const params = { const params = {
currentPage: currentPage.value, currentPage: currentPage.value - 1,
pageSize: 12, pageSize: 12,
researchTypeIds: selectedAreaList.value, researchTypeIds: arrayToString(selectedAreaList.value),
years: 2025 years: arrayToString(selectedPubTimeList.value)
}; };
try { try {
const res = await getThinkTankReport(params); const res = await getThinkTankReport(params);
...@@ -1298,6 +1271,16 @@ const handleToMoreRiskSignal = () => { ...@@ -1298,6 +1271,16 @@ const handleToMoreRiskSignal = () => {
window.open(route.href, "_blank"); window.open(route.href, "_blank");
}; };
const handleToReportDetail = (id) => {
const route = router.resolve({
name: 'ReportDetail',
params: {
id: id
}
});
window.open(route.href, "_blank");
}
onMounted(async () => { onMounted(async () => {
handleGetThinkTankList(); handleGetThinkTankList();
handleGetNewReport(); handleGetNewReport();
...@@ -1321,16 +1304,19 @@ onMounted(async () => { ...@@ -1321,16 +1304,19 @@ onMounted(async () => {
height: calc(100vh - 96px); height: calc(100vh - 96px);
position: relative; position: relative;
overflow-y: hidden; overflow-y: hidden;
.home-main { .home-main {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow-y: auto; overflow-y: auto;
background: url("./assets/images/background.png"); background: url("./assets/images/background.png");
background-size: 100% 100%; background-size: 100% 100%;
.home-main-header { .home-main-header {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
.home-main-header-top { .home-main-header-top {
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论