Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
eba3a093
提交
eba3a093
authored
2月 04, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
差异文件
政令资源库请求修改
上级
3a8d0f4d
9db6a408
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
185 行增加
和
53 行删除
+185
-53
package-lock.json
package-lock.json
+13
-2
introduction.js
src/api/decree/introduction.js
+7
-0
index.vue
...omponents/fourSuppress/components/allGovernment/index.vue
+39
-1
index.vue
...iew/components/fourSuppress/components/allUnion/index.vue
+0
-0
index.vue
src/views/ZMOverView/components/gameProfile/index.vue
+11
-7
index.vue
src/views/comprehensiveSearch/searchResults/index.vue
+11
-1
index.vue
src/views/decree/decreeHome/index.vue
+0
-0
index.vue
src/views/decree/decreeOriginal/index.vue
+104
-42
没有找到文件。
package-lock.json
浏览文件 @
eba3a093
...
@@ -1646,6 +1646,7 @@
...
@@ -1646,6 +1646,7 @@
"resolved"
:
"https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz"
,
"integrity"
:
"sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ=="
,
"integrity"
:
"sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ=="
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"@types/lodash"
:
"*"
"@types/lodash"
:
"*"
}
}
...
@@ -1762,6 +1763,7 @@
...
@@ -1762,6 +1763,7 @@
"resolved"
:
"https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.21.tgz"
,
"integrity"
:
"sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ=="
,
"integrity"
:
"sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ=="
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"@babel/parser"
:
"^7.28.3"
,
"@babel/parser"
:
"^7.28.3"
,
"@vue/compiler-core"
:
"3.5.21"
,
"@vue/compiler-core"
:
"3.5.21"
,
...
@@ -2501,6 +2503,7 @@
...
@@ -2501,6 +2503,7 @@
"resolved"
:
"https://registry.npmmirror.com/cytoscape/-/cytoscape-3.33.1.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/cytoscape/-/cytoscape-3.33.1.tgz"
,
"integrity"
:
"sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ=="
,
"integrity"
:
"sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ=="
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"engines"
:
{
"engines"
:
{
"node"
:
">=0.10"
"node"
:
">=0.10"
}
}
...
@@ -2898,6 +2901,7 @@
...
@@ -2898,6 +2901,7 @@
"resolved"
:
"https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/d3-selection/-/d3-selection-3.0.0.tgz"
,
"integrity"
:
"sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="
,
"integrity"
:
"sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ=="
,
"license"
:
"ISC"
,
"license"
:
"ISC"
,
"peer"
:
true
,
"engines"
:
{
"engines"
:
{
"node"
:
">=12"
"node"
:
">=12"
}
}
...
@@ -3155,6 +3159,7 @@
...
@@ -3155,6 +3159,7 @@
"resolved"
:
"https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz"
,
"integrity"
:
"sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA=="
,
"integrity"
:
"sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA=="
,
"license"
:
"Apache-2.0"
,
"license"
:
"Apache-2.0"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"tslib"
:
"2.3.0"
,
"tslib"
:
"2.3.0"
,
"zrender"
:
"5.6.1"
"zrender"
:
"5.6.1"
...
@@ -4388,13 +4393,15 @@
...
@@ -4388,13 +4393,15 @@
"version"
:
"4.17.21"
,
"version"
:
"4.17.21"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
,
"integrity"
:
"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
,
"integrity"
:
"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
,
"license"
:
"MIT"
"license"
:
"MIT"
,
"peer"
:
true
},
},
"node_modules/lodash-es"
:
{
"node_modules/lodash-es"
:
{
"version"
:
"4.17.21"
,
"version"
:
"4.17.21"
,
"resolved"
:
"https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz"
,
"integrity"
:
"sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
,
"integrity"
:
"sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
,
"license"
:
"MIT"
"license"
:
"MIT"
,
"peer"
:
true
},
},
"node_modules/lodash-unified"
:
{
"node_modules/lodash-unified"
:
{
"version"
:
"1.0.3"
,
"version"
:
"1.0.3"
,
...
@@ -4442,6 +4449,7 @@
...
@@ -4442,6 +4449,7 @@
"resolved"
:
"https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz"
,
"integrity"
:
"sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="
,
"integrity"
:
"sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"argparse"
:
"^2.0.1"
,
"argparse"
:
"^2.0.1"
,
"entities"
:
"^4.4.0"
,
"entities"
:
"^4.4.0"
,
...
@@ -5701,6 +5709,7 @@
...
@@ -5701,6 +5709,7 @@
"integrity"
:
"sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w=="
,
"integrity"
:
"sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w=="
,
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"@types/estree"
:
"1.0.8"
"@types/estree"
:
"1.0.8"
},
},
...
@@ -6634,6 +6643,7 @@
...
@@ -6634,6 +6643,7 @@
"integrity"
:
"sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g=="
,
"integrity"
:
"sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g=="
,
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"esbuild"
:
"^0.21.3"
,
"esbuild"
:
"^0.21.3"
,
"postcss"
:
"^8.4.43"
,
"postcss"
:
"^8.4.43"
,
...
@@ -6693,6 +6703,7 @@
...
@@ -6693,6 +6703,7 @@
"resolved"
:
"https://registry.npmmirror.com/vue/-/vue-3.5.21.tgz"
,
"resolved"
:
"https://registry.npmmirror.com/vue/-/vue-3.5.21.tgz"
,
"integrity"
:
"sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA=="
,
"integrity"
:
"sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA=="
,
"license"
:
"MIT"
,
"license"
:
"MIT"
,
"peer"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
"@vue/compiler-dom"
:
"3.5.21"
,
"@vue/compiler-dom"
:
"3.5.21"
,
"@vue/compiler-sfc"
:
"3.5.21"
,
"@vue/compiler-sfc"
:
"3.5.21"
,
...
...
src/api/decree/introduction.js
浏览文件 @
eba3a093
...
@@ -64,6 +64,13 @@ export function getDecreeSummary(params) {
...
@@ -64,6 +64,13 @@ export function getDecreeSummary(params) {
/**
/**
* @param {id}
* @param {id}
*/
*/
// export function getDecreeReport(params) {
// return request({
// method: 'GET',
// url: `/api/administrativeOrderInfo/contentUrl/${params.id}`,
// })
// }
export
function
getDecreeReport
(
params
)
{
export
function
getDecreeReport
(
params
)
{
return
request
({
return
request
({
method
:
'GET'
,
method
:
'GET'
,
...
...
src/views/ZMOverView/components/fourSuppress/components/allGovernment/index.vue
浏览文件 @
eba3a093
...
@@ -198,6 +198,7 @@
...
@@ -198,6 +198,7 @@
'card-white': event.level === 'white',
'card-white': event.level === 'white',
'card-default': !event.level
'card-default': !event.level
}"
}"
:style="event.noData ? 'opacity:0;' : ''"
@click="handleClickEventCard(event)"
@click="handleClickEventCard(event)"
>
>
<div
class=
"card-mask"
v-if=
"activeSanctionId && activeSanctionId !== event.sanctionId"
></div>
<div
class=
"card-mask"
v-if=
"activeSanctionId && activeSanctionId !== event.sanctionId"
></div>
...
@@ -327,13 +328,46 @@ const getUSGovernmentSanctionHistoryData = async () => {
...
@@ -327,13 +328,46 @@ const getUSGovernmentSanctionHistoryData = async () => {
grouped
[
deptName
].
events
.
push
({
grouped
[
deptName
].
events
.
push
({
date
:
item
.
endDate
?
item
.
endDate
.
replace
(
/^
(\d{4})
-
(\d{2})
-
(\d{2})
$/
,
"$1年$2月$3日"
)
:
""
,
date
:
item
.
endDate
?
item
.
endDate
.
replace
(
/^
(\d{4})
-
(\d{2})
-
(\d{2})
$/
,
"$1年$2月$3日"
)
:
""
,
time
:
item
.
endDate
,
content
:
item
.
name
||
item
.
summary
,
content
:
item
.
name
||
item
.
summary
,
tags
:
item
.
techDomainList
?
item
.
techDomainList
.
slice
(
0
,
2
)
:
[],
tags
:
item
.
techDomainList
?
item
.
techDomainList
.
slice
(
0
,
2
)
:
[],
level
:
level
,
level
:
level
,
sanctionId
:
item
.
sanctionId
sanctionId
:
item
.
sanctionId
});
});
});
});
timelineList
.
value
=
Object
.
values
(
grouped
);
//统计完成后生成新的数组
let
fArr
=
[]
rawList
.
forEach
((
item
)
=>
{
fArr
.
push
(
item
.
endDate
)
})
let
timeLine
=
Object
.
values
(
grouped
);
//重新遍历timeLine,根据日期数组额外增加数据
timeLine
.
forEach
((
item
)
=>
{
// 根据日期数组构建空数据
const
data
=
[]
for
(
let
i
=
0
;
i
<
fArr
.
length
;
i
++
)
{
const
option
=
{
date
:
fArr
[
i
],
noData
:
true
}
data
.
push
(
option
)
}
item
.
events
.
forEach
((
ele
)
=>
{
for
(
let
m
=
0
;
m
<
data
.
length
;
m
++
)
{
if
(
ele
.
time
==
data
[
m
].
date
&&
data
[
m
].
noData
){
data
[
m
]
=
ele
data
[
m
].
noData
=
false
break
}
}
})
item
.
events
=
data
})
// timelineList.value = Object.values(grouped);
timelineList
.
value
=
timeLine
console
.
log
(
"timelineList"
,
timelineList
.
value
);
console
.
log
(
"timelineList"
,
timelineList
.
value
);
initSlider
();
initSlider
();
...
@@ -2020,6 +2054,10 @@ const prev = () => {
...
@@ -2020,6 +2054,10 @@ const prev = () => {
}
}
}
}
}
}
.event-no-card
{
width
:
240px
;
height
:
130px
;
}
}
}
}
}
}
}
...
...
src/views/ZMOverView/components/fourSuppress/components/allUnion/index.vue
浏览文件 @
eba3a093
差异被折叠。
点击展开。
src/views/ZMOverView/components/gameProfile/index.vue
浏览文件 @
eba3a093
...
@@ -57,15 +57,19 @@
...
@@ -57,15 +57,19 @@
<el-table-column
prop=
"usScore"
label=
"美国"
>
<el-table-column
prop=
"usScore"
label=
"美国"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
<div
style=
"display: flex"
>
<div
style=
"display: flex"
>
<div
class=
"progress-text"
>
<div
class=
"progress-text"
style=
"width:90px;"
>
<div
class=
"rank"
>
{{
"No."
+
scope
.
row
.
usRank
}}
</div>
<div
class=
"rank"
v-show=
"scope.row.usScore != 0"
>
{{
"No."
+
scope
.
row
.
usRank
}}
</div>
<div
class=
"score"
>
{{
scope
.
row
.
usScore
}}
</div>
<div
class=
"score"
v-show=
"scope.row.usScore != 0"
>
{{
scope
.
row
.
usScore
}}
</div>
</div>
</div>
<div
class=
"progress-wrapper left"
>
<div
class=
"progress-wrapper left"
>
<el-progress
<el-progress
:percentage=
"scope.row.usScore"
:percentage=
"scope.row.usScore"
:stroke-width=
"20"
:stroke-width=
"20"
class=
"left-progress"
class=
"left-progress"
:class=
"
{
cLead: scope.row.usScore == 0,
leftProgress: scope.row.usScore != 0
}"
:show-text="false"
:show-text="false"
/>
/>
</div>
</div>
...
@@ -80,15 +84,15 @@
...
@@ -80,15 +84,15 @@
:percentage=
"scope.row.chinaScore"
:percentage=
"scope.row.chinaScore"
:stroke-width=
"20"
:stroke-width=
"20"
class=
"right-progress"
class=
"right-progress"
:class=
"
{ cLead: scope.row.chinaRank
<
scope
.
row
.
usRank
}"
:class=
"
{ cLead: scope.row.chinaRank
<
scope
.
row
.
usRank
&&
scope
.
row
.
chinaScore
!=
0
}"
:show-text=
"false"
:show-text=
"false"
/>
/>
</div>
</div>
<div
class=
"progress-text"
style=
"color: rgba(206, 79, 81, 1)"
>
<div
class=
"progress-text"
style=
"color: rgba(206, 79, 81, 1)
;width:90px;
"
>
<div
class=
"rank"
:class=
"
{ cLeadRank: scope.row.chinaRank
<
scope
.
row
.
usRank
}"
>
<div
class=
"rank"
:class=
"
{ cLeadRank: scope.row.chinaRank
<
scope
.
row
.
usRank
}"
v-show=
"scope.row.chinaScore != 0"
>
{{
"No."
+
scope
.
row
.
chinaRank
}}
{{
"No."
+
scope
.
row
.
chinaRank
}}
</div>
</div>
<div
class=
"score"
:class=
"
{ cLeadScore: scope.row.chinaRank
<
scope
.
row
.
usRank
}"
>
<div
class=
"score"
:class=
"
{ cLeadScore: scope.row.chinaRank
<
scope
.
row
.
usRank
}"
v-show=
"scope.row.chinaScore != 0"
>
{{
scope
.
row
.
chinaScore
}}
{{
scope
.
row
.
chinaScore
}}
</div>
</div>
</div>
</div>
...
...
src/views/comprehensiveSearch/searchResults/index.vue
浏览文件 @
eba3a093
...
@@ -155,6 +155,10 @@ const selectRelation = ref("相关度优先");
...
@@ -155,6 +155,10 @@ const selectRelation = ref("相关度优先");
const
keyword
=
ref
(
""
);
const
keyword
=
ref
(
""
);
const
tabList
=
ref
([
const
tabList
=
ref
([
{
name
:
"全部"
,
id
:
100
},
{
{
name
:
"法案"
,
name
:
"法案"
,
id
:
1
id
:
1
...
@@ -296,7 +300,7 @@ const handleSearch = async () => {
...
@@ -296,7 +300,7 @@ const handleSearch = async () => {
size
:
pageSize
.
value
,
size
:
pageSize
.
value
,
page
:
currentPage
.
value
,
page
:
currentPage
.
value
,
keyword
:
keyword
.
value
,
// "出口"
keyword
:
keyword
.
value
,
// "出口"
type
:
activeTabId
.
value
,
type
:
activeTabId
.
value
==
100
?
''
:
activeTabId
.
value
,
domains
:
selectedDomains
.
value
domains
:
selectedDomains
.
value
};
};
}
else
{
}
else
{
...
@@ -476,6 +480,9 @@ onMounted(() => {
...
@@ -476,6 +480,9 @@ onMounted(() => {
if
(
route
.
query
&&
route
.
query
.
areaName
)
{
if
(
route
.
query
&&
route
.
query
.
areaName
)
{
curArea
.
value
=
route
.
query
.
areaName
;
curArea
.
value
=
route
.
query
.
areaName
;
switch
(
curArea
.
value
)
{
switch
(
curArea
.
value
)
{
case
"全部"
:
activeTabId
.
value
=
100
;
break
;
case
"法案"
:
case
"法案"
:
activeTabId
.
value
=
1
;
activeTabId
.
value
=
1
;
break
;
break
;
...
@@ -503,6 +510,9 @@ onMounted(() => {
...
@@ -503,6 +510,9 @@ onMounted(() => {
default
:
default
:
activeTabId
.
value
=
5
;
activeTabId
.
value
=
5
;
}
}
}
else
{
curArea
.
value
=
"全部"
activeTabId
.
value
=
100
;
}
}
handleSearch
();
handleSearch
();
});
});
...
...
src/views/decree/decreeHome/index.vue
浏览文件 @
eba3a093
差异被折叠。
点击展开。
src/views/decree/decreeOriginal/index.vue
浏览文件 @
eba3a093
...
@@ -33,14 +33,15 @@
...
@@ -33,14 +33,15 @@
{{
"政令原文"
}}
{{
"政令原文"
}}
</div>
</div>
<div
class=
"report-main"
>
<div
class=
"report-main"
>
<div
class=
"left"
>
<div
v-if=
"!reportData.length"
class=
"noContent"
>
{{
"暂无数据"
}}
</div>
<div
v-if=
"!reportUrl"
class=
"noContent"
>
{{
"中文原文暂无数据"
}}
</div>
<template
v-else
>
<iframe
v-else
:src=
"reportUrl"
style=
"border: none"
width=
"100%"
height=
"100%"
>
</iframe>
<div
v-for=
"(item, index) in reportData"
:key=
"index"
class=
"content-row"
>
</div>
<!-- 左侧:英文 -->
<div
class=
"right"
>
<div
class=
"content-en"
>
{{
item
.
contentEn
}}
</div>
<div
v-if=
"!reportUrlEn"
class=
"noContent"
>
{{
"英文原文暂无数据"
}}
</div>
<!-- 右侧:中文 -->
<iframe
v-else
:src=
"reportUrlEn"
style=
"border: none"
width=
"100%"
height=
"100%"
>
</iframe>
<div
class=
"content-cn"
>
{{
item
.
content
}}
</div>
</div>
</div>
</
template
>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -50,14 +51,13 @@
...
@@ -50,14 +51,13 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
ref
,
onMounted
}
from
"vue"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
getDecreeSummary
}
from
"@/api/decree/introduction"
;
import
{
getDecreeSummary
}
from
"@/api/decree/introduction"
;
import
{
getDecreeReport
}
from
"@/api/decree/introduction"
;
import
{
getDecreeReport
}
from
"@/api/decree/introduction"
;
const
route
=
useRoute
();
const
route
=
useRoute
();
const
reportUrl
=
ref
(
""
);
// 修改为数组存储分段数据
const
report
UrlEn
=
ref
(
""
);
const
report
Data
=
ref
([]
);
const
summaryInfo
=
ref
({});
const
summaryInfo
=
ref
({});
...
@@ -72,10 +72,10 @@ const handleGetSummary = async () => {
...
@@ -72,10 +72,10 @@ const handleGetSummary = async () => {
if
(
res
.
code
===
200
&&
res
.
data
)
{
if
(
res
.
code
===
200
&&
res
.
data
)
{
summaryInfo
.
value
=
res
.
data
;
summaryInfo
.
value
=
res
.
data
;
}
}
}
catch
(
error
)
{}
}
catch
(
error
)
{
}
};
};
// 获取报告原文
// 获取报告原文
- 修改为获取分段数组
const
handleGetReport
=
async
()
=>
{
const
handleGetReport
=
async
()
=>
{
const
params
=
{
const
params
=
{
id
:
route
.
query
.
id
id
:
route
.
query
.
id
...
@@ -85,10 +85,10 @@ const handleGetReport = async () => {
...
@@ -85,10 +85,10 @@ const handleGetReport = async () => {
const
res
=
await
getDecreeReport
(
params
);
const
res
=
await
getDecreeReport
(
params
);
console
.
log
(
"报告原文"
,
res
);
console
.
log
(
"报告原文"
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
if
(
res
.
code
===
200
&&
res
.
data
)
{
reportUrl
.
value
=
res
.
data
.
content
;
// 假设后端返回的是数组格式,如果返回的是对象包含数组,请改为 res.data.list
report
UrlEn
.
value
=
res
.
data
.
contentEn
;
report
Data
.
value
=
res
.
data
||
[]
;
}
}
}
catch
(
error
)
{}
}
catch
(
error
)
{
}
};
};
onMounted
(()
=>
{
onMounted
(()
=>
{
...
@@ -106,6 +106,7 @@ onMounted(() => {
...
@@ -106,6 +106,7 @@ onMounted(() => {
.layout-main
{
.layout-main
{
width
:
100%
;
width
:
100%
;
.layout-main-header
{
.layout-main-header
{
height
:
120px
;
height
:
120px
;
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
...
@@ -119,26 +120,32 @@ onMounted(() => {
...
@@ -119,26 +120,32 @@ onMounted(() => {
border-top
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
border-top
:
1px
solid
rgba
(
234
,
236
,
238
,
1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
box-shadow
:
0px
0px
20px
0px
rgba
(
25
,
69
,
130
,
0
.1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
background
:
rgba
(
255
,
255
,
255
,
1
);
.layout-main-header-left-box
{
.layout-main-header-left-box
{
width
:
1100px
;
width
:
1100px
;
margin-left
:
160px
;
margin-left
:
160px
;
margin-top
:
13px
;
margin-top
:
13px
;
.left-box-top
{
.left-box-top
{
height
:
64px
;
height
:
64px
;
display
:
flex
;
display
:
flex
;
.icon
{
.icon
{
width
:
122px
;
width
:
122px
;
height
:
64px
;
height
:
64px
;
border-radius
:
4px
;
border-radius
:
4px
;
overflow
:
hidden
;
overflow
:
hidden
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.info
{
.info
{
width
:
700px
;
width
:
700px
;
margin-left
:
9px
;
margin-left
:
9px
;
.info-box1
{
.info-box1
{
width
:
700px
;
width
:
700px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
...
@@ -153,6 +160,7 @@ onMounted(() => {
...
@@ -153,6 +160,7 @@ onMounted(() => {
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.info-box2
{
.info-box2
{
margin-top
:
5px
;
margin-top
:
5px
;
height
:
22px
;
height
:
22px
;
...
@@ -166,21 +174,25 @@ onMounted(() => {
...
@@ -166,21 +174,25 @@ onMounted(() => {
text-align
:
left
;
text-align
:
left
;
display
:
flex
;
display
:
flex
;
margin-left
:
-10px
;
margin-left
:
-10px
;
.info-box2-item
{
.info-box2-item
{
padding
:
0
10px
;
padding
:
0
10px
;
}
}
.item1
{
.item1
{
width
:
100px
;
width
:
100px
;
overflow
:
hidden
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.item2
{
.item2
{
width
:
180px
;
width
:
180px
;
overflow
:
hidden
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
white-space
:
nowrap
;
}
}
.item3
{
.item3
{
width
:
420px
;
width
:
420px
;
overflow
:
hidden
;
overflow
:
hidden
;
...
@@ -190,25 +202,30 @@ onMounted(() => {
...
@@ -190,25 +202,30 @@ onMounted(() => {
}
}
}
}
}
}
.left-box-bottom
{
.left-box-bottom
{
display
:
flex
;
display
:
flex
;
height
:
40px
;
height
:
40px
;
margin-top
:
21px
;
margin-top
:
21px
;
.left-box-bottom-item
{
.left-box-bottom-item
{
display
:
flex
;
display
:
flex
;
margin-right
:
32px
;
margin-right
:
32px
;
margin-top
:
3px
;
margin-top
:
3px
;
height
:
35px
;
height
:
35px
;
cursor
:
pointer
;
cursor
:
pointer
;
.icon
{
.icon
{
margin-top
:
4px
;
margin-top
:
4px
;
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.name
{
.name
{
height
:
24px
;
height
:
24px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
...
@@ -220,20 +237,24 @@ onMounted(() => {
...
@@ -220,20 +237,24 @@ onMounted(() => {
text-align
:
left
;
text-align
:
left
;
margin-left
:
3px
;
margin-left
:
3px
;
}
}
.nameActive
{
.nameActive
{
color
:
var
(
--
color-main-active
);
color
:
var
(
--
color-main-active
);
font-weight
:
700
;
font-weight
:
700
;
}
}
}
}
.leftBoxBottomItemActive
{
.leftBoxBottomItemActive
{
border-bottom
:
3px
solid
var
(
--
color-main-active
);
border-bottom
:
3px
solid
var
(
--
color-main-active
);
}
}
}
}
}
}
.layout-main-header-right-box
{
.layout-main-header-right-box
{
width
:
300px
;
width
:
300px
;
margin-right
:
150px
;
margin-right
:
150px
;
margin-top
:
19px
;
margin-top
:
19px
;
.right-box-top
{
.right-box-top
{
.time
{
.time
{
height
:
24px
;
height
:
24px
;
...
@@ -246,6 +267,7 @@ onMounted(() => {
...
@@ -246,6 +267,7 @@ onMounted(() => {
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
right
;
text-align
:
right
;
}
}
.name
{
.name
{
height
:
24px
;
height
:
24px
;
line-height
:
24px
;
line-height
:
24px
;
...
@@ -258,12 +280,14 @@ onMounted(() => {
...
@@ -258,12 +280,14 @@ onMounted(() => {
text-align
:
right
;
text-align
:
right
;
}
}
}
}
.right-box-bottom
{
.right-box-bottom
{
margin-top
:
24px
;
margin-top
:
24px
;
text-align
:
right
;
text-align
:
right
;
display
:
flex
;
display
:
flex
;
justify-content
:
flex-end
;
justify-content
:
flex-end
;
gap
:
8px
;
gap
:
8px
;
.btn
{
.btn
{
width
:
120px
;
width
:
120px
;
height
:
36px
;
height
:
36px
;
...
@@ -276,14 +300,17 @@ onMounted(() => {
...
@@ -276,14 +300,17 @@ onMounted(() => {
gap
:
8px
;
gap
:
8px
;
align-items
:
center
;
align-items
:
center
;
cursor
:
pointer
;
cursor
:
pointer
;
.icon
{
.icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.text
{
.text
{
width
:
64px
;
width
:
64px
;
height
:
24px
;
height
:
24px
;
...
@@ -297,6 +324,7 @@ onMounted(() => {
...
@@ -297,6 +324,7 @@ onMounted(() => {
text-align
:
left
;
text-align
:
left
;
}
}
}
}
.btn-active
{
.btn-active
{
width
:
120px
;
width
:
120px
;
height
:
36px
;
height
:
36px
;
...
@@ -307,14 +335,17 @@ onMounted(() => {
...
@@ -307,14 +335,17 @@ onMounted(() => {
align-items
:
center
;
align-items
:
center
;
gap
:
8px
;
gap
:
8px
;
cursor
:
pointer
;
cursor
:
pointer
;
.icon-active
{
.icon-active
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.text-active
{
.text-active
{
width
:
64px
;
width
:
64px
;
height
:
24px
;
height
:
24px
;
...
@@ -331,16 +362,18 @@ onMounted(() => {
...
@@ -331,16 +362,18 @@ onMounted(() => {
}
}
}
}
}
}
.layout-main-center
{
.layout-main-center
{
.report-box
{
.report-box
{
margin
:
0
auto
;
margin
:
0
auto
;
width
:
1600px
;
width
:
1600px
;
height
:
926px
;
height
:
926px
;
background
:
rgba
(
248
,
249
,
250
,
1
);
background
:
rgba
(
248
,
249
,
250
,
1
);
.report-header
{
.report-header
{
height
:
80px
;
height
:
80px
;
line-height
:
80px
;
line-height
:
80px
;
padding-left
:
20
px
;
padding-left
:
69
px
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei
;
font-style
:
Bold
;
font-style
:
Bold
;
...
@@ -349,39 +382,68 @@ onMounted(() => {
...
@@ -349,39 +382,68 @@ onMounted(() => {
letter-spacing
:
0px
;
letter-spacing
:
0px
;
text-align
:
left
;
text-align
:
left
;
}
}
.report-main
{
.report-main
{
width
:
1600px
;
width
:
1600px
;
margin
:
0
auto
;
margin
-top
:
24px
;
background
:
#fff
;
background
:
#fff
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
padding
:
0
69px
;
padding
:
24px
69px
;
display
:
flex
;
height
:
calc
(
100%
-
100px
);
height
:
calc
(
100%
-
100px
);
justify-content
:
space-between
;
overflow-y
:
auto
;
// 改为单一滚动容器,天然同步
.left
{
width
:
800px
;
// 滚动条样式
.noContent
{
&
:
:-
webkit-scrollbar
{
height
:
100px
;
display
:
none
;
line-height
:
100px
;
text-align
:
center
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-style
:
Regular
;
font-size
:
20px
;
font-weight
:
400
;
}
}
}
.right
{
width
:
800px
;
&
:
:-
webkit-scrollbar-thumb
{
.noContent
{
background
:
#c1c1c1
;
height
:
100px
;
border-radius
:
4px
;
line-height
:
100px
;
}
text-align
:
center
;
&
:
:-
webkit-scrollbar-track
{
background
:
#f1f1f1
;
}
.noContent
{
height
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-style
:
Regular
;
font-size
:
20px
;
font-weight
:
400
;
}
.content-row
{
display
:
flex
;
width
:
100%
;
min-height
:
100px
;
// border-bottom: 1px solid rgba(234, 236, 238, 1);
align-items
:
stretch
;
// 默认stretch,确保左右等高,头部对齐
&
:last-child
{
border-bottom
:
none
;
}
.content-en
,
.content-cn
{
width
:
800px
;
padding
:
24px
30px
;
box-sizing
:
border-box
;
font-size
:
16px
;
line-height
:
1
.8
;
color
:
rgba
(
59
,
65
,
75
,
1
);
color
:
rgba
(
59
,
65
,
75
,
1
);
font-family
:
Microsoft
YaHei
;
font-family
:
Microsoft
YaHei
;
font-style
:
Regular
;
text-align
:
justify
;
font-size
:
20px
;
white-space
:
pre-wrap
;
// 保留换行格式
font-weight
:
400
;
}
.content-en
{
// border-right: 1px solid rgba(234, 236, 238, 1); // 中间分隔线
}
}
}
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论