提交 1b14c707 authored 作者: coderBryanFu's avatar coderBryanFu

update

上级 aae510aa
import request from "@/api/request.js";
// 提出背景
/**
* @param {cRelated, currentPage, id, pageSize}
*/
export function getDecreeBackground(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/background/${id}`,
params
})
}
// 相关事件
/**
* @param { id }
*/
export function getDecreeRelatedEvent(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/relateEvent/${id}`,
params
})
}
// 法律依据
/**
* @param { id }
*/
export function getDecreeDepend(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/depend/${id}`,
params
})
}
\ No newline at end of file
import request from "@/api/request.js";
// 最新科技政令
export function getLatestDecree() {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/info`,
})
}
// 风险信号
export function getDecreeRiskSignal() {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/riskSignal`,
})
}
// 行政令发布频度
export function getDecreeYearOrder() {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/yearOrder`,
})
}
// 政令涉及领域
export function getDecreeArea() {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/industry`,
})
}
// 关键行政令
export function getKeyDecree() {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/action`,
})
}
// 政令重点条款
export function getDecreeKeyInstruction() {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/instruction`,
})
}
// 资源库
/**
* @param {currentPage, pageSize, proposeName, researchTypeIds, sortFun, years}
*/
export function getDecreeOrderList(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderOverview/orderList`,
params
})
}
// 左侧行业领域列表
export function getDecreehylyList(params) {
return request({
method: 'GET',
url: `/api/billImpactAnalysis/industry/hylyList`,
params
})
}
\ No newline at end of file
import request from "@/api/request.js";
// 根据政令ID获取领域公司信息
/**
* @param {cRelated, id}
*/
export function getDecreeIndustry(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderImpactAnalysis/industry/${id}`,
params
})
}
// 获取行业领域列表
export function getDecreehylyList(params) {
return request({
method: 'GET',
url: `/api/billImpactAnalysis/industry/hylyList`,
params
})
}
// 根据政行业领域ID获取公司列表
/**
* @param {cRelated, id}
*/
export function getDecreeCompany(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderImpactAnalysis/industry/company/${id}`,
params
})
}
// 获取政令举措落实分析
/**
* @param {id}
*/
export function getDecreeAction(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderImpactAnalysis/action/${id}`,
params
})
}
import request from "@/api/request.js";
// 基本信息
/**
* @param {id}
*/
export function getDecreeBasicInfo(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/basicInfo/${id}`,
params
})
}
// 主要指令
/**
* @param {currentPage, id, pageSize}
*/
export function getDecreeMainContent(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/mainContent/${id}`,
params
})
}
// 执行机构
/**
* @param {id}
*/
export function getDecreeOrganization(params) {
return request({
method: 'GET',
url: `/api/administrativeOrderInfo/organization/${id}`,
params
})
}
\ No newline at end of file
......@@ -6,7 +6,6 @@ import DecreeIntroduction from "@/views/decree/decreeLayout/overview/introductio
import DecreeBackground from "@/views/decree/decreeLayout/overview/background/index.vue";
import DecreeDeepDig from "@/views/decree/decreeLayout/deepdig/index.vue";
import DecreeInfluence from "@/views/decree/decreeLayout/influence/index.vue";
import Institution from "@/views/decree/institution/index.vue"
const decreeRoutes = [
......
import Portal1 from "@/views/portals/portal1/index.vue";
import Portal from "@/views/portals/portal1/index.vue";
import Portal2 from "@/views/portals/portal2/index.vue";
const portalRoutes = [
// 门户
{
path: "/portal1",
name: "portal1",
component: Portal1,
path: "/portal",
name: "portal",
component: Portal,
meta: {
title: "门户"
}
......
差异被折叠。
export const data = [
{
id: 11,
name: "拜登AI芯片出口管制",
info: {
fullName: "推动美国人工智能技术栈出口",
fullNameEn: "Ending Crime and Disorder on America’s Streets",
tags: ["人工智能", "出口管制", "半导体产业", "税收", "光伏产业"],
time: "2025年7月23日",
president: "唐纳德·约翰·特朗普(Donald John Trump)",
orderNum: "第14320号行政命令 (EO 14320)",
period: "签署后90天内建立机制并开始实施"
},
clause: [
{
id: 1,
content: '要求商务部在90天内建立"全栈式"美国AI出口机制。'
},
{
id: 2,
content: '要求每个纳入出口计划的提案必须涵盖完整的"全栈AI技术包"。'
},
{
id: 3,
content: '指示联邦机构提供贷款、担保、股权投资和技术援助支持入选的"优先AI出口包"。'
},
{
id: 4,
content: "要求输出技术必须符合美国出口管制法规,并由多部门对最终用户进行合规与安全联合审查。"
},
{
id: 5,
content: '明确政策目标为"减少对对手国家开发的AI技术的国际依赖"。'
},
{
id: 6,
content: '要求每个纳入出口计划的提案必须涵盖完整的"全栈AI技术包"。'
}
]
},
{
id: 22,
name: "特朗普撤销拜登AI规则",
info: {
fullName: "推动美国人工智能技术栈出口",
fullNameEn: "推动美国人工智能技术栈出口",
tags: ["AI", "出口", "管制"],
time: "2025年7月23日",
president: "唐纳德·约翰·特朗普(Donald John Trump)",
orderNum: "第14320号行政命令 (EO 14320)",
period: "签署后90天内建立机制并开始实施"
},
clause: [
{
id: 1,
content: '要求商务部在90天内建立"全栈式"美国AI出口机制。'
},
{
id: 2,
content: '要求每个纳入出口计划的提案必须涵盖完整的"全栈AI技术包"。'
},
{
id: 3,
content: '指示联邦机构提供贷款、担保、股权投资和技术援助支持入选的"优先AI出口包"。'
},
{
id: 4,
content: "要求输出技术必须符合美国出口管制法规,并由多部门对最终用户进行合规与安全联合审查。"
},
{
id: 5,
content: '明确政策目标为"减少对对手国家开发的AI技术的国际依赖"。'
}
]
},
{
id: 33,
name: "美国AI行动计划",
info: {
fullName: "推动美国人工智能技术栈出口",
fullNameEn: "推动美国人工智能技术栈出口",
tags: ["AI", "出口", "管制"],
time: "2025年7月23日",
president: "唐纳德·约翰·特朗普(Donald John Trump)",
orderNum: "第14320号行政命令 (EO 14320)",
period: "签署后90天内建立机制并开始实施"
},
clause: [
{
id: 1,
content: '要求商务部在90天内建立"全栈式"美国AI出口机制。'
},
{
id: 2,
content: '要求每个纳入出口计划的提案必须涵盖完整的"全栈AI技术包"。'
},
{
id: 3,
content: '指示联邦机构提供贷款、担保、股权投资和技术援助支持入选的"优先AI出口包"。'
},
{
id: 4,
content: "要求输出技术必须符合美国出口管制法规,并由多部门对最终用户进行合规与安全联合审查。"
},
{
id: 5,
content: '明确政策目标为"减少对对手国家开发的AI技术的国际依赖"。'
}
]
},
{
id: 44,
name: "对中国AI芯片限制",
info: {
fullName: "推动美国人工智能技术栈出口",
fullNameEn: "推动美国人工智能技术栈出口",
tags: ["AI", "出口", "管制"],
time: "2025年7月23日",
president: "唐纳德·约翰·特朗普(Donald John Trump)",
orderNum: "第14320号行政命令 (EO 14320)",
period: "签署后90天内建立机制并开始实施"
},
clause: [
{
id: 1,
content: '要求商务部在90天内建立"全栈式"美国AI出口机制。'
},
{
id: 2,
content: '要求每个纳入出口计划的提案必须涵盖完整的"全栈AI技术包"。'
},
{
id: 3,
content: '指示联邦机构提供贷款、担保、股权投资和技术援助支持入选的"优先AI出口包"。'
},
{
id: 4,
content: "要求输出技术必须符合美国出口管制法规,并由多部门对最终用户进行合规与安全联合审查。"
},
{
id: 5,
content: '明确政策目标为"减少对对手国家开发的AI技术的国际依赖"。'
}
]
}
];
差异被折叠。
const getPieChart = (data,colorList) => {
const getPieChart = (data) => {
let option = {
color: colorList,
series: [
{
type: 'pie',
......
const getWordCloudChart = (data) => {
const option = {
grid: {
left: 5,
top: 5,
right: 5,
bottom: 5,
},
series: [
{
type: "wordCloud",
shape: 'circle',
width: '100%',
height: '100%',
// 其他形状你可以使用形状路径
// shape: 'circle', // 示例
// 或者自定义路径
gridSize: 30, // 网格大小,影响词间距。
sizeRange: [15, 40], // 定义词云中文字大小的范围
rotationRange: [0, 0],
rotationStep: 0,
drawOutOfBound: false, // 是否超出画布
shrinkToFit: true, // 是否自动缩小以适应容器
// 字体
textStyle: {
// normal: {
// color: function () {
// return 'rgb(' + [
// Math.round(Math.random() * 160),
// Math.round(Math.random() * 160),
// Math.round(Math.random() * 160)
// ].join(',') + ')';
// }
// },
color: function () {
let colors = [
"rgba(189, 33, 33, 1)",
"rgba(232, 151, 21, 1)",
"rgba(220, 190, 68, 1)",
"rgba(96, 58, 186, 1)",
"rgba(32, 121, 69, 1)",
"rgba(22, 119, 255, 1)",
];
return colors[parseInt(Math.random() * colors.length)];
},
emphasis: {
shadowBlur: 5,
shadowColor: "#333",
},
},
// 设置词云数据
data: data,
},
],
};
return option
}
export default getWordCloudChart
\ No newline at end of file
......@@ -41,7 +41,7 @@
<el-table :data="InnovationRanking" stripe style="width: 100%;padding: 5px 25px;"
:header-cell-style="headerCellStyle">
<el-table-column prop="name" label="创新主体" width="100" />
<el-table-column prop="markValue" align="right">
<el-table-column prop="markValue" align="center">
<template #header>
<div class="custom-header">
<div class="label">市值</div>
......
......@@ -322,7 +322,16 @@ const totalDistribution = ref([
change: "较上月+8",
path: "/innovationSubject",
color: ["#C9AAF0", "#DFCAF6", "#FAF1FF", "#531DAC"]
}
},
{
titlle: "科技人物观点",
value: 58,
text: "51",
unit: "次",
change: "较上月+3",
path: "/technologyFigures",
color: ["#96DFDD", "#BCEFEC", "#E7FFFB", "#006E75"]
},
]);
const startIndex = ref(0);
......
......@@ -21,7 +21,7 @@
</div>
</template>
<div class="panel1Body">
<Echarts :option="mapOption" height="100%" @chart-ready="echarsReady"></Echarts>
<Echarts :option="mapOption" height="90%" @chart-ready="echarsReady"></Echarts>
<div class="countryWrap">
<div class="item" v-for="(item, index) in mapData" :key="index">
<img :src="item.flag" alt="" class="itemIcon" />
......@@ -54,7 +54,7 @@
</el-row>
<el-card class="gap">
<el-row>
<PieProgress v-for="item in List" :data="item" />
<PieProgress v-for="item,index in List" :key="index" :data="item" />
</el-row>
</el-card>
<el-row class="gap">
......@@ -159,7 +159,7 @@
<div class="itemCard2BigTextWrap" :style="{ color: item.bgColor }">
{{ item.title }}
</div>
<div class="itemCard2TextWrap" v-for="(itemText, inde) in item.list" :key="index">
<div class="itemCard2TextWrap" v-for="(itemText, index) in item.list" :key="index">
<div class="temCard2Title">{{ itemText.title }}</div>
<div class="temCard2Text">{{ itemText.text }}</div>
</div>
......@@ -1073,15 +1073,11 @@ function moreClick(n) {
position: relative;
height: 100%;
.countryWrap {
position: absolute;
bottom: 8px;
left: 0;
right: 0;
width: 782px;
width: 840px;
margin: 0 auto;
display: flex;
gap: 10px;
overflow-x: auto;
justify-content: space-between;
.item {
display: flex;
align-items: center;
......
......@@ -74,7 +74,7 @@ export function setChart(option, chartDom) {
chart.setOption(option);
return chart;
};
export function getMapOption(data,levelMap) {
export function getMapOption(data, levelMap) {
echarts.registerMap('world', worldJson);
function convertData(data) {
let res = [];
......@@ -144,7 +144,8 @@ export function getMapOption(data,levelMap) {
map: 'world',
roam: true,
// 地图尺寸为容器宽高较小值的80%
zoom: 1.5,
zoom: 1.15,
top: 0,
center: [31.614149450443932, 20.978078159827206],
// scaleLimit:{
// max:'1.2',
......
......@@ -7,33 +7,41 @@
<img :src="item.avatar" alt="" class="source-library-avatar" />
</div>
<div class="source-library-text-content">
<div style=" width: 240px;">
<div style="width: 240px">
<h3 class="source-library-name">{{ item.name }}</h3>
<p class="source-library-title">{{ item.title }}</p>
<p class="source-library-tag" :style="{
<p
class="source-library-tag"
:style="{
background: item.colorArray[2],
color: item.colorArray[0],
borderColor: item.colorArray[1],
}">{{ item.tag }}</p>
borderColor: item.colorArray[1]
}"
>
{{ item.tag }}
</p>
</div>
</div>
</div>
</div>
<div class="page">
<div class="count">共1205项调查</div>
<el-pagination v-model:current-page="currentPage" :page-size="pageSize" :total="total" layout="prev, pager, next"
background @current-change="handlePageChange" />
<el-pagination
v-model:current-page="currentPage"
:page-size="pageSize"
:total="total"
layout="prev, pager, next"
background
@current-change="handlePageChange"
/>
</div>
</div>
</template>
<script setup>
// 导入数据(建议使用更具语义的变量名)
import sourceLibraryData from '../json/source.json';
import { ref } from 'vue'
import sourceLibraryData from "../json/source.json";
import { ref } from "vue";
const total = ref(1205);
const pageSize = ref(121);
const currentPage = ref(5);
......@@ -42,7 +50,7 @@ const handlePageChange = p => {
};
</script>
<style scoped>
<style lang="scss" scoped>
.source-library-container {
width: 1530px;
margin: 0;
......@@ -55,7 +63,6 @@ const handlePageChange = p => {
gap: 16px 16px;
}
.source-library-card {
width: 388px;
height: 160px;
......@@ -114,7 +121,6 @@ const handlePageChange = p => {
}
.source-library-tag {
/* width: 72px; */
height: 22px;
/* 自动布局 */
......@@ -136,21 +142,19 @@ const handlePageChange = p => {
line-height: 20px;
letter-spacing: 0px;
text-align: left;
}
.page {
width: 1221px;
/* width: 1221px; */
width: 1600px;
height: 40px;
display: flex;
align-items: center;
justify-content: space-between;
margin: 36px 0 0 0;
padding-left: 11px;
.count {
color: rgba(59, 65, 75, 1);
font-family: Microsoft YaHei;
font-size: 16px;
font-weight: 400;
......@@ -158,7 +162,6 @@ const handlePageChange = p => {
letter-spacing: 0px;
text-align: left;
}
}
:deep(.el-pagination) {
......@@ -178,17 +181,12 @@ const handlePageChange = p => {
font-size: 16px;
font-weight: 400;
font-family: "Microsoft YaHei";
}
:deep(.el-pagination.is-background .el-pager li.is-active) {
background-color: #fff;
color: rgba(22, 119, 255, 1);
border-color: rgba(22, 119, 255, 1);
}
:deep(.el-pagination.is-background .el-pager li.is-ellipsis) {
......
......@@ -18,7 +18,7 @@
<div class="search-text">搜索</div>
</div>
</div>
<div class="home-main-header-footer">
<!-- <div class="home-main-header-footer">
<div class="home-main-header-footer-item">
<div class="item-top">843</div>
<div class="item-footer">政府官员</div>
......@@ -35,7 +35,7 @@
<div class="item-top">312</div>
<div class="item-footer">国会议员</div>
</div>
</div>
</div> -->
<div class="home-main-header-btn-box">
<div class="btn" @click="scrollToTop('position1')">
<div class="btn-text">{{ "最新动态" }}</div>
......@@ -1202,7 +1202,7 @@ onMounted(() => {
}
.home-main-footer {
height: 1149px;
height: 1000px;
overflow: hidden;
.home-main-footer-header {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论