提交 6b608fa3 authored 作者: caijian's avatar caijian

Merge branch 'cj_dev'

......@@ -147,4 +147,132 @@ export function getSurvyInfo(params) {
url: `/api/marketsearchHome/statSortDetails`,
params
})
}
// 查询调查的所有发布领域 /marketsearchDetails/getSearchAllArea
export function getSearchAllArea(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSearchAllArea`,
params
})
}
// 查询调查的所有发布时间
export function getSearchAllYear(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSearchYears`,
params
})
}
// 调查简介 /marketsearchDetails/searchBlurb
export function getSearchBlurb(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/searchBlurb`,
params
})
}
// 获取相关事件getRelatedEvents
export function getRelatedEvents(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getRelatedEvents`,
params
})
}
// 获取事件脉络 getSearchContext
export function getSearchContext(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSearchContext`,
params
})
}
// getSearchMeasures 报复性措施
export function getSearchMeasures(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSearchMeasures`,
params
})
}
// /marketsearchDetails/getSearchDirection 查询调查方向和结果信息
export function getSearchDirection(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSearchDirection`,
params
})
}
// 中国公司受调查情况 /marketsearchDetails/statcnOrgCount
export function getStatcnOrgCount(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/statcnOrgCount`,
params
})
}
// /marketsearchDetails/getSearchConclusion 查询调查结论
export function getSearchConclusion(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSearchConclusion`,
params
})
}
// getReportAnalyze 报告分析
export function getReportAnalyze(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getReportAnalyze`,
params
})
}
// 被诉企业列表
export function getSuedOrg(params) {
return request({
method: 'GET',
url: `/api/marketsearchDetails/getSuedOrg`,
params
})
}
// 进出口数据
export function getOrgImportAndExport(params) {
return request({
method: 'GET',
url: `/api/organization/scale/getOrgImportAndExport`,
params
})
}
// 营收数据
export function getRevenue(params) {
return request({
method: 'GET',
url: `/api/organization/scale/revenue`,
params
})
}
// 净利润数据
export function getNetProfit(params) {
return request({
method: 'GET',
url: `/api/organization/scale/netProfit`,
params
})
}
\ No newline at end of file
<template>
<div class="case-wrap">
<Discussion1 v-if="showDiscussion ==='337'"></Discussion1>
<Discussion2 v-else-if="showDiscussion ==='232'"></Discussion2>
<Discussion3 v-else></Discussion3>
<Discussion2 v-if="showDiscussion ==='232'"></Discussion2>
<Discussion3 v-if="showDiscussion ==='301'"></Discussion3>
</div>
</template>
<script setup>
import { ref, onMounted, computed } from "vue";
// import Discussion1 from './337/index.vue'
// import Discussion2 from './232/index.vue'
import Discussion1 from './337/index.vue'
import Discussion2 from './232/index.vue'
import Discussion3 from './301/index.vue'
import { useRoute } from "vue-router";
......
......@@ -22,7 +22,7 @@
</div>
</div>
<div class="center">
<div class="box1">
<div class="box1" v-loading="box1Loading">
<div class="box-header">
<div class="header-left"></div>
<div class="title">美国对华337调查年度趋势</div>
......@@ -39,8 +39,8 @@
</div>
</div>
<div class="box1-main" id="chart1"></div>
</div>
<div class="box2">
</div>
<div class="box2" v-loading="box2Loading">
<div class="box-header">
<div class="header-left"></div>
<div class="title">调查案件领域分布</div>
......@@ -60,7 +60,7 @@
</div>
</div>
<div class="footer">
<div class="box3">
<div class="box3" v-loading="box3Loading">
<div class="box-header">
<div class="header-left"></div>
<div class="title">中国公司受调查情况</div>
......@@ -106,7 +106,7 @@
<div class="box3-main1-right" id="chartMap"></div>
</div>
</div>
<div class="box4">
<div class="box4" v-loading="box4Loading">
<div class="box-header">
<div class="header-left"></div>
<div class="title">调查结果分布</div>
......@@ -133,6 +133,8 @@ import * as echarts from "echarts";
import ChinaJson from "../../assets/json/China.json";
import { getStatcnOrgCount, getSearchResult, getStatArea, getStatNum } from "@/api/marketAccessRestrictions";
import getMultiLineChart from "./utils/multiLineChart";
import getBarChart from "./utils/barChart";
import getPieChart from "./utils/piechart";
......@@ -147,95 +149,198 @@ const setChart = (option, chartId) => {
return chart;
};
const box1Loading = ref(false);
const box2Loading = ref(false);
const box3Loading = ref(false);
const box4Loading = ref(false);
const btnActiveName = ref("注册地分布");
const provinceCoords = {
"北京": [116.46, 39.92],
"上海": [121.48, 31.22],
"天津": [117.2, 39.13],
"重庆": [106.54, 29.59],
"河北": [114.48, 38.03],
"山西": [112.53, 37.87],
"内蒙古": [111.65, 40.82],
"辽宁": [123.38, 41.8],
"吉林": [125.35, 43.88],
"黑龙江": [126.63, 45.75],
"江苏": [118.78, 32.04],
"浙江": [120.19, 30.26],
"安徽": [117.27, 31.86],
"福建": [119.3, 26.08],
"江西": [115.89, 28.68],
"山东": [117.0, 36.65],
"河南": [113.65, 34.76],
"湖北": [114.31, 30.52],
"湖南": [113.0, 28.21],
"广东": [113.23, 23.16],
"广西": [108.33, 22.84],
"海南": [110.35, 20.02],
"四川": [104.06, 30.67],
"贵州": [106.71, 26.57],
"云南": [102.73, 25.04],
"西藏": [91.11, 29.97],
"陕西": [108.95, 34.27],
"甘肃": [103.73, 36.03],
"青海": [101.74, 36.56],
"宁夏": [106.27, 38.47],
"新疆": [87.68, 43.77],
"香港": [114.17, 22.28],
"澳门": [113.54, 22.19],
"台湾": [121.5, 25.05]
};
const handleGetStatcnOrgCount = async (type) => {
box3Loading.value = true;
try {
const res = await getStatcnOrgCount({
type,
sortCode: "337"
});
if (res.code === 200 && res.data) {
if (type === "01") {
chart3Data.value = {
name: res.data.map(item => item.ORGNAME),
value: res.data.map(item => item.ORGCOUNT)
};
nextTick(() => {
let chart3 = getBarChart(chart3Data.value.name, chart3Data.value.value);
setChart(chart3, "chart3");
});
} else if (type === "02") {
mapData.value = res.data.map(item => {
const name = item.ORGPROVINCE//.replace(/省|市|自治区|特别行政区/g, "");
return {
name: item.ORGPROVINCE,
value: item.PROVINCECOUNT,
coord: provinceCoords[name] || [0, 0]
};
});
nextTick(() => {
let chartMap = getMapChart(mapData.value);
setChart(chartMap, "chartMap");
});
}
}
} catch (error) {
console.error("获取中国公司受调查情况失败", error);
} finally {
box3Loading.value = false;
}
};
const handleClickBox3Btn = name => {
btnActiveName.value = name;
if (name === "调查次数") {
nextTick(() => {
let chart3 = getBarChart(chart3Data.value.name, chart3Data.value.value);
setChart(chart3, "chart3");
});
handleGetStatcnOrgCount("01");
} else {
nextTick(() => {
let chartMap = getMapChart(mapData.value);
setChart(chartMap, "chartMap");
});
handleGetStatcnOrgCount("02");
}
};
const chart1Data = ref({
title: ["2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025"],
data: [
{
name: "提出法案",
value: [145, 52, 84, 99, 71, 96, 128, 144, 140, 168, 188, 172]
}
]
title: [],
data: []
});
const chart2Data = ref([
{ name: "半导体", value: 50 },
{ name: "电子设备", value: 46 },
{ name: "显示技术", value: 40 },
{ name: "新能源", value: 32 },
{ name: "通信设备", value: 31 },
{ name: "汽车", value: 31 },
{ name: "轻工业制造", value: 30 },
{ name: "其他", value: 24 }
]);
const handleGetStatNum = async () => {
box1Loading.value = true;
try {
const res = await getStatNum({
byYorM: "12",
sortCode: "337"
});
if (res.code === 200 && res.data) {
const sortedData = res.data.sort((a, b) => parseInt(a.searchYorM) - parseInt(b.searchYorM));
chart1Data.value.title = sortedData.map(item => item.searchYorM);
chart1Data.value.data = [
{
name: "调查数量",
value: sortedData.map(item => item.searchCount)
}
];
nextTick(() => {
let chart1 = getMultiLineChart(chart1Data.value.title, chart1Data.value.data[0].value);
setChart(chart1, "chart1");
});
}
} catch (error) {
console.error("获取年度趋势数据失败", error);
} finally {
box1Loading.value = false;
}
};
const chart2Data = ref([]);
const chart2ColorList = ref(["#69B1FF", "#FFC069", "#87E8DE", "#597EF7", "#D6E4FF", "#FF7875", "#B37FEB", "#FFA39E"]);
const handleGetStatArea = async () => {
box2Loading.value = true;
try {
const res = await getStatArea({
sortCode: "337"
});
if (res.code === 200 && res.data) {
chart2Data.value = res.data
.filter(item => item.SORTCODE === "337" || item.SORTNAME === "337调查")
.map(item => ({
name: item.AREANAME,
value: item.AREACOUNT
}));
nextTick(() => {
let chart2 = getPieChart(chart2Data.value, chart2ColorList.value);
setChart(chart2, "chart2");
});
}
} catch (error) {
console.error("获取调查案件领域分布失败", error);
} finally {
box2Loading.value = false;
}
};
const chart3Data = ref({
name: [
"华为技术有限公司",
"大疆创新科技有限公司",
"TCL科技集团股份有限公司",
"中兴通讯股份有限公司",
"联想集团",
"比亚迪集团",
"宁德时代新能源科技股份有限公司",
"晶科智能科技有限公司"
],
value: [42, 35, 28, 19, 15, 12, 11, 8]
name: [],
value: []
});
const mapData = ref([
{ name: "北京", value: 10, coord: [116.46, 39.92] },
{ name: "上海", value: 9, coord: [121.48, 31.22] },
{ name: "广东", value: 15, coord: [113.23, 23.16] },
{ name: "江苏", value: 30, coord: [118.78, 32.04] },
{ name: "浙江", value: 20, coord: [120.19, 30.26] },
{ name: "四川", value: 4, coord: [104.06, 30.67] },
{ name: "陕西", value: 1, coord: [108.95, 34.27] },
{ name: "辽宁", value: 3, coord: [123.38, 41.8] }
// { name: "湖北", value: 2, coord: [114.31, 30.52] },
// { name: "山东", value: 12, coord: [117.0, 36.65] },
]);
const chart4Data = ref([
{ name: "和解/同意令", value: 50 },
{ name: "裁定不侵权", value: 46 },
{ name: "裁定侵权", value: 40 },
{ name: "申诉方撤诉", value: 31 },
{ name: "其他", value: 24 }
]);
const chart4ColorList = ref(["#69B1FF", "#FFC069", "#87E8DE", "#D6E4FF", "#FFA39E"]);
const mapData = ref([]);
onMounted(() => {
let chart1 = getMultiLineChart(chart1Data.value.title, chart1Data.value.data[0].value);
setChart(chart1, "chart1");
const chart4Data = ref([]);
const chart4ColorList = ref(["#69B1FF", "#FFC069", "#87E8DE", "#597EF7", "#D6E4FF", "#FF7875", "#B37FEB", "#FFA39E"]);
let chart2 = getPieChart(chart2Data.value, chart2ColorList.value);
setChart(chart2, "chart2");
const handleGetSearchResult = async () => {
box4Loading.value = true;
try {
const res = await getSearchResult({
sortCode: "337"
});
if (res.code === 200 && res.data) {
chart4Data.value = res.data.map(item => ({
name: item.RESULTNAME,
value: item.RESULTNUM
}));
nextTick(() => {
let chart4 = getPieChart(chart4Data.value, chart4ColorList.value);
setChart(chart4, "chart4");
});
}
} catch (error) {
console.error("获取调查结果分布失败", error);
} finally {
box4Loading.value = false;
}
};
let chart3 = getBarChart(chart3Data.value.name, chart3Data.value.value);
setChart(chart3, "chart3");
onMounted(() => {
handleGetStatNum();
let chartMap = getMapChart(mapData.value);
setChart(chartMap, "chartMap");
handleGetStatArea();
let chart4 = getPieChart(chart4Data.value, chart4ColorList.value);
setChart(chart4, "chart4");
handleGetStatcnOrgCount(btnActiveName.value === "调查次数" ? "01" : "02");
handleGetSearchResult();
});
</script>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论