提交 7710c463 authored 作者: yanpeng's avatar yanpeng

Merge branch 'master' into yp-dev

...@@ -84,7 +84,6 @@ ...@@ -84,7 +84,6 @@
<div class="btn-icon"> <div class="btn-icon">
<img src="@/assets/icons/arrow-right-icon.png" alt="" /> <img src="@/assets/icons/arrow-right-icon.png" alt="" />
</div> </div>
</div> </div>
<div class="btn" @click="handleToPosi('position2')"> <div class="btn" @click="handleToPosi('position2')">
<div class="btn-text">{{ "资讯要闻" }}</div> <div class="btn-text">{{ "资讯要闻" }}</div>
...@@ -210,11 +209,7 @@ ...@@ -210,11 +209,7 @@
</div> </div>
</div> </div>
<div class="box2-main"> <div class="box2-main">
<div <div class="box2-main-item" v-for="(item, index) in warningList" :key="index">
class="box2-main-item"
v-for="(item, index) in warningList"
:key="index"
>
<div <div
class="item-left" class="item-left"
:class="{ :class="{
...@@ -253,14 +248,21 @@ ...@@ -253,14 +248,21 @@
</div> </div>
</div> </div>
<div class="box3-main"> <div class="box3-main">
<div class="box3-item" v-for="(news, index) in newsList" :key="index" @click="handleClickToNewsDetail()"> <div
class="box3-item"
v-for="(news, index) in newsList"
:key="index"
@click="handleClickToNewsDetail()"
>
<div class="left"> <div class="left">
<img :src="news.newsImage || News1" alt="" /> <img :src="news.newsImage || News1" alt="" />
</div> </div>
<div class="right"> <div class="right">
<div class="right-top"> <div class="right-top">
<div class="title">{{ news.newsTitle }}</div> <div class="title">{{ news.newsTitle }}</div>
<div class="time">{{ news.newsDate ? news.newsDate.slice(5) : '' }} - {{ news.newsOrg }}</div> <div class="time">
{{ news.newsDate ? news.newsDate.slice(5) : "" }} - {{ news.newsOrg }}
</div>
</div> </div>
<div class="right-footer">{{ news.newsContent }}</div> <div class="right-footer">{{ news.newsContent }}</div>
</div> </div>
...@@ -308,14 +310,26 @@ ...@@ -308,14 +310,26 @@
</div> </div>
</div> </div>
<div class="box5-select"> <div class="box5-select">
<el-select v-model="box5Select" placeholder="选择领域" @change="handleBox5Change" style="width: 150px"> <el-select
v-model="box5Select"
placeholder="选择领域"
@change="handleBox5Change"
style="width: 150px"
>
<el-option label="全部领域" value="全部领域" /> <el-option label="全部领域" value="全部领域" />
<el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</div> </div>
<div class="box5-main" :style="{ display: !box5HasData ? 'flex' : 'block', justifyContent: 'center', alignItems: 'center' }"> <div
class="box5-main"
:style="{
display: !box5HasData ? 'flex' : 'block',
justifyContent: 'center',
alignItems: 'center'
}"
>
<el-empty v-if="!box5HasData" description="暂无数据" :image-size="100" /> <el-empty v-if="!box5HasData" description="暂无数据" :image-size="100" />
<div v-else id="box5Chart" style="width: 100%; height: 100%;"></div> <div v-else id="box5Chart" style="width: 100%; height: 100%"></div>
</div> </div>
</div> </div>
<div class="box6"> <div class="box6">
...@@ -360,9 +374,16 @@ ...@@ -360,9 +374,16 @@
/> />
</el-select> </el-select>
</div> </div>
<div class="box7-main" :style="{ display: !box7HasData ? 'flex' : 'block', justifyContent: 'center', alignItems: 'center' }"> <div
class="box7-main"
:style="{
display: !box7HasData ? 'flex' : 'block',
justifyContent: 'center',
alignItems: 'center'
}"
>
<el-empty v-if="!box7HasData" description="暂无数据" :image-size="100" /> <el-empty v-if="!box7HasData" description="暂无数据" :image-size="100" />
<div v-else id="box7Chart" style="width: 100%; height: 100%;"></div> <div v-else id="box7Chart" style="width: 100%; height: 100%"></div>
</div> </div>
</div> </div>
<div class="box8"> <div class="box8">
...@@ -390,7 +411,14 @@ ...@@ -390,7 +411,14 @@
/> />
</el-select> </el-select>
</div> </div>
<div class="box8-main" :style="{ display: box8Data.length === 0 ? 'flex' : 'block', justifyContent: 'center', alignItems: 'center' }"> <div
class="box8-main"
:style="{
display: box8Data.length === 0 ? 'flex' : 'block',
justifyContent: 'center',
alignItems: 'center'
}"
>
<el-empty v-if="box8Data.length === 0" description="暂无数据" :image-size="100" /> <el-empty v-if="box8Data.length === 0" description="暂无数据" :image-size="100" />
<div <div
v-else v-else
...@@ -406,7 +434,7 @@ ...@@ -406,7 +434,7 @@
</div> </div>
<div class="left-icon2"> <div class="left-icon2">
<img :src="item.yuan" alt="" /> <img :src="item.yuan" alt="" />
</div> </div>
</div> </div>
<div class="box8-main-item-center"> <div class="box8-main-item-center">
<div class="box8-main-item-center-top">{{ item.name }}</div> <div class="box8-main-item-center-top">{{ item.name }}</div>
...@@ -443,9 +471,16 @@ ...@@ -443,9 +471,16 @@
/> />
</el-select> </el-select>
</div> </div>
<div class="box9-main" :style="{ display: !box9HasData ? 'flex' : 'block', justifyContent: 'center', alignItems: 'center' }"> <div
class="box9-main"
:style="{
display: !box9HasData ? 'flex' : 'block',
justifyContent: 'center',
alignItems: 'center'
}"
>
<el-empty v-if="!box9HasData" description="暂无数据" :image-size="100" /> <el-empty v-if="!box9HasData" description="暂无数据" :image-size="100" />
<div v-else id="box9Chart" style="width: 100%; height: 100%;"></div> <div v-else id="box9Chart" style="width: 100%; height: 100%"></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -465,7 +500,6 @@ ...@@ -465,7 +500,6 @@
{{ cate.name }} {{ cate.name }}
</div> </div>
</div> </div>
</div> </div>
<div class="home-main-footer-main"> <div class="home-main-footer-main">
<div class="left"> <div class="left">
...@@ -476,9 +510,7 @@ ...@@ -476,9 +510,7 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<el-checkbox-group class="checkbox-group" v-model="activeAreaList" @change="handleAreaChange"> <el-checkbox-group class="checkbox-group" v-model="activeAreaList" @change="handleAreaChange">
<el-checkbox class="filter-checkbox" label="全部领域"> <el-checkbox class="filter-checkbox" label="全部领域"> 全部领域 </el-checkbox>
全部领域
</el-checkbox>
<el-checkbox <el-checkbox
v-for="(area, index) in cateKuList" v-for="(area, index) in cateKuList"
:key="area.id" :key="area.id"
...@@ -549,7 +581,12 @@ ...@@ -549,7 +581,12 @@
<div class="right"> <div class="right">
<div class="right-header"> <div class="right-header">
<div class="right-header-box"> <div class="right-header-box">
<el-select v-model="footerSelect1" placeholder="选择委员会" style="width: 240px" @change="handleFooterSelect1Change"> <el-select
v-model="footerSelect1"
placeholder="选择委员会"
style="width: 240px"
@change="handleFooterSelect1Change"
>
<el-option <el-option
v-for="item in postOrgList" v-for="item in postOrgList"
:key="item.departmentId" :key="item.departmentId"
...@@ -559,7 +596,12 @@ ...@@ -559,7 +596,12 @@
</el-select> </el-select>
</div> </div>
<div class="right-header-box"> <div class="right-header-box">
<el-select v-model="footerSelect2" placeholder="选择提出议员" style="width: 240px" @change="handleFooterSelect2Change"> <el-select
v-model="footerSelect2"
placeholder="选择提出议员"
style="width: 240px"
@change="handleFooterSelect2Change"
>
<el-option <el-option
v-for="item in postMemberList" v-for="item in postMemberList"
:key="item.memberId" :key="item.memberId"
...@@ -568,8 +610,13 @@ ...@@ -568,8 +610,13 @@
/> />
</el-select> </el-select>
</div> </div>
<div class="right-header-box" style="margin-left: auto;"> <div class="right-header-box" style="margin-left: auto">
<el-select v-model="releaseTime" placeholder="选择排序方式" style="width: 120px" @change="handlePxChange"> <el-select
v-model="releaseTime"
placeholder="选择排序方式"
style="width: 120px"
@change="handlePxChange"
>
<el-option <el-option
v-for="item in releaseTimeList" v-for="item in releaseTimeList"
:key="item.value" :key="item.value"
...@@ -580,7 +627,12 @@ ...@@ -580,7 +627,12 @@
</div> </div>
</div> </div>
<div class="right-main" v-loading="loading"> <div class="right-main" v-loading="loading">
<div class="right-main-box" v-for="(item, index) in bills" :key="index" @click="handleClickToDetail()"> <div
class="right-main-box"
v-for="(item, index) in bills"
:key="index"
@click="handleClickToDetail()"
>
<div class="header"> <div class="header">
<div class="title">{{ item.name }}</div> <div class="title">{{ item.name }}</div>
<div class="en-title">{{ item.eName }}</div> <div class="en-title">{{ item.eName }}</div>
...@@ -707,13 +759,13 @@ import { iteratee } from "lodash"; ...@@ -707,13 +759,13 @@ import { iteratee } from "lodash";
const searchBillText = ref(""); const searchBillText = ref("");
const formatMessageTime = (timeStr) => { const formatMessageTime = timeStr => {
if (!timeStr) return ''; if (!timeStr) return "";
// 假设格式为 2025-11-02T12:09:45 // 假设格式为 2025-11-02T12:09:45
if (timeStr.includes('T')) { if (timeStr.includes("T")) {
const [date, time] = timeStr.split('T'); const [date, time] = timeStr.split("T");
const [year, month, day] = date.split('-'); const [year, month, day] = date.split("-");
const [hour, minute] = time.split(':'); const [hour, minute] = time.split(":");
return `${year}-${month}-${day} ${hour}:${minute}`; return `${year}-${month}-${day} ${hour}:${minute}`;
} }
return timeStr; return timeStr;
...@@ -984,7 +1036,7 @@ const box8YearList = ref([ ...@@ -984,7 +1036,7 @@ const box8YearList = ref([
} }
]); ]);
// 排序方式 // 排序方式
const releaseTime = ref(true); const releaseTime = ref(true);
const releaseTimeList = ref([ const releaseTimeList = ref([
{ {
...@@ -1001,7 +1053,6 @@ const categoryList = ref([]); ...@@ -1001,7 +1053,6 @@ const categoryList = ref([]);
// 资源库使用的领域分类列表 // 资源库使用的领域分类列表
const cateKuList = ref([]); const cateKuList = ref([]);
// 获取领域分类 // 获取领域分类
const handleGetHylyList = async () => { const handleGetHylyList = async () => {
try { try {
...@@ -1078,10 +1129,7 @@ const handleGetPostOrgList = async () => { ...@@ -1078,10 +1129,7 @@ const handleGetPostOrgList = async () => {
console.log("提出部门列表", res); console.log("提出部门列表", res);
if (res.code === 200) { if (res.code === 200) {
const list = res.data.filter(item => item.departmentId); const list = res.data.filter(item => item.departmentId);
postOrgList.value = [ postOrgList.value = [{ departmentName: "全部委员会", departmentId: "全部委员会" }, ...list];
{ departmentName: "全部委员会", departmentId: "全部委员会" },
...list
];
} }
} catch (error) {} } catch (error) {}
}; };
...@@ -1094,10 +1142,7 @@ const handleGetPostMemberList = async () => { ...@@ -1094,10 +1142,7 @@ const handleGetPostMemberList = async () => {
console.log("提出议员列表", res); console.log("提出议员列表", res);
if (res.code === 200) { if (res.code === 200) {
const list = res.data.filter(item => item.memberId); const list = res.data.filter(item => item.memberId);
postMemberList.value = [ postMemberList.value = [{ memberName: "全部提出议员", memberId: "全部提出议员" }, ...list];
{ memberName: "全部提出议员", memberId: "全部提出议员" },
...list
];
} }
} catch (error) {} } catch (error) {}
}; };
...@@ -1124,25 +1169,25 @@ const handleGetBills = async () => { ...@@ -1124,25 +1169,25 @@ const handleGetBills = async () => {
}; };
if (!activeYyList.value.includes("全部议院")) { if (!activeYyList.value.includes("全部议院")) {
params.congressIds = activeYyList.value.join(','); params.congressIds = activeYyList.value.join(",");
} }
if (footerSelect1.value !== "全部委员会") { if (footerSelect1.value !== "全部委员会") {
params.departmentId = footerSelect1.value; params.departmentId = footerSelect1.value;
} }
if (!activeDpList.value.includes("全部党派")) { if (!activeDpList.value.includes("全部党派")) {
params.partyIds = activeDpList.value.join(','); params.partyIds = activeDpList.value.join(",");
} }
if (footerSelect2.value !== "全部提出议员") { if (footerSelect2.value !== "全部提出议员") {
params.personId = footerSelect2.value; params.personId = footerSelect2.value;
} }
if (!activeAreaList.value.includes("全部领域")) { if (!activeAreaList.value.includes("全部领域")) {
params.researchIds = activeAreaList.value.join(','); params.researchIds = activeAreaList.value.join(",");
} }
if (releaseTime.value !== true) { if (releaseTime.value !== true) {
params.sortFun = releaseTime.value; params.sortFun = releaseTime.value;
} }
if (!activePubTime.value.includes("全部时间")) { if (!activePubTime.value.includes("全部时间")) {
params.years = activePubTime.value.join(','); params.years = activePubTime.value.join(",");
} }
try { try {
...@@ -1165,13 +1210,13 @@ const handleGetBills = async () => { ...@@ -1165,13 +1210,13 @@ const handleGetBills = async () => {
bills.value = []; bills.value = [];
total.value = 0; total.value = 0;
} }
}else { } else {
bills.value = []; bills.value = [];
total.value = 0; total.value = 0;
} }
loading.value = false; loading.value = false;
} catch (error) { } catch (error) {
if (error.name !== 'AbortError') { if (error.name !== "AbortError") {
console.error(error); console.error(error);
loading.value = false; loading.value = false;
} }
...@@ -1179,19 +1224,19 @@ const handleGetBills = async () => { ...@@ -1179,19 +1224,19 @@ const handleGetBills = async () => {
}; };
// 处理选择委员会变化 // 处理选择委员会变化
const handleFooterSelect1Change = (val) => { const handleFooterSelect1Change = val => {
console.log("选择委员会变化", val); console.log("选择委员会变化", val);
// 等会再做处理 // 等会再做处理
handleGetBills(); handleGetBills();
}; };
// 处理选择议员变化 // 处理选择议员变化
const handleFooterSelect2Change = (val) => { const handleFooterSelect2Change = val => {
console.log("选择议员变化", val); console.log("选择议员变化", val);
// 等会再做处理 // 等会再做处理
handleGetBills(); handleGetBills();
}; };
// 处理选择排序方式变化 // 处理选择排序方式变化
const handlePxChange = (val) => { const handlePxChange = val => {
console.log("选择排序方式变化", val); console.log("选择排序方式变化", val);
// 等会再做处理 // 等会再做处理
handleGetBills(); handleGetBills();
...@@ -1303,10 +1348,12 @@ const handleBox5 = async () => { ...@@ -1303,10 +1348,12 @@ const handleBox5 = async () => {
await nextTick(); await nextTick();
const proposed = box5Data.value.data[0].value; const proposed = box5Data.value.data[0].value;
const passed = box5Data.value.data[1].value; const passed = box5Data.value.data[1].value;
const rate = box5Data.value.percent || proposed.map((p, i) => { const rate =
const pass = passed[i] || 0; box5Data.value.percent ||
return p ? ((pass / p) * 100).toFixed(2) : 0; proposed.map((p, i) => {
}); const pass = passed[i] || 0;
return p ? ((pass / p) * 100).toFixed(2) : 0;
});
let box5Chart = getMultiLineChart(box5Data.value.title, proposed, passed, rate); let box5Chart = getMultiLineChart(box5Data.value.title, proposed, passed, rate);
setChart(box5Chart, "box5Chart"); setChart(box5Chart, "box5Chart");
} }
...@@ -1326,7 +1373,7 @@ const handleBox7Data = async () => { ...@@ -1326,7 +1373,7 @@ const handleBox7Data = async () => {
box7HasData.value = true; box7HasData.value = true;
// 必须等待DOM更新,因为v-if切换可能导致元素刚被创建 // 必须等待DOM更新,因为v-if切换可能导致元素刚被创建
await nextTick(); await nextTick();
const apiData = res.data; const apiData = res.data;
const houseItems = apiData.filter(i => i.congressName === "House"); const houseItems = apiData.filter(i => i.congressName === "House");
...@@ -1522,7 +1569,7 @@ const handleClickTab = tab => { ...@@ -1522,7 +1569,7 @@ const handleClickTab = tab => {
}; };
const activeAreaList = ref(["全部领域"]); const activeAreaList = ref(["全部领域"]);
const handleAreaChange = (val) => { const handleAreaChange = val => {
if (val.includes("全部领域") && val.length > 1) { if (val.includes("全部领域") && val.length > 1) {
if (val[val.length - 1] === "全部领域") { if (val[val.length - 1] === "全部领域") {
activeAreaList.value = ["全部领域"]; activeAreaList.value = ["全部领域"];
...@@ -1544,7 +1591,7 @@ const dpList = ref([ ...@@ -1544,7 +1591,7 @@ const dpList = ref([
]); ]);
const activeDpList = ref(["全部党派"]); const activeDpList = ref(["全部党派"]);
// 处理选择党派变化 // 处理选择党派变化
const handleDpChange = (val) => { const handleDpChange = val => {
if (val.includes("全部党派") && val.length > 1) { if (val.includes("全部党派") && val.length > 1) {
if (val[val.length - 1] === "全部党派") { if (val[val.length - 1] === "全部党派") {
activeDpList.value = ["全部党派"]; activeDpList.value = ["全部党派"];
...@@ -1565,7 +1612,7 @@ const yyList = ref([ ...@@ -1565,7 +1612,7 @@ const yyList = ref([
]); ]);
const activeYyList = ref(["全部议院"]); const activeYyList = ref(["全部议院"]);
// 处理选择议院变化 // 处理选择议院变化
const handleYyChange = (val) => { const handleYyChange = val => {
if (val.includes("全部议院") && val.length > 1) { if (val.includes("全部议院") && val.length > 1) {
if (val[val.length - 1] === "全部议院") { if (val[val.length - 1] === "全部议院") {
activeYyList.value = ["全部议院"]; activeYyList.value = ["全部议院"];
...@@ -1585,12 +1632,12 @@ const pubTime = ref([ ...@@ -1585,12 +1632,12 @@ const pubTime = ref([
{ id: "2024", name: "2024年" }, { id: "2024", name: "2024年" },
{ id: "2023", name: "2023年" }, { id: "2023", name: "2023年" },
{ id: "2022", name: "2022年" }, { id: "2022", name: "2022年" },
{ id: "2021", name: "2021年" }, { id: "2021", name: "2021年" }
// { id: "更早时间", name: "更早时间" } // { id: "更早时间", name: "更早时间" }
]); ]);
const activePubTime = ref(["全部时间"]); const activePubTime = ref(["全部时间"]);
// 处理选择时间变化 // 处理选择时间变化
const handlePubTimeChange = (val) => { const handlePubTimeChange = val => {
if (val.includes("全部时间") && val.length > 1) { if (val.includes("全部时间") && val.length > 1) {
if (val[val.length - 1] === "全部时间") { if (val[val.length - 1] === "全部时间") {
activePubTime.value = ["全部时间"]; activePubTime.value = ["全部时间"];
...@@ -1651,7 +1698,7 @@ onMounted(async () => { ...@@ -1651,7 +1698,7 @@ onMounted(async () => {
handleGetPostMemberList(); handleGetPostMemberList();
// 获取资源库 // 获取资源库
handleGetBills(); handleGetBills();
// handleGetBillsByType(); // handleGetBillsByType();
handleBox5(); //涉华法案统计 handleBox5(); //涉华法案统计
...@@ -1782,6 +1829,8 @@ onUnmounted(() => {}); ...@@ -1782,6 +1829,8 @@ onUnmounted(() => {});
.home-box { .home-box {
width: 100%; width: 100%;
height: 100%; height: 100%;
background: url("./assets/images/background.png");
background-size: 100% 100%;
overflow-y: auto; overflow-y: auto;
.home-header { .home-header {
height: 64px; height: 64px;
...@@ -1809,8 +1858,6 @@ onUnmounted(() => {}); ...@@ -1809,8 +1858,6 @@ onUnmounted(() => {});
width: 1600px; width: 1600px;
margin: 0 auto; margin: 0 auto;
margin-top: 48px; margin-top: 48px;
background: url("./assets/images/background.png");
background-size: 100% 100%;
.home-main-header { .home-main-header {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
......
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<div class="home-main-header-item-box"> <div class="home-main-header-item-box">
<div class="item" v-for="(item, index) in govInsList" :key="index" @click="handleToInstitution(item)"> <div class="item" v-for="(item, index) in govInsList" :key="index" @click="handleToInstitution(item)">
<div class="item-left"> <div class="item-left">
<img :src="item.img?item.img: DefaultIcon2" alt="" /> <img :src="item.img ? item.img : DefaultIcon2" alt="" />
</div> </div>
<div class="item-right">{{ item.name }}</div> <div class="item-right">{{ item.name }}</div>
</div> </div>
...@@ -335,17 +335,15 @@ ...@@ -335,17 +335,15 @@
<DivideHeader id="position4" class="divide4" :titleText="'资源库'"></DivideHeader> <DivideHeader id="position4" class="divide4" :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="btn" :class="{ btnActive: activeCate === cate.id }"
:class="{ btnActive: activeCate === cate.id }" v-for="(cate, index) in categoryList"
v-for="(cate, index) in categoryList" :key="index"
:key="index" @click="handleClickCate(cate)"
@click="handleClickCate(cate)" >
> {{ cate.name }}
{{ cate.name }} </div>
</div>
</div> </div>
<div class="select-box"> <div class="select-box">
<div class="paixu-btn" @click="handleSwithSort"> <div class="paixu-btn" @click="handleSwithSort">
...@@ -375,6 +373,7 @@ ...@@ -375,6 +373,7 @@
:key="time.id" :key="time.id"
v-model="activePubTime" v-model="activePubTime"
:label="time.id" :label="time.id"
style="width: 100px"
class="filter-checkbox" class="filter-checkbox"
> >
{{ time.name }} {{ time.name }}
...@@ -414,13 +413,13 @@ ...@@ -414,13 +413,13 @@
class="main-item" class="main-item"
v-for="(item, index) in curDecreeList" v-for="(item, index) in curDecreeList"
:key="index" :key="index"
@click="handleClickToDetail" @click="handleClickDecree(item)"
> >
<div class="main-item-left"> <div class="main-item-left">
<div class="left-left">{{ item.time }}</div> <div class="left-left">{{ item.time }}</div>
<div class="left-right"> <div class="left-right">
<div class="icon"> <div class="icon">
<img :src="item.orgImage?item.orgImage:DefaultIcon2" alt=""> <img :src="item.orgImage ? item.orgImage : DefaultIcon2" alt="" />
</div> </div>
<div class="line" v-if="index !== 9 && index !== totalDecreesNum - 1"></div> <div class="line" v-if="index !== 9 && index !== totalDecreesNum - 1"></div>
</div> </div>
...@@ -497,8 +496,8 @@ import getCalendarHeatChart from "./utils/cleandarHeat"; ...@@ -497,8 +496,8 @@ import getCalendarHeatChart from "./utils/cleandarHeat";
import setChart from "@/utils/setChart"; import setChart from "@/utils/setChart";
import DefaultIcon1 from '@/assets/icons/default-icon1.png' import DefaultIcon1 from "@/assets/icons/default-icon1.png";
import DefaultIcon2 from '@/assets/icons/default-icon2.png' import DefaultIcon2 from "@/assets/icons/default-icon2.png";
import p1 from "./assets/images/iconp1.png"; import p1 from "./assets/images/iconp1.png";
import p2 from "./assets/images/iconp2.png"; import p2 from "./assets/images/iconp2.png";
...@@ -534,10 +533,8 @@ import Message3 from "./assets/images/message-icon3.png"; ...@@ -534,10 +533,8 @@ import Message3 from "./assets/images/message-icon3.png";
// 跳转行政机构主页 // 跳转行政机构主页
const handleToInstitution = item => { const handleToInstitution = item => {
if (item.name === "美国商务部") { const curRoute = router.resolve("/institution");
const curRoute = router.resolve("/institution"); window.open(curRoute.href, "_blank");
window.open(curRoute.href, "_blank");
}
}; };
// 返回首页 // 返回首页
...@@ -689,6 +686,17 @@ const handleClickToDetail = () => { ...@@ -689,6 +686,17 @@ const handleClickToDetail = () => {
window.open(route.href, "_blank"); window.open(route.href, "_blank");
}; };
// 点击政令库政令
const handleClickDecree = decree => {
const route = router.resolve({
path: "/decreeLayout",
query: {
id: decree.id
}
});
window.open(route.href, "_blank");
};
// 风险信号 // 风险信号
const warningList = ref([ const warningList = ref([
{ {
...@@ -780,7 +788,6 @@ const messageList = ref([ ...@@ -780,7 +788,6 @@ const messageList = ref([
// time: "14:49 · 发布于X", // time: "14:49 · 发布于X",
// content: `如果这个疯狂的支出法案获得通过,‘美国党’将在第二天成立。` // content: `如果这个疯狂的支出法案获得通过,‘美国党’将在第二天成立。`
// } // }
]); ]);
const handleGetMessage = async () => { const handleGetMessage = async () => {
const params = { const params = {
...@@ -854,7 +861,6 @@ const chart2Data = ref([ ...@@ -854,7 +861,6 @@ const chart2Data = ref([
// name: "人工智能", // name: "人工智能",
// value: 46 // value: 46
// }, // },
]); ]);
// const colorList = ["#69B1FF", "#FFC069", "#87E8DE", "#85A5FF", "#FF7875", "#B37FEB", "#4096FF"]; // const colorList = ["#69B1FF", "#FFC069", "#87E8DE", "#85A5FF", "#FF7875", "#B37FEB", "#4096FF"];
...@@ -892,7 +898,6 @@ const keyDecreeList = ref([ ...@@ -892,7 +898,6 @@ const keyDecreeList = ref([
// time: "2025年2月", // time: "2025年2月",
// content: `将中国列为“外国对手”,系统性收紧中美在半导体、人工智能、量子技术等前沿科技领域的双向投资,构建对华科技封锁体系。` // content: `将中国列为“外国对手”,系统性收紧中美在半导体、人工智能、量子技术等前沿科技领域的双向投资,构建对华科技封锁体系。`
// }, // },
]); ]);
const handleGetKeyDecree = async () => { const handleGetKeyDecree = async () => {
...@@ -1857,7 +1862,7 @@ onMounted(async () => { ...@@ -1857,7 +1862,7 @@ onMounted(async () => {
height: 402px; height: 402px;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
padding-top: 6px; padding: 6px 0;
.box3-item { .box3-item {
display: flex; display: flex;
height: 77px; height: 77px;
...@@ -1967,7 +1972,7 @@ onMounted(async () => { ...@@ -1967,7 +1972,7 @@ onMounted(async () => {
height: 402px; height: 402px;
overflow-y: auto; overflow-y: auto;
box-sizing: border-box; box-sizing: border-box;
padding-top: 8px; padding-bottom: 8px;
.box4-main-item { .box4-main-item {
margin-top: 16px; margin-top: 16px;
display: flex; display: flex;
...@@ -2601,7 +2606,8 @@ onMounted(async () => { ...@@ -2601,7 +2606,8 @@ onMounted(async () => {
} }
} }
.box7-main { .box7-main {
height: 400px; margin-top: 10px;
height: 380px;
box-sizing: border-box; box-sizing: border-box;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
...@@ -2731,32 +2737,31 @@ onMounted(async () => { ...@@ -2731,32 +2737,31 @@ onMounted(async () => {
display: flex; display: flex;
gap: 8px; gap: 8px;
white-space: nowrap; white-space: nowrap;
.btn { .btn {
min-width: min-content; min-width: min-content;
height: 42px; height: 42px;
color: rgba(95, 101, 108, 1); color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-size: 20px; font-size: 20px;
font-weight: 400; font-weight: 400;
line-height: 42px; line-height: 42px;
padding: 0 24px; padding: 0 24px;
border-radius: 21px; border-radius: 21px;
background: rgba(20, 89, 187, 0); background: rgba(20, 89, 187, 0);
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background: rgba(20, 89, 187, 0.1); background: rgba(20, 89, 187, 0.1);
}
} }
.btnActive { }
font-weight: 700; .btnActive {
background: rgba(20, 89, 187, 1); font-weight: 700;
background: rgba(20, 89, 187, 1);
color: #fff;
&:hover {
color: #fff; color: #fff;
&:hover { background: rgba(20, 89, 187, 1);
color: #fff;
background: rgba(20, 89, 187, 1);
}
} }
}
} }
.select-box { .select-box {
margin-top: 5px; margin-top: 5px;
...@@ -2919,7 +2924,7 @@ onMounted(async () => { ...@@ -2919,7 +2924,7 @@ onMounted(async () => {
height: 24px; height: 24px;
border-radius: 12px; border-radius: 12px;
overflow: hidden; overflow: hidden;
img{ img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
......
...@@ -1901,10 +1901,14 @@ const handleMediaClick = item => { ...@@ -1901,10 +1901,14 @@ const handleMediaClick = item => {
} }
.home-wrapper { .home-wrapper {
width: 100%;
height: calc(100vh - 96px);
position: relative;
overflow-y: hidden;
.home-main { .home-main {
// width: 1400px; width: 100%;
padding: 0 5%; height: 100%;
margin: 0 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 {
......
...@@ -1698,10 +1698,14 @@ onMounted(async () => { ...@@ -1698,10 +1698,14 @@ onMounted(async () => {
} }
.home-wrapper { .home-wrapper {
width: 100%;
height: calc(100vh - 96px);
position: relative;
overflow-y: hidden;
.home-main { .home-main {
// width: 1400px; width: 100%;
padding: 0 5%; height: 100%;
margin: 0 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 {
......
...@@ -351,8 +351,7 @@ ...@@ -351,8 +351,7 @@
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
</div> </div>
</div> </div>
</div> </div>
<div class="center-footer-layout"> <div class="center-footer-layout">
...@@ -405,6 +404,7 @@ ...@@ -405,6 +404,7 @@
</div> </div>
</div> </div>
<div class="home-main-footer-main"> <div class="home-main-footer-main">
<div class="footer-main-item" v-for="item in universityList" :key="item.name" @click="handleClickToDetail"> <div class="footer-main-item" v-for="item in universityList" :key="item.name" @click="handleClickToDetail">
<img :src="item.pic" style="height: 32px; width: 32px;" /> <img :src="item.pic" style="height: 32px; width: 32px;" />
<div class="item-text">{{ item.name }}</div> <div class="item-text">{{ item.name }}</div>
...@@ -894,7 +894,6 @@ onMounted(async () => { ...@@ -894,7 +894,6 @@ onMounted(async () => {
let chart1 = getPieChart(chart1Data.value, colorList); let chart1 = getPieChart(chart1Data.value, colorList);
setChart(chart1, "chart1"); setChart(chart1, "chart1");
}); });
</script> </script>
......
...@@ -1070,10 +1070,14 @@ onMounted(async () => { ...@@ -1070,10 +1070,14 @@ onMounted(async () => {
box-shadow: none; box-shadow: none;
} }
.home-wrapper { .home-wrapper {
width: 100%;
height: calc(100vh - 96px);
position: relative;
overflow-y: hidden;
.home-main { .home-main {
// width: 1400px;
width: 100%; width: 100%;
margin: 0 auto; height: 100%;
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 {
...@@ -1217,7 +1221,7 @@ onMounted(async () => { ...@@ -1217,7 +1221,7 @@ onMounted(async () => {
right: 19px; right: 19px;
width: 6px; width: 6px;
height: 12px; height: 12px;
img{ img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
......
...@@ -100,10 +100,13 @@ ...@@ -100,10 +100,13 @@
</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 class="item-left" :class="{ <div
itemLeftStatus1: item.status === '一般风险', class="item-left"
itemLeftStatus2: item.status === '重大风险' :class="{
}"> itemLeftStatus1: item.status === '一般风险',
itemLeftStatus2: item.status === '重大风险'
}"
>
{{ item.status }} {{ item.status }}
</div> </div>
<div class="item-right"> <div class="item-right">
...@@ -131,14 +134,18 @@ ...@@ -131,14 +134,18 @@
<img src="./assets/images/TechnologyFigures-icon3.png" alt="" /> <img src="./assets/images/TechnologyFigures-icon3.png" alt="" />
</div> </div>
<!-- <div class="box3-header-title">{{ "人物动向" }}</div> --> <!-- <div class="box3-header-title">{{ "人物动向" }}</div> -->
<div class="header-title" <div
style="width: 1560px; display: flex; justify-content: space-between; margin-top: 10px"> class="header-title"
style="width: 1560px; display: flex; justify-content: space-between; margin-top: 10px"
>
<div class="box3-header-title"> <div class="box3-header-title">
{{ "人物动向" }} {{ "人物动向" }}
</div> </div>
<div style="display: flex; gap: 8px; margin-right: 12px"> <div style="display: flex; gap: 8px; margin-right: 12px">
<div v-for="value in peoDateList" <div
:class="peoDate !== value ? 'btn-box-samll' : 'btn-box-select-samll'"> v-for="value in peoDateList"
:class="peoDate !== value ? 'btn-box-samll' : 'btn-box-select-samll'"
>
{{ value }} {{ value }}
</div> </div>
</div> </div>
...@@ -154,14 +161,18 @@ ...@@ -154,14 +161,18 @@
<div class="header-icon"> <div class="header-icon">
<img src="./assets/images/header-message.png" alt="" /> <img src="./assets/images/header-message.png" alt="" />
</div> </div>
<div class="header-title" <div
style="width: 1595px; display: flex; justify-content: space-between; margin-top: 10px"> class="header-title"
style="width: 1595px; display: flex; justify-content: space-between; margin-top: 10px"
>
<div> <div>
{{ "重要人物言论及立场" }} {{ "重要人物言论及立场" }}
</div> </div>
<div style="display: flex; gap: 8px; margin-right: 12px"> <div style="display: flex; gap: 8px; margin-right: 12px">
<div v-for="value in fields" <div
:class="fieldSelect !== value ? 'btn-box-samll' : 'btn-box-select-samll'"> v-for="value in fields"
:class="fieldSelect !== value ? 'btn-box-samll' : 'btn-box-select-samll'"
>
{{ value }} {{ value }}
</div> </div>
</div> </div>
...@@ -178,18 +189,33 @@ ...@@ -178,18 +189,33 @@
<div class="box5-header"> <div class="box5-header">
<div class="box5-header-left"> <div class="box5-header-left">
<div class="box5-header-icon"> <div class="box5-header-icon">
<img src="./assets/images/TechnologyFigures-icon1.png" alt="" <img
style="margin: 13px 21px 13px 21px; height: 22px" /> src="./assets/images/TechnologyFigures-icon1.png"
alt=""
style="margin: 13px 21px 13px 21px; height: 22px"
/>
<div class="box5-header-title">{{ "科技人物观点词云" }}</div> <div class="box5-header-title">{{ "科技人物观点词云" }}</div>
</div> </div>
<div> <div>
<div style="height: 45px; display: flex; align-items: center"> <div style="height: 45px; display: flex; align-items: center">
<el-select v-model="wordCloudvalue" style="width: 120px; height: 28px"> <el-select v-model="wordCloudvalue" style="width: 120px; height: 28px">
<el-option v-for="item in yearList" :key="item.value" :label="item.label" :value="item.value" /> <el-option
v-for="item in yearList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
<el-select v-model="wordCloudfield" style="width: 120px; height: 28px; margin: 10px 24px 10px 5px"> <el-select
<el-option v-for="item in fieldSelect" :key="item.value" :label="item.label" v-model="wordCloudfield"
:value="item.value" /> style="width: 120px; height: 28px; margin: 10px 24px 10px 5px"
>
<el-option
v-for="item in fieldSelect"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -202,17 +228,22 @@ ...@@ -202,17 +228,22 @@
<div class="header-icon"> <div class="header-icon">
<img src="./assets/images/box3-header-icon.png" alt="" /> <img src="./assets/images/box3-header-icon.png" alt="" />
</div> </div>
<div class="header-title" <div
style="display: flex; width: 740px; justify-content: space-between; align-items: center"> class="header-title"
style="display: flex; width: 740px; justify-content: space-between; align-items: center"
>
<div> <div>
{{ "科技人物观点涉及领域变化趋势" }} {{ "科技人物观点涉及领域变化趋势" }}
</div> </div>
<el-select v-model="areaSelect" style="width: 120px; height: 28px"> <el-select v-model="areaSelect" style="width: 120px; height: 28px">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> <el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="box6-main" id="box6Chart"></div> <div class="box6-main" id="box6Chart"></div>
...@@ -238,16 +269,22 @@ ...@@ -238,16 +269,22 @@
</div> </div>
<div style="display: flex; width: 730px; justify-content: space-between; align-items: center"> <div style="display: flex; width: 730px; justify-content: space-between; align-items: center">
<div class="box8-header-title">{{ "主要人物涉华观点统计" }}</div> <div class="box8-header-title">{{ "主要人物涉华观点统计" }}</div>
<div style="gap: 8px;display: flex;"> <div style="gap: 8px; display: flex">
<div v-for="value in viewOption" <div
:class="viewSelect !== value ? 'btn-box-samll' : 'btn-box-select-samll'"> v-for="value in viewOption"
:class="viewSelect !== value ? 'btn-box-samll' : 'btn-box-select-samll'"
>
{{ value }} {{ value }}
</div> </div>
<el-select v-model="wordCloudvalue" style="width: 120px; height: 28px; margin-top: -5px;"> <el-select v-model="wordCloudvalue" style="width: 120px; height: 28px; margin-top: -5px">
<el-option v-for="item in yearList" :key="item.value" :label="item.label" :value="item.value" /> <el-option
v-for="item in yearList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
...@@ -262,8 +299,13 @@ ...@@ -262,8 +299,13 @@
<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 class="btn" :class="{ btnActive: activeCate === cate }" v-for="(cate, index) in categoryList" <div
:key="index" @click="handleClickCate(cate)"> class="btn"
:class="{ btnActive: activeCate === cate }"
v-for="(cate, index) in categoryList"
:key="index"
@click="handleClickCate(cate)"
>
{{ cate }} {{ cate }}
</div> </div>
</div> </div>
...@@ -438,13 +480,22 @@ onMounted(() => { ...@@ -438,13 +480,22 @@ onMounted(() => {
} }
.home-wrapper { .home-wrapper {
width: 100%;
height: calc(100vh - 96px);
position: relative;
overflow-y: hidden;
.home-main { .home-main {
width: 1920px; // width: 1920px;
margin: 0 auto; // margin: 0 auto;
// background: url("./assets/images/background.png");
// background-repeat: no-repeat;
// background-color: #fff;
// background-size: contain;
width: 100%;
height: 100%;
overflow-y: auto;
background: url("./assets/images/background.png"); background: url("./assets/images/background.png");
background-repeat: no-repeat; background-size: 100% 100%;
background-color: #fff;
background-size: contain;
.home-main-header { .home-main-header {
display: flex; display: flex;
......
...@@ -78,12 +78,17 @@ ...@@ -78,12 +78,17 @@
</div> </div>
<div class="content">{{ item.desc }}</div> <div class="content">{{ item.desc }}</div>
<div class="tag-box"> <div class="tag-box">
<div class="tag" :class="{ <div
tag1: val.status === 1, class="tag"
tag2: val.status === 2, :class="{
tag3: val.status === 3, tag1: val.status === 1,
tag4: val.status === 4 tag2: val.status === 2,
}" v-for="(val, idx) in item.tagList" :key="idx"> tag3: val.status === 3,
tag4: val.status === 4
}"
v-for="(val, idx) in item.tagList"
:key="idx"
>
{{ val.name }} {{ val.name }}
</div> </div>
</div> </div>
...@@ -108,8 +113,12 @@ ...@@ -108,8 +113,12 @@
</div> </div>
</div> </div>
<div style="display: flex"> <div style="display: flex">
<img src="./assets/images/right-left-icon1.png" alt="" <img
style="margin-top: 174px; width: 24px; height: 48px" @click="changeBox1Data('previous')" /> src="./assets/images/right-left-icon1.png"
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="" />
...@@ -117,7 +126,11 @@ ...@@ -117,7 +126,11 @@
<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 class="tag" v-for="(item, index) in box1Data[box1DataIndex]?.industryVOList" :key="index"> <div
class="tag"
v-for="(item, index) in box1Data[box1DataIndex]?.industryVOList"
:key="index"
>
{{ item }} {{ item }}
</div> </div>
</div> </div>
...@@ -133,8 +146,12 @@ ...@@ -133,8 +146,12 @@
</div> </div>
</div> </div>
</div> </div>
<img src="./assets/images/right-left-icon2.png" alt="" <img
style="margin-top: 174px; width: 24px; height: 48px" @click="changeBox1Data('next')" /> src="./assets/images/right-left-icon2.png"
alt=""
style="margin-top: 174px; width: 24px; height: 48px"
@click="changeBox1Data('next')"
/>
</div> </div>
</div> </div>
<div class="box2"> <div class="box2">
...@@ -149,11 +166,14 @@ ...@@ -149,11 +166,14 @@
</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 class="item-left" :class="{ <div
itemLeftStatus1: item.status === '一般风险 ' || item.status === '暂无数值', class="item-left"
itemLeftStatus2: item.status === '重大风险', :class="{
itemLeftStatus3: item.status === '特别重大' itemLeftStatus1: item.status === '一般风险 ' || item.status === '暂无数值',
}"> itemLeftStatus2: item.status === '重大风险',
itemLeftStatus3: item.status === '特别重大'
}"
>
{{ item.status || "一般风险" }} {{ item.status || "一般风险" }}
</div> </div>
<div class="item-right"> <div class="item-right">
...@@ -207,14 +227,20 @@ ...@@ -207,14 +227,20 @@
<div class="header-title">{{ "智库人物动态" }}</div> <div class="header-title">{{ "智库人物动态" }}</div>
</div> </div>
<div class="box4-tag-box"> <div class="box4-tag-box">
<div class="tag" :class="{ <div
tagActive: box4ActiveTag === tag.name, class="tag"
tag1: tag.status === 1, :class="{
tag2: tag.status === 2, tagActive: box4ActiveTag === tag.name,
tag3: tag.status === 3, tag1: tag.status === 1,
tag4: tag.status === 4, tag2: tag.status === 2,
tag5: tag.status === 5 tag3: tag.status === 3,
}" v-for="(tag, index) in box4TagList" :key="index" @click="handleClickBox4Tag(tag.name)"> tag4: tag.status === 4,
tag5: tag.status === 5
}"
v-for="(tag, index) in box4TagList"
:key="index"
@click="handleClickBox4Tag(tag.name)"
>
{{ tag.name }} {{ tag.name }}
</div> </div>
</div> </div>
...@@ -246,8 +272,13 @@ ...@@ -246,8 +272,13 @@
</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 v-for="item in box5YearList" :key="item.value" :label="item.label" :value="item.value" <el-option
@click="changeBox5Data(item.value)" /> v-for="item in box5YearList"
:key="item.value"
:label="item.label"
:value="item.value"
@click="changeBox5Data(item.value)"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -261,8 +292,13 @@ ...@@ -261,8 +292,13 @@
<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 v-for="item in box6YearList" :key="item.value" :label="item.label" :value="item.value" <el-option
@click="handleBox6()" /> v-for="item in box6YearList"
:key="item.value"
:label="item.label"
:value="item.value"
@click="handleBox6()"
/>
</el-select> </el-select>
</div> </div>
</div> </div>
...@@ -291,19 +327,28 @@ ...@@ -291,19 +327,28 @@
</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 v-for="item in box8YearList" :key="item.value" :label="item.label" :value="item.value" <el-option
@click="changeBox8Data(item.value)" /> v-for="item in box8YearList"
: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 class="item-left" <div
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"> class="item-left"
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"
>
{{ index + 1 }} {{ index + 1 }}
</div> </div>
<div class="item-center" <div
:class="{ itemBold1: index === 0, itemBold2: index === 1, itemBold3: index === 2 }"> class="item-center"
: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>
...@@ -317,8 +362,13 @@ ...@@ -317,8 +362,13 @@
<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 class="btn" :class="{ btnActive: activeCate === cate }" v-for="(cate, index) in categoryList" <div
:key="index" @click="handleClickCate(cate)"> class="btn"
:class="{ btnActive: activeCate === cate }"
v-for="(cate, index) in categoryList"
:key="index"
@click="handleClickCate(cate)"
>
{{ cate }} {{ cate }}
</div> </div>
</div> </div>
...@@ -332,11 +382,21 @@ ...@@ -332,11 +382,21 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange"> <el-checkbox
v-model="checkAll"
:indeterminate="isIndeterminate"
@change="handleCheckAllChange"
>
全部领域 全部领域
</el-checkbox> </el-checkbox>
<el-checkbox v-for="research in areaList" :key="research.id" v-model="selectedAreaList" <el-checkbox
:label="research.id" @change="handleCheckedAreaChange()" class="filter-checkbox"> v-for="research in areaList"
:key="research.id"
v-model="selectedAreaList"
:label="research.id"
@change="handleCheckedAreaChange()"
class="filter-checkbox"
>
{{ research.name }} {{ research.name }}
</el-checkbox> </el-checkbox>
</div> </div>
...@@ -350,8 +410,13 @@ ...@@ -350,8 +410,13 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<div class="checkbox-group"> <div class="checkbox-group">
<el-checkbox v-for="time in pubTimeList" :key="time.id" v-model="selectedPubTimeList" :label="time.id" <el-checkbox
class="filter-checkbox"> v-for="time in pubTimeList"
:key="time.id"
v-model="selectedPubTimeList"
:label="time.id"
class="filter-checkbox"
>
{{ time.name }} {{ time.name }}
</el-checkbox> </el-checkbox>
</div> </div>
...@@ -374,13 +439,16 @@ ...@@ -374,13 +439,16 @@
</div> </div>
</div> </div>
<div class="right-footer"> <div class="right-footer">
<div class="info"> <div class="info">{{ total }}项调查</div>
{{ total }}项调查
</div>
<div class="page-box"> <div class="page-box">
<el-pagination :page-size="12" background layout="prev, pager, next" :total="total" <el-pagination
@current-change="handleCurrentChange()" :current-page="currentPage" /> :page-size="12"
background
layout="prev, pager, next"
:total="total"
@current-change="handleCurrentChange()"
:current-page="currentPage"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -1184,11 +1252,11 @@ const curFooterList = ref([ ...@@ -1184,11 +1252,11 @@ const curFooterList = ref([
} }
]); ]);
const currentPage = ref(1); const currentPage = ref(1);
const total = ref(0) const total = ref(0);
// 处理页码改变事件 // 处理页码改变事件
const handleCurrentChange = page => { const handleCurrentChange = page => {
currentPage.value = page; currentPage.value = page;
handleGetetThinkTankReport() handleGetetThinkTankReport();
}; };
//获取智库报告 //获取智库报告
const handleGetetThinkTankReport = async () => { const handleGetetThinkTankReport = async () => {
...@@ -1197,13 +1265,13 @@ const handleGetetThinkTankReport = async () => { ...@@ -1197,13 +1265,13 @@ const handleGetetThinkTankReport = async () => {
pageSize: 12, pageSize: 12,
researchTypeIds: selectedAreaList.value, researchTypeIds: selectedAreaList.value,
years: 2025 years: 2025
} };
try { try {
const res = await getThinkTankReport(params); const res = await getThinkTankReport(params);
console.log("智库报告", res); console.log("智库报告", res);
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;
} }
} catch (error) { } catch (error) {
console.error("获取智库报告error", error); console.error("获取智库报告error", error);
...@@ -1211,7 +1279,7 @@ const handleGetetThinkTankReport = async () => { ...@@ -1211,7 +1279,7 @@ const handleGetetThinkTankReport = async () => {
}; };
const handleClick = tank => { const handleClick = tank => {
console.log(tank) console.log(tank);
// router.push({ name: "ThinkTankDetail", params: { id: tank.id } }); // router.push({ name: "ThinkTankDetail", params: { id: tank.id } });
const curRoute = router.resolve({ name: "ThinkTankDetail", params: { id: tank.id, name: tank.name } }); const curRoute = router.resolve({ name: "ThinkTankDetail", params: { id: tank.id, name: tank.name } });
window.open(curRoute.href, "_blank"); window.open(curRoute.href, "_blank");
...@@ -1239,7 +1307,7 @@ onMounted(async () => { ...@@ -1239,7 +1307,7 @@ onMounted(async () => {
handleBox7(); handleBox7();
handleGetHylyList(); handleGetHylyList();
handleGetThinkTankHot(getDateYearsAgo(1)); handleGetThinkTankHot(getDateYearsAgo(1));
handleGetetThinkTankReport() handleGetetThinkTankReport();
}); });
</script> </script>
...@@ -1249,17 +1317,20 @@ onMounted(async () => { ...@@ -1249,17 +1317,20 @@ onMounted(async () => {
} }
.home-wrapper { .home-wrapper {
width: 100%;
height: calc(100vh - 96px);
position: relative;
overflow-y: hidden;
.home-main { .home-main {
width: 1920px; width: 100%;
margin: 0 auto; height: 100%;
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%;
...@@ -2937,7 +3008,6 @@ onMounted(async () => { ...@@ -2937,7 +3008,6 @@ onMounted(async () => {
box-shadow: none !important; box-shadow: none !important;
} }
.page { .page {
width: 1600px; width: 1600px;
height: 40px; height: 40px;
...@@ -2957,7 +3027,6 @@ onMounted(async () => { ...@@ -2957,7 +3027,6 @@ onMounted(async () => {
letter-spacing: 0px; letter-spacing: 0px;
text-align: left; text-align: left;
} }
} }
:deep(.el-pagination) { :deep(.el-pagination) {
...@@ -2977,17 +3046,12 @@ onMounted(async () => { ...@@ -2977,17 +3046,12 @@ onMounted(async () => {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
} }
:deep(.el-pagination.is-background .el-pager li.is-active) { :deep(.el-pagination.is-background .el-pager li.is-active) {
background-color: #fff; background-color: #fff;
color: rgba(22, 119, 255, 1); color: rgba(22, 119, 255, 1);
border-color: rgba(22, 119, 255, 1); border-color: rgba(22, 119, 255, 1);
} }
:deep(.el-pagination.is-background .el-pager li.is-ellipsis) { :deep(.el-pagination.is-background .el-pager li.is-ellipsis) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论