提交 79410949 authored 作者: 张伊明's avatar 张伊明

合并分支 'zym-dev' 到 'pre'

Zym dev 查看合并请求 !326
流水线 #393 已通过 于阶段
in 3 分 47 秒
......@@ -16,7 +16,7 @@ export function getBillIndustry(params) {
return request({
method: 'GET',
url: `/api/BillOverview/billIndustry/${params.year}`,
params: { status: params.status }
params: { stageName: params.stageName }
})
}
......
<template>
<p class="p-regular-rereg">
<span class="text-regular" v-for="(segment, index) in processedText" :key="index">
<span v-if="segment.isEntity" @click="$emit('onEntityClick', segment.entity)" class="entity-link">
<span
v-if="segment.isEntity"
@click="$emit('onEntityClick', segment.entity)"
:class="['entity-link', { 'keyword-highlight': segment.isKeywordHit }]"
>
{{ segment.entity?.text_span }}
<img :src="SearchIcon" :width="10" :height="10" alt="search" />
</span>
<span v-else>
{{ segment.text }}
<span :class="{ 'keyword-highlight': segment.isKeywordHit }">{{ segment.text }}</span>
</span>
</span>
</p>
......@@ -20,6 +24,7 @@ export interface ProcessedTextSegment {
text: string;
isEntity: boolean;
entity?: TextEntity;
isKeywordHit?: boolean;
}
const props = defineProps({
text: {
......@@ -29,15 +34,42 @@ const props = defineProps({
entities: {
type: Array<TextEntity>,
default: () => []
},
highlight: {
type: String,
default: ""
}
});
const emit = defineEmits(["onEntityClick"]);
// 处理后的文本段
const processedText = ref<ProcessedTextSegment[]>([]);
const normalizeKeyword = (value: unknown) => String(value ?? "").trim();
const getKeywordMatches = (text: string, keyword: string) => {
if (!keyword) return [{ text, isKeywordHit: false }];
const lowerText = text.toLowerCase();
const lowerKeyword = keyword.toLowerCase();
if (!lowerKeyword) return [{ text, isKeywordHit: false }];
const parts: Array<{ text: string; isKeywordHit: boolean }> = [];
let start = 0;
while (start < text.length) {
const index = lowerText.indexOf(lowerKeyword, start);
if (index === -1) {
parts.push({ text: text.slice(start), isKeywordHit: false });
break;
}
if (index > start) {
parts.push({ text: text.slice(start, index), isKeywordHit: false });
}
parts.push({ text: text.slice(index, index + keyword.length), isKeywordHit: true });
start = index + keyword.length;
}
return parts.filter(part => part.text);
};
// 处理文本,识别并替换实体
const processText = () => {
console.log("props.entities.length", props.entities.length);
if (!props.text || !props.entities) {
// console.log('props.text', props.entities.length)
processedText.value = [{ text: "", isEntity: false }];
......@@ -46,6 +78,7 @@ const processText = () => {
const result = [];
let currentPosition = 0;
const keyword = normalizeKeyword(props.highlight);
// 按实体文本长度排序,优先匹配长文本
const sortedEntities = [...props.entities].sort((a, b) => b.text_span.length - a.text_span.length);
......@@ -61,7 +94,8 @@ const processText = () => {
// 如果当前位置是实体,添加到结果
result.push({
isEntity: true,
entity: { ...entity }
entity: { ...entity },
isKeywordHit: keyword ? entityText.toLowerCase().includes(keyword.toLowerCase()) : false
});
currentPosition = endPosition;
matched = true;
......@@ -82,18 +116,26 @@ const processText = () => {
if (nextEntityStart > currentPosition) {
const plainText = props.text.substring(currentPosition, nextEntityStart);
result.push({
text: plainText,
isEntity: false
const parts = getKeywordMatches(plainText, keyword);
parts.forEach(part => {
result.push({
text: part.text,
isEntity: false,
isKeywordHit: part.isKeywordHit
});
});
currentPosition = nextEntityStart;
} else {
// 没有更多实体,添加剩余文本
const remainingText = props.text.substring(currentPosition);
if (remainingText) {
result.push({
text: remainingText,
isEntity: false
const parts = getKeywordMatches(remainingText, keyword);
parts.forEach(part => {
result.push({
text: part.text,
isEntity: false,
isKeywordHit: part.isKeywordHit
});
});
}
currentPosition = props.text.length;
......@@ -106,6 +148,7 @@ const processText = () => {
// 监听文本和实体变化
watch(() => props.text, processText);
watch(() => props.entities, processText, { deep: true });
watch(() => props.highlight, processText);
// 初始化处理
onMounted(processText);
......@@ -113,6 +156,11 @@ onMounted(processText);
<style lang="scss" scoped>
@use "@/styles/common.scss";
.keyword-highlight {
background: rgba(255, 199, 0, 0.35);
border-radius: 2px;
}
.entity-link {
color: var(--color-primary-100);
&:hover {
......
......@@ -93,7 +93,7 @@
<div class="item">
<div class="item-left">法案进展:</div>
<div class="item-right2">
<div class="tag" v-for="(val, idx) in getReversedProgress(item.progress)" :key="`${item.billId}-${val}-${idx}`" :style="{ zIndex: item.progress.length - idx }">{{ val }}</div>
<div class="tag" v-for="(val, idx) in item.progress" :key="`${item.billId}-${val}-${idx}`" :style="{ zIndex: item.progress.length - idx }">{{ val }}</div>
</div>
</div>
</div>
......@@ -458,8 +458,6 @@ const handleClickAvatar = async member => {
} catch (error) {}
};
const getReversedProgress = progress => (Array.isArray(progress) ? [...progress].reverse() : []);
const handleClickCommitteeBill = bill => {
if (!bill?.billId) return;
props.onClickToDetail({
......
......@@ -373,7 +373,8 @@ const committeeTimeRange = ref("近一月");
const committeeTimeOptions = [
{ label: "近一周", value: "近一周" },
{ label: "近一月", value: "近一月" },
{ label: "近一年", value: "近一年" }
{ label: "近一年", value: "近一年" },
{label:"全部时间", value: "全部时间"}
];
const committeeCardList = ref([]);
......@@ -1029,14 +1030,15 @@ const handleBox6 = async () => {
// 涉华领域分布
const box9ChartData = ref([]);
const box9selectetedTime = ref("2025");
// 立法状态下拉:提出法案、众议院通过、参议院通过、解决分歧、完成立法
// v-model 存储的是接口需要的 status 值
const box9LegislativeStatus = ref("提案");
// 立法状态下拉:提出法案、众议院通过、参议院通过、解决分歧、呈交总统、完成立法
// v-model 存储的是接口需要的 status 值(直接作为接口参数)
const box9LegislativeStatus = ref("提出法案");
const box9LegislativeStatusList = ref([
{ label: "提出法案", value: "提案" },
{ label: "提出法案", value: "提出法案" },
{ label: "众议院通过", value: "众议院通过" },
{ label: "参议院通过", value: "参议院通过" },
{ label: "解决分歧", value: "分歧已解决" },
{ label: "解决分歧", value: "解决分歧" },
{ label: "呈交总统", value: "呈交总统" },
{ label: "完成立法", value: "完成立法" }
]);
const box9YearList = ref([
......@@ -1063,18 +1065,39 @@ const box9YearList = ref([
]);
const box9HasData = ref(true);
let box9ChartInstance = null;
const BOX9_MAX_DOMAIN_COUNT = 7;
const BOX9_OTHER_DOMAIN_NAME = "其他";
const formatBox9DomainData = (list = []) => {
if (!Array.isArray(list) || list.length <= BOX9_MAX_DOMAIN_COUNT) {
return list;
}
const topDomainList = list.slice(0, BOX9_MAX_DOMAIN_COUNT);
const otherDomainCount = list.slice(BOX9_MAX_DOMAIN_COUNT).reduce((sum, item) => {
return sum + Number(item?.countBill || 0);
}, 0);
if (!otherDomainCount) {
return topDomainList;
}
return [
...topDomainList,
{
industryName: BOX9_OTHER_DOMAIN_NAME,
countBill: otherDomainCount
}
];
};
const getBox9Data = async () => {
chartLoading.value = { ...chartLoading.value, box6: true };
const params = {
year: box9selectetedTime.value,
status: box9LegislativeStatus.value
stageName: box9LegislativeStatus.value
};
try {
const res = await getBillIndustry(params);
console.log("box9-涉华法案领域分布", res.data);
if (res.code === 200 && res.data && res.data.length > 0) {
box9HasData.value = true;
box9ChartData.value = res.data;
box9ChartData.value = formatBox9DomainData(res.data);
} else {
box9HasData.value = false;
box9ChartData.value = [];
......@@ -1104,16 +1127,9 @@ const handleBox9Data = async () => {
const selectedIndex = box9LegislativeStatusList.value.findIndex(
item => item.value === box9LegislativeStatus.value
);
const arr = [
{ label: "提出法案", value: "提案" },
{ label: "众议院通过", value: "众议院通过" },
{ label: "参议院通过", value: "参议院通过" },
{ label: "解决分歧", value: "分歧已解决" },
{ label: "完成立法", value: "完成立法" }
]
const status = arr.filter(item => {
return item.value === box9LegislativeStatus.value
})[0].label
// 当前选中的立法状态中文名(直接等于接口传参值)
const statusItem = box9LegislativeStatusList.value[selectedIndex];
const status = statusItem ? statusItem.label : "";
const selectParam = {
moduleType: '国会法案',
key: 2,
......@@ -1272,13 +1288,14 @@ const getBox8ChartOption = stageList => {
const handleBox8Data = async () => {
chartLoading.value = { ...chartLoading.value, box8: true };
// 进展分布显示顺序:提出法案(对应进度“提案”)、众议院通过、参议院通过、分歧已解决(解决分歧)、完成立法
const stageOrder = ["提案", "众议院通过", "参议院通过", "分歧已解决", "完成立法"];
// 进展分布显示顺序:提出法案(对应进度“提案”)、众议院通过、参议院通过、解决分歧(对应进度“分歧已解决”)、呈交总统、完成立法
const stageOrder = ["提案", "众议院通过", "参议院通过", "分歧已解决", "呈交总统", "完成立法"];
const stageNameMap = {
提案: "提出法案",
众议院通过: "众议院通过",
参议院通过: "参议院通过",
分歧已解决: "解决分歧",
呈交总统: "呈交总统",
完成立法: "完成立法"
};
......
......@@ -1169,6 +1169,10 @@ onMounted(async () => {
<style lang="scss" scoped>
.wrap {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
direction: ltr;
justify-content: flex-start;
margin-bottom: 30px;
......@@ -1254,6 +1258,8 @@ onMounted(async () => {
.left {
margin-top: 16px;
width: 792px;
flex: 0 0 792px;
.box1 {
width: 792px;
......@@ -1651,6 +1657,7 @@ onMounted(async () => {
margin-left: 16px;
margin-top: 16px;
width: 792px;
flex: 0 0 792px;
height: 847px;
.box3 {
......
......@@ -131,6 +131,7 @@
<IntelligentEntityText
:text="term?.fynr || ''"
:entities="termsHighlight ? getTermEntities(term, 'cn') : []"
:highlight="searchKeyword"
@on-entity-click="e => gotoSearchResults(e.text_span, '')"
/>
</div>
......@@ -141,6 +142,7 @@
<IntelligentEntityText
:text="term?.ywnr || ''"
:entities="termsHighlight ? getTermEntities(term, 'en') : []"
:highlight="searchKeyword"
@on-entity-click="e => gotoSearchResults(e.text_span, '')"
/>
</div>
......@@ -343,6 +345,27 @@ const chart1ColorList = ref([...MUTICHARTCOLORS]);
const chart2ColorList = ref([...MUTICHARTCOLORS]);
const chart2Data = ref([]);
const DOMAIN_MAX_DISPLAY_COUNT = 7;
const DOMAIN_OTHER_NAME = "其他";
const formatDomainChartData = (list = []) => {
if (!Array.isArray(list) || list.length <= DOMAIN_MAX_DISPLAY_COUNT) {
return list;
}
const topDomainList = list.slice(0, DOMAIN_MAX_DISPLAY_COUNT);
const otherCount = list.slice(DOMAIN_MAX_DISPLAY_COUNT).reduce((sum, item) => {
return sum + Number(item?.value || 0);
}, 0);
if (!otherCount) {
return topDomainList;
}
return [
...topDomainList,
{
name: DOMAIN_OTHER_NAME,
value: otherCount
}
];
};
const aiPaneVisible = ref({
domain: false,
......@@ -737,12 +760,13 @@ const handleGetBillHyly = async () => {
.map(name => {
return { label: name, value: name };
});
chart2Data.value = res.data.map(item => {
const domainChartData = res.data.map(item => {
return {
name: item.hylymc,
value: item.countTk
};
});
chart2Data.value = formatDomainChartData(domainChartData);
aiPaneFetched.value = { ...aiPaneFetched.value, domain: false };
let chart2 = getPieChart(chart2Data.value, chart2ColorList.value);
......
......@@ -730,8 +730,6 @@ public class RemarksVO {
}
```
# 字典
## 领域类别(id:name)
......@@ -764,7 +762,7 @@ public class RemarksVO {
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiIsImlzcyI6ImRhdGEtY2VudGVyIiwiZXhwIjozODI1ODM1NTkxLCJpYXQiOjE2NzgzNTE5NTMsImp0aSI6IjI4YmY1NTZjMTc0MDQ3YjJiNTExNWM3NzVhYjhlNWRmIiwidXNlcm5hbWUiOiJzdXBlcl91c2VyIn0.zHyVzsleX2lEqjDBYRpwluu_wy2nZKGl0dw3IUGnKNw
```
输出结果:ApiResult<List<SanctionTypeBean>>
输出结果:ApiResult
## 最新出口管制政策(4条)
......@@ -782,7 +780,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiIsImlzcyI6ImRhdGEtY2VudGVyIiwiZXhwIjozODI1ODM1NTkxLCJpYXQiOjE2NzgzNTE5NTMsImp0aSI6IjI4YmY1NTZjMTc0MDQ3YjJiNTExNWM3NzVhYjhlNWRmIiwidXNlcm5hbWUiOiJzdXBlcl91c2VyIn0.zHyVzsleX2lEqjDBYRpwluu_wy2nZKGl0dw3IUGnKNw
```
输出结果:ApiResult<LatestExportControlInfo>
输出结果:ApiResult
## 发布(更新)频度
......@@ -802,7 +800,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiIsImlzcyI6ImRhdGEtY2VudGVyIiwiZXhwIjozODI1ODM1NTkxLCJpYXQiOjE2NzgzNTE5NTMsImp0aSI6IjI4YmY1NTZjMTc0MDQ3YjJiNTExNWM3NzVhYjhlNWRmIiwidXNlcm5hbWUiOiJzdXBlcl91c2VyIn0.zHyVzsleX2lEqjDBYRpwluu_wy2nZKGl0dw3IUGnKNw
```
输出结果:ApiResult<List<AnnualCount>>
输出结果:ApiResult
## **制裁领域分析**(20251215)
......@@ -820,7 +818,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiIsImlzcyI6ImRhdGEtY2VudGVyIiwiZXhwIjozODI1ODM1NTkxLCJpYXQiOjE2NzgzNTE5NTMsImp0aSI6IjI4YmY1NTZjMTc0MDQ3YjJiNTExNWM3NzVhYjhlNWRmIiwidXNlcm5hbWUiOiJzdXBlcl91c2VyIn0.zHyVzsleX2lEqjDBYRpwluu_wy2nZKGl0dw3IUGnKNw
```
输出结果:ApiResult<List<DomainCount>>
输出结果:ApiResult
## **历次制裁过程**
......@@ -838,7 +836,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiIsImlzcyI6ImRhdGEtY2VudGVyIiwiZXhwIjozODI1ODM1NTkxLCJpYXQiOjE2NzgzNTE5NTMsImp0aSI6IjI4YmY1NTZjMTc0MDQ3YjJiNTExNWM3NzVhYjhlNWRmIiwidXNlcm5hbWUiOiJzdXBlcl91c2VyIn0.zHyVzsleX2lEqjDBYRpwluu_wy2nZKGl0dw3IUGnKNw
```
输出结果:ApiResult<Page<SanctionProcess>>
输出结果:ApiResult
## **制裁实体清单**列表(20251215)
......@@ -860,7 +858,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiIsImlzcyI6ImRhdGEtY2VudGVyIiwiZXhwIjozODI1ODM1NTkxLCJpYXQiOjE2NzgzNTE5NTMsImp0aSI6IjI4YmY1NTZjMTc0MDQ3YjJiNTExNWM3NzVhYjhlNWRmIiwidXNlcm5hbWUiOiJzdXBlcl91c2VyIn0.zHyVzsleX2lEqjDBYRpwluu_wy2nZKGl0dw3IUGnKNw
```
输出结果:ApiResult<Page<SanctionListBean>>
输出结果:ApiResult
## **发布机构与重点人物**
......@@ -876,7 +874,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<OrgInfo>
输出结果:ApiResult
## **领域分布查询**
......@@ -890,7 +888,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **类型分布查询**
......@@ -904,7 +902,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **区域分布查询**
......@@ -918,7 +916,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<RegionCount>>
输出结果:ApiResult
## **制裁理由查询**
......@@ -932,7 +930,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<String>>
输出结果:ApiResult
## **深度挖掘-制裁信息变化统计**
......@@ -946,7 +944,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<SanCountInfo>
输出结果:ApiResult
## **年度实体数统计**
......@@ -962,7 +960,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<SanCountInfo>
输出结果:ApiResult
## **重点实体列表查询**
......@@ -976,7 +974,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<OrgInfo>>
输出结果:ApiResult
## **上市企业制裁强度**
......@@ -990,7 +988,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **上市企业融资变化情况**
......@@ -1004,7 +1002,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **上市企业市值变化情况**
......@@ -1018,7 +1016,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **重点上市企业列表**
......@@ -1032,7 +1030,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<OrgInfo>>
输出结果:ApiResult
## **历次制裁涉及领域数查询**
......@@ -1046,7 +1044,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **具体领域的制裁实体数统计**
......@@ -1060,7 +1058,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<AnnualCount>>
输出结果:ApiResult
## **具体实体类型的制裁实体数统计**
......@@ -1074,7 +1072,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<AnnualCount>>
输出结果:ApiResult
## **产业链结构查询**
......@@ -1088,7 +1086,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<Chain>>
输出结果:ApiResult
## **根据领域获取产业链信息**
......@@ -1102,7 +1100,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<Chain>>
输出结果:ApiResult
## **产业链鱼骨图信息查询**
......@@ -1116,7 +1114,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<FishboneResp>
输出结果:ApiResult
## **产业链中国企业实体信息查询**
......@@ -1130,7 +1128,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<AreasStreamResp>
输出结果:ApiResult
## **实体列表查询**
......@@ -1144,7 +1142,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<OrgInfo>>
输出结果:ApiResult
## **历年制裁领域统计**
......@@ -1158,7 +1156,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<AnnualDomainCount>>
输出结果:ApiResult
## **新增实体数量增长趋势**
......@@ -1172,7 +1170,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<AnnualCount>>
输出结果:ApiResult
## **获取机构的详情信息**
......@@ -1186,7 +1184,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<Organization>
输出结果:ApiResult
## **获取美国前序事件**
......@@ -1200,7 +1198,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<Page<EventInfo>>
输出结果:ApiResult
## **新增科研机构列表**
......@@ -1214,7 +1212,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **各类别仪器对美依赖情况**
......@@ -1224,11 +1222,11 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
输入参数:
​ 参数:List<String> orgIds 机构公司ID列表
​ 参数:List orgIds 机构公司ID列表
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **仪器对美依赖度升高风险分析**
......@@ -1242,7 +1240,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **仪器进口国可替代性分析**
......@@ -1252,11 +1250,11 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
输入参数:
​ 参数:List<String> orgIds 机构公司ID列表
​ 参数:List orgIds 机构公司ID列表
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **仪器国产化降低风险分析**
......@@ -1270,7 +1268,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<BaseCount>>
输出结果:ApiResult
## **制裁实体清单50%规则实体数**
......@@ -1284,7 +1282,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<RuleEntityCount>
输出结果:ApiResult
## **科研院所类实体历史制裁情况**
......@@ -1298,7 +1296,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<AnnualCount>>
输出结果:ApiResult
## **企业类实体历史制裁情况**
......@@ -1312,7 +1310,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<AnnualCount>>
输出结果:ApiResult
## **风险信号**
......@@ -1326,7 +1324,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<RiskSignalVO>>
输出结果:ApiResult
## **新闻资讯**
......@@ -1340,7 +1338,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<NewsVO>>
输出结果:ApiResult
## **社交媒体**
......@@ -1354,4 +1352,4 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkYXRhLWNlbnRlciIsImF1ZCI6IndlYiI
​ 请求头:携带token
输出结果:ApiResult<List<RemarksVO>>
\ No newline at end of file
输出结果:ApiResult
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论