提交 2afd5596 authored 作者: 闫鹏's avatar 闫鹏

合并分支 'yp-dev' 到 'master'

Yp dev 查看合并请求 !35
......@@ -103,9 +103,9 @@ const router = useRouter();
const handleToHome = () => {
router.push({
path: '/overview'
})
}
path: "/overview"
});
};
const isShowAiBox = ref(false);
......@@ -307,6 +307,7 @@ body {
position: absolute;
bottom: 20%;
right: 46px;
z-index: 9999;
cursor: pointer;
.icon {
......
差异被折叠。
......@@ -146,6 +146,7 @@ const headerTitleClasses = computed(() => [
}
.header-title {
font-family: $base-font-family;
font-size: $base-font-size;
font-weight: 700;
/* color: var(--color-main-active); */
......
......@@ -3,6 +3,7 @@
$primary-color: var(--el-color-primary);
$base-color: rgba(5, 95, 194, 1);
$base-font-size: 16px;
$base-font-family: "微软雅黑";
// :root {
// --base-color: #{$base-color};
......
[
{
"name": "经济",
"count": 12
},
{
"name": "科技",
"count": 33
},
{
"name": "军事",
"count": 15
},
{
"name": "安全",
"count": 3
}
]
\ No newline at end of file
......@@ -70,7 +70,7 @@
</template>
<script setup>
import { ref, onMounted, shallowReactive, shallowRef } from "vue";
import { ref, onMounted, shallowReactive, shallowRef, watch } from "vue";
import CardCustom from "../../components/CardCustom.vue";
import Echarts from "@/components/Chart/index.vue";
import Hint from "./hint.vue";
......@@ -88,19 +88,22 @@ import college9 from "../../assets/images/college9.png";
import college10 from "../../assets/images/college10.png";
import college11 from "../../assets/images/college11.png";
import { getHorizontalBarChart2 } from "../../utils/charts";
const buttonList = [
import { getDomainDistribution, getChainEntities } from "@/api/exportControl";
import { useRoute } from "vue-router";
const route = useRoute();
const buttonList = ref([
{ id: 1, text: "新能源" },
{ id: 2, text: "半导体" },
{ id: 3, text: "跨境电商" },
{ id: 4, text: "金融业" },
{ id: 5, text: "军工" },
{ id: 6, text: "贸易" }
];
const activeButtonId = ref(buttonList[0].id);
]);
const activeButtonId = ref(buttonList.value[0].id);
const setActiveButtonId = id => {
activeButtonId.value = id;
};
const listData = [
const listData = ref([
{
name: "宁德时代新能源科技股份有限公司",
isUp: false
......@@ -153,15 +156,68 @@ const listData = [
name: "上海派能能源科技股份有限公司",
isUp: false
}
];
]);
const horizontalBarOptions = shallowRef({});
onMounted(() => {
horizontalBarOptions.value = getHorizontalBarChart2(
["贸易", "军工", "金融业", "跨境电商", "半导体", "新能源"],
[10, 21, 25, 79, 95, 109],
false
);
// 获取领域分布数据并更新图表
const fetchDomainDistribution = async () => {
try {
const data = await getDomainDistribution(route.query.startTime);
if (data && Array.isArray(data)) {
console.log("data data11", data);
// 按照 count 降序排列
const sortedData = data.sort((a, b) => a.count - b.count);
// 提取 y 轴数据(领域名称)
const yAxisData = sortedData.map(item => item.name);
// 提取 x 轴数据(数量)
const seriesData = sortedData.map(item => item.count);
// 更新图表配置
horizontalBarOptions.value = getHorizontalBarChart2(yAxisData, seriesData, false);
// 更新buttonList
buttonList.value = sortedData.map(item => ({
id: item.id,
text: item.name
}));
console.log("buttonList.value", buttonList.value);
setActiveButtonId(buttonList.value[0].id);
}
} catch (error) {
console.error("获取领域分布数据失败:", error);
}
};
const fetchChainEntities = async () => {
try {
const data = await getChainEntities(route.query.startTime, activeButtonId.value);
if (data && Array.isArray(data)) {
console.log("data data", data);
// 更新 listData
listData.value = data.map(item => ({
name: item.orgNameZh,
isUp: item.isUp
}));
}
} catch (error) {
console.error("获取产业链实体数据失败:", error);
}
};
onMounted(async () => {
fetchDomainDistribution();
// horizontalBarOptions.value = getHorizontalBarChart2(
// ["贸易", "军工", "金融业", "跨境电商", "半导体", "新能源"],
// [10, 21, 25, 79, 95, 109],
// false
// );
fetchChainEntities();
});
watch(() => activeButtonId.value, fetchChainEntities);
</script>
<style lang="scss" scoped>
......@@ -337,16 +393,19 @@ onMounted(() => {
}
.listWrap {
flex: 1;
height: 42px;
min-height: 0;
overflow: auto;
display: flex;
flex-direction: column;
cursor: pointer;
.item {
display: flex;
align-items: center;
height: 42px;
border-bottom: 1px solid rgba(234, 236, 238, 1);
overflow: hidden;
flex-shrink: 0;
.index {
width: 24px;
height: 24px;
......
......@@ -27,7 +27,7 @@
<div class="infoWrap">
<div class="name">{{ item.name }}</div>
<div class="enName">{{ item.enName }}</div>
<div class="party">{{ item.party }}</div>
<div class="party">{{ item.position }}</div>
</div>
</div>
</div>
......@@ -257,15 +257,16 @@ onMounted(async () => {
]);
organizationInfo.value = {
img: panel1_1,
mingcheng: organizationInfoData?.orgName,
cuoshi: organizationInfoData?.cuoshi || "美国商务部工业与安全局",
zhize: organizationInfoData?.orgIntroduction || "--"
mingcheng: organizationInfoData?.orgNameZh,
cuoshi: organizationInfoData?.cuoshi || "出口管制条例(EAR)、实体清单、商业管制清单(CCL)、232调查等",
zhize: organizationInfoData?.orgDuty || "--"
};
personLis.value = _.map(personListData, item => {
personLis.value = _.map(organizationInfoData?.personList, item => {
return {
name: item.name,
enName: item.enName,
party: item.positionTitle,
position: item.position,
party: item.party,
img: item.avatarUrl
};
});
......
......@@ -398,6 +398,7 @@ onMounted(() => {
margin-top: 21px;
.left-box-bottom-item {
display: flex;
align-items: center;
margin-right: 32px;
margin-top: 3px;
height: 35px;
......@@ -419,7 +420,7 @@ onMounted(() => {
.name {
color: rgba(95, 101, 108, 1);
font-family: Microsoft YaHei;
font-size: 14px;
font-size: 18px;
font-weight: 400;
line-height: 22px;
letter-spacing: 0px;
......
......@@ -82,6 +82,7 @@ defineProps({
justify-content: space-between;
align-items: center;
margin-bottom: 5px;
font-family: "微软雅黑";
}
.name {
......@@ -112,6 +113,7 @@ defineProps({
line-height: 24px;
letter-spacing: 0px;
text-align: justify;
font-family: "微软雅黑";
}
.triangle {
......
......@@ -37,10 +37,10 @@ defineProps({
});
</script>
<style scoped>
<style scoped lang="scss">
.info-card {
max-width: 388px;
min-width: 300px;
min-width: 200px;
height: 150px;
border-radius: 12px;
background-color: white;
......@@ -76,10 +76,15 @@ defineProps({
}
.main-title {
font-family: $base-font-family;
font-size: 24px;
font-weight: 700;
color: #1f2937;
line-height: 1.2;
max-width: 70%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.sub-title {
......
......@@ -19,7 +19,6 @@
</template>
<script setup>
const props = defineProps({
listData: {
type: Array,
......@@ -94,6 +93,7 @@ const handleItemClick = item => {
}
.news-title {
font-family: "微软雅黑";
font-size: 16px;
font-weight: 700;
color: rgba(59, 65, 75, 1);
......@@ -121,7 +121,9 @@ const handleItemClick = item => {
}
.news-description {
font-family: "微软雅黑";
font-size: 16px;
font-weight: 400;
color: rgba(59, 65, 75, 1);
line-height: 1.5;
display: -webkit-box;
......
......@@ -16,7 +16,7 @@ defineProps({
});
</script>
<style scoped>
<style scoped lang="scss">
.custom-title {
display: flex;
align-items: center;
......@@ -43,7 +43,7 @@ defineProps({
.title-text {
color: rgba(10, 18, 30, 1);
font-size: 32px;
font-family: Microsoft YaHei;
font-family: $base-font-family;
font-weight: bold;
margin-left: 20px;
white-space: nowrap;
......
{
"code": 200,
"message": "操作成功",
"success": true,
"data": {
"content": [
{
"createTime": null,
"updateTime": null,
"id": "3357",
"entityName": "Arrow Electronics (Hong Kong) Co., Ltd.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "艾睿电子(香港)有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)管制的项目,协助为伊朗代理人(包括哈马斯(Hamas))购买美国原产的电子元件,用于武器化无人机(UAV),违反美国国家安全;协助为伊朗代理人操作的武器化无人驾驶航空系统(UAS)购买美国原产的电子元件。",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [],
"ruleOrgCount": 39
},
{
"createTime": null,
"updateTime": null,
"id": "3ef6b0b3-4f6a-4",
"entityName": "Shanghai Langqing Electronic Technology Co.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "上海朗晴电子科技有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)管辖的物品",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"经济"
],
"ruleOrgCount": 93
},
{
"createTime": null,
"updateTime": null,
"id": "81fc1a85-a2be-4",
"entityName": "Easy Fly Intelligent Technology Co., Ltd.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "易飞智能科技有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)管辖的物品",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"科技"
],
"ruleOrgCount": 18
},
{
"createTime": null,
"updateTime": null,
"id": "2813d17d-8edd-4",
"entityName": "Beijing Rageflight Technology Co., Ltd.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "北京锐飞科技有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)管辖的物品,为伊朗代理人操作的武器化无人驾驶航空系统(UAS)采购美国原产电子组件提供了便利。",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"科技",
"军事"
],
"ruleOrgCount": 2
},
{
"createTime": null,
"updateTime": null,
"id": "f7bf81c6-9f5c-4",
"entityName": "Beijing Kevins Technology Development Co., Ltd.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "北京凯文斯科技发展有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)管辖的项目,协助为伊朗代理人操作的武器化无人飞行系统(UAS)采购美国原产电子元件;协助为伊朗代理人,包括哈马斯(Hamas),采购用于武器化无人飞行器(UAV)的美国原产电子元件,此举违背了美国国家安全。",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"经济",
"安全"
],
"ruleOrgCount": 51
},
{
"createTime": null,
"updateTime": null,
"id": "3add08b1-3a8a-4",
"entityName": "China Address 17",
"sanTypeId": 1,
"entityType": 7,
"entityId": null,
"entityNameZh": "中国地址17",
"countryId": "0101",
"sanReason": "与艾米丽·刘(Emily Liu)的采购网络相关联,此人先前被海外资产控制办公室(OFAC)指定为支持伊朗设拉子电子工业(SEI)",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"安全"
],
"ruleOrgCount": 66
},
{
"createTime": null,
"updateTime": null,
"id": "2b660bc7-d770-4",
"entityName": "Address 18",
"sanTypeId": 1,
"entityType": 7,
"entityId": null,
"entityNameZh": "地址18",
"countryId": "0101",
"sanReason": "对于商业管制清单(CCL)上的物品以及《出口管理条例》(EAR)第746部分第7号补编中列出的EAR 99物品",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"经济"
],
"ruleOrgCount": 1
},
{
"createTime": null,
"updateTime": null,
"id": "ccaa8cd6-2b78-4",
"entityName": "Shanghai Bitconn Electronics Co., Ltd.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "上海比通电子有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)约束的项目,为伊朗代理人操作的武器化无人驾驶航空系统(UAS)购买美国原产电子元件提供了便利。",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"经济",
"军事",
"科技"
],
"ruleOrgCount": 15
},
{
"createTime": null,
"updateTime": null,
"id": "8aa1686a-33e8-4",
"entityName": "Feng Bao Electronic Information Technology (Shanghai) Co., Ltd.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "丰宝电子信息科技(上海)有限公司",
"countryId": "0101",
"sanReason": "对于所有受《出口管理条例》(EAR)管辖的项目",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"科技"
],
"ruleOrgCount": 42
},
{
"createTime": null,
"updateTime": null,
"id": "d9016b50-dee1-4",
"entityName": "Royal Impact Trading L.L.C.",
"sanTypeId": 1,
"entityType": 2,
"entityId": null,
"entityNameZh": "皇家影响力贸易有限责任公司",
"countryId": "134",
"sanReason": "对于所有受《出口管理条例》(EAR)管辖的项目,根据EAR第744.11节的规定,推定为拒绝批准,将美国原产项目转移至伊朗,包括归类于ECCN 2B350的项目。",
"sanIntensity": "\u0000",
"startTime": "2025-10-09",
"endTime": null,
"isKey": "\u0000",
"techDomainList": null,
"techDomains": [
"经济"
],
"ruleOrgCount": 39
}
],
"pageable": {
"sort": {
"unsorted": false,
"sorted": true,
"empty": false
},
"pageNumber": 0,
"pageSize": 10,
"offset": 0,
"unpaged": false,
"paged": true
},
"totalPages": 347,
"last": false,
"totalElements": 3461,
"sort": {
"unsorted": false,
"sorted": true,
"empty": false
},
"first": true,
"numberOfElements": 10,
"size": 10,
"number": 0,
"empty": false
}
}
\ No newline at end of file
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论