提交 0e3adbd0 authored 作者: 闫鹏's avatar 闫鹏

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

Yp dev 查看合并请求 !195
......@@ -17,6 +17,7 @@
"axios": "^1.12.2",
"d3": "^7.9.0",
"d3-cloud": "^1.2.7",
"dayjs": "^1.11.20",
"default-passive-events": "^4.0.0",
"echarts": "^5.4.3",
"echarts-liquidfill": "^3.1.0",
......@@ -2558,10 +2559,9 @@
}
},
"node_modules/dayjs": {
"version": "1.11.18",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.18.tgz",
"integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==",
"license": "MIT"
"version": "1.11.20",
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.20.tgz",
"integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ=="
},
"node_modules/debug": {
"version": "4.4.3",
......
......@@ -26,6 +26,7 @@
"axios": "^1.12.2",
"d3": "^7.9.0",
"d3-cloud": "^1.2.7",
"dayjs": "^1.11.20",
"default-passive-events": "^4.0.0",
"echarts": "^5.4.3",
"echarts-liquidfill": "^3.1.0",
......
......@@ -393,13 +393,13 @@ export function getDomainDistribution(sanctionDate = "2025-11-11") {
* startTime: string
* }[]>}
*/
export function getEntitiesList(typeName = "实体清单", pageNum = 1, pageSize = 10, sanctionDate = "", isCn = false) {
export function getEntitiesList(sanTypeId=1, pageNum = 1, pageSize = 10, sanctionDate = "", isCn = false) {
return request200(
request({
method: "POST",
url: "/api/sanctionList/pageQuery",
data: {
typeName,
sanTypeId,
pageNum,
pageSize,
sanctionDate,
......
......@@ -392,6 +392,14 @@ export function getSingleSanctionEntitySupplyChain(params) {
});
}
// 单次制裁-深度挖掘-制裁实体信息
export function getSingleSanctionEntityInfo(id) {
return request({
method: "GET",
url: `/api/organization/sanInfo?orgId=${id}`,
});
}
// 单次制裁-深度挖掘-制裁实体股权信息
/**
* @param {Object} params
......@@ -550,10 +558,10 @@ export function getSingleSanctionEntityInternationalPaper(params) {
}
// 商业管制清单-CCL清单简介-基本信息
export function getCCLInfo() {
export function getCCLInfo(sanTypeId = 13) {
return request({
method: "GET",
url: `/api/sanctionList/baseInfo/ccl`
url: `/api/sanctionList/baseInfoById/${sanTypeId}`
});
}
......@@ -620,3 +628,11 @@ export function getCclQuery(data) {
data
});
}
// 商业管制清单-CCL清单列表-清单版本
export function getCCLVersionList() {
return request({
method: "GET",
url: `/api/ccl/version/dateList`
});
}
......@@ -120,7 +120,7 @@ const exportControlRoutes = [
name: "commercialControlList",
component: () => import("@/views/exportControl/v2.0CommercialControlList/index.vue"),
meta: {
title: "全部实体清单"
title: "商业管制清单"
}
}
]
......
......@@ -1454,7 +1454,8 @@ watch(
// 获取实体清单数据
const fetchEntitiesList = async (page = 1, size = 10) => {
try {
const res = await getEntitiesList("实体清单", page, size);
console.log("activeResourceTabItem.value.id", activeResourceTabItem.value.id);
const res = await getEntitiesList(activeResourceTabItem.value.id.join(","), page, size);
if (res) {
entitiesList.value = res.content.map(item => ({
...item,
......@@ -1500,8 +1501,13 @@ const handleGetMore = async () => {
// 获取历次制裁过程数据
const fetchSanctionProcess = async (page = 1, size = 10) => {
try {
const res = await getSanctionProcess(allSanTypeIds.value, page, size);
const res = await getSanctionProcess(
activeResourceTabItem.value.id ? activeResourceTabItem.value.id : allSanTypeIds.value,
page,
size
);
if (res) {
// 暂无商业管制清单数据
sanctionProcessList.value = res.content.map(item => ({
...item,
title: item.name,
......@@ -1544,6 +1550,11 @@ const handleResourceTabClick = tab => {
if (tab.disabled) return;
activeResourceTab.value = tab.value;
activeResourceTabItem.value = tab;
fetchSanctionProcess();
console.log("tabMap[tab.id]", tabMap[tab.id]);
if (tabMap[tab.id] === "entity") {
fetchEntitiesList();
}
};
const strengthLabels = {
......
......@@ -407,7 +407,7 @@ const CCLInfo = ref({
});
const getCCLInfoFn = async () => {
try {
const res = await getCCLInfo();
const res = await getCCLInfo(route.query.sanTypeId || 13);
if (res && res.code === 200) {
CCLInfo.value = res.data;
console.log("getCCLInfoFn", CCLInfo.value);
......
......@@ -17,8 +17,8 @@
class="nav-item"
v-for="(item, index) in headerNavList"
:key="index"
:class="{ active: activeIndex === index }"
@click="activeIndex = index"
:class="{ active: activeIndex === index, disabled: item.disable }"
@click="!item.disable && (activeIndex = index)"
>
<img :src="activeIndex === index ? item.imgActive : item.img" alt />
<span>{{ item.title }}</span>
......@@ -81,17 +81,20 @@ const headerNavList = ref([
{
img: icon5,
imgActive: icon5Active,
title: "数据统计"
title: "数据统计",
disable: true
},
{
img: icon2,
imgActive: icon2Active,
title: "深度挖掘"
title: "深度挖掘",
disable: true
},
{
img: icon3,
imgActive: icon3Active,
title: "影响分析"
title: "影响分析",
disable: true
}
]);
</script>
......@@ -206,6 +209,11 @@ const headerNavList = ref([
font-weight: 700;
}
&.disabled {
cursor: not-allowed;
color: rgb(95, 101, 108);
}
.active-line {
position: absolute;
bottom: 0;
......
......@@ -187,19 +187,11 @@ const handleMouseLeave = () => {
isInChart.value = false;
};
<<<<<<< HEAD
const handleNodeClick = (node) => {
selectedNode.value = node;
};
const handleLayoutChange = (type) => {
=======
const handleNodeClick = node => {
selectedNode.value = node;
};
const handleLayoutChange = type => {
>>>>>>> master
controlActive.value = type;
if (type !== 2) {
isInChart.value = true;
......@@ -209,14 +201,9 @@ const handleLayoutChange = type => {
};
const updateGraphData = () => {
<<<<<<< HEAD
const data = rightActiveTab.value === 'supplyChain'
? singleSanctionEntitySupplyChainData.value
: singleSanctionEntityEquityData.value;
=======
const data =
rightActiveTab.value === "supplyChain" ? singleSanctionEntitySupplyChainData.value : singleSanctionEntityEquityData.value;
>>>>>>> master
if (!data) return;
......@@ -244,11 +231,7 @@ const updateGraphData = () => {
links.push({
source: `p-${item.id || index}`,
target: "0",
<<<<<<< HEAD
name: rightActiveTab.value === 'supplyChain' ? "供应商" : (item.type || "持股")
=======
name: rightActiveTab.value === "supplyChain" ? "供应商" : item.type || "持股"
>>>>>>> master
});
});
......@@ -265,22 +248,14 @@ const updateGraphData = () => {
links.push({
source: "0",
target: `c-${item.id || index}`,
<<<<<<< HEAD
name: rightActiveTab.value === 'supplyChain' ? "客户" : (item.type || "投资")
=======
name: rightActiveTab.value === "supplyChain" ? "客户" : item.description || "投资"
>>>>>>> master
});
});
graphData.value = { nodes, links };
};
<<<<<<< HEAD
const updateTreeData = (data) => {
=======
const updateTreeData = data => {
>>>>>>> master
if (!data) return;
treeData.value = {
......@@ -315,7 +290,8 @@ const getSingleSanctionEntityEquityRequest = async () => {
const getSingleSanctionEntitySupplyChainRequest = async () => {
try {
const res = await getSingleSanctionEntitySupplyChain({
orgId: activeEntityId.value
orgId: activeEntityId.value,
domainId: searchDomain.value || undefined
});
if (res.code === 200) {
singleSanctionEntitySupplyChainData.value = res.data || null;
......@@ -360,28 +336,17 @@ const getSingleSanctionEntityListRequest = async () => {
}
};
<<<<<<< HEAD
watch(rightActiveTab, async (newTab) => {
if (newTab === 'supplyChain') {
=======
watch(rightActiveTab, async newTab => {
if (newTab === "supplyChain") {
>>>>>>> master
await getSingleSanctionEntitySupplyChainRequest();
} else {
await getSingleSanctionEntityEquityRequest();
}
});
<<<<<<< HEAD
watch(activeEntityId, async (newId) => {
if (newId) {
if (rightActiveTab.value === 'supplyChain') {
=======
watch(activeEntityId, async newId => {
if (newId) {
if (rightActiveTab.value === "supplyChain") {
>>>>>>> master
await getSingleSanctionEntitySupplyChainRequest();
} else {
await getSingleSanctionEntityEquityRequest();
......@@ -390,15 +355,15 @@ watch(activeEntityId, async newId => {
});
watch(is50PercentRule, async () => {
<<<<<<< HEAD
if (rightActiveTab.value === 'equity') {
=======
if (rightActiveTab.value === "equity") {
>>>>>>> master
await getSingleSanctionEntityEquityRequest();
}
});
watch(searchDomain, async () => {
getSingleSanctionEntityListRequest();
});
onMounted(async () => {
getUrlParams();
await getSingleSanctionEntityListRequest();
......@@ -929,9 +894,11 @@ onMounted(async () => {
margin-left: 16px;
.toggle-btn {
width: 108px;
height: 100%;
padding: 4px 16px;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
transition: all 0.3s;
......
......@@ -90,6 +90,37 @@
<div class="right" v-loading="isLoading">
<AnalysisBox title="制裁清单" :showAllBtn="false">
<div class="right-title">
<div class="filter-row">
<div class="filter-left">
<el-select v-model="filterEntity" placeholder="受制裁实体" style="width: 184px">
<el-option label="受制裁实体" value="2" />
<el-option label="受制裁地址" value="7" />
<el-option label="受制裁个人" value="1" />
</el-select>
</div>
<div class="filter-right">
<el-checkbox v-model="onlyChina" label="只看中国实体" />
<el-select
v-model="filterField"
placeholder="全部领域"
style="width: 150px; margin: 0 12px 0 16px"
>
<el-option label="全部领域" value="" />
<el-option
v-for="item in domainOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input
v-model="searchKeyword"
placeholder="搜索实体"
style="width: 150px"
:suffix-icon="Search"
/>
</div>
</div>
<div class="stats-row">
<div class="tabs">
<div class="tab-btn" :class="{ active: activeTab === 'add' }" @click="activeTab = 'add'">
......@@ -120,35 +151,6 @@
</div>
</div>
</div>
<div class="filter-row">
<div class="filter-left">
<!-- <el-select v-model="filterEntity" placeholder="受制裁实体" style="width: 184px">
<el-option label="受制裁实体" value="1" />
</el-select> -->
</div>
<div class="filter-right">
<el-checkbox v-model="onlyChina" label="只看中国实体" />
<el-select
v-model="filterField"
placeholder="全部领域"
style="width: 150px; margin: 0 12px 0 16px"
>
<el-option label="全部领域" value="" />
<el-option
v-for="item in domainOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input
v-model="searchKeyword"
placeholder="搜索实体"
style="width: 150px"
:suffix-icon="Search"
/>
</div>
</div>
</div>
<div class="right-content">
<div class="sanction-group-list">
......@@ -286,7 +288,8 @@ const getSanctionOverviewList = async () => {
isOnlyCn: onlyChina.value,
domainId: filterField.value || undefined,
searchText: searchKeyword.value || undefined,
searchType: searchType.value
searchType: searchType.value,
entityTypeId: filterEntity.value || undefined
});
isLoading.value = false;
if (res.code === 200) {
......@@ -446,7 +449,7 @@ const formattedData = computed(() => {
};
});
const filterEntity = ref("");
const filterEntity = ref("2");
const onlyChina = ref(false);
const filterField = ref("");
const searchKeyword = ref("");
......@@ -454,7 +457,7 @@ const activeTab = ref("add");
const searchType = computed(() => activeTab.value);
// 监听筛选条件变化
watch([onlyChina, filterField, activeTab], () => {
watch([onlyChina, filterField, activeTab, filterEntity], () => {
getSanctionOverviewList();
});
......@@ -865,9 +868,9 @@ onMounted(() => {
.filter-row {
display: flex;
justify-content: right;
justify-content: space-between;
align-items: center;
// margin-bottom: 20px;
margin-bottom: 20px;
:deep(.el-input__inner) {
font-size: 16px;
......@@ -897,7 +900,7 @@ onMounted(() => {
.stats-row {
display: flex;
margin-bottom: 20px;
// margin-bottom: 20px;
justify-content: space-between;
align-items: center;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论