提交 b86e5c64 authored 作者: 张烨's avatar 张烨

feat:市场准入限制模块修改

上级 4d67858d
...@@ -7,28 +7,6 @@ ...@@ -7,28 +7,6 @@
<SearchContainer style="margin-bottom: 0; margin-top: 48px; height: fit-content" v-if="containerRef" <SearchContainer style="margin-bottom: 0; margin-top: 48px; height: fit-content" v-if="containerRef"
placeholder="搜索政令" :containerRef="containerRef" areaName="政令" /> placeholder="搜索政令" :containerRef="containerRef" areaName="政令" />
</div> </div>
<!-- <div class="home-main-header-footer" v-show="!isShow">
<div class="home-main-header-footer-item">
<div class="item-top">3.8T</div>
<div class="item-footer">数据量</div>
</div>
<div class="home-main-header-footer-item">
<div class="item-top">28</div>
<div class="item-footer">科技动向</div>
</div>
<div class="home-main-header-footer-item">
<div class="item-top">326</div>
<div class="item-footer">总统政令</div>
</div>
<div class="home-main-header-footer-item">
<div class="item-top">341</div>
<div class="item-footer">通过法案</div>
</div>
<div class="home-main-header-footer-item">
<div class="item-top">285</div>
<div class="item-footer">分析报告</div>
</div>
</div> -->
<SummaryCardsPanel <SummaryCardsPanel
descriptionText="近期美国各联邦政府机构发布涉华政令数量汇总" descriptionText="近期美国各联邦政府机构发布涉华政令数量汇总"
:cards="keyOrganizationCards" :cards="keyOrganizationCards"
...@@ -263,18 +241,7 @@ ...@@ -263,18 +241,7 @@
</div> </div>
<div style="flex: auto;"></div> <div style="flex: auto;"></div>
<el-checkbox @change="getDecreeList(1)" v-model="box9Params.isCN">只看涉华政令</el-checkbox> <el-checkbox @change="getDecreeList(1)" v-model="box9Params.isCN">只看涉华政令</el-checkbox>
<div class="select-box"> <TimeSortSelectBox style="margin-left:12px;" @handle-px-change="handlePxChange"></TimeSortSelectBox>
<el-select v-model="box9Params.sortFun" @change="getDecreeList(1)" style="width:166px; margin-left:8px;">
<template #prefix>
<div class="icon1">
<img v-if="box9Params.sortFun=='1'" src="@/assets/icons/shengxu1.png" alt="" />
<img v-else src="@/assets/icons/jiangxu1.png" alt="" />
</div>
</template>
<el-option label="发布时间正序" value="1" />
<el-option label="发布时间倒序" value="0" />
</el-select>
</div>
</div> </div>
<div class="home-main-footer-main"> <div class="home-main-footer-main">
<div class="left"> <div class="left">
...@@ -313,9 +280,9 @@ ...@@ -313,9 +280,9 @@
</div> </div>
<div class="select-main"> <div class="select-main">
<el-checkbox-group class="checkbox-group" v-model="activePubTime" @change="handlePubTimeChange"> <el-checkbox-group class="checkbox-group" v-model="activePubTime" @change="handlePubTimeChange">
<el-checkbox label="" class="filter-checkbox">{{ "全部时间" }}</el-checkbox> <el-checkbox class="filter-checkbox" label="">{{ "全部时间" }}</el-checkbox>
<el-checkbox v-for="time in pubTime" :key="time.id" :label="time.id" class="filter-checkbox"> <el-checkbox class="filter-checkbox" v-for="time in pubTime" :key="time.value" :label="time.value">
{{ time.name }} {{ time.label }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
...@@ -387,6 +354,7 @@ import WordCloudChart from "@/components/base/WordCloundChart/index.vue" ...@@ -387,6 +354,7 @@ import WordCloudChart from "@/components/base/WordCloundChart/index.vue"
import SimplePagination from "@/components/SimplePagination.vue"; import SimplePagination from "@/components/SimplePagination.vue";
import SummaryCardsPanel from "@/components/base/SummaryCardsPanel/index.vue"; import SummaryCardsPanel from "@/components/base/SummaryCardsPanel/index.vue";
import AiReport from '@/views/marketAccessRestrictions/marketAccessHome/com/AiReport.vue'; import AiReport from '@/views/marketAccessRestrictions/marketAccessHome/com/AiReport.vue';
import TimeSortSelectBox from '@/components/base/TimeSortSelectBox/index.vue';
import TipTab from "@/components/base/TipTab/index.vue" import TipTab from "@/components/base/TipTab/index.vue"
import { import {
getDepartmentList, getDepartmentList,
...@@ -911,16 +879,8 @@ const handleToSocialDetail = item => { ...@@ -911,16 +879,8 @@ const handleToSocialDetail = item => {
window.open(route.href, "_blank"); window.open(route.href, "_blank");
}; };
const pubTime = ref([ const pubTime = getNearYearList(7);
{ id: "2026", name: "2026年" }, const activePubTime = ref([pubTime[0].value]);
{ id: "2025", name: "2025年" },
{ id: "2024", name: "2024年" },
{ id: "2023", name: "2023年" },
{ id: "2022", name: "2022年" },
{ id: "2021", name: "2021年" },
{ id: "2020", name: "2020年" }
]);
const activePubTime = ref(["2026"]);
// 处理发布时间全选逻辑 // 处理发布时间全选逻辑
const handlePubTimeChange = (event) => { const handlePubTimeChange = (event) => {
if (event.length && event[event.length-1] !== "") { if (event.length && event[event.length-1] !== "") {
...@@ -958,11 +918,15 @@ const totalDecreesNum = ref(0); ...@@ -958,11 +918,15 @@ const totalDecreesNum = ref(0);
const decreeList = ref([]); const decreeList = ref([]);
// 科技政令库 // 科技政令库
const handlePxChange = (event) => {
box9Params.sortFun = event - 1;
getDecreeList(1)
};
const box9Params = reactive({ const box9Params = reactive({
page: 1, page: 1,
size: 10, size: 10,
name: '', name: '',
sortFun: '0', sortFun: 0,
isCN: false, isCN: false,
loading: false, loading: false,
}) })
...@@ -2075,30 +2039,6 @@ onMounted(async () => { ...@@ -2075,30 +2039,6 @@ onMounted(async () => {
.search-box { .search-box {
width: 360px; width: 360px;
} }
.select-box {
margin-left: 10px;
height: 42px;
box-sizing: border-box;
padding: 5px 0;
.icon1 {
width: 11px;
height: 14px;
font-size: 0px;
img {
width: 100%;
height: 100%;
}
}
:deep(.el-select__selected-item) {
text-align: center;
font-size: 16px;
font-family: Microsoft YaHei;
}
}
} }
.home-main-footer-main { .home-main-footer-main {
......
<template> <template>
<AnalysisBox :title="props.title" :showAllBtn="false" height="auto"> <AnalysisBox :title="props.title" :showAllBtn="false" height="auto">
<div class="box-main"> <div class="box-main">
<el-empty v-if="!props.listData?.length" description="暂无数据" :image-size="200" /> <el-empty v-if="!props.listData?.length" description="暂无数据" :image-size="100" />
<div v-for="(item, index) in props.listData" :key="index" class="box-item"> <div v-for="(item, index) in props.listData" :key="index" class="box-item">
<div class="item-tag" :class="getClassName(item)">{{ item.TYPE }}</div> <div class="item-tag" :class="getClassName(item)">{{ item.TYPE }}</div>
<div class="item-right" @click="onNavigateTo(item)"> <div class="item-right" @click="onNavigateTo(item)">
......
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<DivideHeader id="position3" class="divide-header" :titleText="'全景概览'"></DivideHeader> <DivideHeader id="position3" class="divide-header" :titleText="'全景概览'"></DivideHeader>
<div class="center-footer"> <div class="center-footer">
<div class="box5"> <div class="box5" v-loading="box5Loading">
<OverviewNormalBox title="数量变化趋势" width="auto" height="100%"> <OverviewNormalBox title="数量变化趋势" width="auto" height="100%">
<template #header-icon> <template #header-icon>
<img style="width: 100%; height: 100%;" src="./assets/icons/icon2.svg" alt="" /> <img style="width: 100%; height: 100%;" src="./assets/icons/icon2.svg" alt="" />
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
</div> </div>
</OverviewNormalBox> </OverviewNormalBox>
</div> </div>
<div class="box6"> <div class="box6" v-loading="box6Loading">
<OverviewNormalBox title="领域分布情况" width="auto" height="100%"> <OverviewNormalBox title="领域分布情况" width="auto" height="100%">
<template #header-icon> <template #header-icon>
<img style="width: 100%; height: 100%;" src="./assets/icons/icon3.svg" alt="" /> <img style="width: 100%; height: 100%;" src="./assets/icons/icon3.svg" alt="" />
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
</div> </div>
</div> </div>
<div class="center-footer1"> <div class="center-footer1">
<div class="box7"> <div class="box7" v-loading="box7Loading">
<OverviewNormalBox title="国家分布情况" width="auto" height="100%"> <OverviewNormalBox title="国家分布情况" width="auto" height="100%">
<template #header-icon> <template #header-icon>
<img style="width: 100%; height: 100%;" src="./assets/icons/icon4.svg" alt="" /> <img style="width: 100%; height: 100%;" src="./assets/icons/icon4.svg" alt="" />
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
</div> </div>
</OverviewNormalBox> </OverviewNormalBox>
</div> </div>
<div class="box8"> <div class="box8" v-loading="box8Loading">
<OverviewNormalBox title="结果分布情况" width="auto" height="100%"> <OverviewNormalBox title="结果分布情况" width="auto" height="100%">
<template #header-icon> <template #header-icon>
<img style="width: 100%; height: 100%" src="./assets/icons/icon5.svg" alt="" /> <img style="width: 100%; height: 100%" src="./assets/icons/icon5.svg" alt="" />
...@@ -204,8 +204,9 @@ ...@@ -204,8 +204,9 @@
</div> </div>
<div class="left-main"> <div class="left-main">
<el-checkbox-group class="check-list" v-model="checkedYearList" @change="handleCheckedYearsChange"> <el-checkbox-group class="check-list" v-model="checkedYearList" @change="handleCheckedYearsChange">
<el-checkbox class="check-item" v-for="item in surveyYearList" :key="item.id" :label="item.id"> <el-checkbox class="check-item" label="">全部时间</el-checkbox>
{{ item.name }} <el-checkbox class="check-item" v-for="item in nearYearList" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
...@@ -287,7 +288,7 @@ import { navigateToViewRiskSignal } from "@/utils/riskSignalOverviewNavigate"; ...@@ -287,7 +288,7 @@ import { navigateToViewRiskSignal } from "@/utils/riskSignalOverviewNavigate";
import createLineChart from "@/views/marketAccessRestrictions/utils/baseLineChart.js"; import createLineChart from "@/views/marketAccessRestrictions/utils/baseLineChart.js";
import createPieChart from "@/views/marketAccessRestrictions/utils/basePiechart.js"; import createPieChart from "@/views/marketAccessRestrictions/utils/basePiechart.js";
import getRadarChart from "./utils/radarChart"; import getRadarChart from "./utils/radarChart";
import getBarChart from "./utils/barChart1"; import getBarChart from "@/views/marketAccessRestrictions/marketAccessHome/utils/barChart1.js";
import AiReport from '@/views/marketAccessRestrictions/marketAccessHome/com/AiReport.vue'; import AiReport from '@/views/marketAccessRestrictions/marketAccessHome/com/AiReport.vue';
import { getPersonSummaryInfo } from "@/api/common/index"; import { getPersonSummaryInfo } from "@/api/common/index";
...@@ -316,6 +317,11 @@ const refAiReport6 = ref(null) ...@@ -316,6 +317,11 @@ const refAiReport6 = ref(null)
const refAiReport7 = ref(null) const refAiReport7 = ref(null)
const refAiReport8 = ref(null) const refAiReport8 = ref(null)
const box5Loading = ref(false);
const box6Loading = ref(false);
const box7Loading = ref(false);
const box8Loading = ref(false);
const handleToPosi = id => { const handleToPosi = id => {
const element = document.getElementById(id); const element = document.getElementById(id);
if (element && containerRef.value) { if (element && containerRef.value) {
...@@ -627,6 +633,7 @@ const box5Ref = ref(null) ...@@ -627,6 +633,7 @@ const box5Ref = ref(null)
const box5Active = ref(1); const box5Active = ref(1);
const hadleGetStatNum = async (event) => { const hadleGetStatNum = async (event) => {
if (event) box5Active.value = event; if (event) box5Active.value = event;
box5Loading.value = true;
try { try {
let byYorM = box5Active.value let byYorM = box5Active.value
const res = await getStatNum({byYorM}); const res = await getStatNum({byYorM});
...@@ -655,6 +662,7 @@ const hadleGetStatNum = async (event) => { ...@@ -655,6 +662,7 @@ const hadleGetStatNum = async (event) => {
} }
refAiReport5.value?.onDataInfo({ type: "折线图", name: "数量变化趋势", data: box5ChartData.value }) refAiReport5.value?.onDataInfo({ type: "折线图", name: "数量变化趋势", data: box5ChartData.value })
nextTick(() => { createLineChart(box5Ref, box5ChartData.value) }) nextTick(() => { createLineChart(box5Ref, box5ChartData.value) })
box5Loading.value = false;
}; };
// 领域分布情况 // 领域分布情况
...@@ -672,11 +680,9 @@ const box6Data = ref({ ...@@ -672,11 +680,9 @@ const box6Data = ref({
maxNum: 0 maxNum: 0
}); });
const handleGetStatArea = async () => { const handleGetStatArea = async () => {
const params = { box6Loading.value = true;
years: box6SelectedYear.value
};
try { try {
const res = await getStatArea(params); const res = await getStatArea({years: box6SelectedYear.value});
console.log("领域分布情况", res); console.log("领域分布情况", res);
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
const arr = res.data.map(item => item.areaname); const arr = res.data.map(item => item.areaname);
...@@ -735,6 +741,7 @@ const handleGetStatArea = async () => { ...@@ -735,6 +741,7 @@ const handleGetStatArea = async () => {
box6Data.value.maxNum = 0; box6Data.value.maxNum = 0;
} }
refAiReport6.value?.onDataInfo({ type: "雷达图", name: "领域分布情况", data: box6Data.value }) refAiReport6.value?.onDataInfo({ type: "雷达图", name: "领域分布情况", data: box6Data.value })
box6Loading.value = false;
}; };
const handleBox6 = async () => { const handleBox6 = async () => {
await handleGetStatArea(); await handleGetStatArea();
...@@ -757,12 +764,12 @@ const box7TipText = computed(() => { ...@@ -757,12 +764,12 @@ const box7TipText = computed(() => {
return "" return ""
}) })
const handleGetBox7Data = async () => { const handleGetBox7Data = async () => {
const params = { box7Loading.value = true
sortCode: box7SelectedSurvey.value,
years: box7SelectedYear.value
};
try { try {
const res = await getSearchCountry(params); const res = await getSearchCountry({
sortCode: box7SelectedSurvey.value,
years: box7SelectedYear.value
});
console.log("国家分布情况", res); console.log("国家分布情况", res);
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
box7Data.title = res.data.map(item => { box7Data.title = res.data.map(item => {
...@@ -783,6 +790,7 @@ const handleGetBox7Data = async () => { ...@@ -783,6 +790,7 @@ const handleGetBox7Data = async () => {
box7Data.data = []; box7Data.data = [];
} }
refAiReport7.value?.onDataInfo({ type: "柱状图", name: "国家分布情况", data: box7Data }) refAiReport7.value?.onDataInfo({ type: "柱状图", name: "国家分布情况", data: box7Data })
box7Loading.value = false;
}; };
const handleBox7 = async () => { const handleBox7 = async () => {
...@@ -807,6 +815,7 @@ const box8TipText = computed(() => { ...@@ -807,6 +815,7 @@ const box8TipText = computed(() => {
return "" return ""
}) })
const handleGetBox8Data = async () => { const handleGetBox8Data = async () => {
box8Loading.value = true;
try { try {
const res = await getSearchResult({sortCode: box8SelectedSurvey.value}); const res = await getSearchResult({sortCode: box8SelectedSurvey.value});
console.log("结果分布情况", res); console.log("结果分布情况", res);
...@@ -820,6 +829,7 @@ const handleGetBox8Data = async () => { ...@@ -820,6 +829,7 @@ const handleGetBox8Data = async () => {
} }
refAiReport8.value?.onDataInfo({ type: "环形图", name: "结果分布情况", data: box8Data.value }) refAiReport8.value?.onDataInfo({ type: "环形图", name: "结果分布情况", data: box8Data.value })
nextTick(() => { createPieChart(box8Ref, box8Data.value) }) nextTick(() => { createPieChart(box8Ref, box8Data.value) })
box8Loading.value = false;
}; };
// 资源库 // 资源库
...@@ -845,25 +855,14 @@ const handleClickCate = item => { ...@@ -845,25 +855,14 @@ const handleClickCate = item => {
handleFetchSurveyList(); handleFetchSurveyList();
}; };
const releaseTimeList = ref([
{ label: "按发布时间倒序", value: true },
{ label: "按发布时间升序", value: false }
]);
const isSort = ref(true); const isSort = ref(true);
const handlePxChange = (event) => { const handlePxChange = (event) => {
isSort.value = event; isSort.value = event == 1;
currentPage.value = 1; currentPage.value = 1;
handleFetchSurveyList(); handleFetchSurveyList();
}; };
const surveyYearList = ref([ const nearYearList = getNearYearList(7);
{ name: "全部时间", id: "" },
{ name: "2025年", id: "2025" },
{ name: "2024年", id: "2024" },
{ name: "2023年", id: "2023" },
{ name: "2022年", id: "2022" },
{ name: "2021年", id: "2021" }
]);
const checkedYearList = ref(['']); const checkedYearList = ref(['']);
const handleCheckedYearsChange = event => { const handleCheckedYearsChange = event => {
if (event.length && event[event.length-1] !== "") { if (event.length && event[event.length-1] !== "") {
......
...@@ -83,13 +83,8 @@ const getBarChart = (nameList, valueList) => { ...@@ -83,13 +83,8 @@ const getBarChart = (nameList, valueList) => {
xAxis: index, xAxis: index,
yAxis: valueList[index], yAxis: valueList[index],
symbol: `image://${item.img}`, symbol: `image://${item.img}`,
symbolSize: 20, symbolSize: [20, 20],
symbolCircle: 20, symbolOffset: [0, 10]
itemStyle: {
borderRadius: '50%',
borderColor: '#fff',
borderWidth: 2
}
}); });
}); });
return data; return data;
......
const getRadarChart = (data) => { const getRadarChart = (data) => {
// const indicators = [
// { name: "集成电路", max: 10 },
// { name: "能源领域", max: 10 },
// { name: "量子科技", max: 10 },
// { name: "通信网络", max: 10 },
// { name: "人工智能", max: 10 },
// { name: "生物科技", max: 10 }
// ];
const indicators = data.title.map(item => { const indicators = data.title.map(item => {
return { return {
name: item, max: data.maxNum name: item, max: data.maxNum
} }
}) })
const data337 = [9, 6, 6, 6, 9, 7];
const data301 = [5, 3, 7, 8, 7, 9];
const data232 = [4, 10, 3, 4, 2, 5];
const option = { const option = {
color: ["rgba(5, 95, 194, 1)", "rgba(250, 140, 22, 1)", "rgba(146, 84, 222, 1)"], color: ["rgba(5, 95, 194, 1)", "rgba(250, 140, 22, 1)", "rgba(146, 84, 222, 1)"],
legend: { legend: {
top: 8, top: 8,
left: 30, left: 'center',
icon: "circle", icon: "circle",
itemWidth: 12, itemWidth: 12,
itemHeight: 12, itemHeight: 12,
......
...@@ -90,7 +90,7 @@ const filterParty = ref(""); ...@@ -90,7 +90,7 @@ const filterParty = ref("");
const filterReason = ref(""); const filterReason = ref("");
const isSort = ref(true); const isSort = ref(true);
const handlePxChange = (event) => { const handlePxChange = (event) => {
isSort.value = event; isSort.value = event == 1;
currentPage.value = 1; currentPage.value = 1;
handleFetchSurveyList(); handleFetchSurveyList();
}; };
...@@ -283,6 +283,7 @@ onMounted(async () => { ...@@ -283,6 +283,7 @@ onMounted(async () => {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-size: 16px; font-size: 16px;
color: var(--text-primary-65-color); color: var(--text-primary-65-color);
font-weight: 400;
} }
} }
} }
......
...@@ -64,7 +64,7 @@ import TimeSortSelectBox from '@/components/base/TimeSortSelectBox/index.vue'; ...@@ -64,7 +64,7 @@ import TimeSortSelectBox from '@/components/base/TimeSortSelectBox/index.vue';
const searchText = ref(''); // 搜索文本 const searchText = ref(''); // 搜索文本
const isSort = ref(true); const isSort = ref(true);
const handlePxChange = (event) => { const handlePxChange = (event) => {
isSort.value = event; isSort.value = event == 1;
currentPage.value = 1; currentPage.value = 1;
handleFetchSurveyList(); handleFetchSurveyList();
}; };
...@@ -248,6 +248,7 @@ onMounted(async () => { ...@@ -248,6 +248,7 @@ onMounted(async () => {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-size: 16px; font-size: 16px;
color: var(--text-primary-65-color); color: var(--text-primary-65-color);
font-weight: 400;
} }
} }
} }
......
...@@ -93,7 +93,7 @@ const filterParty = ref(""); ...@@ -93,7 +93,7 @@ const filterParty = ref("");
const filterReason = ref(""); const filterReason = ref("");
const isSort = ref(true); const isSort = ref(true);
const handlePxChange = (event) => { const handlePxChange = (event) => {
isSort.value = event; isSort.value = event == 1;
currentPage.value = 1; currentPage.value = 1;
handleFetchSurveyList(); handleFetchSurveyList();
}; };
...@@ -311,6 +311,7 @@ onMounted(async () => { ...@@ -311,6 +311,7 @@ onMounted(async () => {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-size: 16px; font-size: 16px;
color: var(--text-primary-65-color); color: var(--text-primary-65-color);
font-weight: 400;
} }
} }
} }
......
...@@ -92,7 +92,7 @@ const handleClickBtn = item => { ...@@ -92,7 +92,7 @@ const handleClickBtn = item => {
const codeInfo = reactive({ const codeInfo = reactive({
sortCode: route.query.id, sortCode: route.query.id,
sortName: "调查主页", sortName: "调查",
sortImageUrl: "", sortImageUrl: "",
sortDescription: "", sortDescription: "",
}) })
...@@ -102,7 +102,7 @@ const onSurvyInfo = async () => { ...@@ -102,7 +102,7 @@ const onSurvyInfo = async () => {
if (res.code == 200) { if (res.code == 200) {
Object.assign(codeInfo, res.data) Object.assign(codeInfo, res.data)
} }
document.title = codeInfo.sortName; document.title = codeInfo.sortName+'概览';
} }
onMounted(() => { onMounted(() => {
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart1"></div> <div class="box-head" ref="chart1"></div>
<TipTab text="美对华232调查案件的数量变化趋势,数据来源:美国商务部官网" style="margin-top: 16px;" /> <TipTab text="数据来源:美国商务部官网" style="margin-top: 16px;" />
<AiReport ref="refAiReport1"></AiReport> <AiReport ref="refAiReport1"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart2"></div> <div class="box-head" ref="chart2"></div>
<TipTab text="美对华232调查案件的领域分布情况,数据来源:美国商务部官网" style="margin-top: -16px;" /> <TipTab text="数据来源:美国商务部官网" />
<AiReport ref="refAiReport2"></AiReport> <AiReport ref="refAiReport2"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart3"></div> <div class="box-head" ref="chart3"></div>
<TipTab text="美对华232调查案件导致的关税变化分布,数据来源:美国商务部官网" style="margin-top: -16px;" /> <TipTab text="数据来源:美国商务部官网" />
<AiReport ref="refAiReport3"></AiReport> <AiReport ref="refAiReport3"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart4"></div> <div class="box-head" ref="chart4"></div>
<TipTab text="美232调查所涉及的国家分布情况,数据来源:美国商务部官网" style="margin-top: -16px;" /> <TipTab text="数据来源:美国商务部官网" />
<AiReport ref="refAiReport4"></AiReport> <AiReport ref="refAiReport4"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="box1Chart"></div> <div class="box-head" ref="box1Chart"></div>
<TipTab text="美对华301调查案件的数量变化趋势,数据来源:美国贸易代表办公室官网" style="margin-top: 16px" /> <TipTab text="数据来源:美国贸易代表办公室官网" style="margin-top: 16px" />
<AiReport ref="refAiReport1"></AiReport> <AiReport ref="refAiReport1"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" id="box2Chart"></div> <div class="box-head" id="box2Chart"></div>
<TipTab text="美301调查所涉及的国家分布情况,数据来源:美国贸易代表办公室官网" style="margin-top: 16px" /> <TipTab text="数据来源:美国贸易代表办公室官网" style="margin-top: 16px" />
<AiReport ref="refAiReport2"></AiReport> <AiReport ref="refAiReport2"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<AnalysisBox title="调查方向及结果分布"> <AnalysisBox title="调查方向及结果分布">
<div class="box-main"> <div class="box-main">
<div class="box-head" id="box3Chart"></div> <div class="box-head" id="box3Chart"></div>
<TipTab text="美301调查方向及结果分布情况,数据来源:美国贸易代表办公室官网" style="margin-top: 16px;" /> <TipTab text="数据来源:美国贸易代表办公室官网" style="margin-top: 16px;" />
<AiReport ref="refAiReport3"></AiReport> <AiReport ref="refAiReport3"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="box4Chart"></div> <div class="box-head" ref="box4Chart"></div>
<TipTab text="美对华301调查案件的领域分布情况,数据来源:美国贸易代表办公室官网" style="margin-top: -16px;" /> <TipTab text="数据来源:美国贸易代表办公室官网" />
<AiReport ref="refAiReport4"></AiReport> <AiReport ref="refAiReport4"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<script setup> <script setup>
import { ref, onMounted, nextTick, reactive } from "vue"; import { ref, onMounted, nextTick, reactive } from "vue";
import setChart from "@/utils/setChart"; import setChart from "@/utils/setChart";
import getBarChart from "./utils/barChart"; import getBarChart from "@/views/marketAccessRestrictions/marketAccessHome/utils/barChart1.js";
import getSankeyChart from "./utils/sankey"; import getSankeyChart from "./utils/sankey";
import { import {
getSearchCountry, getSearchCountry,
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart1"></div> <div class="box-head" ref="chart1"></div>
<TipTab text="美对华337调查案件的数量变化趋势,数据来源:美国国际贸易委员会官网" style="margin-top: 16px;" /> <TipTab text="数据来源:美国国际贸易委员会官网" style="margin-top: 16px;" />
<AiReport ref="refAiReport1"></AiReport> <AiReport ref="refAiReport1"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart2"></div> <div class="box-head" ref="chart2"></div>
<TipTab text="美对华337调查案件的领域分布情况,数据来源:美国国际贸易委员会官网" style="margin-top: -16px;" /> <TipTab text="数据来源:美国国际贸易委员会官网" />
<AiReport ref="refAiReport2"></AiReport> <AiReport ref="refAiReport2"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
</div> </div>
<div class="map-box-right" id="chartMap"></div> <div class="map-box-right" id="chartMap"></div>
</div> </div>
<TipTab text="美对华337调查案件的中国实体分布情况,数据来源:美国国际贸易委员会官网" /> <TipTab text="数据来源:美国国际贸易委员会官网" />
<AiReport ref="refAiReport3"></AiReport> <AiReport ref="refAiReport3"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</template> </template>
<div class="box-main"> <div class="box-main">
<div class="box-head" ref="chart4"></div> <div class="box-head" ref="chart4"></div>
<TipTab text="美对华337调查案件的调查结果分布情况,数据来源:美国国际贸易委员会官网" style="margin-top: -16px;" /> <TipTab text="数据来源:美国国际贸易委员会官网" />
<AiReport ref="refAiReport4"></AiReport> <AiReport ref="refAiReport4"></AiReport>
</div> </div>
</AnalysisBox> </AnalysisBox>
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</div> </div>
<div style="width:20px; flex:auto;"></div> <div style="width:20px; flex:auto;"></div>
<div class="head-button"> <div class="head-button" @click="handleAnalysisClick()">
<div class="button-icon"> <div class="button-icon">
<img src="./assets/images/btn-icon2.png" alt="" /> <img src="./assets/images/btn-icon2.png" alt="" />
</div> </div>
...@@ -42,13 +42,15 @@ ...@@ -42,13 +42,15 @@
<script setup> <script setup>
import { ref, onMounted, reactive } from "vue"; import { ref, onMounted, reactive } from "vue";
import { ElMessage } from "element-plus";
import { getSurvyInfo, getSearchBlurb } from "@/api/marketAccessRestrictions/index.js"
import router from "@/router"; import router from "@/router";
import NavIcon1 from "./assets/images/nav-icon1.png"; import NavIcon1 from "./assets/images/nav-icon1.png";
import NavIcon1Active from "./assets/images/nav-icon1-active.png"; import NavIcon1Active from "./assets/images/nav-icon1-active.png";
import NavIcon3 from "./assets/images/nav-icon2.png"; import NavIcon3 from "./assets/images/nav-icon2.png";
import NavIcon3Active from "./assets/images/nav-icon2-active.png"; import NavIcon3Active from "./assets/images/nav-icon2-active.png";
import Img337 from "./assets/images/337.png"; import Img337 from "./assets/images/337.png";
import { getSurvyInfo, getSearchBlurb } from "@/api/marketAccessRestrictions/index.js"
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
const route = useRoute(); const route = useRoute();
...@@ -62,6 +64,18 @@ const handleClickBtn = index => { ...@@ -62,6 +64,18 @@ const handleClickBtn = index => {
}); });
}; };
// 分析报告
const handleAnalysisClick = () => {
ElMessage.warning("当前功能正在开发中,敬请期待!");
// router.push({
// path: "/writtingAsstaint",
// query: {
// topic: "市场准入限制",
// fileId: route.query.id
// }
// });
};
const codeInfo = reactive({ const codeInfo = reactive({
sortCode: route.query.id, sortCode: route.query.id,
sortName: "", sortName: "",
......
...@@ -56,19 +56,19 @@ ...@@ -56,19 +56,19 @@
</AnalysisBox> </AnalysisBox>
<AnalysisBox title="被告信息" :showAllBtn="false" height="auto"> <AnalysisBox title="被告信息" :showAllBtn="false" height="auto">
<div class="box3-main"> <div class="box3-main">
<div class="data-item" v-for="(item, index) in caseList" :key="index"> <div class="data-item">
<div class="data-head">{{ item.title }}</div> <div class="info-list" v-if="caseList.length">
<div class="info-list"> <div class="info-item" v-for="(item, index) in caseList" :key="index">
<div class="info-item" v-for="(val, idx) in item.companyList" :key="idx">
<div class="icon"> <div class="icon">
<img :src="val.logo" alt="" v-if="val.logo"> <img :src="item.logo" alt="" v-if="item.logo">
<div class="default-logo" v-else>{{ val.COMNAM?.substring(0, 1) || '' }}</div> <div class="default-logo" v-else>{{ item.COMNAM?.substring(0, 1) || '' }}</div>
</div> </div>
<div class="text" > <div class="text" >
<span class="text-click-hover" @click="handleToInstitution(val)">{{ val.COMNAM }}</span> <span class="text-click-hover" @click="handleToInstitution(item)">{{ item.COMNAM }}</span>
</div> </div>
</div> </div>
</div> </div>
<el-empty v-else description="暂无数据" :image-size="100" />
</div> </div>
</div> </div>
</AnalysisBox> </AnalysisBox>
...@@ -85,8 +85,6 @@ import router from "@/router"; ...@@ -85,8 +85,6 @@ import router from "@/router";
import RelatedEvent from "@/views/marketAccessRestrictions/com/RelatedEvent.vue"; import RelatedEvent from "@/views/marketAccessRestrictions/com/RelatedEvent.vue";
import SurveyAffiche from "@/views/marketAccessRestrictions/com/SurveyAffiche.vue"; import SurveyAffiche from "@/views/marketAccessRestrictions/com/SurveyAffiche.vue";
const tips = `Pantech是韩国的一家通信设备公司,曾经是手机制造商,但现在可能已转型为专利持有实体。这类公司常被称为"非执业实体"(NPE)或"专利断言实体"(PAE),通过专利授权和诉讼获取收益。这些企业曾经是行业龙头,但因科技和市场形态巨变,加上自身改革步伐缓慢,经营状况每况愈下。卖掉实体业务部门后,留下来的是高达几万件的专利。`
const route = useRoute(); const route = useRoute();
const loading = ref(false); const loading = ref(false);
const baseInfo = ref({}); const baseInfo = ref({});
...@@ -111,20 +109,20 @@ const handleGetSearchBlurb = async () => { ...@@ -111,20 +109,20 @@ const handleGetSearchBlurb = async () => {
} }
// 被告信息分组 // 被告信息分组
if (data.defendantOrg) { // if (data.defendantOrg) {
const groups = {}; // const groups = {};
data.defendantOrg.forEach(item => { // data.defendantOrg.forEach(item => {
const companyName = item.COMPANYNAM || "其他相关企业"; // const companyName = item.COMPANYNAM || "其他相关企业";
if (!groups[companyName]) { // if (!groups[companyName]) {
groups[companyName] = { // groups[companyName] = {
title: companyName + (companyName !== "其他" ? "及相关企业" : ""), // title: companyName + (companyName !== "其他" ? "及相关企业" : ""),
companyList: [] // companyList: []
}; // };
} // }
groups[companyName].companyList.push(item); // groups[companyName].companyList.push(item);
}); // });
caseList.value = Object.values(groups); // }
} caseList.value = data.defendantOrg || [];
} }
} catch (error) {} } catch (error) {}
loading.value = false; loading.value = false;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论