Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
3967f51d
提交
3967f51d
authored
3月 28, 2026
作者:
付康
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'fk-dev' 到 'pre'
Fk dev 查看合并请求
!266
上级
450d3027
3450a7d1
流水线
#173
已通过 于阶段
in 1 分 31 秒
变更
25
流水线
3
全部展开
显示空白字符变更
内嵌
并排
正在显示
25 个修改的文件
包含
734 行增加
和
386 行删除
+734
-386
index.vue
src/components/base/moduleHeader/index.vue
+4
-25
index.vue
src/views/bill/background/index.vue
+13
-4
ResourceLibrarySection.vue
src/views/bill/billHome/ResourceLibrarySection.vue
+10
-3
index.vue
src/views/bill/billHome/index.vue
+36
-15
index.vue
src/views/bill/introdoction/index.vue
+16
-12
index.vue
src/views/decree/allOrganization/index.vue
+38
-16
index.vue
src/views/decree/decreeHome/index.vue
+76
-25
index.vue
src/views/decree/decreeLayout/deepdig/index.vue
+9
-3
index.vue
src/views/decree/decreeLayout/index.vue
+72
-12
index.vue
src/views/decree/decreeLayout/overview/background/index.vue
+51
-17
index.vue
...views/decree/decreeLayout/overview/introduction/index.vue
+16
-6
index.vue
src/views/decree/decreeLayout/overview/measures/index.vue
+0
-0
index.vue
src/views/exportControl/index.vue
+95
-35
index.vue
...s/sanctionsOverview/components/introductionPage/index.vue
+47
-65
index.vue
...s/sanctionsOverview/components/introductionPage/index.vue
+28
-9
index.vue
...v2.0SingleSanction/components/sanctionsOverview/index.vue
+36
-57
index.vue
src/views/thinkTank/MultiThinkTankViewAnalysis/index.vue
+9
-3
index.vue
src/views/thinkTank/ReportDetail/index.vue
+12
-11
index.vue
src/views/thinkTank/ReportDetail/policyTracking/index.vue
+23
-9
index.vue
src/views/thinkTank/ReportDetail/reportAnalysis/index.vue
+33
-17
index.vue
src/views/thinkTank/ThinkTankDetail/PolicyTracking/index.vue
+23
-9
index.vue
src/views/thinkTank/ThinkTankDetail/thinkDynamics/index.vue
+9
-3
index.vue
src/views/thinkTank/ThinkTankDetail/thinkInfo/index.vue
+10
-4
index.vue
src/views/thinkTank/allThinkTank/index.vue
+3
-2
index.vue
src/views/thinkTank/index.vue
+65
-24
没有找到文件。
src/components/base/moduleHeader/index.vue
浏览文件 @
3967f51d
...
...
@@ -11,7 +11,7 @@
<!--
<div
class=
"title-box"
v-if=
"false"
>
-->
<div
class=
"title"
v-for=
"(item, index) in homeTitleList"
:key=
"index"
@
mouseenter=
"handleShowMenu(index, true)"
@
click=
"handleClickTitle(item, index)"
>
<div
class=
"text"
:class=
"
{ textActive: homeActiveTitleIndex === index }">
<div
class=
"text
text-title-1-show
"
:class=
"
{ textActive: homeActiveTitleIndex === index }">
{{
item
.
name
}}
</div>
<div
class=
"bottom-line"
v-if=
"homeActiveTitleIndex === index"
></div>
...
...
@@ -27,7 +27,7 @@
<div
class=
"user"
>
<img
src=
"@/assets/icons/overview/user.png"
alt=
""
/>
</div>
<div
class=
"name"
>
{{
"管理员"
}}
</div>
<div
class=
"name
text-regular
"
>
{{
"管理员"
}}
</div>
</div>
</div>
<div
class=
"menu-box"
v-show=
"isShowMenu"
@
mouseenter=
"handleHoverMenu(true)"
...
...
@@ -344,12 +344,7 @@ onUnmounted(() => {
}
.text
{
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
YouSheBiaoTiHei
;
font-style
:
Regular
;
font-size
:
30px
;
font-weight
:
400
;
letter-spacing
:
0px
;
color
:
var
(
--
text-primary-80-color
);
}
.textActive
{
...
...
@@ -419,13 +414,7 @@ onUnmounted(() => {
.name
{
width
:
48px
;
height
:
30px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-style
:
Regular
;
font-size
:
16px
;
font-weight
:
400
;
line-height
:
30px
;
letter-spacing
:
0px
;
color
:
var
(
--
text-primary-80-color
);
}
}
}
...
...
@@ -465,35 +454,29 @@ onUnmounted(() => {
width
:
562px
;
height
:
348px
;
margin-top
:
8px
;
margin-left
:
72px
;
display
:
flex
;
flex-wrap
:
wrap
;
.menu-item
{
margin-top
:
36px
;
width
:
280px
;
height
:
24px
;
display
:
flex
;
cursor
:
pointer
;
&
:hover
{
.title
{
color
:
var
(
--
color-main-active
);
font-size
:
20px
;
}
}
.icon
{
width
:
24px
;
height
:
24px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.title
{
margin-left
:
16px
;
height
:
24px
;
...
...
@@ -523,20 +506,17 @@ onUnmounted(() => {
backdrop-filter
:
blur
(
30px
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
0
.8
);
.menu-content
{
width
:
562px
;
height
:
348px
;
margin-top
:
8px
;
margin-left
:
72px
;
.menu-item
{
margin-top
:
36px
;
width
:
280px
;
height
:
24px
;
display
:
flex
;
cursor
:
pointer
;
&
:hover
{
.title
{
color
:
var
(
--
color-main-active
);
...
...
@@ -553,7 +533,6 @@ onUnmounted(() => {
height
:
100%
;
}
}
.title
{
margin-left
:
16px
;
height
:
24px
;
...
...
src/views/bill/background/index.vue
浏览文件 @
3967f51d
...
...
@@ -83,7 +83,8 @@
</el-icon>
</div>
<div
class=
"right-box1-main-bottom"
>
<WordCloudMap
:data=
"wordCloudData"
:selectedName=
"selectedIndustryName"
shape=
"circle"
@
wordClick=
"handleWordClick"
/>
<WordCloudMap
:data=
"wordCloudData"
:selectedName=
"selectedIndustryName"
shape=
"circle"
@
wordClick=
"handleWordClick"
/>
</div>
</div>
<div
class=
"right-box2"
>
...
...
@@ -147,13 +148,19 @@ const handleClickEvent = item => {
// 跳转人员详情
const
handleClickUser
=
item
=>
{
window
.
sessionStorage
.
setItem
(
'curTabName'
,
item
.
name
)
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.id
// }
// });
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
id
}
});
window
.
open
(
routeData
.
href
,
"_blank"
);
})
};
const
box1BtnActive
=
ref
(
1
);
...
...
@@ -398,6 +405,7 @@ onMounted(() => {
.left-box--background
{
height
:
auto
;
.box1-main
{
.box1-main-center
{
margin
:
0
auto
;
...
...
@@ -495,6 +503,7 @@ onMounted(() => {
.left-box--event
{
margin-top
:
15px
;
height
:
auto
;
.box2-main
{
--event-item-height
:
60px
;
...
...
src/views/bill/billHome/ResourceLibrarySection.vue
浏览文件 @
3967f51d
...
...
@@ -433,14 +433,21 @@ const handleClickAvatar = async member => {
return
;
}
window
.
sessionStorage
.
setItem
(
"curTabName"
,
member
.
name
||
""
);
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve(
{
// path: "/characterPage",
// query:
{
// type,
// personId: member.id
//
}
//
}
);
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
type
,
personId
:
member
.
id
}
}
);
window
.
open
(
routeData
.
href
,
"_blank"
);
}
)
}
else
{
personTypeName
=
""
;
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
...
...
src/views/bill/billHome/index.vue
浏览文件 @
3967f51d
...
...
@@ -331,14 +331,23 @@ const handleClickToCharacter = async (id, name) => {
return
;
}
window
.
sessionStorage
.
setItem
(
"curTabName"
,
name
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// type: type, // type=1为科技企业领袖,2为国会议员,3为智库研究人员
// personId: id
// }
// });
// window.open(route.href, "_blank");
router
.
push
(
{
path
:
"/characterPage"
,
query
:
{
type
:
type
,
// type=1为科技企业领袖,2为国会议员,3为智库研究人员
personId
:
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
}
)
}
else
{
personTypeName
=
""
;
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
...
...
@@ -424,28 +433,34 @@ const curBill = ref({
const
handleClickToDetail
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"billId"
,
curBill
.
value
.
billId
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
curBill
.
value
.
billName
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/billLayout",
// query: {
// billId: curBill.value.billId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/billLayout"
,
query
:
{
billId
:
curBill
.
value
.
billId
}
});
console
.
log
(
route
);
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 查看详情 传递参数
const
handleClickToDetailO
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"billId"
,
item
.
billId
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
||
item
.
signalTitle
);
const
route
=
router
.
resolve
(
"/billLayout?billId="
+
item
.
billId
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/billLayout?billId=" + item.billId);
// window.open(route.href, "_blank");
router
.
push
(
"/billLayout?billId="
+
item
.
billId
)
};
// 查看更多风险信号
const
handleToMoreRiskSignal
=
()
=>
{
const
route
=
router
.
resolve
(
"/viewRiskSignal"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/viewRiskSignal");
// window.open(route.href, "_blank");
router
.
push
(
"/viewRiskSignal"
)
};
// 风险信号
const
warningList
=
ref
([]);
...
...
@@ -944,13 +959,19 @@ watch(box7selectetedTime, () => {
});
// 查看社交媒体详情
const
handleToSocialDetail
=
item
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 关键条款
const
wordCloudData
=
ref
([]);
...
...
src/views/bill/introdoction/index.vue
浏览文件 @
3967f51d
...
...
@@ -30,8 +30,7 @@
<div
class=
"box1-right-item"
>
<div
class=
"item-left"
>
委员会报告:
</div>
<div
class=
"item-right2"
v-if=
"reportList.length"
>
<div
class=
"right2-item"
v-for=
"(item, index) in reportList"
:key=
"getReportKey(item, index)"
>
<div
class=
"right2-item"
v-for=
"(item, index) in reportList"
:key=
"getReportKey(item, index)"
>
{{
item
}}
</div>
</div>
...
...
@@ -47,10 +46,9 @@
<
div
class
=
"box1-right-item"
>
<
div
class
=
"item-left"
>
立案流程:
<
/div
>
<
div
class
=
"item-right4"
>
<
div
v
-
for
=
"(item, index) in reversedStageList"
:
key
=
"getStageKey(item, index)"
class
=
"step"
:
style
=
"{ zIndex: getStageZIndex(index)
}
"
>
<
div
class
=
"step-box"
:
class
=
"{ 'step-box-active': index === stageActiveIndex
}
"
>
<
div
v
-
for
=
"(item, index) in reversedStageList"
:
key
=
"getStageKey(item, index)"
class
=
"step"
:
style
=
"{ zIndex: getStageZIndex(index)
}
"
>
<
div
class
=
"step-box"
:
class
=
"{ 'step-box-active': index === stageActiveIndex
}
"
>
{{
item
}}
<
/div
>
<
/div
>
...
...
@@ -79,8 +77,7 @@
<
div
class
=
"name-box"
>
<
div
class
=
"person-box"
>
<
div
class
=
"person-item"
:
class
=
"{ nameItemActive: box3BtnActive === item.name
}
"
@
click
=
"handleClcikBox3Btn(item.name, index)"
v
-
for
=
"(item, index) in personList"
:
key
=
"index"
>
@
click
=
"handleClcikBox3Btn(item.name, index)"
v
-
for
=
"(item, index) in personList"
:
key
=
"index"
>
{{
item
.
name
}}
<
/div
>
<
/div
>
...
...
@@ -197,14 +194,21 @@ const handleClickAvatar = async item => {
return
;
}
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
||
""
);
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve(
{
// path: "/characterPage",
// query:
{
// type,
// personId: item.id
//
}
//
}
);
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
type
,
personId
:
item
.
id
}
}
);
window
.
open
(
routeData
.
href
,
"_blank"
);
}
)
}
else
{
personTypeName
=
""
;
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
...
...
@@ -212,7 +216,7 @@ const handleClickAvatar = async item => {
}
else
{
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
}
}
catch
(
error
)
{
}
}
catch
(
error
)
{
}
}
;
// 获取URL地址里面的billId
const
billId
=
ref
(
route
.
query
.
billId
);
...
...
src/views/decree/allOrganization/index.vue
浏览文件 @
3967f51d
...
...
@@ -3,13 +3,15 @@
<div
class=
"container-box"
>
<div
class=
"hard-box"
>
<div
class=
"hard-name text-title-0-show"
>
美国政府机构
</div>
<div
class=
"hard-num text-title-2-show"
>
{{
organizationInfo
.
total
}}
家
</div>
<div
class=
"hard-num text-title-2-show"
>
{{
organizationInfo
.
total
}}
家
</div>
<div
style=
"width: 0px; flex: auto;"
></div>
<div
class=
"hard-input"
>
<el-input
v-model=
"organizationInfo.keyWord"
@
keyup
.
enter=
"onAllOrganization()"
style=
"width:100%; height:100%;"
:suffix-icon=
"Search"
placeholder=
"搜索机构"
/>
<el-input
v-model=
"organizationInfo.keyWord"
@
keyup
.
enter=
"onAllOrganization()"
style=
"width:100%; height:100%;"
:suffix-icon=
"Search"
placeholder=
"搜索机构"
/>
</div>
<div
class=
"hard-time"
>
<el-select
v-model=
"organizationInfo.isSort"
@
change=
"onAllOrganization()"
placeholder=
"发布时间"
style=
"width:160px; margin-left:8px;"
>
<el-select
v-model=
"organizationInfo.isSort"
@
change=
"onAllOrganization()"
placeholder=
"发布时间"
style=
"width:160px; margin-left:8px;"
>
<template
#
prefix
>
<div
class=
"icon1"
>
<img
v-if=
"isSort"
src=
"@/assets/icons/shengxu1.png"
alt=
""
/>
...
...
@@ -28,29 +30,36 @@
<TimeTabPane
@
time-click=
"handleDateChange"
/>
</div>
<div
class=
"organization-list"
ref=
"refOrganization"
v-loading=
"organizationInfo.loading"
>
<div
class=
"organization-item"
v-for=
"(item, index) in organizationInfo.list"
:key=
"index"
@
click=
"handleToInstitution(item)"
>
<div
class=
"organization-item"
v-for=
"(item, index) in organizationInfo.list"
:key=
"index"
@
click=
"handleToInstitution(item)"
>
<div
class=
"item-left"
>
<img
:src=
"item.orgImage || DefaultIcon2"
alt=
""
/>
</div>
<div
class=
"item-right one-line-ellipsis"
>
{{ item.orgName }}
</div>
<div
class=
"item-total"
>
{{ item.total }}项
</div>
<el-icon
color=
"var(--color-primary-100)"
><ArrowRightBold
/></el-icon>
<div
class=
"item-dot"
v-if=
"item.totalRecent"
>
+{{item.totalRecent}}
</div>
<el-icon
color=
"var(--color-primary-100)"
>
<ArrowRightBold
/>
</el-icon>
<div
class=
"item-dot"
v-if=
"item.totalRecent"
>
+{{ item.totalRecent }}
</div>
</div>
</div>
<div
class=
"pagination-box"
>
<el-pagination
@
current-change=
"onAllOrganization"
:pageSize=
"organizationInfo.pageSize"
:current-page=
"organizationInfo.pageNum"
background
layout=
"prev, pager, next"
:total=
"organizationInfo.total"
/>
<el-pagination
@
current-change=
"onAllOrganization"
:pageSize=
"organizationInfo.pageSize"
:current-page=
"organizationInfo.pageNum"
background
layout=
"prev, pager, next"
:total=
"organizationInfo.total"
/>
</div>
</div>
<div
class=
"back-bnt"
@
click=
"router.back()"
>
<el-icon><Back
/></el-icon>
<el-icon>
<Back
/>
</el-icon>
<div
style=
"margin-left: 6px;"
>
返回
</div>
</div>
</div>
</template>
<
script
setup
name=
"index"
>
import
{
onMounted
,
reactive
,
ref
}
from
"vue"
import
{
onMounted
,
reactive
,
ref
}
from
"vue"
import
{
Search
}
from
'@element-plus/icons-vue'
import
router
from
"@/router"
;
...
...
@@ -76,8 +85,8 @@ const onAllOrganization = async (num) => {
organizationInfo
.
pageNum
=
num
||
1
organizationInfo
.
loading
=
true
try
{
let
{
keyWord
,
pageNum
,
pageSize
,
day
}
=
organizationInfo
const
res
=
await
getDepartmentList
({
day
,
pageNum
:
pageNum
-
1
,
pageSize
,
keyWord
:
keyWord
||
undefined
});
let
{
keyWord
,
pageNum
,
pageSize
,
day
}
=
organizationInfo
const
res
=
await
getDepartmentList
({
day
,
pageNum
:
pageNum
-
1
,
pageSize
,
keyWord
:
keyWord
||
undefined
});
console
.
log
(
"机构列表"
,
res
);
if
(
res
.
code
===
200
)
{
organizationInfo
.
list
=
res
.
data
.
orgList
||
[];
...
...
@@ -101,13 +110,19 @@ const handleDateChange = (event) => {
// 跳转行政机构主页
const
handleToInstitution
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
orgName
);
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/institution",
// query: {
// id: item.orgId
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
item
.
orgId
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
const
refOrganization
=
ref
()
...
...
@@ -115,9 +130,9 @@ onMounted(() => {
// 根据元素的高度决定分页显示的机构数量
let
height
=
2
;
if
(
refOrganization
.
value
)
{
height
=
Math
.
floor
(
refOrganization
.
value
?.
clientHeight
/
120
)
height
=
Math
.
floor
(
refOrganization
.
value
?.
clientHeight
/
120
)
}
organizationInfo
.
pageSize
=
height
*
4
organizationInfo
.
pageSize
=
height
*
4
onAllOrganization
()
})
...
...
@@ -166,6 +181,7 @@ onMounted(() => {
height
:
62px
;
line-height
:
62px
!
important
;
}
.hard-num
{
height
:
36px
;
background-color
:
var
(
--
color-primary-100
);
...
...
@@ -175,6 +191,7 @@ onMounted(() => {
padding
:
0
16px
;
margin-left
:
16px
;
}
.hard-input
{
background-color
:
var
(
--
el-fill-color-blank
);
border-radius
:
var
(
--
el-border-radius-base
);
...
...
@@ -184,6 +201,7 @@ onMounted(() => {
width
:
160px
;
height
:
32px
;
}
.hard-time
{
height
:
42px
;
padding
:
5px
0
;
...
...
@@ -192,6 +210,7 @@ onMounted(() => {
width
:
11px
;
height
:
14px
;
font-size
:
0px
;
img
{
width
:
100%
;
height
:
100%
;
...
...
@@ -211,11 +230,13 @@ onMounted(() => {
height
:
16px
;
font-size
:
0px
;
margin-right
:
6px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.date-text
{
width
:
20px
;
flex
:
auto
;
...
...
@@ -261,6 +282,7 @@ onMounted(() => {
width
:
48px
;
height
:
48px
;
font-size
:
0px
;
img
{
width
:
100%
;
height
:
100%
;
...
...
src/views/decree/decreeHome/index.vue
浏览文件 @
3967f51d
...
...
@@ -514,13 +514,19 @@ const handleGetDepartmentList = async () => {
// 跳转行政机构主页
const
handleToInstitution
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
orgName
);
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/institution",
// query: {
// id: item.orgId
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
item
.
orgId
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
// 跳转全部机构页面
const
onNavigateTo
=
()
=>
{
...
...
@@ -529,14 +535,16 @@ const onNavigateTo = () => {
// 查看更多风险信号
const
handleToMoreRiskSignal
=
()
=>
{
const
route
=
router
.
resolve
(
"/viewRiskSignal"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/viewRiskSignal");
// window.open(route.href, "_blank");
router
.
push
(
"/viewRiskSignal"
)
};
// 查看更多新闻资讯
const
handleToMoreNews
=
()
=>
{
const
route
=
router
.
resolve
(
"/newsBrief"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/newsBrief");
// window.open(route.href, "_blank");
router
.
push
(
"/newsBrief"
)
};
// 最新科技政令
...
...
@@ -580,36 +588,55 @@ const handleClickToDetail = () => {
const
id
=
box1DataList
.
value
[
activeIndex
].
id
;
window
.
sessionStorage
.
setItem
(
"curTabName"
,
box1DataList
.
value
[
activeIndex
].
name
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout",
// query: {
// id: id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout"
,
query
:
{
id
:
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 点击政令库政令
const
handleClickDecree
=
decree
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
decree
.
title
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout",
// query: {
// id: decree.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout"
,
query
:
{
id
:
decree
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
handleKeyDecree
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
title
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout",
// query: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout"
,
query
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 风险信号
...
...
@@ -752,14 +779,23 @@ const handleClickPerson = async item => {
return
;
}
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// type: type, // type=1为科技企业领袖,2为国会议员,3为智库研究人员
// personId: item.personId
// }
// });
// window.open(route.href, "_blank");
router
.
push
(
{
path
:
"/characterPage"
,
query
:
{
type
:
type
,
// type=1为科技企业领袖,2为国会议员,3为智库研究人员
personId
:
item
.
personId
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
}
)
}
else
{
personTypeName
=
""
;
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
...
...
@@ -1023,13 +1059,21 @@ const handleGetDecreeTypeList = async () => {
};
// 查看社交媒体详情
const
handleToSocialDetail
=
item
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
(
{
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
id
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
}
)
};
const
handleChangeCheckedDecreeType
=
()
=>
{
handleGetDecreeOrderList
();
...
...
@@ -1191,14 +1235,21 @@ const handleSwithCurDecree = name => {
const
searchDecreeText
=
ref
(
""
);
const
handleSearch
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
`搜索-
${
searchDecreeText
.
value
}
`
);
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/searchResults",
// query: {
// searchText: searchDecreeText.value,
// areaName: "政令"
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/searchResults"
,
query
:
{
searchText
:
searchDecreeText
.
value
,
areaName
:
"政令"
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
// 关键机构
...
...
src/views/decree/decreeLayout/deepdig/index.vue
浏览文件 @
3967f51d
...
...
@@ -170,13 +170,19 @@ const onWordWrap = (word, num) => {
}
const
handleClickDecree
=
decree
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout",
// query: {
// id: decree.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout"
,
query
:
{
id
:
decree
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 冲突关系
...
...
src/views/decree/decreeLayout/index.vue
浏览文件 @
3967f51d
...
...
@@ -22,13 +22,8 @@
</div>
</div>
<div
class=
"left-box-bottom"
>
<div
class=
"left-box-bottom-item"
:class=
"
{ leftBoxBottomItemActive: activeTitle === item.name }"
v-for="(item, index) in mainHeaderBtnList"
:key="index"
@click="handleClickMainHeaderBtn(item)"
>
<div
class=
"left-box-bottom-item"
:class=
"
{ leftBoxBottomItemActive: activeTitle === item.name }"
v-for="(item, index) in mainHeaderBtnList" :key="index" @click="handleClickMainHeaderBtn(item)">
<div
class=
"icon"
>
<img
v-if=
"activeTitle === item.name"
:src=
"item.activeIcon"
alt=
""
/>
<img
v-else
:src=
"item.icon"
alt=
""
/>
...
...
@@ -220,12 +215,12 @@ const handleClickMainHeaderBtn = item => {
const
summaryInfo
=
ref
({});
const
handleGetSummary
=
async
()
=>
{
try
{
const
res
=
await
getDecreeSummary
({
id
:
route
.
query
.
id
});
const
res
=
await
getDecreeSummary
({
id
:
route
.
query
.
id
});
console
.
log
(
"全局信息"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
summaryInfo
.
value
=
res
.
data
;
}
}
catch
(
error
)
{}
}
catch
(
error
)
{
}
};
// 获取报告原文
...
...
@@ -248,13 +243,19 @@ const handleGetSummary = async () => {
// };
const
handleShowReport
=
()
=>
{
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/decree/decreeOriginal",
// query: {
// id: route.query.id
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/decree/decreeOriginal"
,
query
:
{
id
:
route
.
query
.
id
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
const
handleToInstitution
=
()
=>
{
...
...
@@ -297,6 +298,7 @@ onMounted(() => {
height
:
100%
;
overflow
:
hidden
;
overflow-y
:
auto
;
.report
{
padding
:
10px
150px
;
position
:
absolute
;
...
...
@@ -306,6 +308,7 @@ onMounted(() => {
width
:
100%
;
height
:
100%
;
background
:
#f7f8f9
;
.report-close
{
position
:
absolute
;
top
:
20px
;
...
...
@@ -313,11 +316,13 @@ onMounted(() => {
width
:
20px
;
height
:
20px
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.report-header
{
width
:
100%
;
height
:
50px
;
...
...
@@ -332,12 +337,15 @@ onMounted(() => {
padding-left
:
30px
;
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
}
.report-main
{
display
:
flex
;
height
:
calc
(
100%
-
100px
);
justify-content
:
space-between
;
.left
{
width
:
800px
;
.noContent
{
height
:
100px
;
line-height
:
100px
;
...
...
@@ -349,8 +357,10 @@ onMounted(() => {
font-weight
:
400
;
}
}
.right
{
width
:
800px
;
.noContent
{
height
:
100px
;
line-height
:
100px
;
...
...
@@ -364,17 +374,20 @@ onMounted(() => {
}
}
}
.layout-main
{
width
:
100%
;
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
.header-main
{
width
:
100%
;
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
}
.layout-main-header
{
width
:
1600px
;
height
:
137px
;
...
...
@@ -384,6 +397,7 @@ onMounted(() => {
justify-content
:
space-between
;
position
:
sticky
;
top
:
0
;
// z-index: 100;
.layout-main-header-container
{
width
:
1600px
;
...
...
@@ -392,28 +406,34 @@ onMounted(() => {
justify-content
:
space-between
;
align-items
:
center
;
}
.layout-main-header-left-box
{
width
:
20px
;
flex
:
auto
;
margin-top
:
12px
;
.left-box-top
{
height
:
64px
;
display
:
flex
;
align-items
:
center
;
.icon
{
width
:
64px
;
height
:
40px
;
overflow
:
hidden
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.info
{
margin-left
:
10px
;
margin-right
:
40px
;
width
:
20px
;
flex
:
auto
;
.info-box1
{
width
:
100%
;
color
:
rgba
(
59
,
65
,
75
,
1
);
...
...
@@ -425,6 +445,7 @@ onMounted(() => {
text-align
:
left
;
margin-top
:
5px
;
}
.info-box2
{
margin-top
:
5px
;
height
:
22px
;
...
...
@@ -442,31 +463,37 @@ onMounted(() => {
white-space
:
nowrap
;
padding
:
0
10px
;
}
.info-box2-item
:first-child
{
padding-left
:
0px
;
}
}
}
}
.left-box-bottom
{
display
:
flex
;
height
:
40px
;
margin-top
:
21px
;
.left-box-bottom-item
{
display
:
flex
;
margin-right
:
32px
;
margin-top
:
3px
;
height
:
35px
;
cursor
:
pointer
;
.icon
{
margin-top
:
4px
;
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.name
{
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
...
...
@@ -478,20 +505,24 @@ onMounted(() => {
text-align
:
left
;
margin-left
:
3px
;
}
.nameActive
{
color
:
var
(
--
color-main-active
);
font-weight
:
700
;
}
}
.leftBoxBottomItemActive
{
border-bottom
:
3px
solid
var
(
--
color-main-active
);
}
}
}
.layout-main-header-right-box
{
.right-box-top
{
white-space
:
nowrap
;
padding-top
:
11px
;
.time
{
height
:
24px
;
line-height
:
24px
;
...
...
@@ -503,6 +534,7 @@ onMounted(() => {
letter-spacing
:
0px
;
text-align
:
right
;
}
.name
{
height
:
24px
;
line-height
:
24px
;
...
...
@@ -515,12 +547,14 @@ onMounted(() => {
text-align
:
right
;
}
}
.right-box-bottom
{
margin-top
:
24px
;
text-align
:
right
;
display
:
flex
;
justify-content
:
flex-end
;
gap
:
8px
;
.btn
{
width
:
120px
;
height
:
36px
;
...
...
@@ -533,14 +567,17 @@ onMounted(() => {
gap
:
8px
;
align-items
:
center
;
cursor
:
pointer
;
.icon
{
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.text
{
width
:
64px
;
height
:
24px
;
...
...
@@ -554,6 +591,7 @@ onMounted(() => {
text-align
:
left
;
}
}
.btn-active
{
width
:
120px
;
height
:
36px
;
...
...
@@ -564,14 +602,17 @@ onMounted(() => {
align-items
:
center
;
gap
:
8px
;
cursor
:
pointer
;
.icon-active
{
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.text-active
{
width
:
64px
;
height
:
24px
;
...
...
@@ -588,12 +629,14 @@ onMounted(() => {
}
}
}
.layout-main-center
{
height
:
20px
;
flex
:
auto
;
background-color
:
#f7f8f9
;
}
}
.layout-report-box
{
position
:
absolute
;
z-index
:
9999
;
...
...
@@ -602,6 +645,7 @@ onMounted(() => {
width
:
100%
;
height
:
926px
;
background
:
rgba
(
248
,
249
,
250
,
1
);
.report-close
{
position
:
absolute
;
top
:
24px
;
...
...
@@ -609,11 +653,13 @@ onMounted(() => {
width
:
32px
;
height
:
32px
;
cursor
:
pointer
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.report-main
{
width
:
1600px
;
height
:
926px
;
...
...
@@ -621,13 +667,16 @@ onMounted(() => {
background
:
#fff
;
box-sizing
:
border-box
;
padding
:
0
69px
;
.report-header
{
height
:
77px
;
border-bottom
:
1px
solid
rgba
(
240
,
242
,
244
,
1
);
display
:
flex
;
justify-content
:
space-between
;
.report-header-left
{
display
:
flex
;
.text
{
margin-top
:
32px
;
width
:
70px
;
...
...
@@ -638,14 +687,17 @@ onMounted(() => {
font-weight
:
400
;
line-height
:
14px
;
}
.select-box
{
margin-left
:
8px
;
margin-top
:
23px
;
}
}
.report-header-right
{
display
:
flex
;
margin-top
:
24px
;
.btn
{
display
:
flex
;
width
:
88px
;
...
...
@@ -658,14 +710,17 @@ onMounted(() => {
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
.icon
{
width
:
16px
;
height
:
16px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.text
{
margin-left
:
8px
;
height
:
32px
;
...
...
@@ -678,21 +733,26 @@ onMounted(() => {
}
}
}
.report-content
{
display
:
flex
;
margin-top
:
35px
;
.content-left
{
width
:
680px
;
height
:
786px
;
img
{
width
:
100%
;
height
:
100%
;
}
}
.content-right
{
margin-left
:
89px
;
width
:
680px
;
height
:
786px
;
img
{
width
:
100%
;
height
:
100%
;
...
...
src/views/decree/decreeLayout/overview/background/index.vue
浏览文件 @
3967f51d
...
...
@@ -25,7 +25,8 @@
<div
class=
"box1-footer"
v-if=
"backgroundListNum > 10"
>
<div
class=
"box1-footer-left"
>
{{ `共 ${backgroundListNum} 项` }}
</div>
<div
class=
"box1-footer-right"
>
<el-pagination
:page-size=
"10"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage"
background
layout=
"prev, pager, next"
:total=
"backgroundListNum"
/>
<el-pagination
:page-size=
"10"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage"
background
layout=
"prev, pager, next"
:total=
"backgroundListNum"
/>
</div>
</div>
</div>
...
...
@@ -39,8 +40,12 @@
<el-collapse
v-model=
"dependActive"
>
<el-collapse-item
v-for=
"(item, index) in dependList"
:key=
"item.billId"
:name=
"item.billId"
>
<
template
#
icon
>
<el-icon
v-if=
"dependActive.includes(item.billId)"
><ArrowDownBold
/></el-icon>
<el-icon
v-else
><ArrowUpBold
/></el-icon>
<el-icon
v-if=
"dependActive.includes(item.billId)"
>
<ArrowDownBold
/>
</el-icon>
<el-icon
v-else
>
<ArrowUpBold
/>
</el-icon>
</
template
>
<
template
#
title
>
<div
class=
"custom-collapse-title"
>
...
...
@@ -73,7 +78,9 @@
<div
class=
"time-line-icon"
>
<img
style=
"width: 100%; height: 100%;"
:src=
"item.orgImage || DefaultIcon1"
alt=
""
>
</div>
<div
class=
"time-line-name text-click-hover"
@
click=
"handleToInstitution(item)"
>
{{ item.proposeOrgName }}
</div>
<div
class=
"time-line-name text-click-hover"
@
click=
"handleToInstitution(item)"
>
{{
item.proposeOrgName
}}
</div>
</div>
<div
class=
"timeline-content"
@
click=
"handleClickDecree(item)"
>
{{ item.describe }}
</div>
</div>
...
...
@@ -153,7 +160,7 @@ const prevList = ref([
]);
const
handleGetPrev
=
async
()
=>
{
try
{
const
res
=
await
getDecreePrev
({
id
:
decreeId
.
value
});
const
res
=
await
getDecreePrev
({
id
:
decreeId
.
value
});
console
.
log
(
"前序政令"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
prevList
.
value
=
res
.
data
;
...
...
@@ -167,23 +174,35 @@ const handleGetPrev = async () => {
};
// 跳转行政机构主页
const
handleToInstitution
=
item
=>
{
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/institution",
// query: {
// id: item.orgId
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
item
.
orgId
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
// 跳转科技政令详情页
const
handleClickDecree
=
item
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout",
// query: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout"
,
query
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 法律依据
...
...
@@ -191,7 +210,7 @@ const dependList = ref([]);
const
dependActive
=
ref
([]);
const
handleGetLaws
=
async
()
=>
{
try
{
const
res
=
await
getDecreeDepend
({
id
:
decreeId
.
value
});
const
res
=
await
getDecreeDepend
({
id
:
decreeId
.
value
});
console
.
log
(
"法律依据"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
dependList
.
value
=
res
.
data
;
...
...
@@ -208,15 +227,21 @@ const handleGetLaws = async () => {
const
handleClickBull
=
decree
=>
{
window
.
sessionStorage
.
setItem
(
"billId"
,
decree
.
billId
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
decree
.
title
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/billLayout",
// query: {
// billId: decree.billId
// }
// });
// console.log(route);
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/billLayout"
,
query
:
{
billId
:
decree
.
billId
}
});
console
.
log
(
route
);
window
.
open
(
route
.
href
,
"_blank"
);
})
};
onMounted
(()
=>
{
...
...
@@ -345,20 +370,26 @@ onMounted(() => {
.box2-main
{
padding
:
16px
20px
;
.custom-collapse
{
padding-left
:
32px
;
:deep
(
.el-collapse
),
:deep
(
.el-collapse-item__wrap
)
{
border
:
none
!
important
;
}
:deep
(
.el-collapse-item__header
)
{
border-bottom
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
}
:deep
(
.el-collapse-item__content
)
{
padding-bottom
:
16px
;
}
.custom-collapse-title
{
position
:
relative
;
.custom-collapse-index
{
font-family
:
Microsoft
YaHei
;
font-size
:
var
(
--
font-size-base
);
...
...
@@ -373,12 +404,14 @@ onMounted(() => {
background
:
#e7f3ff
;
color
:
#0a57a6
;
}
.custom-collapse-name
{
font-weight
:
600
;
font-size
:
18px
;
color
:
var
(
--
el-collapse-header-text-color
);
}
}
.custom-collapse-content
{
margin-top
:
8px
;
font-family
:
Microsoft
YaHei
;
...
...
@@ -392,6 +425,7 @@ onMounted(() => {
.right
{
width
:
520px
;
.box3
{
.box3-bottom-main
{
...
...
src/views/decree/decreeLayout/overview/introduction/index.vue
浏览文件 @
3967f51d
...
...
@@ -318,22 +318,32 @@ const handleGetOrgnization = async () => {
};
// 跳转行政机构主页
const
handleToInstitution
=
item
=>
{
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/institution",
// query: { id: item.id }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
item
.
id
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
// 跳转人员详情
const
handleClickUser
=
item
=>
{
window
.
sessionStorage
.
setItem
(
'curTabName'
,
item
.
name
)
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.id
// }
// });
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
id
}
});
window
.
open
(
routeData
.
href
,
"_blank"
);
})
};
onMounted
(()
=>
{
...
...
src/views/decree/decreeLayout/overview/measures/index.vue
浏览文件 @
3967f51d
差异被折叠。
点击展开。
src/views/exportControl/index.vue
浏览文件 @
3967f51d
...
...
@@ -822,14 +822,20 @@ const handleToPosi = id => {
// 跳转到单项制裁页面
const
handleToRiskSignalDetail
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
title
);
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id: item.sanId
// }
// });
// // 打开新页面
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
item
.
sanId
}
});
// 打开新页面
window
.
open
(
routeData
.
href
,
"_blank"
);
})
};
const
sanctionList
=
ref
([]);
...
...
@@ -885,14 +891,21 @@ const checkedTime = ref(["全部时间"]);
// 跳转到单条制裁页面,单独打开一个新页面
const
handleTitleClick
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
`
${
item
.
year
}
-
${
item
.
dateStr
}
《
${
item
.
title
}
》`
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id: item.id,
// sanTypeId: item.sanTypeId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
item
.
id
,
sanTypeId
:
item
.
sanTypeId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
handleCompClick
=
item
=>
{
...
...
@@ -1034,13 +1047,19 @@ onMounted(async () => {
});
// 查看社交媒体详情
const
handleToSocialDetail
=
item
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 获取趋势图数据
const
fetchTrendData
=
async
()
=>
{
...
...
@@ -1156,37 +1175,55 @@ const handleToEntityList = item => {
"curTabName"
,
entitiesDataInfoList
.
value
[
currentCarouselIndex
.
value
].
postDate
+
" 《实体清单新增条目》"
);
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id: id
// }
// });
// // 打开一个新页面
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
id
}
});
// 打开一个新页面
window
.
open
(
routeData
.
href
,
"_blank"
);
})
};
// 跳转到V2.0实体清单无ID
const
handleToEntityListNoId
=
item
=>
{
console
.
log
(
"这是什么数据 =>"
,
item
);
if
(
item
.
nameZh
==
"实体清单"
)
{
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve({
// path: "/exportControl/entityList",
// query: {
// sanTypeId: item.id
// }
// });
// // 打开一个新页面
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/exportControl/entityList"
,
query
:
{
sanTypeId
:
item
.
id
}
});
// 打开一个新页面
window
.
open
(
routeData
.
href
,
"_blank"
);
})
}
else
if
(
item
.
nameZh
==
"商业管制清单"
)
{
const
routeData
=
router
.
resolve
({
// const routeData = router.resolve({
// path: "/exportControl/commercialControlList",
// query: {
// sanTypeId: item.id
// }
// });
// // 打开一个新页面
// window.open(routeData.href, "_blank");
router
.
push
({
path
:
"/exportControl/commercialControlList"
,
query
:
{
sanTypeId
:
item
.
id
}
});
// 打开一个新页面
window
.
open
(
routeData
.
href
,
"_blank"
);
})
}
else
{
return
;
}
...
...
@@ -1660,14 +1697,21 @@ const fetchNewsInfo = async () => {
const
handlePerClick
=
item
=>
{
// console.log("点击了社交媒体消息:", item);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// type: item.type || [1, 2, 3][Math.floor(Math.random() * 3)],
// personId: item.personId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
type
:
item
.
type
||
[
1
,
2
,
3
][
Math
.
floor
(
Math
.
random
()
*
3
)],
personId
:
item
.
personId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 处理点击社交媒体消息的方法
// const handleInfoClick = item => {
...
...
@@ -1749,26 +1793,35 @@ const chart1Data = ref({
const
handleSanc
=
item
=>
{
console
.
log
(
item
);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
`
${
item
.
postDate
}
《
${
item
.
title
}
》`
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id: item.id,
// sanTypeId: activeResourceTabItem.value.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
item
.
id
,
sanTypeId
:
activeResourceTabItem
.
value
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 查看更多风险信号
const
handleToMoreRiskSignal
=
()
=>
{
const
route
=
router
.
resolve
(
"/viewRiskSignal"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/viewRiskSignal");
// window.open(route.href, "_blank");
router
.
push
(
"/viewRiskSignal"
)
};
// 查看更多新闻资讯
const
handleToMoreNews
=
()
=>
{
const
route
=
router
.
resolve
(
"/newsBrief"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/newsBrief");
// window.open(route.href, "_blank");
router
.
push
(
"/newsBrief"
)
};
const
handleNewsInfoClick
=
item
=>
{
...
...
@@ -1795,14 +1848,21 @@ const handleSwithCurPolicy = name => {
const
handleSearch
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
`搜索-
${
searchExportControlText
.
value
}
`
);
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/searchResults",
// query: {
// searchText: searchExportControlText.value,
// areaName: "实体清单"
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/searchResults"
,
query
:
{
searchText
:
searchExportControlText
.
value
,
areaName
:
"实体清单"
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
onMounted
(
async
()
=>
{
...
...
src/views/exportControl/v2.0CommercialControlList/components/sanctionsOverview/components/introductionPage/index.vue
浏览文件 @
3967f51d
...
...
@@ -25,12 +25,8 @@
<div
class=
"left-center"
>
<AnalysisBox
title=
"出口管制分类编码(ECCN)"
:showAllBtn=
"false"
>
<div
class=
"button-list"
>
<div
:class=
"['button',
{ click: item.isClick }]"
@click="changeECCN(item)"
v-for="(item, i) in ECCNList"
:key="i"
>
<div
:class=
"['button',
{ click: item.isClick }]" @click="changeECCN(item)" v-for="(item, i) in ECCNList"
:key="i">
<span>
第
{{
item
.
ranking
}}
位
{{
item
.
name
}}
</span>
</div>
</div>
...
...
@@ -48,17 +44,9 @@
<AnalysisBox
title=
"商业管制清单更新历史"
:showAllBtn=
"false"
>
<template
#
header-btn
>
<div
class=
"filters"
>
<el-select
v-model=
"selectedDomain"
placeholder=
"Select"
style=
"width: 150px; height: 32px; margin-right: 16px"
>
<el-option
v-for=
"item in domainOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
<el-select
v-model=
"selectedDomain"
placeholder=
"Select"
style=
"width: 150px; height: 32px; margin-right: 16px"
>
<el-option
v-for=
"item in domainOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<!--
<el-checkbox
v-model=
"onlyChina"
>
只看涉华动态
</el-checkbox>
-->
</div>
...
...
@@ -71,21 +59,15 @@
</div>
<div
class=
"img-zone"
>
<img
:src=
"item.icon || title"
alt
/>
<div
v-if=
"i < sanctionList.length - 1"
:class=
"['img-line', { 'img-line-last': i === sanctionList.length - 1 }]"
></div>
<div
v-if=
"i < sanctionList.length - 1"
:class=
"['img-line', { 'img-line-last': i === sanctionList.length - 1 }]"
>
</div>
</div>
<div
class=
"main"
>
<div
class=
"main-title"
>
{{ item.name }}
</div>
<!-- <div class="main-title" @click="handleClick(item)">{{ item.name }}</div> -->
<el-tooltip
effect=
"dark"
:content=
"item.summary"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<el-tooltip
effect=
"dark"
:content=
"item.summary"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<div
class=
"main-desc"
>
{{ item.summary }}
</div>
</el-tooltip>
<div
class=
"tag-box"
>
...
...
@@ -100,14 +82,8 @@
</div>
<div
class=
"left-footer"
>
<div
class=
"total-count"
>
共 {{ totalAll }} 项
</div>
<el-pagination
v-model:current-page=
"currentPageAll"
:page-size=
"pageSizeAll"
:total=
"totalAll"
layout=
"prev, pager, next"
background
@
current-change=
"handlePageChangeAll"
/>
<el-pagination
v-model:current-page=
"currentPageAll"
:page-size=
"pageSizeAll"
:total=
"totalAll"
layout=
"prev, pager, next"
background
@
current-change=
"handlePageChangeAll"
/>
</div>
</AnalysisBox>
</div>
...
...
@@ -135,31 +111,17 @@
<span>
关键人物
</span>
</div>
<div
class=
"key-person-list"
>
<div
class=
"person-item"
v-for=
"(item, index) in publishInfo.personList"
:key=
"index"
@
click=
"handlePerClick(item)"
>
<div
class=
"person-item"
v-for=
"(item, index) in publishInfo.personList"
:key=
"index"
@
click=
"handlePerClick(item)"
>
<img
:src=
"item.imageUrl"
alt
/>
<div
class=
"person-info"
>
<el-tooltip
effect=
"dark"
:content=
"item.name"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<el-tooltip
effect=
"dark"
:content=
"item.name"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<div
class=
"name"
>
{{ item.name }}
</div>
</el-tooltip>
<el-tooltip
effect=
"dark"
:content=
"item.position"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<el-tooltip
effect=
"dark"
:content=
"item.position"
popper-class=
"common-prompt-popper"
placement=
"top"
:show-after=
"500"
>
<div
class=
"title1"
>
{{ item.position }}
</div>
</el-tooltip>
</div>
...
...
@@ -220,38 +182,58 @@ const route = useRoute();
// 处理点击发布机构的方法
const
handleClickOrg
=
item
=>
{
// console.log("点击了发布机构:", item);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/institution",
// query: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 处理点击关键人物的方法
const
handlePerClick
=
item
=>
{
console
.
log
(
"点击了关键人物:"
,
item
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// type: item.type,
// personId: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
type
:
item
.
type
,
personId
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 处理点击实体名称的方法
const
handleClick
=
item
=>
{
// console.log("点击了实体名称:", item);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
item
.
id
}
})
;
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
selectedDomain
=
ref
(
0
);
...
...
src/views/exportControl/v2.0EntityList/components/sanctionsOverview/components/introductionPage/index.vue
浏览文件 @
3967f51d
...
...
@@ -212,39 +212,58 @@ const route = useRoute();
// 处理点击发布机构的方法
const
handleClickOrg
=
item
=>
{
// console.log("点击了发布机构:", item);
const
route
=
router
.
resolve
({
// const route = router.resolve(
{
// path: "/institution",
// query:
{
// id: item.id
//
}
//
}
);
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
item
.
id
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
}
)
}
;
// 处理点击关键人物的方法
const
handlePerClick
=
item
=>
{
console
.
log
(
"点击了关键人物:"
,
item
);
const
route
=
router
.
resolve
({
// const route = router.resolve(
{
// path: "/characterPage",
// query:
{
// type: item.type,
// personId: item.id
//
}
//
}
);
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
type
:
item
.
type
,
personId
:
item
.
id
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
}
)
}
;
// 处理点击实体名称的方法
const
handleClick
=
item
=>
{
// console.log("点击了实体名称:", item);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
`${item.year
}
-${item.date
}
《${item.name
}
》`
);
const
route
=
router
.
resolve
({
// const route = router.resolve(
{
// path: "/exportControl/singleSanction",
// query:
{
// id: item.id
//
}
//
}
);
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/exportControl/singleSanction"
,
query
:
{
id
:
item
.
id
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
}
)
}
;
const
selectedDomain
=
ref
(
0
);
...
...
src/views/exportControl/v2.0SingleSanction/components/sanctionsOverview/index.vue
浏览文件 @
3967f51d
...
...
@@ -49,13 +49,10 @@
<img
:src=
"flag"
alt=
""
class=
"flag"
/>
<div
class=
"country-name"
>
{{
item
.
name
}}
</div>
<div
class=
"progress-bar-container"
>
<div
class=
"progress-bar"
:style=
"
{
<div
class=
"progress-bar"
:style=
"
{
width: item.width,
background: item.gradient
}"
>
</div>
}">
</div>
</div>
<div
class=
"count"
:class=
"
{ highlight: index === 0 }">
{{
item
.
count
}}
家
</div>
</div>
...
...
@@ -98,25 +95,13 @@
</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-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-option
v-for=
"item in domainOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-input
v-model=
"searchKeyword"
placeholder=
"搜索实体"
<el-input
v-model=
"searchKeyword"
placeholder=
"搜索实体"
style=
"width: 150px; border: 1px solid rgba(170, 173, 177, 0.4); border-radius: 5px"
:suffix-icon=
"Search"
/>
:suffix-icon=
"Search"
/>
</div>
</div>
<div
class=
"stats-row"
>
...
...
@@ -131,21 +116,14 @@
<div
class=
"stats-info"
>
<div
class=
"stat-item"
>
<span
class=
"dot red"
></span>
<span
class=
"text"
>
新增
<span
class=
"num red"
>
{{
addCount
}}
</span>
家 (50%规则涉及
<span
class=
"num red"
>
{{
<span
class=
"text"
>
新增
<span
class=
"num red"
>
{{
addCount
}}
</span>
家 (50%规则涉及
<span
class=
"num red"
>
{{
addRuleCount
}}
</span
>
家)
</span
>
}}
</span>
家)
</span>
</div>
<div
class=
"stat-item"
>
<span
class=
"dot green"
></span>
<span
class=
"text"
>
移除
<span
class=
"num green"
>
{{
removeCount
}}
</span>
家 (50%规则涉及
<span
class=
"num green"
>
{{
removeRuleCount
}}
</span
>
家)
</span
>
<span
class=
"text"
>
移除
<span
class=
"num green"
>
{{
removeCount
}}
</span>
家 (50%规则涉及
<span
class=
"num green"
>
{{
removeRuleCount
}}
</span>
家)
</span>
</div>
</div>
</div>
...
...
@@ -167,14 +145,8 @@
</el-table-column>
<el-table-column
label=
"涉及领域"
width=
"180"
align=
"center"
>
<
template
#
default=
"scope"
>
<span
v-for=
"(item, index) in scope.row.fields"
:key=
"index"
class=
"tag"
:style=
"getTagStyle(item)"
style=
"margin: 0 2px"
>
{{
item
}}
</span
>
<span
v-for=
"(item, index) in scope.row.fields"
:key=
"index"
class=
"tag"
:style=
"getTagStyle(item)"
style=
"margin: 0 2px"
>
{{
item
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"location"
label=
"上市地点"
width=
"90"
align=
"center"
/>
...
...
@@ -182,11 +154,8 @@
<el-table-column
prop=
"revenue"
label=
"营收(亿元)"
width=
"110"
align=
"center"
/>
<el-table-column
label=
"50%规则子企业"
width=
"180"
align=
"center"
>
<
template
#
default=
"scope"
>
<span
v-if=
"scope.row.subsidiaryCount"
class=
"subsidiary-link"
@
click=
"handleSubsidiaryClick(scope.row)"
>
<span
v-if=
"scope.row.subsidiaryCount"
class=
"subsidiary-link"
@
click=
"handleSubsidiaryClick(scope.row)"
>
{{
scope
.
row
.
subsidiaryText
}}
<span
class=
"blue-text"
>
{{
scope
.
row
.
subsidiaryCount
}}
家 >
</span>
</span>
...
...
@@ -204,12 +173,8 @@
</div>
</div>
<!-- 50%规则子企业弹框 -->
<RuleSubsidiaryDialog
v-model=
"subsidiaryDialogVisible"
:company-name=
"currentSubsidiaryCompanyName"
:total-count=
"currentSubsidiaryCount"
:data-list=
"currentSubsidiaryList"
/>
<RuleSubsidiaryDialog
v-model=
"subsidiaryDialogVisible"
:company-name=
"currentSubsidiaryCompanyName"
:total-count=
"currentSubsidiaryCount"
:data-list=
"currentSubsidiaryList"
/>
</div>
</template>
...
...
@@ -251,13 +216,19 @@ const handleCompClick = item => {
const
handleClickDp
=
()
=>
{
// console.log("点击了发布机构:", props.data);
window
.
sessionStorage
.
setItem
(
"curTabName"
,
props
.
data
.
postOrgName
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/institution",
// query: {
// id: props.data.postOrgId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/institution"
,
query
:
{
id
:
props
.
data
.
postOrgId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 50%规则子企业弹框逻辑
...
...
@@ -419,14 +390,22 @@ const props = defineProps({
// 跳转到人物页
const
handleClick
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
props
.
data
.
postPersonName
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// // type: props.data.type,
// personId: props.data.postPersonId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
// type: props.data.type,
personId
:
props
.
data
.
postPersonId
}
})
;
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 计算属性处理数据
...
...
src/views/thinkTank/MultiThinkTankViewAnalysis/index.vue
浏览文件 @
3967f51d
...
...
@@ -916,13 +916,19 @@ const handleCurrentChange = page => {
const
handleToReportDetail
=
(
item
)
=>
{
if
(
!
item
?.
id
)
return
;
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
);
const
route
=
router
.
resolve
({
// const route = router.resolve(
{
// name: "ReportDetail",
// params:
{
// id: item.id
//
}
//
}
);
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportDetail"
,
params
:
{
id
:
item
.
id
}
}
);
window
.
open
(
route
.
href
,
"_blank"
);
}
)
}
;
//获取行业领域字典
// getHylyList
...
...
src/views/thinkTank/ReportDetail/index.vue
浏览文件 @
3967f51d
...
...
@@ -14,11 +14,7 @@
<div
class=
"tag"
>
{{
value
.
industryName
}}
</div>
</div>
-->
<AreaTag
v-for=
"(value, index) in thinkInfo.tags"
:key=
"index"
:tagName=
"value.industryName"
></AreaTag>
<AreaTag
v-for=
"(value, index) in thinkInfo.tags"
:key=
"index"
:tagName=
"value.industryName"
></AreaTag>
</div>
</div>
</div>
...
...
@@ -129,15 +125,20 @@ const handleGetThinkTankReport = async () => {
};
const
toReport
=
()
=>
{
console
.
log
(
reportUrl
.
value
,
"reportUrl.valuereportUrl.value"
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "ReportOriginal",
// params: {
// id: router.currentRoute._value.params.id
// }
// });
// console.log("route.href", route.href);
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportOriginal"
,
params
:
{
id
:
router
.
currentRoute
.
_value
.
params
.
id
}
});
console
.
log
(
"route.href"
,
route
.
href
);
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
tabActiveName
=
ref
(
"报告分析"
);
...
...
@@ -213,7 +214,7 @@ const handleDownloadDocument = async () => {
try
{
const
{
ElMessage
}
=
await
import
(
"element-plus"
);
ElMessage
.
error
(
"PDF 下载失败,请稍后重试"
);
}
catch
(
_
)
{}
}
catch
(
_
)
{
}
}
};
</
script
>
...
...
src/views/thinkTank/ReportDetail/policyTracking/index.vue
浏览文件 @
3967f51d
...
...
@@ -201,13 +201,19 @@ const scrollToWrapTop = () => {
const
toReport
=
()
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "ReportOriginal",
// params: {
// id: router.currentRoute._value.params.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportOriginal"
,
params
:
{
id
:
router
.
currentRoute
.
_value
.
params
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 当前页展示的数据
const
filteredOpinions
=
computed
(()
=>
box1Data
.
value
);
...
...
@@ -224,11 +230,15 @@ const handleBillMoreClick = (bill) => {
if
(
!
billId
)
{
return
;
}
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/billLayout/bill/introduction",
// query: { billId: String(billId) }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/billLayout/bill/introduction"
,
query
:
{
billId
:
String
(
billId
)
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
/** 政策建议关联法案:新标签页打开政令介绍页*/
const
handleAdministrativeMoreClick
=
(
ad
)
=>
{
...
...
@@ -236,11 +246,15 @@ const handleAdministrativeMoreClick = (ad) => {
if
(
!
id
)
{
return
;
}
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout/overview/introduction",
// query: { id: String(id) }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout/overview/introduction"
,
query
:
{
id
:
String
(
id
)
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
handleSearchOpinions
=
()
=>
{
// 搜索时默认切回“全部”标签
...
...
src/views/thinkTank/ReportDetail/reportAnalysis/index.vue
浏览文件 @
3967f51d
...
...
@@ -73,13 +73,8 @@
<
template
v-else
>
<div
class=
"box5Chart"
>
<!-- 有数据后再挂载子组件:子组件仅在 onMounted 初始化,异步数据到达后需 v-if + key 强制重新挂载 -->
<WordCloudChart
v-if=
"box5Data.length"
:key=
"box5WordCloudKey"
:data=
"box5Data"
width=
"432px"
height=
"272px"
/>
<WordCloudChart
v-if=
"box5Data.length"
:key=
"box5WordCloudKey"
:data=
"box5Data"
width=
"432px"
height=
"272px"
/>
</div>
<div
class=
"box5-footer"
>
<TipTab
:text=
"REPORT_ANALYSIS_TIP_BOX5"
/>
...
...
@@ -244,11 +239,15 @@ import TipTab from "@/views/thinkTank/TipTab/index.vue";
const
router
=
useRouter
();
const
goToAllThinkTank
=
()
=>
{
const
thinkTankId
=
props
?.
thinkInfo
?.
thinkTankId
||
props
?.
thinkInfo
?.
id
;
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "MultiThinkTankViewAnalysis",
// params: { id: thinkTankId }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
"MultiThinkTankViewAnalysis"
,
params
:
{
id
:
thinkTankId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
...
...
@@ -368,14 +367,19 @@ const handleClickReportAuthor = async (author) => {
const
res
=
await
getPersonSummaryInfo
(
params
);
if
(
res
.
code
!==
200
||
!
res
.
data
)
return
;
window
.
sessionStorage
.
setItem
(
"curTabName"
,
author
?.
name
||
""
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// personId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
riskSignal
=
computed
(()
=>
{
const
info
=
props
.
thinkInfo
||
{};
...
...
@@ -523,7 +527,20 @@ const majorOpinions = ref([
]);
//处理点击详情页事件
const
handleOpenReportOriginal
=
item
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "ReportOriginal",
// params: {
// id: router.currentRoute._value.params.id
// },
// query: {
// currentPage: currentPage.value,
// pageSize: pageSize.value,
// opinionId: item?.id ?? "",
// opinionContent: item?.content ?? ""
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportOriginal"
,
params
:
{
id
:
router
.
currentRoute
.
_value
.
params
.
id
...
...
@@ -534,8 +551,7 @@ const handleOpenReportOriginal = item => {
opinionId
:
item
?.
id
??
""
,
opinionContent
:
item
?.
content
??
""
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
tabActiveName
=
ref
(
"报告分析"
);
...
...
src/views/thinkTank/ThinkTankDetail/PolicyTracking/index.vue
浏览文件 @
3967f51d
...
...
@@ -504,11 +504,15 @@ const handleBillMoreClick = (bill) => {
if
(
!
billId
)
{
return
;
}
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/billLayout/bill/introduction",
// query: { billId: String(billId) }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/billLayout/bill/introduction"
,
query
:
{
billId
:
String
(
billId
)
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
/** 政策建议关联法案:新标签页打开政令介绍页*/
const
handleAdministrativeMoreClick
=
(
ad
)
=>
{
...
...
@@ -516,11 +520,15 @@ const handleAdministrativeMoreClick = (ad) => {
if
(
!
id
)
{
return
;
}
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/decreeLayout/overview/introduction",
// query: { id: String(id) }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/decreeLayout/overview/introduction"
,
query
:
{
id
:
String
(
id
)
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 政策建议涉及部门分布(饼图)
const
box2Data
=
ref
([]);
...
...
@@ -1220,13 +1228,19 @@ function mapPolicyRowToView(row) {
const
toDetail
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
contentZh
??
item
.
content
??
""
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "ReportOriginal",
// params: {
// id: item.reportId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportOriginal"
,
params
:
{
id
:
item
.
reportId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
total
=
ref
(
0
);
...
...
src/views/thinkTank/ThinkTankDetail/thinkDynamics/index.vue
浏览文件 @
3967f51d
...
...
@@ -111,13 +111,19 @@ const searchReport = ref('')
const
handleToReportDetail
=
(
item
)
=>
{
window
.
sessionStorage
.
setItem
(
'curTabName'
,
item
.
name
)
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: 'ReportDetail',
// params: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
'ReportDetail'
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
}
const
hearingData
=
ref
([
// 军事类(10条)
...
...
src/views/thinkTank/ThinkTankDetail/thinkInfo/index.vue
浏览文件 @
3967f51d
...
...
@@ -726,14 +726,20 @@ const handleClickPerson = async item => {
return
!
Number
.
isNaN
(
typeIdNum
)
&&
!
Number
.
isNaN
(
personTypeNum
)
&&
typeIdNum
===
personTypeNum
;
});
console
.
log
(
"arr"
,
arr
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.personId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
personId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
}
else
{
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
...
...
src/views/thinkTank/allThinkTank/index.vue
浏览文件 @
3967f51d
...
...
@@ -205,8 +205,9 @@ const handleClick = tank => {
ElMessage
.
warning
(
"当前智库id为空,无法进入详情页"
);
return
;
}
const
curRoute
=
router
.
resolve
({
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
,
name
:
tank
.
name
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
// const curRoute = router.resolve({ name: "ThinkTankDetail", params: { id: tank.id, name: tank.name } });
// window.open(curRoute.href, "_blank");
router
.
push
({
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
,
name
:
tank
.
name
}
})
};
onMounted
(
async
()
=>
{
handleGetThinkTankList
();
...
...
src/views/thinkTank/index.vue
浏览文件 @
3967f51d
...
...
@@ -695,13 +695,19 @@ const handleClickToDetail = () => {
const
toDetaile
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
box1Data
.
value
[
box1DataIndex
.
value
].
reportName
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "ReportDetail",
// params: {
// id: box1Data.value[box1DataIndex.value].reportId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportDetail"
,
params
:
{
id
:
box1Data
.
value
[
box1DataIndex
.
value
].
reportId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
// 切换当前智库
...
...
@@ -1664,13 +1670,19 @@ const handleGetHylyList = async () => {
};
// 查看社交媒体详情
const
handleToSocialDetail
=
item
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// personId: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
personId
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
selectedAreaList
=
ref
([
RESOURCE_FILTER_ALL_AREA
]);
...
...
@@ -1974,20 +1986,23 @@ const handleClick = tank => {
ElMessage
.
warning
(
"当前智库id为空,无法进入详情页"
);
return
;
}
const
curRoute
=
router
.
resolve
({
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
,
name
:
tank
.
name
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
// const curRoute = router.resolve({ name: "ThinkTankDetail", params: { id: tank.id, name: tank.name } });
// window.open(curRoute.href, "_blank");
router
.
push
({
name
:
"ThinkTankDetail"
,
params
:
{
id
:
tank
.
id
,
name
:
tank
.
name
}
})
};
// 查看更多风险信号
const
handleToMoreRiskSignal
=
()
=>
{
const
route
=
router
.
resolve
(
"/viewRiskSignal"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/viewRiskSignal");
// window.open(route.href, "_blank");
router
.
push
(
"/viewRiskSignal"
)
};
// 查看更多新闻资讯
const
handleToMoreNews
=
()
=>
{
const
route
=
router
.
resolve
(
"/newsBrief"
);
window
.
open
(
route
.
href
,
"_blank"
);
// const route = router.resolve("/newsBrief");
// window.open(route.href, "_blank");
router
.
push
(
"/newsBrief"
)
};
// 点击人物头像,跳转到人物主页
...
...
@@ -2027,14 +2042,21 @@ const handleClickPerson = async item => {
return
;
}
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
personName
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/characterPage",
// query: {
// type: type, // type=1为科技企业领袖,2为国会议员,3为智库研究人员
// personId: item.personId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/characterPage"
,
query
:
{
type
:
type
,
// type=1为科技企业领袖,2为国会议员,3为智库研究人员
personId
:
item
.
personId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
}
else
{
personTypeName
=
""
;
ElMessage
.
warning
(
"找不到当前人员的类型值!"
);
...
...
@@ -2049,36 +2071,55 @@ const handleClickPerson = async item => {
// 点击新闻条目,跳转到新闻分析页
const
handleToNewsAnalysis
=
news
=>
{
const
route
=
router
.
resolve
({
// const route = router.resolve({
// path: "/newsAnalysis",
// query: {
// newsId: news.newsId
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
path
:
"/newsAnalysis"
,
query
:
{
newsId
:
news
.
newsId
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
handleToReportDetail
=
item
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
item
.
name
);
const
route
=
router
.
resolve
({
// const route = router.resolve({
// name: "ReportDetail",
// params: {
// id: item.id
// }
// });
// window.open(route.href, "_blank");
router
.
push
({
name
:
"ReportDetail"
,
params
:
{
id
:
item
.
id
}
});
window
.
open
(
route
.
href
,
"_blank"
);
})
};
const
handleSearch
=
()
=>
{
window
.
sessionStorage
.
setItem
(
"curTabName"
,
`搜索-
${
searchThinktankText
.
value
}
`
);
const
curRoute
=
router
.
resolve
({
// const curRoute = router.resolve({
// path: "/searchResults",
// query: {
// searchText: searchThinktankText.value,
// areaName: "智库"
// }
// });
// window.open(curRoute.href, "_blank");
router
.
push
({
path
:
"/searchResults"
,
query
:
{
searchText
:
searchThinktankText
.
value
,
areaName
:
"智库"
}
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
})
};
onMounted
(
async
()
=>
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论