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

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

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