提交 dd2b632a authored 作者: yanpeng's avatar yanpeng

finance api

上级 b9c11ff5
...@@ -498,14 +498,15 @@ export function getEntitiesUpdateCount(sanTypeId = 1) { ...@@ -498,14 +498,15 @@ export function getEntitiesUpdateCount(sanTypeId = 1) {
* @param {string} rule - 规则 * @param {string} rule - 规则
* @param {string} type - 类型 * @param {string} type - 类型
*/ */
export function getSanDomainCount(rule, type) { export function getSanDomainCount(rule, sanTypeIds, type) {
return request200( return request200(
request({ request({
method: "GET", method: "GET",
url: "/api/entitiesDataCount/getSanDomainCount", url: "/api/entitiesDataCount/getSanDomainCount",
params: { params: {
rule, rule,
type sanTypeIds
// type
} }
}) })
); );
......
...@@ -136,3 +136,27 @@ export function getRelateNews(sanRecordId) { ...@@ -136,3 +136,27 @@ export function getRelateNews(sanRecordId) {
export function getReasonAndSan(sanRecordId) { export function getReasonAndSan(sanRecordId) {
return http.get(`/api/sanctionList/invFin/getReasonAndSan?sanRecordId=${sanRecordId}`); return http.get(`/api/sanctionList/invFin/getReasonAndSan?sanRecordId=${sanRecordId}`);
} }
/**
* 制裁历程
* url:/entitiesDataCount/getSanRecord
*/
export function getSanRecord(params) {
return http.get("/api/entitiesDataCount/getSanRecord", params);
}
/**
* 限制关系分析-限制举措关系图
* url:/sanctionList/invFin/recordRelation
*/
export function getRecordRelation(sanRecordIds) {
return http.get(`/api/sanctionList/invFin/recordRelation?sanRecordIds=${sanRecordIds}`);
}
/**
* 查询投融资限制关联-图谱-节点详情
* url:/sanctionList/invFin/getVertexInfo
*/
export function getVertexInfo(sanRecordId) {
return http.get(`/api/sanctionList/invFin/getVertexInfo?sanRecordId=${sanRecordId}`);
}
\ No newline at end of file
...@@ -1231,7 +1231,7 @@ const radarOption = ref({ ...@@ -1231,7 +1231,7 @@ const radarOption = ref({
// 获取雷达图数据 // 获取雷达图数据
const fetchRadarData = async checked => { const fetchRadarData = async checked => {
try { try {
const data = await getSanDomainCount(checked, "export"); const data = await getSanDomainCount(checked, allSanTypeIds.value.join(","));
if (data && Array.isArray(data) && data.length > 0) { if (data && Array.isArray(data) && data.length > 0) {
// 收集所有可能的领域名称 // 收集所有可能的领域名称
const allDomains = new Set(); const allDomains = new Set();
...@@ -1817,15 +1817,6 @@ const handleMediaClick = item => { ...@@ -1817,15 +1817,6 @@ const handleMediaClick = item => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// * {
// margin: 0;
// padding: 0;
// }
:deep(.el-input__wrapper) {
// box-shadow: none;
}
.list-page { .list-page {
padding-top: 0; padding-top: 0;
} }
...@@ -3278,10 +3269,10 @@ const handleMediaClick = item => { ...@@ -3278,10 +3269,10 @@ const handleMediaClick = item => {
} }
.text { .text {
font-size: 20px; font-size: 16px;
font-weight: 700; font-weight: 700;
font-family: "Microsoft YaHei"; font-family: "Source Han Sans CN";
line-height: 26px; line-height: 24px;
color: rgb(5, 95, 194); color: rgb(5, 95, 194);
} }
} }
......
...@@ -2,14 +2,14 @@ ...@@ -2,14 +2,14 @@
<div class="list-page"> <div class="list-page">
<div class="search-box"> <div class="search-box">
<div style="display: flex; justify-content: center"> <div style="display: flex; justify-content: center">
<el-select v-model="currentCCLVersion" style="width: 388px; height: 32px; margin-right: 14px"> <el-select v-model="currentCCLVersion" style="width: 360px; height: 32px; margin-right: 14px">
<el-option v-for="item in cclVersionList" :key="item.key" :label="item.value" :value="item.key" /> <el-option v-for="item in cclVersionList" :key="item.key" :label="item.value" :value="item.key" />
</el-select> </el-select>
<el-input v-model="searchKeyword" class="search-input" placeholder="搜索物项或ECCN编码" :suffix-icon="Search" /> <el-input v-model="searchKeyword" class="search-input" placeholder="搜索物项或ECCN编码" :suffix-icon="Search" />
</div> </div>
<div class="filters"> <div class="filters">
<el-checkbox v-model="viewNew" label="查看最近更新内容" /> <el-checkbox v-model="viewNew" label="查看最近更新内容" />
<el-select placeholder="全部类别" v-model="currentCCLType" style="width: 388px; height: 32px; margin-right: 14px"> <el-select placeholder="全部类别" v-model="currentCCLType" style="width: 360px; height: 32px; margin-right: 14px">
<el-option v-for="item in CCLTypeList" :key="item.id" :label="item.name" :value="item.id" /> <el-option v-for="item in CCLTypeList" :key="item.id" :label="item.name" :value="item.id" />
</el-select> </el-select>
</div> </div>
...@@ -381,14 +381,15 @@ onMounted(async () => { ...@@ -381,14 +381,15 @@ onMounted(async () => {
align-items: center; align-items: center;
.search-input { .search-input {
width: 388px; width: 360px;
height: 32px; height: 32px;
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
padding: 0 11px; padding: 0 11px;
border: 1.5px solid #dcdfe6; // border: 1.5px solid #dcdfe6;
background-color: #fff; background-color: #fff;
border-radius: 4px; border-radius: 4px;
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
} }
:deep(.el-input__inner) { :deep(.el-input__inner) {
...@@ -439,25 +440,26 @@ onMounted(async () => { ...@@ -439,25 +440,26 @@ onMounted(async () => {
.left { .left {
padding-bottom: 20px; padding-bottom: 20px;
width: 388px; width: 360px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
background-color: #fff; background-color: #fff;
.checkbox-group { .checkbox-group {
display: flex; display: grid;
flex-wrap: wrap; grid-template-columns: repeat(2, 160px);
padding: 0 0 0 24px; gap: 8px 4px;
padding-left: 24px;
.el-checkbox { .el-checkbox {
width: 50%; width: 50%;
margin-right: 0; margin-right: 0;
margin-bottom: 4px; // margin-bottom: 4px;
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
line-height: 24px; line-height: 24px;
height: 24px;
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
} }
...@@ -504,7 +506,7 @@ onMounted(async () => { ...@@ -504,7 +506,7 @@ onMounted(async () => {
} }
.right { .right {
width: 1196px; width: 1223px;
height: auto; height: auto;
.title { .title {
width: 100%; width: 100%;
......
...@@ -514,11 +514,6 @@ watch(customDateRange, () => { ...@@ -514,11 +514,6 @@ watch(customDateRange, () => {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
* {
margin: 0;
padding: 0;
}
.list-page { .list-page {
width: 1601px; width: 1601px;
padding-bottom: 50px; padding-bottom: 50px;
...@@ -532,7 +527,7 @@ watch(customDateRange, () => { ...@@ -532,7 +527,7 @@ watch(customDateRange, () => {
align-items: center; align-items: center;
.search-input { .search-input {
width: 388px; width: 360px;
height: 32px; height: 32px;
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
...@@ -583,7 +578,7 @@ watch(customDateRange, () => { ...@@ -583,7 +578,7 @@ watch(customDateRange, () => {
.left { .left {
padding-bottom: 20px; padding-bottom: 20px;
width: 388px; width: 360px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
...@@ -654,7 +649,7 @@ watch(customDateRange, () => { ...@@ -654,7 +649,7 @@ watch(customDateRange, () => {
} }
.right { .right {
width: 1196px; width: 1223px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
......
{
"id": 2140,
"name": "美国以伊朗石油非法贸易为由实施制裁,多家中国企业被列入制裁名单",
"domainList": [
"海洋"
],
"relyFileList": [
{
"id": null,
"name": "第13382号行政命令"
},
{
"id": null,
"name": "第14530号行政命令"
}
],
"relySanList": [
{
"sanTypeId": 2,
"id": 2145,
"title": "OFAC将38个实体及4名个人列入SDN清单,涉及中国关联主体",
"postDate": "2025-10-14"
}
],
"sanReasonList": [
"参与了从伊朗购买、收购、销售、运输或营销石油化工产品",
"参与了与采购、获取、销售、运输或销售伊朗石油及石油制品相关的重大交易"
],
"addObjectList": [
{
"key": "机构",
"value": 3
}
],
"delObjectList": [
{
"key": "人物",
"value": 1
}
],
"sanList": [
{
"entityId": "91310115MA1HBB8PXH",
"entityName": "SHANGHAI QIZHANG SHIP MANAGEMENT CO., LTD.",
"entityNameZh": "上海启章船舶管理有限公司",
"entityTypeId": 2,
"entityTypeName": "机构",
"domainNames": [
"海洋"
]
},
{
"entityId": "71180883",
"entityName": "ALL WIN SHIPPING MANAGEMENT LIMITED",
"entityNameZh": "誠安船舶管理有限公司",
"entityTypeId": 2,
"entityTypeName": "机构",
"domainNames": [
"海洋"
]
},
{
"entityId": "91370211MAEBUA7E2Q",
"entityName": "QINGDAO OCEAN KIMO SHIP MANAGEMENT CO LTD",
"entityNameZh": "青岛明洋凯茂船舶管理有限公司",
"entityTypeId": 2,
"entityTypeName": "机构",
"domainNames": [
"海洋"
]
}
]
}
\ No newline at end of file
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
</div> </div>
</div> </div>
<div class="main"> <div class="main">
<div v-if="activeIndex == 0"> <div class="sanctionTime" v-if="activeIndex == 0">
<div class="left"> <div class="left">
<AnalysisBox title="选择制裁"> <AnalysisBox title="选择制裁">
<div class="left-main"> <div class="left-main">
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</template> </template>
<div class="right-main"> <div class="right-main">
<div class="right-main-content"> <div class="right-main-content">
<div class="hintWrap"> <!-- <div class="hintWrap">
<div class="icon1"></div> <div class="icon1"></div>
<div class="title"> <div class="title">
2025年实体清单制裁范围扩大至芯片制造环节,为中国的芯片制造能力划定“技术天花板”,阻止其向更先进水平发展。制裁范围向上游设备和材料、下游先进封装以及关键工具(如EDA软件)延伸,意图瓦解中国构建自主可控产业链的努力。 2025年实体清单制裁范围扩大至芯片制造环节,为中国的芯片制造能力划定“技术天花板”,阻止其向更先进水平发展。制裁范围向上游设备和材料、下游先进封装以及关键工具(如EDA软件)延伸,意图瓦解中国构建自主可控产业链的努力。
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
<div class="icon2Wrap"> <div class="icon2Wrap">
<div class="icon2"></div> <div class="icon2"></div>
</div> </div>
</div> </div> -->
<div class="right-main-content-main"> <div class="right-main-content-main">
<div class="fishbone-wrapper"> <div class="fishbone-wrapper">
<div class="fishbone-scroll-container" ref="scrollContainerRef"> <div class="fishbone-scroll-container" ref="scrollContainerRef">
...@@ -557,8 +557,6 @@ onUnmounted(() => { ...@@ -557,8 +557,6 @@ onUnmounted(() => {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.deep-mining { .deep-mining {
width: 1601px; width: 1601px;
margin: 0 auto; margin: 0 auto;
...@@ -610,6 +608,11 @@ onUnmounted(() => { ...@@ -610,6 +608,11 @@ onUnmounted(() => {
padding-bottom: 50px; padding-bottom: 50px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.sanctionTime {
display: flex;
padding-top: 12px;
gap: 10px;
}
.left { .left {
width: 480px; width: 480px;
......
...@@ -433,11 +433,6 @@ onMounted(() => { ...@@ -433,11 +433,6 @@ onMounted(() => {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
* {
margin: 0;
padding: 0;
}
.introduction-page { .introduction-page {
width: 1601px; width: 1601px;
margin: 0 auto; margin: 0 auto;
......
...@@ -532,12 +532,12 @@ watch(customDateRange, () => { ...@@ -532,12 +532,12 @@ watch(customDateRange, () => {
align-items: center; align-items: center;
.search-input { .search-input {
width: 388px; width: 360px;
height: 32px; height: 32px;
:deep(.el-input__wrapper) { :deep(.el-input__wrapper) {
padding: 0 11px; padding: 0 11px;
border: 1px solid rgba(170, 173, 177, 1); border: 1px solid rgba(170, 173, 177, 0.5);
background-color: #fff; background-color: #fff;
border-radius: 3px; border-radius: 3px;
} }
...@@ -579,7 +579,7 @@ watch(customDateRange, () => { ...@@ -579,7 +579,7 @@ watch(customDateRange, () => {
.left { .left {
padding-bottom: 20px; padding-bottom: 20px;
width: 388px; width: 360px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
...@@ -598,11 +598,12 @@ watch(customDateRange, () => { ...@@ -598,11 +598,12 @@ watch(customDateRange, () => {
.el-checkbox { .el-checkbox {
width: 50%; width: 50%;
margin-right: 0; margin-right: 0;
margin-bottom: 4px; // margin-bottom: 4px;
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
font-family: "Microsoft YaHei"; font-family: "Microsoft YaHei";
line-height: 24px; line-height: 24px;
height: 24px;
color: rgb(95, 101, 108); color: rgb(95, 101, 108);
} }
...@@ -649,7 +650,7 @@ watch(customDateRange, () => { ...@@ -649,7 +650,7 @@ watch(customDateRange, () => {
} }
.right { .right {
width: 1196px; width: 1223px;
height: auto; height: auto;
border-radius: 10px; border-radius: 10px;
box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1); box-shadow: 0px 0px 20px 0px rgba(25, 69, 130, 0.1);
......
...@@ -724,7 +724,7 @@ import { ...@@ -724,7 +724,7 @@ import {
getCountDomainByYear, getCountDomainByYear,
getEntitiesList, getEntitiesList,
getSanctionProcess, getSanctionProcess,
// getSanDomainCount, getSanDomainCount,
// getRiskSignal, // getRiskSignal,
// getSocialMediaInfo, // getSocialMediaInfo,
// getNewsInfo, // getNewsInfo,
...@@ -738,7 +738,7 @@ import { ...@@ -738,7 +738,7 @@ import {
getNewsInfo, getNewsInfo,
getSocialMediaInfo, getSocialMediaInfo,
getReleaseCount, getReleaseCount,
getSanDomainCount, // getSanDomainCount,
getAnnualSanDomain getAnnualSanDomain
// getSanctionProcess // getSanctionProcess
} from "@/api/finance"; } from "@/api/finance";
...@@ -1143,7 +1143,7 @@ const radarOption = ref({ ...@@ -1143,7 +1143,7 @@ const radarOption = ref({
// 获取雷达图数据 // 获取雷达图数据
const fetchRadarData = async checked => { const fetchRadarData = async checked => {
try { try {
const data = await getSanDomainCount(checked, "export"); const data = await getSanDomainCount(checked, allSanTypeIds.value.join(","));
if (data && Array.isArray(data) && data.length > 0) { if (data && Array.isArray(data) && data.length > 0) {
// 收集所有可能的领域名称 // 收集所有可能的领域名称
const allDomains = new Set(); const allDomains = new Set();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论