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

Merge remote-tracking branch 'origin/pre' into zy-dev

流水线 #478 已通过 于阶段
in 1 分 40 秒
......@@ -861,6 +861,7 @@ const checkedTime = ref(["全部时间"]);
// 跳转到单条制裁页面,单独打开一个新页面
const handleTitleClick = item => {
if (!item.summary) return;
window.sessionStorage.setItem("curTabName", `${item.year}-${item.dateStr}${item.title}》`);
const route = router.resolve({
path: "/exportControl/singleSanction",
......
......@@ -105,8 +105,12 @@
</div>
</template>
<!-- <div class="echarts" ref="sanctionCountChartRef"></div> -->
<EChart :option="sanctionCountChartOption" autoresize :style="{ height: '300px', padding: '0 20px' }"
@chart-click="handleBarChartClick" />
<EChart
:option="sanctionCountChartOption"
autoresize
:style="{ height: '300px', padding: '0 20px' }"
@chart-click="handleBarChartClick"
/>
<!-- <div class="bottom">
<div class="ai">
<div class="left">
......@@ -140,14 +144,22 @@
<div class="map-wrapper">
<div class="map-chart" ref="mapChartRef"></div>
<div class="rank-list">
<div class="rank-item" v-for="(item, index) in rankData" :key="index" @click="handleClickRankChart(item)">
<div
class="rank-item"
v-for="(item, index) in rankData"
:key="index"
@click="handleClickRankChart(item)"
>
<div class="rank-index" :class="'rank-' + (index + 1)">{{ index + 1 }}</div>
<div class="rank-name">{{ item.name }}</div>
<div class="rank-bar-bg">
<div class="rank-bar-fill" :style="{
width: (item.value / maxRankValue) * 100 + '%',
background: getBarColor(index)
}"></div>
<div
class="rank-bar-fill"
:style="{
width: (item.value / maxRankValue) * 100 + '%',
background: getBarColor(index)
}"
></div>
</div>
<div class="rank-value">{{ item.value }}家</div>
</div>
......@@ -184,8 +196,12 @@
</el-select>
</template>
<!-- <div class="echarts" ref="domainChartRef"></div> -->
<EChart :option="domainChartOption" autoresize :style="{ height: '300px', padding: '0 20px' }"
@chart-click="handlePieChartClick" />
<EChart
:option="domainChartOption"
autoresize
:style="{ height: '300px', padding: '0 20px' }"
@chart-click="handlePieChartClick"
/>
<!-- <div class="bottom">
<div class="ai">
<div class="left">
......@@ -217,7 +233,12 @@
</el-select>
</template>
<!-- <div class="echarts" ref="typeChartRef"></div> -->
<EChart :option="typeChartOption" autoresize :style="{ height: '300px', padding: '0 20px' }" @chart-click="handlePieChartClick1" />
<EChart
:option="typeChartOption"
autoresize
:style="{ height: '300px', padding: '0 20px' }"
@chart-click="handlePieChartClick1"
/>
<!-- <div class="bottom">
<div class="ai">
<div class="left">
......@@ -271,7 +292,7 @@ const typeChart = useChartInterpretation();
const rankChart = useChartInterpretation();
const route = useRoute();
const router = useRouter()
const router = useRouter();
// 实体清单-数据统计-制裁实体类型分布情况
const typeData = ref([]);
const getTypeCountData = async () => {
......@@ -638,13 +659,14 @@ const updateMapChart = () => {
};
mapChartInstance.setOption(option);
mapChartInstance.on('click', function (params) {
mapChartInstance.on("click", function (params) {
const param = {
selectedProvince: params.name,
selectedDate: regionTime.value === 'all' ? null : JSON.stringify([regionTime.value + '-01-01', regionTime.value + '-12-31'])
}
selectedDate:
regionTime.value === "all" ? null : JSON.stringify([regionTime.value + "-01-01", regionTime.value + "-12-31"])
};
const route = router.resolve({
path: '/dataLibrary/dataEntityList',
path: "/dataLibrary/dataEntityList",
query: param
});
window.open(route.href, "_blank");
......@@ -988,10 +1010,10 @@ const updateTypeChart = () => {
let data = typeData.value.length
? [...typeData.value]
: [
{ value: 50, name: "企业" },
{ value: 32, name: "高校" },
{ value: 32, name: "科研院所" }
];
{ value: 50, name: "企业" },
{ value: 32, name: "高校" },
{ value: 32, name: "科研院所" }
];
// 2. 聚合逻辑:保留前5项,其余合并为“其他”
data.sort((a, b) => b.value - a.value);
......@@ -1114,61 +1136,64 @@ const initTypeChart = () => {
const sanTypeId = ref("");
// 点击制裁实体数量变化情况
const handleBarChartClick = (val) => {
console.log('value', val);
const handleBarChartClick = val => {
console.log("value", val);
const params = {
selectedDate: activeTab.value === 'year' ? JSON.stringify([val.name + '-01-01', val.name + '-12-31']) : JSON.stringify([val.name, val.name])
}
selectedDate:
activeTab.value === "year"
? JSON.stringify([val.name + "-01-01", val.name + "-12-31"])
: JSON.stringify([val.name, val.name])
};
const route = router.resolve({
path: '/dataLibrary/dataEntityList',
path: "/dataLibrary/dataEntityList",
query: params
});
window.open(route.href, "_blank");
}
};
// 制裁实体各省分布情况
const handleClickRankChart = (item) => {
const handleClickRankChart = item => {
// console.log('item', item);
const params = {
selectedProvince: item.name,
selectedDate: regionTime.value === 'all' ? null : JSON.stringify([regionTime.value + '-01-01', regionTime.value + '-12-31'])
}
selectedDate:
regionTime.value === "all" ? null : JSON.stringify([regionTime.value + "-01-01", regionTime.value + "-12-31"])
};
const route = router.resolve({
path: '/dataLibrary/dataEntityList',
path: "/dataLibrary/dataEntityList",
query: params
});
window.open(route.href, "_blank");
}
};
// 制裁实体领域分布情况
const handlePieChartClick = (val) => {
console.log('val', val);
const handlePieChartClick = val => {
console.log("val", val);
const params = {
domains: val.name,
selectedDate: domainTime.value === 'all' ? null : JSON.stringify([domainTime.value + '-01-01', domainTime.value + '-12-31'])
}
selectedDate:
domainTime.value === "all" ? null : JSON.stringify([domainTime.value + "-01-01", domainTime.value + "-12-31"])
};
const route = router.resolve({
path: '/dataLibrary/dataEntityList',
path: "/dataLibrary/dataEntityList",
query: params
});
window.open(route.href, "_blank");
}
};
// 制裁实体类型分布情况
const handlePieChartClick1 = (val) => {
console.log('val', val);
const handlePieChartClick1 = val => {
console.log("val", val);
const params = {
selectedEntityType: val.name,
selectedDate: typeTime.value === 'all' ? null : JSON.stringify([typeTime.value + '-01-01', typeTime.value + '-12-31'])
}
selectedDate: typeTime.value === "all" ? null : JSON.stringify([typeTime.value + "-01-01", typeTime.value + "-12-31"])
};
const route = router.resolve({
path: '/dataLibrary/dataEntityList',
path: "/dataLibrary/dataEntityList",
query: params
});
window.open(route.href, "_blank");
}
};
onMounted(() => {
sanTypeId.value = route.query.sanTypeId || "";
......@@ -1191,11 +1216,6 @@ onMounted(() => {
</script>
<style scoped lang="scss">
* {
margin: 0;
padding: 0;
}
.data-statistics {
width: 1601px;
margin: 0 auto;
......
......@@ -5,6 +5,9 @@
<el-input v-model="searchKeyword" class="search-input" placeholder="搜索实体" :suffix-icon="Search" />
<div class="filters">
<el-checkbox v-model="onlyChina" label="只看中国实体" />
<el-select v-model="order" placeholder="请选择排序方式" style="width: 160px">
<el-option v-for="item in orderOptions" :value="item.value" :key="item.value" :label="item.name" />
</el-select>
</div>
</div>
<div class="main">
......@@ -242,6 +245,11 @@ import { useGotoCompanyPages } from "@/router/modules/company";
const gotoCompanyPages = useGotoCompanyPages();
const router = useRouter();
const order = ref("asc");
const orderOptions = ref([
{ name: "正序", value: "asc" },
{ name: "倒序", value: "desc" }
]);
// 跳转公司详情页
const handleCompClick = item => {
console.log("item", item);
......@@ -257,7 +265,7 @@ const handleCompClick = item => {
};
const searchKeyword = ref("");
const onlyChina = ref(false);
const onlyChina = ref(true);
const sanctionTime = ref("");
const currentPage = ref(1);
......@@ -460,7 +468,9 @@ const getExportControlListApi = async () => {
endDate,
keyword: searchKeyword.value || undefined,
pageNum: currentPage.value,
pageSize: pageSize.value
pageSize: pageSize.value,
sortOrder: order.value
// sortField: "sanctionTime" + order.value
};
try {
......@@ -484,7 +494,12 @@ const getExportControlListApi = async () => {
}
};
watch(onlyChina, () => {
// watch(onlyChina, () => {
// currentPage.value = 1;
// getExportControlListApi();
// });
watch([onlyChina, order], () => {
currentPage.value = 1;
getExportControlListApi();
});
......@@ -550,7 +565,7 @@ watch(customDateRange, () => {
}
.filters {
// display: flex;
display: flex;
// align-items: center;
.el-checkbox {
......@@ -611,6 +626,7 @@ watch(customDateRange, () => {
margin-top: 8px;
padding-right: 24px;
box-sizing: border-box;
grid-column: 1 / -1;
:deep(.el-date-editor) {
width: 100%;
......
......@@ -533,7 +533,8 @@ const getDomainNumData = async () => {
const processedData = processDomainTrendData(res);
domainNumChartOption.value = getMultiLineChart(processedData);
console.log("获取实体清单-数据统计-processedData:", processedData);
console.log("获取实体清单-数据统计-domainNumChartOption:", domainNumChartOption.value);
console.log("获取实体清单-数据统计-domainNumChartOption:", res);
domainNumChart.interpret({ type: "折线图", name: "制裁实体领域数量变化情况", data: res });
}
} catch (error) {
console.error("获取实体清单-数据统计-制裁实体领域数量变化趋势失败:", error);
......
......@@ -92,7 +92,12 @@
<div class="content-item">
<div class="item-label">依托制裁:</div>
<div class="item-desc">
<div class="item-file" v-for="item in vertexInfo.relySanList" :key="item.id">
<div
class="item-file"
v-for="item in vertexInfo.relySanList"
:key="item.id"
@click="handleClickSan(item)"
>
<div class="item-file-name">
{{ item.title }}
</div>
......@@ -695,6 +700,18 @@ const formatChangeSummary = (addList, delList) => {
return parts.length > 0 ? parts.join(",") : "无变动";
};
const handleClickSan = item => {
window.sessionStorage.setItem("curTabName", `${item.postDate}${item.title}》`);
const route = router.resolve({
path: "/finance/singleSanction",
query: {
id: item.id,
sanTypeId: item.sanTypeId
}
});
window.open(route.href, "_blank");
};
const loading = ref(false);
const sanctionList = ref([]);
const currentSanctionId = ref(5);
......
......@@ -253,7 +253,8 @@ const handleCompClick = item => {
// }
// });
// window.open(route.href, "_blank");
gotoCompanyPages(item.id);
if (!item.entityId) return;
gotoCompanyPages(item.entityId);
};
const searchKeyword = ref("");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论