提交 bfb03421 authored 作者: coderBryanFu's avatar coderBryanFu

update

上级 a2418c4e
......@@ -7,15 +7,11 @@
<div class="title">立法背景</div>
<div class="header-btn-box">
<div class="btn" @click="handleClickBox1Btn(1)">
<el-button type="primary" plain v-if="box1BtnActive === 1"
>涉华背景</el-button
>
<el-button type="primary" plain v-if="box1BtnActive === 1">涉华背景</el-button>
<el-button type="info" plain v-else>涉华背景</el-button>
</div>
<div class="btn" @click="handleClickBox1Btn(2)">
<el-button type="primary" plain v-if="box1BtnActive === 2"
>全部背景</el-button
>
<el-button type="primary" plain v-if="box1BtnActive === 2">全部背景</el-button>
<el-button type="info" plain v-else>全部背景</el-button>
</div>
</div>
......@@ -30,11 +26,7 @@
</div>
<div class="box1-main">
<div class="box1-main-center">
<div
class="box1-main-item"
v-for="(item, index) in backgroundList"
:key="item.id"
>
<div class="box1-main-item" v-for="(item, index) in backgroundList" :key="item.id">
<div class="id">{{ (currentPage - 1) * 10 + index + 1 }}</div>
<div class="title">{{ item.backgroundTitle }}</div>
<div class="share">
......@@ -44,11 +36,7 @@
</div>
<div class="box1-main-footer">
<div class="info">
{{
`共有${total}条${
box1BtnActive === 1 ? "涉华" : "全部"
}背景`
}}
{{ `共有${total}条${box1BtnActive === 1 ? "涉华" : "全部"}背景` }}
</div>
<div class="page-box">
<el-pagination
......@@ -76,13 +64,9 @@
</div>
</div>
<div class="box2-main">
<div
class="box2-main-item"
v-for="(item, index) in eventList"
:key="index"
>
<div class="box2-main-item" v-for="(item, index) in eventList" :key="index">
<div class="left">
<img :src="item.imageUrl || defaultNew" @error="e => e.target.src = defaultNew" alt="" />
<img :src="item.imageUrl || defaultNew" @error="e => (e.target.src = defaultNew)" alt="" />
</div>
<div class="center">
<div class="title">{{ item.sjbt }}</div>
......@@ -91,11 +75,11 @@
<div class="right">{{ item.sjsj }}</div>
</div>
</div>
<div class="box2-footer">
<!-- <div class="box2-footer">
<div class="btn-more">
<img src="../assets/images/btn-more.png" alt="" />
</div>
</div>
</div> -->
</div>
</div>
<div class="background-wrap-right">
......@@ -104,15 +88,11 @@
<div class="title">议员相关性分析</div>
<div class="header-btn-box">
<div class="btn" @click="handleClickBox2Btn(1)">
<el-button type="primary" plain v-if="box2BtnActive === 1"
>赞成议员</el-button
>
<el-button type="primary" plain v-if="box2BtnActive === 1">赞成议员</el-button>
<el-button type="info" plain v-else>赞成议员</el-button>
</div>
<div class="btn" @click="handleClickBox2Btn(2)">
<el-button type="primary" plain v-if="box2BtnActive === 2"
>反对议员</el-button
>
<el-button type="primary" plain v-if="box2BtnActive === 2">反对议员</el-button>
<el-button type="info" plain v-else>反对议员</el-button>
</div>
</div>
......@@ -135,14 +115,8 @@
</div> -->
<div class="right-box1-main">
<div class="right-box1-main-top">
<el-icon style="margin-top: 20px" size="20" color="#5f656c"
><CaretLeft
/></el-icon>
<div
class="user-box"
v-for="(item, index) in personList"
:key="index"
>
<el-icon style="margin-top: 20px" size="20" color="#5f656c"><CaretLeft /></el-icon>
<div class="user-box" v-for="(item, index) in personList" :key="index">
<div class="img-box">
<img :src="item.image" alt="" />
<div class="icon1">
......@@ -154,9 +128,7 @@
</div>
<div class="name">{{ item.name }}</div>
</div>
<el-icon style="margin-top: 20px" size="20" color="#5f656c"
><CaretRight
/></el-icon>
<el-icon style="margin-top: 20px" size="20" color="#5f656c"><CaretRight /></el-icon>
</div>
<div class="right-box1-main-bottom">
<WordCloudMap :data="wordCloudData" shape="circle" />
......@@ -165,16 +137,10 @@
</div>
<div class="right-box2">
<div class="right-box2-header">
<div class="title">
<span class="title-active">"传统能源"</span>涉及议员动态 >
</div>
<div class="title"><span class="title-active">"传统能源"</span>涉及议员动态 ></div>
</div>
<div class="right-box2-center">
<div
class="user-box"
v-for="(item, index) in aboutUserList"
:key="index"
>
<div class="user-box" v-for="(item, index) in aboutUserList" :key="index">
<div class="user-left">
<img :src="item.img" alt="" />
</div>
......@@ -184,11 +150,11 @@
</div>
</div>
</div>
<div class="right-box2-footer">
<!-- <div class="right-box2-footer">
<div class="btn-more">
<img src="../assets/images/btn-more.png" alt="" />
</div>
</div>
</div> -->
</div>
</div>
</div>
......@@ -211,27 +177,22 @@ import user5 from "./assets/images/user5.png";
import userIcon from "./assets/icons/user-icon.png";
import userIcon1 from "./assets/icons/user-icon1.png";
import userIcon2 from "./assets/icons/user-icon2.png";
import defaultNew from "../assets/images/default-icon-news.png"
import defaultNew from "../assets/images/default-icon-news.png";
import {
getBillBackground,
getBillEvent,
getBillPersonAnalyze,
getBillInfoEvent
} from "@/api/bill";
import { getBillBackground, getBillEvent, getBillPersonAnalyze, getBillInfoEvent } from "@/api/bill";
const box1BtnActive = ref(1);
const currentPage = ref(1);
const total = ref(0);
const handleClickBox1Btn = (index) => {
const handleClickBox1Btn = index => {
box1BtnActive.value = index;
currentPage.value = 1;
handleGetBillBackground();
};
const box2BtnActive = ref(1);
const handleClickBox2Btn = (index) => {
const handleClickBox2Btn = index => {
box2BtnActive.value = index;
if (index === 1) {
handleGetBillPersonAnalyze(false);
......@@ -244,63 +205,62 @@ const aboutUserList = ref([
{
img: user1,
name: "林赛·格雷厄姆",
content: "拟对购买俄罗斯石油、天然气等能源的国家征收高达500%的“二级关税”。",
content: "拟对购买俄罗斯石油、天然气等能源的国家征收高达500%的“二级关税”。"
},
{
img: user2,
name: "史蒂夫·戴恩斯",
content:
"提出了一项两党立法,旨在通过美国能源部(DOE)扩大美国在量子信息科学和研发(R&D)方面的投资能力。”。",
content: "提出了一项两党立法,旨在通过美国能源部(DOE)扩大美国在量子信息科学和研发(R&D)方面的投资能力。”。"
},
{
img: user3,
name: "乔·曼钦",
content:
"介绍了《2024能源许可改革法案》,目的是通过缩短联邦环境审查程序以及限定法院质询等来加快清洁能源、管道和输电项目的审批。”。",
},
"介绍了《2024能源许可改革法案》,目的是通过缩短联邦环境审查程序以及限定法院质询等来加快清洁能源、管道和输电项目的审批。”。"
}
]);
const backgroundList = ref([
{
id: window.sessionStorage.getItem("billId"),
bjnr: "将中国跨境电商描述为“利用低价商品冲击美国市场、规避关税监管”",
bjnr: "将中国跨境电商描述为“利用低价商品冲击美国市场、规避关税监管”"
},
{
id: 2,
bjnr: "指责“中美技术合作助长军民融合”",
bjnr: "指责“中美技术合作助长军民融合”"
},
{
id: 3,
bjnr: "强调“需防范中国通过第三国转运规避关税”",
bjnr: "强调“需防范中国通过第三国转运规避关税”"
},
{
id: 4,
bjnr: "将中资在美子公司定义为“潜在避税与资本转移工具”",
bjnr: "将中资在美子公司定义为“潜在避税与资本转移工具”"
},
{
id: 5,
bjnr: "将中国列为“试图主导全球清洁能源供应链的竞争对手”",
bjnr: "将中国列为“试图主导全球清洁能源供应链的竞争对手”"
},
{
id: 6,
bjnr: "声称“中国控股企业通过转移定价侵蚀美国税基”",
bjnr: "声称“中国控股企业通过转移定价侵蚀美国税基”"
},
{
id: 7,
bjnr: "法案序言称“中国光伏、风电企业通过政府补贴倾销产品”",
bjnr: "法案序言称“中国光伏、风电企业通过政府补贴倾销产品”"
},
{
id: 8,
bjnr: "辩称“中国主导全球减排议程损害美国利益”",
bjnr: "辩称“中国主导全球减排议程损害美国利益”"
},
{
id: 9,
bjnr: "将中国定位为“通过强制技术转让获取先进制程的威胁”",
bjnr: "将中国定位为“通过强制技术转让获取先进制程的威胁”"
},
{
id: 10,
bjnr: "将中国与伊朗、朝鲜并列,强调“需遏制印太地区对手”",
},
bjnr: "将中国与伊朗、朝鲜并列,强调“需遏制印太地区对手”"
}
]);
const eventList = ref([
......@@ -351,74 +311,69 @@ const personList = ref([
name: "乔迪·阿灵顿​",
image: user1,
icon: userIcon,
icon1: userIcon1,
icon1: userIcon1
},
{
name: "约翰·图恩",
image: user2,
icon: userIcon,
icon1: userIcon2,
icon1: userIcon2
},
{
name: "贾森·史密斯",
image: user3,
icon: userIcon,
icon1: userIcon1,
icon1: userIcon1
},
{
name: "拉塞尔·沃特",
image: user4,
icon: userIcon,
icon1: userIcon1,
icon1: userIcon1
},
{
name: "詹姆斯·布莱尔",
image: user5,
icon: userIcon,
icon1: userIcon1,
},
icon1: userIcon1
}
]);
const progressList = ref([
{
tip: true,
date: "7月5日",
title:
"特朗普于美国独立日签署法案,​公法编号Pub. L. No. 119-21。白宫举行庆典,B-2轰炸机飞越上空,象征“美国新时代”开启。",
title: "特朗普于美国独立日签署法案,​公法编号Pub. L. No. 119-21。白宫举行庆典,B-2轰炸机飞越上空,象征“美国新时代”开启。",
degree: "特别重大风险",
rank: 4,
rank: 4
},
{
tip: true,
date: "7月4日",
title:
"众议院最终表决218票赞成 vs 214票反对,修订版法案以4票优势通过,2名共和党议员倒戈,民主党全员反对。",
title: "众议院最终表决218票赞成 vs 214票反对,修订版法案以4票优势通过,2名共和党议员倒戈,民主党全员反对。",
degree: "重大风险",
rank: 3,
rank: 3
},
{
tip: true,
date: "7月3日",
title:
"民主党领袖杰弗里斯发表 ​8小时45分钟​ 演讲(众议院现代史最长),抗议法案“劫贫济富”,但仍未阻止表决。",
title: "民主党领袖杰弗里斯发表 ​8小时45分钟​ 演讲(众议院现代史最长),抗议法案“劫贫济富”,但仍未阻止表决。",
degree: "较大风险",
rank: 2,
rank: 2
},
{
tip: true,
date: "7月2日",
title:
"众议院以 ​219:213​ 通过程序规则,为最终表决铺路。此前4名共和党议员反对程序规则,议长约翰逊紧急游说挽回1票。",
title: "众议院以 ​219:213​ 通过程序规则,为最终表决铺路。此前4名共和党议员反对程序规则,议长约翰逊紧急游说挽回1票。",
degree: "低风险",
rank: 1,
rank: 1
},
{
tip: false,
date: "7月1日",
title:
"参议院最终表决投票51:50​,副总统万斯(JD Vance)投出关键票打破平局。3名共和党参议员倒戈(蒂利斯、保罗、柯林斯)。",
degree: "",
},
title: "参议院最终表决投票51:50​,副总统万斯(JD Vance)投出关键票打破平局。3名共和党参议员倒戈(蒂利斯、保罗、柯林斯)。",
degree: ""
}
]);
const wordCloudData = [
......@@ -439,17 +394,17 @@ const wordCloudData = [
{ name: "抗议医疗补助条款", value: 47 },
{ name: "深红州", value: 32 },
{ name: "温和派选区", value: 62 },
{ name: "高压游说", value: 51 },
{ name: "高压游说", value: 51 }
];
// 获取立法背景内容
const handleGetBillBackground = async () => {
const cRelated = box1BtnActive.value === 1 ? 'Y' : 'N';
const cRelated = box1BtnActive.value === 1 ? "Y" : "N";
const params = {
cRelated: cRelated,
id: window.sessionStorage.getItem("billId"),
currentPage: currentPage.value - 1,
pageSize: 10,
pageSize: 10
};
try {
const res = await getBillBackground(params);
......@@ -462,7 +417,7 @@ const handleGetBillBackground = async () => {
// 获取相关事件
const handleGetRelatedEvent = async () => {
const params = {
id: window.sessionStorage.getItem("billId"),
id: window.sessionStorage.getItem("billId")
};
try {
const res = await getBillInfoEvent(params);
......@@ -485,10 +440,10 @@ const handleGetRelatedEvent = async () => {
};
// 议员相关性分析
const handleGetBillPersonAnalyze = async (isOppose) => {
const handleGetBillPersonAnalyze = async isOppose => {
const params = {
id: window.sessionStorage.getItem("billId"),
isOppose: isOppose,
isOppose: isOppose
};
try {
const res = await getBillPersonAnalyze(params);
......@@ -553,10 +508,10 @@ onMounted(() => {
display: flex;
justify-content: flex-end;
gap: 4px;
.icon{
.icon {
width: 28px;
height: 28px;
img{
img {
width: 100%;
height: 100%;
}
......@@ -650,10 +605,11 @@ onMounted(() => {
background: #fff;
border-radius: 4px;
.box2-main {
margin-top: 9px;
// margin-top: 9px;
width: 1110px;
margin-left: 23px;
height: 300px;
overflow: auto;
height: 349px;
overflow-y: auto;
.box2-main-item {
width: 1103px;
height: 60px;
......@@ -685,6 +641,9 @@ onMounted(() => {
line-height: 22px;
letter-spacing: 0px;
text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.content {
margin-top: 2px;
......@@ -940,8 +899,9 @@ onMounted(() => {
}
}
.right-box2-center {
height: 305px;
height: 345px;
overflow: hidden;
overflow-y: auto;
margin-top: 19px;
margin-left: 16px;
width: 544px;
......@@ -981,20 +941,20 @@ onMounted(() => {
}
}
}
.right-box2-footer {
margin-top: 7px;
display: flex;
justify-content: center;
.btn-more {
width: 108px;
height: 32px;
cursor: pointer;
img {
width: 100%;
height: 100%;
}
}
}
// .right-box2-footer {
// margin-top: 7px;
// display: flex;
// justify-content: center;
// .btn-more {
// width: 108px;
// height: 32px;
// cursor: pointer;
// img {
// width: 100%;
// height: 100%;
// }
// }
// }
}
}
}
......
......@@ -39,7 +39,11 @@
<div class="item-right-text">
{{ decreeInfo.totalTitle }}
</div>
<div class="item-right-icon" v-if="decreeInfo.totalTitle">
<div
class="item-right-icon"
v-if="decreeInfo.totalTitle"
@click="handleToDecreeDetail(decreeInfo)"
>
<img src="./assets/icons/open-icon.png" alt="" />
</div>
</div>
......@@ -72,12 +76,12 @@
<div class="title">{{ "政令主要内容" }}</div>
</div>
<div class="list-main">
<div class="list-item" v-for="(val, idx) in showList" :key="idx" @click="handleToDecreeDetail(val)">
<div class="list-item" v-for="(val, idx) in showList" :key="idx">
<div class="id">{{ idx + 1 }}</div>
<div class="title">{{ val.content }}</div>
<div class="open">
<!-- <div class="open">
<img src="./assets/icons/open-icon.png" alt="" />
</div>
</div> -->
</div>
</div>
</div>
......@@ -178,6 +182,7 @@ const handleClickSider = async index => {
};
const decreeInfo = ref({
id: 0,
img: "",
totalTitle: "",
eTotalTitle: "",
......@@ -212,6 +217,7 @@ const handleGetRelateOrder = async () => {
title: item.name
};
});
decreeInfo.value.id = allData.value[0].id;
decreeInfo.value.img = allData.value[0].imageUrl;
decreeInfo.value.totalTitle = allData.value[0].name;
decreeInfo.value.eTotalTitle = allData.value[0].ename;
......@@ -235,6 +241,7 @@ const handleGetRelateOrder = async () => {
} else {
allData.value = [];
siderList.value = [];
decreeInfo.value.id = 0;
decreeInfo.value.img = "";
decreeInfo.value.totalTitle = "";
decreeInfo.value.eTotalTitle = "";
......@@ -245,6 +252,7 @@ const handleGetRelateOrder = async () => {
} catch (error) {
allData.value = [];
siderList.value = [];
decreeInfo.value.id = 0;
decreeInfo.value.img = "";
decreeInfo.value.totalTitle = "";
decreeInfo.value.eTotalTitle = "";
......@@ -254,7 +262,7 @@ const handleGetRelateOrder = async () => {
}
};
const handleToDecreeDetail = (item) => {
const handleToDecreeDetail = item => {
const route = router.resolve({
path: "/decreeLayout/overview/introduction",
query: {
......@@ -262,7 +270,7 @@ const handleToDecreeDetail = (item) => {
}
});
window.open(route.href, "_blank");
}
};
onMounted(() => {
handleGetRelateOrder();
......@@ -323,7 +331,8 @@ onMounted(() => {
.box1 {
margin: 16px auto;
width: 1600px;
height: 898px;
max-height: 898px;
min-height: 788px;
border-radius: 10px;
box-shadow: 0px 0px 15px 0px rgba(60, 87, 126, 0.2);
background: rgba(255, 255, 255, 1);
......@@ -445,6 +454,7 @@ onMounted(() => {
margin-top: 7px;
width: 16px;
height: 16px;
cursor: pointer;
img {
width: 100%;
height: 100%;
......@@ -482,7 +492,8 @@ onMounted(() => {
}
}
.list-main {
height: 540px;
min-height: 420px;
max-height: 540px;
overflow-x: hidden;
overflow-y: auto;
.list-item {
......@@ -494,7 +505,7 @@ onMounted(() => {
border-bottom: 1px solid rgba(234, 236, 238, 1);
display: flex;
cursor: pointer;
&:hover{
&:hover {
background: var(--color-bg-hover);
}
.id {
......
......@@ -6,7 +6,7 @@
<div class="layout-main-header-left-box">
<div class="left-box-top">
<div class="icon">
<img :src="summaryInfo.officialUrl" alt="" />
<img :src="summaryInfo.imageUrl" alt="" />
</div>
<div class="info">
<div class="info-box1">{{ summaryInfo.name }}</div>
......@@ -249,7 +249,7 @@ onMounted(() => {
if (route.path === "/decreeLayout/overview/introduction" || route.path === "/decreeLayout/overview/background") {
activeTitle.value = "政令概况";
} else if (route.path === "/decreeLayout/deepDig") {
activeTitle.value = "政令概况";
activeTitle.value = "深度挖掘";
} else {
activeTitle.value = "影响分析";
}
......@@ -349,8 +349,10 @@ onMounted(() => {
height: 64px;
display: flex;
.icon {
width: 64px;
width: 122px;
height: 64px;
border-radius: 4px;
overflow: hidden;
img {
width: 100%;
height: 100%;
......
......@@ -491,7 +491,6 @@ onMounted(() => {
}
}
.left {
margin-left: 160px;
margin-top: 16px;
.box1 {
width: 480px;
......
......@@ -132,7 +132,7 @@
</div>
</div>
<div class="box3-top">
<div class="box3-top-top">
<div class="box3-top-top" @click="handleToInstitution(box3TopData)">
<div class="left">
<img :src="box3TopData.logo ? box3TopData.logo : DefaultIcon2" alt="" />
</div>
......@@ -190,9 +190,9 @@
</el-timeline-item>
</el-timeline>
</div>
<div class="box3-bottom-footer">
<!-- <div class="box3-bottom-footer">
<img src="./assets/images/more-icon.png" alt="" />
</div>
</div> -->
</div>
</div>
</div>
......@@ -202,6 +202,7 @@
<script setup>
import { ref, computed, onMounted } from "vue";
import { useRoute } from "vue-router";
import router from "@/router";
import box1Img from "./assets/images/box1-img.png";
import Box3Logo from "./assets/images/box3-img.png";
import { getDecreeBasicInfo, getDecreeMainContent, getDecreeOrganization } from "@/api/decree/introduction";
......@@ -294,6 +295,7 @@ const box3BtnActiveIndex = ref(0);
const handleClickBox3Btn = (btn, index) => {
box3ActiveBtn.value = btn;
box3BtnActiveIndex.value = index;
box3TopData.value.id = box3Data.value[index].id;
box3TopData.value.logo = box3Data.value[index].url;
box3TopData.value.name = box3Data.value[index].name;
box3TopData.value.eName = box3Data.value[index].ename;
......@@ -311,6 +313,7 @@ const handleClickBox3Btn = (btn, index) => {
const box3Data = ref([]);
const box3TopData = ref({
id: "",
logo: "",
name: "",
eName: "",
......@@ -319,6 +322,17 @@ const box3TopData = ref({
bz: ""
});
// 跳转行政机构主页
const handleToInstitution = item => {
const curRoute = router.resolve({
path: "/institution",
query: {
id: item.id
}
});
window.open(curRoute.href, "_blank");
};
// 机构动态
const eventList = ref([
// {
......@@ -420,10 +434,10 @@ onMounted(() => {
.header-btn-box {
position: absolute;
z-index: 9999;
width: 320px;
width: 325px;
height: 64px;
top: 14px;
right: 84px;
right: 82px;
display: flex;
justify-content: flex-end;
flex-wrap: wrap;
......@@ -431,6 +445,7 @@ onMounted(() => {
white-space: nowrap;
overflow:hidden;
overflow-y: auto;
padding-right: 5px;
.btn {
min-width: min-content;
height: 28px;
......@@ -633,6 +648,7 @@ onMounted(() => {
align-items: center;
margin: 0 auto;
position: relative;
cursor: pointer;
.more {
position: absolute;
right: 17px;
......@@ -666,8 +682,8 @@ onMounted(() => {
}
}
.right {
width: 350px;
margin-left: 22px;
width: 370px;
margin-left: 15px;
.name {
height: 26px;
color: rgba(59, 65, 75, 1);
......@@ -749,18 +765,21 @@ onMounted(() => {
}
}
.box3-bottom-main {
height: 410px;
}
.box3-bottom-footer {
width: 108px;
height: 32px;
margin: 5px auto;
cursor: pointer;
img {
width: 100%;
height: 100%;
}
width: 510px;
height: 440px;
overflow: hidden;
overflow-y: auto;
}
// .box3-bottom-footer {
// width: 108px;
// height: 32px;
// margin: 5px auto;
// cursor: pointer;
// img {
// width: 100%;
// height: 100%;
// }
// }
}
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论