提交 9aa0462e authored 作者: coderBryanFu's avatar coderBryanFu

update

上级 199f9d95
import request from "@/api/request.js";
// 头部信息
/**
* @param { id }
*/
export function getGovOrgBasicInfo(params) {
return request({
method: 'GET',
url: `/api/governmentOrg/info/${params.id}`,
params
})
}
// 最新动态
/**
* @param { orgId, cRelated, currentPage, pageSize }
*/
export function getGovOrgLatestDynamics(params) {
return request({
method: 'GET',
url: `/api/governmentOrg/dynamics/${params.orgId}`,
params
})
}
// 基本信息-关键人物
/**
* @param { orgId }
*/
export function getGovOrgKeyPerson(params) {
return request({
method: 'GET',
url: `/api/governmentOrg/person/${params.orgId}`,
params
})
}
// 深度挖掘--------------------------------------------------
// 资助企业情况
/**
* @param { orgId }
*/
export function getGovOrgCompanyArea(params) {
return request({
method: 'GET',
url: `/api/governmentOrg/field/${params.orgId}`,
params
})
}
// 主要科技政策观点
/**
* @param { orgId }
*/
export function getGovOrgOpinions(params) {
return request({
method: 'GET',
url: `/api/governmentOrg/keyWord/${params.orgId}`,
params
})
}
\ No newline at end of file
...@@ -540,7 +540,12 @@ import Message3 from "./assets/images/message-icon3.png"; ...@@ -540,7 +540,12 @@ import Message3 from "./assets/images/message-icon3.png";
// 跳转行政机构主页 // 跳转行政机构主页
const handleToInstitution = item => { const handleToInstitution = item => {
const curRoute = router.resolve("/institution"); const curRoute = router.resolve({
path: "/institution",
query: {
id: item.id
}
});
window.open(curRoute.href, "_blank"); window.open(curRoute.href, "_blank");
}; };
......
...@@ -6,7 +6,7 @@ const getBarChart = (nameList, valueList) => { ...@@ -6,7 +6,7 @@ const getBarChart = (nameList, valueList) => {
tooltip: {}, tooltip: {},
grid: { grid: {
top: '3%', top: '3%',
right: '7%', right: 40,
bottom: '1%', bottom: '1%',
left: '1%', left: '1%',
containLabel: true containLabel: true
...@@ -55,7 +55,7 @@ const getBarChart = (nameList, valueList) => { ...@@ -55,7 +55,7 @@ const getBarChart = (nameList, valueList) => {
barWidth: 8, barWidth: 8,
label: { label: {
show: true, show: true,
position: [355, 0], position: [330, 0],
formatter: function(params) { formatter: function(params) {
return params.value return params.value
} }
......
...@@ -115,15 +115,21 @@ ...@@ -115,15 +115,21 @@
<div class="box4-main-right-main"> <div class="box4-main-right-main">
<div class="box4-main-right-item"> <div class="box4-main-right-item">
<div class="icon"></div> <div class="icon"></div>
<div class="text">{{ '在2016年和2024年的总统竞选中,卢特尼克利用其在金融界的影响力,为特朗普筹集了数千万美元的竞选资金,并个人捐赠了1000万美元。' }}</div> <div class="text">
{{
"在2016年和2024年的总统竞选中,卢特尼克利用其在金融界的影响力,为特朗普筹集了数千万美元的竞选资金,并个人捐赠了1000万美元。"
}}
</div>
</div> </div>
<div class="box4-main-right-item"> <div class="box4-main-right-item">
<div class="icon"></div> <div class="icon"></div>
<div class="text">{{ '提名霍华德·卢特尼克担任商务部长,赋予其直接监督美国贸易代表办公室(USTR)的权力。' }}</div> <div class="text">
{{ "提名霍华德·卢特尼克担任商务部长,赋予其直接监督美国贸易代表办公室(USTR)的权力。" }}
</div>
</div> </div>
<div class="box4-main-right-item"> <div class="box4-main-right-item">
<div class="icon"></div> <div class="icon"></div>
<div class="text">{{ '在接受CBS News采访时强调,特朗普政府的政策“是美国历史上最重要的”。' }}</div> <div class="text">{{ "在接受CBS News采访时强调,特朗普政府的政策“是美国历史上最重要的”。" }}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -146,12 +152,15 @@ ...@@ -146,12 +152,15 @@
<script setup> <script setup>
import { ref, computed, onMounted } from "vue"; import { ref, computed, onMounted } from "vue";
import { useRoute } from "vue-router";
import setChart from "@/utils/setChart"; import setChart from "@/utils/setChart";
import getSankeyChart from "./utils/sankey"; import getSankeyChart from "./utils/sankey";
import getPieChart from "./utils/piechart"; import getPieChart from "./utils/piechart";
import getWordCloudChart from "./utils/worldCloudChart"; import getWordCloudChart from "./utils/worldCloudChart";
import getGraphChart from "./utils/graph"; import getGraphChart from "./utils/graph";
import { getGovOrgCompanyArea, getGovOrgOpinions } from "@/api/institution/index";
import Img from "./assets/images/9.png"; import Img from "./assets/images/9.png";
import Img1 from "./assets/images/1.png"; import Img1 from "./assets/images/1.png";
import Img2 from "./assets/images/2.png"; import Img2 from "./assets/images/2.png";
...@@ -162,6 +171,8 @@ import Img6 from "./assets/images/6.png"; ...@@ -162,6 +171,8 @@ import Img6 from "./assets/images/6.png";
import Img7 from "./assets/images/7.png"; import Img7 from "./assets/images/7.png";
import Img8 from "./assets/images/8.png"; import Img8 from "./assets/images/8.png";
const route = useRoute()
const box1ChartData = ref({ const box1ChartData = ref({
nodes: [ nodes: [
{ {
...@@ -289,6 +300,7 @@ const box1ChartData = ref({ ...@@ -289,6 +300,7 @@ const box1ChartData = ref({
] ]
}); });
// 资助企业情况
const box2ChartData = ref([ const box2ChartData = ref([
{ {
name: "集成电路", name: "集成电路",
...@@ -323,6 +335,29 @@ const box2ChartData = ref([ ...@@ -323,6 +335,29 @@ const box2ChartData = ref([
value: 24 value: 24
} }
]); ]);
const handleGetCompanyArea = async () => {
const params = {
orgId: route.query.id
};
try {
const res = await getGovOrgCompanyArea(params);
console.log("资助企业情况", res);
if (res.code === 200 && res.data) {
box2ChartData.value = res.data.map(item => {
return {
name: item.industry,
value: item.amount
};
});
}
} catch (error) {}
};
const handleBox2 = async () => {
await handleGetCompanyArea();
const box2Chart = getPieChart(box2ChartData.value);
setChart(box2Chart, "box2Chart");
};
const box3ChartData = ref([ const box3ChartData = ref([
{ name: "人工智能(AI)", value: 100 }, { name: "人工智能(AI)", value: 100 },
...@@ -344,6 +379,20 @@ const box3ChartData = ref([ ...@@ -344,6 +379,20 @@ const box3ChartData = ref([
{ name: "不得向中国机构提供援助", value: 62 }, { name: "不得向中国机构提供援助", value: 62 },
{ name: "开展先进生物能源计划", value: 51 } { name: "开展先进生物能源计划", value: 51 }
]); ]);
const handleGetOpinions = async () => {
const params = {
orgId: '50754570da464d0a81a5563dcb61d2ec'
}
try {
const res = await getGovOrgOpinions(params)
console.log('主要科技政策观点', res);
} catch (error) {
}
}
const box4ChartData = ref({ const box4ChartData = ref({
nodes: [ nodes: [
...@@ -371,10 +420,10 @@ const box4ChartData = ref({ ...@@ -371,10 +420,10 @@ const box4ChartData = ref({
}); });
onMounted(() => { onMounted(() => {
handleBox2();
handleGetOpinions()
const box1Chart = getSankeyChart(box1ChartData.value.nodes, box1ChartData.value.links); const box1Chart = getSankeyChart(box1ChartData.value.nodes, box1ChartData.value.links);
setChart(box1Chart, "box1Chart"); setChart(box1Chart, "box1Chart");
const box2Chart = getPieChart(box2ChartData.value);
setChart(box2Chart, "box2Chart");
const box3Chart = getWordCloudChart(box3ChartData.value); const box3Chart = getWordCloudChart(box3ChartData.value);
setChart(box3Chart, "box3Chart"); setChart(box3Chart, "box3Chart");
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="wrap"> <div class="wrap">
<div class="header"> <div class="header">
<div class="header-left"> <div class="header-left">
<img src="@/assets/images/decree-org.png" alt="" /> <img :src="institutionInfo.logo?institutionInfo.logo: DefaultIcon2" alt="" />
</div> </div>
<div class="header-right"> <div class="header-right">
<div class="title">{{ institutionInfo.name }}</div> <div class="title">{{ institutionInfo.name }}</div>
...@@ -42,17 +42,45 @@ ...@@ -42,17 +42,45 @@
<script setup> <script setup>
import { ref, computed, onMounted } from "vue"; import { ref, computed, onMounted } from "vue";
import { useRoute } from "vue-router";
import InsDetail from "./insDetail/index.vue"; import InsDetail from "./insDetail/index.vue";
import Deepdig from "./deepdig/index.vue"; import Deepdig from "./deepdig/index.vue";
import Sanction from "./sanction/index.vue"; import Sanction from "./sanction/index.vue";
import {getGovOrgBasicInfo} from '@/api/institution/index'
import DefaultIcon2 from '@/assets/icons/default-icon2.png'
const route = useRoute()
const institutionInfo = ref({ const institutionInfo = ref({
name: "美国商务部", name: "",
enName: "United States Department of Commerce", enName: "",
desc: "美国联邦政府的重要经济部门,主要职责为国际贸易、进出口管制、经济数据统计及专利商标管理。", desc: "",
tagList: ["实体清单", "232调查", "行政令"] tagList: [],
logo: ''
}); });
const handleGetInfo = async () => {
const params = {
id: route.query.id
}
try {
const res = await getGovOrgBasicInfo(params)
console.log('机构信息', res);
if(res.code === 200 && res.data) {
institutionInfo.value.name = res.data.orgName
institutionInfo.value.enName = res.data.orgNameEn
institutionInfo.value.desc = res.data.orgIntroduction
institutionInfo.value.name = res.data.orgName
}
} catch (error) {
}
}
handleGetInfo()
const activeTabName = ref("机构详情"); const activeTabName = ref("机构详情");
const tabList = ref([ const tabList = ref([
......
...@@ -4,6 +4,15 @@ ...@@ -4,6 +4,15 @@
<div class="box-header"> <div class="box-header">
<div class="header-left"></div> <div class="header-left"></div>
<div class="title">最新动态</div> <div class="title">最新动态</div>
<div class="check-box"><el-checkbox :checked="isCrelated" label="只看涉华动态" /></div>
<div class="header-btn-box">
<div class="btn" :class="{ btnActive: dynamicsName === '机构动态' }" @click="handleClickBtn('机构动态')">
{{ "机构动态" }}
</div>
<div class="btn" :class="{ btnActive: dynamicsName === '主官动态' }" @click="handleClickBtn('主官动态')">
{{ "主官动态" }}
</div>
</div>
<div class="header-right"> <div class="header-right">
<div class="icon"> <div class="icon">
<img src="@/assets/icons/box-header-icon2.png" alt="" /> <img src="@/assets/icons/box-header-icon2.png" alt="" />
...@@ -18,13 +27,14 @@ ...@@ -18,13 +27,14 @@
<div class="line" v-if="index !== curList.length - 1"></div> <div class="line" v-if="index !== curList.length - 1"></div>
<div class="time">{{ item.time }}</div> <div class="time">{{ item.time }}</div>
<div class="icon"> <div class="icon">
<img src="@/assets/images/decree-org.png" alt="" /> <img :src="item.logoUrl ? item.logoUrl : DefaultIcon2" alt="" />
</div> </div>
<div class="info"> <div class="info">
<div class="header"> <div class="header">
<div class="title">{{ item.title }}</div> <div class="title">{{ item.title }}</div>
<div <div
class="type" class="type"
v-if="item.type"
:class="{ :class="{
type1: item.type.status === 2, type1: item.type.status === 2,
type2: item.type.status === 3, type2: item.type.status === 3,
...@@ -36,17 +46,24 @@ ...@@ -36,17 +46,24 @@
</div> </div>
<div class="content">{{ item.content }}</div> <div class="content">{{ item.content }}</div>
<div class="tag-box"> <div class="tag-box">
<div class="tag" v-for="(val, idx) in item.tagList" :key="idx">{{ val }}</div> <div class="tag" v-for="(val, idx) in item.industryList" :key="idx">{{ val }}</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="left-footer"> <div class="left-footer">
<div class="info"> <div class="info">
{{ `共有153项动态` }} {{ `共有${totalNum}项动态` }}
</div> </div>
<div class="page-box"> <div class="page-box">
<el-pagination background layout="prev, pager, next" :total="153" /> <el-pagination
background
layout="prev, pager, next"
@current-change="handleCurrentChange"
:pageSize="pageSize"
:current-page="currentPage"
:total="totalNum"
/>
</div> </div>
</div> </div>
</div> </div>
...@@ -94,9 +111,9 @@ ...@@ -94,9 +111,9 @@
{{ "关键人物:" }} {{ "关键人物:" }}
</div> </div>
<div class="user-content"> <div class="user-content">
<div class="user-item" v-for="(item, index) in basicInfo.keyUser" :key="index"> <div class="user-item" v-for="(item, index) in keyUser" :key="index">
<div class="user-item-left"> <div class="user-item-left">
<img :src="item.img" alt="" /> <img :src="item.avatarUrl" alt="" />
</div> </div>
<div class="user-item-right"> <div class="user-item-right">
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
...@@ -112,12 +129,17 @@ ...@@ -112,12 +129,17 @@
<script setup> <script setup>
import { ref, computed, onMounted } from "vue"; import { ref, computed, onMounted } from "vue";
import { useRoute } from "vue-router";
import Img from "./assets/images/img.png"; import Img from "./assets/images/img.png";
import User1 from "./assets/images/user1.png"; import User1 from "./assets/images/user1.png";
import User2 from "./assets/images/user2.png"; import User2 from "./assets/images/user2.png";
import User3 from "./assets/images/user3.png"; import User3 from "./assets/images/user3.png";
import User4 from "./assets/images/user4.png"; import User4 from "./assets/images/user4.png";
import DefaultIcon2 from "@/assets/icons/default-icon2.png";
import { getGovOrgLatestDynamics, getGovOrgKeyPerson } from "@/api/institution/index";
const route = useRoute()
const basicInfo = ref({ const basicInfo = ref({
image: Img, image: Img,
...@@ -125,142 +147,190 @@ const basicInfo = ref({ ...@@ -125,142 +147,190 @@ const basicInfo = ref({
dizhi: "华盛顿特区宪法大道1401号赫伯特·C·胡佛大楼 ", dizhi: "华盛顿特区宪法大道1401号赫伯特·C·胡佛大楼 ",
zhize: "国际贸易、进出口管制、经济数据统计及专利商标管理", zhize: "国际贸易、进出口管制、经济数据统计及专利商标管理",
xiashujigou: "工业与安全局、国际贸易管理局、专利商标局等", xiashujigou: "工业与安全局、国际贸易管理局、专利商标局等",
zhicaishouduan: "实体清单、军事最终用户清单、​​“301条款”关税、​​“232条款”关税、特别指定国民清单", zhicaishouduan: "实体清单、军事最终用户清单、​​“301条款”关税、​​“232条款”关税、特别指定国民清单"
keyUser: [
{
name: "霍华德·卢特尼克",
img: User1,
position: "部长"
},
{
name: "保罗·达巴尔",
img: User2,
position: "副部长"
},
{
name: "杰弗里·凯斯勒",
img: User3,
position: "工业与安全局局长"
},
{
name: "约翰·斯奎尔斯",
img: User4,
position: "专利商标局局长"
}
]
}); });
const curList = ref([ // 关键人物
{ const keyUser = ref([
title: "美国商务部:宣布对华全面加征100%关税", // {
time: "2025 10月10日", // name: "霍华德·卢特尼克",
content: // avatarUrl: User1,
"特朗普宣布自11月1日起对所有中国进口商品加征100%额外关税,叠加现有关税后总水平可达130%或更高。同时宣布将对“所有关键美国制造软件”实施严格的出口管制。", // position: "部长"
type: { // },
name: "行政令", // {
status: 2 // name: "保罗·达巴尔",
}, // avatarUrl: User2,
tagList: ["人工智能"] // position: "副部长"
}, // },
{ // {
title: "美国商务部:BIS更新“实体清单”", // name: "杰弗里·凯斯勒",
time: "2025 10月4日", // avatarUrl: User3,
content: // position: "工业与安全局局长"
"美国商务部工业与安全局公布对中国半导体出口管制措施新规则,将140家中国半导体公司列入“实体清单”,分别是136家中国实体和4家海外关联企业。", // },
type: { // {
name: "实体清单", // name: "约翰·斯奎尔斯",
status: 4 // avatarUrl: User4,
}, // position: "专利商标局局长"
tagList: ["集成电路"] // }
},
{
title: "美国商务部:​出台“50%穿透规则”(关联方规则)",
time: "2025 9月29日",
content:
"规定凡被列入“实体清单”或“军事最终用户清单”的企业,其直接或间接持股超过50%的子公司将自动受到同等出口管制限制。此规则极大地扩大了制裁范围,且未设过渡期。",
type: {
name: "行政令",
status: 2
},
tagList: ["生物科技"]
},
{
title: "美国商务部:对华港口设备加征高额关税",
time: "2025 9月21日",
content:
"美国贸易代表办公室(USTR)公告,作为“301条款”行动的一部分,对特定中国制造的港口设备加征额外关税,其中船到岸起重机(STS)和集装箱底盘车及零部件均加征100%关税,于11月9日生效。",
type: {
name: "301调查",
status: 3
},
tagList: ["先进制造"]
},
{
title: "美国商务部:BIS更新“实体清单”",
time: "2025 9月15日",
content:
"美国商务部工业和安全局宣布更新《出口管理条例》(EAR),并发布两项最终规则,将25家中国企业及其相关实体列入实体清单。",
type: {
name: "实体清单",
status: 4
},
tagList: ["集成电路"]
},
{
title: "美国商务部:BIS更新“实体清单”",
time: "2025 9月15日",
content:
"美国商务部工业和安全局宣布更新《出口管理条例》(EAR),并发布两项最终规则,将25家中国企业及其相关实体列入实体清单。",
type: {
name: "实体清单",
status: 4
},
tagList: ["集成电路"]
},
{
title: "美国商务部:加强对华AI芯片出口限制",
time: "2025 9月10日",
content:
"美国政府要求英特尔、AMD、英伟达等公司对向中国出口的先进AI处理器实施严格的许可证制度。英特尔Gaudi系列芯片等因性能超标明确受限。同时,考虑对中国AI初创企业DeepSeek实施制裁。",
type: {
name: "行政令",
status: 2
},
tagList: ["人工智能", "集成电路"]
},
{
title: "美国商务部:BIS更新“实体清单”",
time: "2025 9月15日",
content:
"美国商务部工业和安全局宣布更新《出口管理条例》(EAR),并发布两项最终规则,将25家中国企业及其相关实体列入实体清单。",
type: {
name: "实体清单",
status: 4
},
tagList: ["集成电路"]
},
{
title: "美国商务部:​发布针对中国网联汽车的禁令",
time: "2025 8月25日",
content: "美国商务部工业与安全局(BIS)发布一项最终规则,禁止涉及销售或进口其认定软件与中国有关联的联网汽车的交易。",
type: {
name: "行政令",
status: 2
},
tagList: ["能源", "先进制造"]
},
{
title: "美国商务部:考虑对中国无人机实施新限制",
time: "2025 8月19日",
content:
"美国商务部表示正在考虑制定新规则,以限制或禁止中国无人机在美国境内使用,并就所谓“保护无人机供应链”的潜在规则征求公众意见。",
type: {
name: "行政令",
status: 2
},
tagList: ["先进制造"]
}
]); ]);
const handleGetKeyUser = async () => {
const params = {
orgId: route.query.id
};
try {
const res = await getGovOrgKeyPerson(params);
console.log("关键人物", res);
keyUser.value = res.data;
} catch (error) {}
};
handleGetKeyUser();
// const curList = ref([
// {
// title: "美国商务部:宣布对华全面加征100%关税",
// time: "2025 10月10日",
// content:
// "特朗普宣布自11月1日起对所有中国进口商品加征100%额外关税,叠加现有关税后总水平可达130%或更高。同时宣布将对“所有关键美国制造软件”实施严格的出口管制。",
// type: {
// name: "行政令",
// status: 2
// },
// tagList: ["人工智能"]
// },
// {
// title: "美国商务部:BIS更新“实体清单”",
// time: "2025 10月4日",
// content:
// "美国商务部工业与安全局公布对中国半导体出口管制措施新规则,将140家中国半导体公司列入“实体清单”,分别是136家中国实体和4家海外关联企业。",
// type: {
// name: "实体清单",
// status: 4
// },
// tagList: ["集成电路"]
// },
// {
// title: "美国商务部:​出台“50%穿透规则”(关联方规则)",
// time: "2025 9月29日",
// content:
// "规定凡被列入“实体清单”或“军事最终用户清单”的企业,其直接或间接持股超过50%的子公司将自动受到同等出口管制限制。此规则极大地扩大了制裁范围,且未设过渡期。",
// type: {
// name: "行政令",
// status: 2
// },
// tagList: ["生物科技"]
// },
// {
// title: "美国商务部:对华港口设备加征高额关税",
// time: "2025 9月21日",
// content:
// "美国贸易代表办公室(USTR)公告,作为“301条款”行动的一部分,对特定中国制造的港口设备加征额外关税,其中船到岸起重机(STS)和集装箱底盘车及零部件均加征100%关税,于11月9日生效。",
// type: {
// name: "301调查",
// status: 3
// },
// tagList: ["先进制造"]
// },
// {
// title: "美国商务部:BIS更新“实体清单”",
// time: "2025 9月15日",
// content:
// "美国商务部工业和安全局宣布更新《出口管理条例》(EAR),并发布两项最终规则,将25家中国企业及其相关实体列入实体清单。",
// type: {
// name: "实体清单",
// status: 4
// },
// tagList: ["集成电路"]
// },
// {
// title: "美国商务部:BIS更新“实体清单”",
// time: "2025 9月15日",
// content:
// "美国商务部工业和安全局宣布更新《出口管理条例》(EAR),并发布两项最终规则,将25家中国企业及其相关实体列入实体清单。",
// type: {
// name: "实体清单",
// status: 4
// },
// tagList: ["集成电路"]
// },
// {
// title: "美国商务部:加强对华AI芯片出口限制",
// time: "2025 9月10日",
// content:
// "美国政府要求英特尔、AMD、英伟达等公司对向中国出口的先进AI处理器实施严格的许可证制度。英特尔Gaudi系列芯片等因性能超标明确受限。同时,考虑对中国AI初创企业DeepSeek实施制裁。",
// type: {
// name: "行政令",
// status: 2
// },
// tagList: ["人工智能", "集成电路"]
// },
// {
// title: "美国商务部:BIS更新“实体清单”",
// time: "2025 9月15日",
// content:
// "美国商务部工业和安全局宣布更新《出口管理条例》(EAR),并发布两项最终规则,将25家中国企业及其相关实体列入实体清单。",
// type: {
// name: "实体清单",
// status: 4
// },
// tagList: ["集成电路"]
// },
// {
// title: "美国商务部:​发布针对中国网联汽车的禁令",
// time: "2025 8月25日",
// content: "美国商务部工业与安全局(BIS)发布一项最终规则,禁止涉及销售或进口其认定软件与中国有关联的联网汽车的交易。",
// type: {
// name: "行政令",
// status: 2
// },
// tagList: ["能源", "先进制造"]
// },
// {
// title: "美国商务部:考虑对中国无人机实施新限制",
// time: "2025 8月19日",
// content:
// "美国商务部表示正在考虑制定新规则,以限制或禁止中国无人机在美国境内使用,并就所谓“保护无人机供应链”的潜在规则征求公众意见。",
// type: {
// name: "行政令",
// status: 2
// },
// tagList: ["先进制造"]
// }
// ]);
const dynamicsName = ref("机构动态");
const isCrelated = ref(false);
const currentPage = ref(1);
const pageSize = ref(10);
// 处理页码改变事件
const handleCurrentChange = page => {
currentPage.value = page;
};
const latestDynamicsList = ref([]);
const totalNum = ref(0);
const curList = computed(() => {
const startIndex = (currentPage.value - 1) * pageSize.value;
const endIndex = startIndex + pageSize.value;
return latestDynamicsList.value.slice(startIndex, endIndex);
});
const handleClickBtn = name => {
dynamicsName.value = name;
};
const handleGetLatestDynamics = async () => {
const params = {
orgId: route.query.id,
cRelated: isCrelated.value ? "Y" : "N",
currentPage: 1,
pageSize: 9999999
};
try {
const res = await getGovOrgLatestDynamics(params);
console.log("最新动态", res);
if (res.code === 200 && res.data) {
latestDynamicsList.value = res.data.content;
totalNum.value = res.data.totalElements;
}
} catch (error) {}
};
handleGetLatestDynamics();
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -295,10 +365,15 @@ const curList = ref([ ...@@ -295,10 +365,15 @@ const curList = ref([
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;
} }
.check-box {
position: absolute;
top: 15px;
right: 275px;
}
.header-btn-box { .header-btn-box {
position: absolute; position: absolute;
top: 14px; top: 14px;
right: 52px; right: 91px;
display: flex; display: flex;
.btn { .btn {
margin-left: 8px; margin-left: 8px;
...@@ -367,10 +442,11 @@ const curList = ref([ ...@@ -367,10 +442,11 @@ const curList = ref([
} }
.left { .left {
width: 1064px; width: 1064px;
height: 1683px; max-height: 1683px;
.left-main { .left-main {
border-top: 1px solid rgba(234, 236, 238, 1); border-top: 1px solid rgba(234, 236, 238, 1);
height: 1551px; max-height: 1551px;
min-height: 660px;
.left-main-item { .left-main-item {
display: flex; display: flex;
margin-top: 16px; margin-top: 16px;
...@@ -437,12 +513,19 @@ const curList = ref([ ...@@ -437,12 +513,19 @@ const curList = ref([
} }
} }
.content { .content {
height: 100px;
overflow: hidden;
margin-top: 8px; margin-top: 8px;
color: rgba(95, 101, 108, 1); color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
line-height: 24px; line-height: 24px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4; /* 控制显示的行数 */
overflow: hidden;
text-overflow: ellipsis;
} }
.tag-box { .tag-box {
margin-top: 9px; margin-top: 9px;
...@@ -464,7 +547,8 @@ const curList = ref([ ...@@ -464,7 +547,8 @@ const curList = ref([
} }
} }
.left-footer { .left-footer {
height: 75px; margin-top: 10px;
height: 65px;
border-top: 1px solid rgba(234, 236, 238, 1); border-top: 1px solid rgba(234, 236, 238, 1);
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
...@@ -530,19 +614,24 @@ const curList = ref([ ...@@ -530,19 +614,24 @@ const curList = ref([
text-align: left; text-align: left;
} }
.user-content { .user-content {
height: 120px;
margin-top: 19px; margin-top: 19px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 16px 39px; gap: 16px 20px;
justify-content: center; justify-content: flex-start;
overflow: hidden;
overflow-y: auto;
.user-item { .user-item {
width: 185px; width: 200px;
height: 49px; height: 49px;
display: flex; display: flex;
gap: 8px; gap: 8px;
.user-item-left { .user-item-left {
width: 48px; width: 48px;
height: 48px; height: 48px;
border-radius: 24px;
overflow: hidden;
img { img {
width: 100%; width: 100%;
height: 100%; height: 100%;
...@@ -550,6 +639,8 @@ const curList = ref([ ...@@ -550,6 +639,8 @@ const curList = ref([
} }
.user-item-right { .user-item-right {
.name { .name {
width: 142px;
height: 24px; height: 24px;
color: rgba(59, 65, 75, 1); color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
...@@ -558,6 +649,9 @@ const curList = ref([ ...@@ -558,6 +649,9 @@ const curList = ref([
line-height: 24px; line-height: 24px;
letter-spacing: 0px; letter-spacing: 0px;
text-align: left; text-align: left;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.position { .position {
height: 24px; height: 24px;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论