Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
d5e537f5
提交
d5e537f5
authored
12月 26, 2025
作者:
huhuiqing
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
http://8.140.26.4:10003/caijian/risk-monitor
into dev_hhq
上级
400b5862
42d260a3
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
30 行增加
和
454 行删除
+30
-454
App.vue
src/App.vue
+30
-58
index.js
src/api/index.js
+0
-250
mockdata.js
src/api/mockdata.js
+0
-146
没有找到文件。
src/App.vue
浏览文件 @
d5e537f5
...
@@ -9,58 +9,8 @@
...
@@ -9,58 +9,8 @@
</div>
</div>
<div
class=
"brand-text"
@
click=
"handleToHome"
>
<div
class=
"brand-text"
@
click=
"handleToHome"
>
<div
class=
"text-ch"
>
某方向风险监测预警系统
</div>
<div
class=
"text-ch"
>
某方向风险监测预警系统
</div>
<!--
<div
class=
"text-en"
>
National Science and Technology Security Risk Monitoring and Early Warning System
</div>
-->
</div>
</div>
</div>
</div>
<!--
<div
class=
"nav-menu"
>
<el-dropdown
@
command=
"handleHomeCommand"
class=
"home-dropdown"
>
<div
class=
"nav-link dropdown-trigger"
>
<el-icon>
<House
/>
</el-icon>
<span>
首页
</span>
<el-icon
class=
"dropdown-arrow"
>
<ArrowDown
/>
</el-icon>
</div>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item
command=
"/billHome"
>
法案首页
</el-dropdown-item>
<el-dropdown-item
command=
"/decree"
>
政令首页
</el-dropdown-item>
<el-dropdown-item
command=
"/thinkTank"
>
智库首页
</el-dropdown-item>
<el-dropdown-item
command=
"/exportControl"
>
出口管制
</el-dropdown-item>
<el-dropdown-item
command=
"/finance"
>
投融资限制
</el-dropdown-item>
<el-dropdown-item
command=
"/marketAccessRestrictions"
>
市场准入限制
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
<div
class=
"nav-link"
>
<el-icon>
<User
/>
</el-icon>
<span>
国家
</span>
</div>
<div
class=
"nav-link"
>
<el-icon>
<Location
/>
</el-icon>
<span>
领域
</span>
</div>
<div
class=
"nav-link"
>
<el-icon>
<Document
/>
</el-icon>
<span>
要素
</span>
</div>
<div
class=
"nav-link"
>
<el-icon>
<Bell
/>
</el-icon>
<span>
事件
</span>
</div>
</div>
-->
<div
class=
"user-info"
>
<div
class=
"user-info"
>
<div
class=
"email"
>
<div
class=
"email"
>
<img
src=
"@/assets/icons/header-icon.png"
alt=
""
/>
<img
src=
"@/assets/icons/header-icon.png"
alt=
""
/>
...
@@ -73,18 +23,18 @@
...
@@ -73,18 +23,18 @@
</nav>
</nav>
</el-header>
</el-header>
<!-- 面包屑导航 -->
<!-- <Breadcrumb /> -->
<el-main
class=
"main-container"
>
<el-main
class=
"main-container"
>
<router-view
/>
<router-view
/>
</el-main>
</el-main>
<div
ref=
"target"
class=
"draggable-box"
:style=
"style"
>
<div
class=
"ai-btn"
@
click=
"openAiBox"
>
<div
class=
"ai-btn"
@
click=
"openAiBox"
>
<div
class=
"icon"
>
<div
class=
"icon"
>
<img
src=
"@/assets/icons/ai-icon.png"
alt=
""
/>
<img
src=
"@/assets/icons/ai-icon.png"
alt=
""
/>
</div>
</div>
<div
class=
"text"
>
智能问答
</div>
<div
class=
"text"
>
智能问答
</div>
</div>
</div>
</div>
<div
class=
"ai-dialog"
v-if=
"isShowAiBox"
>
<div
class=
"ai-dialog"
v-if=
"isShowAiBox"
>
<AiBox
@
close=
"closeAiBox"
/>
<AiBox
@
close=
"closeAiBox"
/>
</div>
</div>
...
@@ -93,14 +43,30 @@
...
@@ -93,14 +43,30 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
ref
}
from
"vue"
;
import
{
ref
,
computed
}
from
"vue"
;
import
{
Monitor
,
House
,
User
,
Location
,
Document
,
Bell
,
Message
,
ArrowDown
}
from
"@element-plus/icons-vue"
;
import
{
Monitor
,
House
,
User
,
Location
,
Document
,
Bell
,
Message
,
ArrowDown
}
from
"@element-plus/icons-vue"
;
import
{
useRouter
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
import
Breadcrumb
from
"@/components/BreadCrumb/index.vue"
;
import
Breadcrumb
from
"@/components/BreadCrumb/index.vue"
;
import
AiBox
from
"./components/AiBox.vue"
;
import
AiBox
from
"./components/AiBox.vue"
;
import
{
useDraggable
}
from
"@vueuse/core"
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
target
=
ref
(
null
);
const
{
x
,
y
,
isDragging
}
=
useDraggable
(
target
,
{
initialValue
:
{
x
:
1770
,
y
:
800
},
onStart
:
()
=>
console
.
log
(
"开始拖动"
),
onEnd
:
()
=>
console
.
log
(
"结束拖动"
)
});
const
style
=
computed
(()
=>
({
position
:
"absolute"
,
left
:
`
${
x
.
value
}
px`
,
top
:
`
${
y
.
value
}
px`
,
cursor
:
isDragging
.
value
?
"grabbing"
:
"grab"
}));
const
handleToHome
=
()
=>
{
const
handleToHome
=
()
=>
{
router
.
push
({
router
.
push
({
path
:
"/overview"
path
:
"/overview"
...
@@ -320,12 +286,18 @@ body {
...
@@ -320,12 +286,18 @@ body {
.wrapper
{
.wrapper
{
position
:
relative
;
position
:
relative
;
.target
{
// position: absolute;
// bottom: 20%;
// right: 46px;
z-index
:
9999
;
}
.ai-btn
{
.ai-btn
{
position
:
absolute
;
//
position: absolute;
bottom
:
20%
;
//
bottom: 20%;
right
:
46px
;
//
right: 46px;
z-index
:
9999
;
//
z-index: 9999;
cursor
:
pointer
;
cursor
:
pointer
;
.icon
{
.icon
{
...
...
src/api/index.js
deleted
100644 → 0
浏览文件 @
400b5862
import
http
from
'./request'
/**
* 智库信息相关的API接口
* 假设您有一个名为 'http' 的对象来处理请求,且已在 http 封装中处理了 token。
* 例如:
* import http from '@/utils/request';
*/
// --- 智库信息接口 ---
/**
* @description 根据智库ID获取智库基本信息
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段类型为 ThinkTankBasicInfoVO
* @returns {string} data.country - 国家
* @returns {string} data.foundingDate - 成立时间
* @returns {string} data.position - 位置
* @returns {string} data.nature - 机构性质
* @returns {number} data.memnum - 成员数
* @returns {number} data.budget - 年度预算
*/
export
const
getThinkTankBasicInfo
=
(
params
)
=>
{
// 假设 http 封装中会自动处理 token
return
http
.
get
(
`/thinkTankInfo/basic/
${
params
.
id
}
`
);
}
/**
* @description 根据智库ID获取分支机构信息
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankBranchVO>
* @returns {Array<object>} data[] - 分支机构列表
* @returns {string} data[].city - 城市
* @returns {string} data[].area - 区域
* @returns {boolean} data[].hq - 是否总部
*/
export
const
getThinkTankBranchInfo
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/branch/
${
params
.
id
}
`
);
}
/**
* @description 根据智库ID获取经费来源
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankFundsSourceVO>
* @returns {Array<object>} data[] - 经费来源列表
* @returns {number} data[].amount - 金额
* @returns {string} data[].institution - 机构
* @returns {number} data[].percent - 占比
*/
export
const
getThinkTankFundsSource
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/fundsSource/
${
params
.
id
}
`
);
}
/**
* @description 根据智库ID获取经费统计
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段类型为 ThinkTankFundsTotalVO
* @returns {number} data.totalJe - 总金额
* @returns {number} data.zfJe - 政府资金
* @returns {number} data.otherJe - 非政府资金
*/
export
const
getThinkTankFundsTotal
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/fundsTotal/
${
params
.
id
}
`
);
}
/**
* @description 根据智库ID获取成员列表
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankPersonVO>
* @returns {Array<object>} data[] - 成员列表
* @returns {string} data[].name - 姓名
* @returns {string} data[].describe - 描述
*/
export
const
getThinkTankPersonList
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/person/
${
params
.
id
}
`
);
}
/**
* @description 根据智库ID获取政策情况
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @param {Array<string>} [params.researchTypeIds] - 研究类型ID列表 (Query参数)
* @returns {Promise<object>} 响应数据,data字段类型为 ThinkTankPolicyCountVO
* @returns {Array<object>} data.statusVoList[] - 状态列表
* @returns {string} data.statusVoList[].statusName - 状态名称
* @returns {number} data.statusVoList[].statusNum - 状态数量
* @returns {Array<object>} data.policyVoList[] - 政策列表
* @returns {string} data.policyVoList[].content - 政策内容
* @returns {string} data.policyVoList[].status - 政策状态
* @returns {number} data.policyVoList[].reportId - 报告id
* @returns {string} data.policyVoList[].name - 报告名称
* @returns {string} data.policyVoList[].times - 报告时间 (date格式)
*/
export
const
getThinkTankPolicyInfo
=
(
params
)
=>
{
const
{
id
,
...
queryParams
}
=
params
;
// 假设 http.get 会将 queryParams 作为查询参数传递
return
http
.
get
(
`/thinkTankInfo/policy/
${
id
}
`
,
{
params
:
queryParams
});
}
/**
* @description 获取智库报告类型列表
* @returns {Promise<object>} 响应数据,data字段为数组 List<DThinkTankReportType>
* @returns {Array<object>} data[] - 报告类型列表
* @returns {number} data[].id - 主键
* @returns {string} data[].typeId - 报告类型id
* @returns {string} data[].typeName - 报告类型
*/
export
const
getThinkTankReportTypeList
=
()
=>
{
return
http
.
get
(
'/thinkTankInfo/reportType'
);
}
/**
* @description 根据智库ID获取研究领域情况
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankResearchAreaVO>
* @returns {Array<object>} data[] - 研究领域列表
* @returns {string} data[].describe - 研究领域描述
* @returns {string} data[].time - 研究时间范围
*/
export
const
getThinkTankResearchArea
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/researchArea/
${
params
.
id
}
`
);
}
// /thinkTankInfo/report/{id}
export
const
getThinkTankReport
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/report/
${
params
.
id
}
`
);
}
/**
* @description 根据智库ID获取智库全局信息
* @param {object} params - 请求参数
* @param {number|string} params.id - 智库id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段类型为 ThinkTankInfoVO
* @returns {string} data.name - 智库名称
* @returns {string} data.describe - 智库描述
* @returns {string} data.ename - 智库英文名
* @returns {string} data.url - 智库网址
* @returns {Array<string>} data.tags[] - 智库标签列表
*/
export
const
getThinkTankSummary
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankInfo/summary/
${
params
.
id
}
`
);
}
// --- 智库报告接口 ---
/**
* @description 根据报告ID获取报告内容
* @param {object} params - 请求参数
* @param {number|string} params.id - 报告id (路径参数, 必须)
* @param {number} [params.currentPage] - 当前页码 (Query参数)
* @param {number} [params.pageSize] - 分页大小 (Query参数)
* @returns {Promise<object>} 响应数据,data字段类型为 Page<ThinkTankReportContentVO> (分页内容对象)
*/
export
const
getThinkTankReportContent
=
(
params
)
=>
{
const
{
id
,
...
queryParams
}
=
params
;
return
http
.
get
(
`/thinkTankReport/content/
${
id
}
`
,
{
params
:
queryParams
});
}
/**
* @description 根据报告ID获取政策情况
* @param {object} params - 请求参数
* @param {number|string} params.id - 报告id (路径参数, 必须)
* @param {Array<string>} [params.statusList] - 政策状态ID列表 (Query参数)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankReportPolicyVO>
* @returns {Array<object>} data[] - 政策列表
* @returns {string} data[].content - 政策内容
* @returns {string} data[].status - 政策状态
*/
export
const
getThinkTankReportPolicy
=
(
params
)
=>
{
const
{
id
,
...
queryParams
}
=
params
;
return
http
.
get
(
`/thinkTankReport/policy/
${
id
}
`
,
{
params
:
queryParams
});
}
/**
* @description 根据报告ID获取报告全局信息
* @param {object} params - 请求参数
* @param {number|string} params.id - 报告id (路径参数, 必须)
* @returns {Promise<object>} 响应数据,data字段类型为 ThinkTankReportDetailVO
* @returns {string} data.name - 报告名称
* @returns {string} data.times - 报告时间 (date格式)
* @returns {string} data.ename - 报告英文名称
* @returns {string} data.summary - 报告摘要
* @returns {string} data.thinkTankName - 智库名称
* @returns {Array<string>} data.tags[] - 报告标签列表
* @returns {Array<string>} data.researchTypes[] - 报告研究类型列表
*/
export
const
getThinkTankReportSummary
=
(
params
)
=>
{
return
http
.
get
(
`/thinkTankReport/summary/
${
params
.
id
}
`
);
}
// --- 智库概览接口 ---
/**
* @description 获取概览智库政策
* @param {object} [params] - 请求参数
* @param {Array<string>} [params.researchTypeIds] - 研究类型ID列表 (Query参数)
* @param {Array<string>} [params.statusList] - 政策状态ID列表 (Query参数)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankPolicyVO>
* @returns {Array<object>} data[] - 政策列表
* @returns {string} data[].content - 政策内容
* @returns {string} data[].status - 政策状态
* @returns {number} data[].reportId - 报告id
* @returns {string} data[].name - 报告名称
* @returns {string} data[].times - 报告时间 (date格式)
*/
export
const
getOverviewPolicy
=
(
params
=
{})
=>
{
// 假设 http.get 会将 params 作为查询参数传递
return
http
.
get
(
'/thinkTankOverview/policy'
,
{
params
});
}
/**
* @description 获取概览智库报告
* @param {object} [params] - 请求参数
* @param {Array<string>} [params.areas] - 区域名称列表 (Query参数)
* @param {Array<string>} [params.researchTypeIds] - 研究类型ID列表 (Query参数)
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankSummaryReportVO>
* @returns {Array<object>} data[] - 报告列表
* @returns {number} data[].id - 报告id
* @returns {string} data[].name - 报告名称
* @returns {string} data[].times - 报告时间 (date格式)
* @returns {string} data[].thinkTankName - 智库名称
*/
export
const
getOverviewReport
=
(
params
=
{})
=>
{
return
http
.
get
(
'/thinkTankOverview/report'
,
{
params
});
}
/**
* @description 获取智库列表
* @returns {Promise<object>} 响应数据,data字段为数组 List<ThinkTankListVO>
* @returns {Array<object>} data[] - 智库列表
* @returns {number} data[].id - 智库id
* @returns {string} data[].name - 智库名称
* @returns {string} data[].describe - 智库描述
* @returns {string} data[].country - 智库国家
* @returns {Array<string>} data[].tags[] - 智库标签列表
*/
export
const
getThinkTankList
=
()
=>
{
return
http
.
get
(
'/thinkTankOverview/thinkTanks'
);
}
// 获取智库报告研究类型 /thinkTankInfo/researchType
export
const
getThinkTankResearchType
=
()
=>
{
return
http
.
get
(
'/thinkTankInfo/researchType'
);
}
src/api/mockdata.js
deleted
100644 → 0
浏览文件 @
400b5862
export
const
policyList
=
[
{
id
:
1
,
imageUrl
:
'https://picsum.photos/60/80?random=101'
,
title
:
'允许OPT国际学生出境旅行并持多次入境签证重新进入美国。'
,
date
:
'2025年6月24日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'人才交流'
,
'移民政策'
],
status
:
'implemented'
,
relatedBill
:
{
text
:
'相关立法已通过:《2024值得关注的国会人口结构法案》'
}
},
{
id
:
2
,
imageUrl
:
'https://picsum.photos/60/80?random=102'
,
title
:
'增加中国公民可获得的 H-1B 签证数量。'
,
date
:
'2025年6月24日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'人才交流'
,
'移民政策'
],
status
:
'unimplemented'
,
relatedBill
:
null
},
{
id
:
3
,
imageUrl
:
'https://picsum.photos/60/80?random=103'
,
title
:
'通过职业偏好类别增加绿卡的数量。'
,
date
:
'2025年6月24日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'人才交流'
,
'移民政策'
],
status
:
'partial'
,
relatedBill
:
{
text
:
'存在相关提案:《2024调整签证以吸引国外顶尖人才法案》'
}
},
{
id
:
4
,
imageUrl
:
'https://picsum.photos/60/80?random=104'
,
title
:
'推动清洁能源生产的内用,化石燃料重新配置出口。'
,
date
:
'2025年6月24日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'能源政策'
,
'环境保护'
],
status
:
'partial'
,
relatedBill
:
{
text
:
'存在相关提案:《2024清洁能源转型促进法案》'
}
},
{
id
:
5
,
imageUrl
:
'https://picsum.photos/60/80?random=105'
,
title
:
'加强对关键技术出口的管制措施。'
,
date
:
'2025年6月24日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'技术安全'
,
'出口管制'
],
status
:
'implemented'
,
relatedBill
:
{
text
:
'相关立法已通过:《2024关键技术保护法案》'
}
},
{
id
:
6
,
imageUrl
:
'https://picsum.photos/60/80?random=106'
,
title
:
'建立多边技术合作框架,促进盟友间技术共享。'
,
date
:
'2025年6月23日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'国际合作'
,
'技术共享'
],
status
:
'unimplemented'
,
relatedBill
:
null
},
{
id
:
7
,
imageUrl
:
'https://picsum.photos/60/80?random=107'
,
title
:
'完善供应链韧性,减少对单一国家的依赖。'
,
date
:
'2025年6月23日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'供应链'
,
'经济安全'
],
status
:
'partial'
,
relatedBill
:
{
text
:
'存在相关提案:《2024供应链韧性提升法案》'
}
},
{
id
:
8
,
imageUrl
:
'https://picsum.photos/60/80?random=108'
,
title
:
'加大对新兴技术研发的投资力度。'
,
date
:
'2025年6月22日'
,
source
:
'中美经济竞争:复杂经济和地缘政治关系中的收益与风险'
,
tags
:
[
'科技投资'
,
'研发创新'
],
status
:
'implemented'
,
relatedBill
:
{
text
:
'相关立法已通过:《2024科技创新投资法案》'
}
}
]
export
const
corePersom
=
[
{
id
:
1
,
name
:
'杰森·马西尼'
,
position
:
'兰德公司总裁兼首席执行官'
,
avatar
:
'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop&crop=face'
},
{
id
:
2
,
name
:
'安德鲁·R·霍恩'
,
position
:
'高级副总裁,研究与分析'
,
avatar
:
'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face'
},
{
id
:
3
,
name
:
'杰森·马西尼'
,
position
:
'兰德公司总裁兼首席执行官'
,
avatar
:
'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop&crop=face'
},
{
id
:
4
,
name
:
'梅丽莎·罗'
,
position
:
'副总裁,全球研究人才政策分析数据政策分析政策学院'
,
avatar
:
'https://images.unsplash.com/photo-1494790108755-2616b612b786?w=100&h=100&fit=crop&crop=face'
},
{
id
:
5
,
name
:
'梅丽莎·罗'
,
position
:
'副总裁,全球研究人才政策分析数据政策分析政策学院'
,
avatar
:
'https://images.unsplash.com/photo-1494790108755-2616b612b786?w=100&h=100&fit=crop&crop=face'
},
{
id
:
6
,
name
:
'安妮塔·钱德拉'
,
position
:
'副总裁兼主任,兰德社会经济福利,高级政策研究员'
,
avatar
:
'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=100&h=100&fit=crop&crop=face'
},
{
id
:
7
,
name
:
'安妮塔·钱德拉'
,
position
:
'兰德研究院研究员,兰德公司政策中心临时副总裁兼主任,工程和应用科学部'
,
avatar
:
'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=100&h=100&fit=crop&crop=face'
},
{
id
:
8
,
name
:
'安妮塔·钱德拉'
,
position
:
'副总裁兼主任,兰德社会经济福利,高级政策研究员'
,
avatar
:
'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=100&h=100&fit=crop&crop=face'
},
{
id
:
9
,
name
:
'梅丽莎·罗'
,
position
:
'副总裁,全球研究人才政策分析数据政策分析政策学院'
,
avatar
:
'https://images.unsplash.com/photo-1494790108755-2616b612b786?w=100&h=100&fit=crop&crop=face'
},
{
id
:
10
,
name
:
'安妮塔·钱德拉'
,
position
:
'副总裁兼主任,兰德社会经济福利,高级政策研究员政策分析数据'
,
avatar
:
'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=100&h=100&fit=crop&crop=face'
}
]
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论