Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
4a198500
提交
4a198500
authored
4月 09, 2026
作者:
付康
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'fk-dev' 到 'pre'
Fk dev 查看合并请求
!324
上级
6f3ae4a0
68717834
流水线
#389
已通过 于阶段
in 3 分 30 秒
变更
10
流水线
1
全部展开
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
209 行增加
和
45 行删除
+209
-45
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+2
-2
index.vue
...s/dataLibrary/exportControl/commerceControlList/index.vue
+2
-2
index.vue
...aLibrary/exportControl/commerceControlListEvent/index.vue
+2
-2
index.vue
src/views/dataLibrary/exportControl/entityList/index.vue
+13
-10
index.vue
...views/dataLibrary/exportControl/entityListEvent/index.vue
+2
-2
index.vue
src/views/dataLibrary/index.vue
+4
-3
index.vue
src/views/exportControl/index.vue
+0
-0
charts.js
src/views/exportControl/utils/charts.js
+1
-1
index.vue
...ontrol/v2.0EntityList/components/dataStatistics/index.vue
+87
-9
index.vue
...ol/v2.0SingleSanction/components/dataStatistics/index.vue
+96
-14
没有找到文件。
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
4a198500
...
@@ -1131,10 +1131,10 @@ const initParam = () => {
...
@@ -1131,10 +1131,10 @@ const initParam = () => {
const
query
=
route
.
query
;
const
query
=
route
.
query
;
if
(
Object
.
keys
(
query
).
length
>
0
)
{
if
(
Object
.
keys
(
query
).
length
>
0
)
{
sessionStorage
.
setItem
(
'
r
outeQuery'
,
JSON
.
stringify
(
query
));
sessionStorage
.
setItem
(
'
countryR
outeQuery'
,
JSON
.
stringify
(
query
));
}
}
}
else
{
}
else
{
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
r
outeQuery'
)
||
'{
}
'
);
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
countryR
outeQuery'
)
||
'{
}
'
);
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
selectedDate
.
value
=
'自定义'
selectedDate
.
value
=
'自定义'
...
...
src/views/dataLibrary/exportControl/commerceControlList/index.vue
浏览文件 @
4a198500
...
@@ -876,10 +876,10 @@ const initParam = () => {
...
@@ -876,10 +876,10 @@ const initParam = () => {
const
query
=
route
.
query
;
const
query
=
route
.
query
;
if
(
Object
.
keys
(
query
).
length
>
0
)
{
if
(
Object
.
keys
(
query
).
length
>
0
)
{
sessionStorage
.
setItem
(
'
decre
eRouteQuery'
,
JSON
.
stringify
(
query
));
sessionStorage
.
setItem
(
'
commerc
eRouteQuery'
,
JSON
.
stringify
(
query
));
}
}
}
else
{
}
else
{
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
decre
eRouteQuery'
)
||
'{
}
'
);
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
commerc
eRouteQuery'
)
||
'{
}
'
);
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
selectedDate
.
value
=
'自定义'
selectedDate
.
value
=
'自定义'
...
...
src/views/dataLibrary/exportControl/commerceControlListEvent/index.vue
浏览文件 @
4a198500
...
@@ -803,10 +803,10 @@ const initParam = () => {
...
@@ -803,10 +803,10 @@ const initParam = () => {
const
query
=
route
.
query
;
const
query
=
route
.
query
;
if
(
Object
.
keys
(
query
).
length
>
0
)
{
if
(
Object
.
keys
(
query
).
length
>
0
)
{
sessionStorage
.
setItem
(
'
decree
RouteQuery'
,
JSON
.
stringify
(
query
));
sessionStorage
.
setItem
(
'
commerceEvent
RouteQuery'
,
JSON
.
stringify
(
query
));
}
}
}
else
{
}
else
{
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
decree
RouteQuery'
)
||
'{
}
'
);
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
commerceEvent
RouteQuery'
)
||
'{
}
'
);
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
selectedDate
.
value
=
'自定义'
selectedDate
.
value
=
'自定义'
...
...
src/views/dataLibrary/exportControl/entityList/index.vue
浏览文件 @
4a198500
...
@@ -191,7 +191,7 @@ const route = useRoute();
...
@@ -191,7 +191,7 @@ const route = useRoute();
const
isShowProvinceBox
=
computed
(()
=>
{
const
isShowProvinceBox
=
computed
(()
=>
{
let
isShow
=
false
let
isShow
=
false
if
(
isFolderAll
.
value
&&
(
selectedCountry
.
value
===
'0101'
||
selectedCountry
.
value
===
'全部国家'
))
{
if
(
isFolderAll
.
value
&&
(
selectedCountry
.
value
===
'0101'
||
selectedCountry
.
value
===
'全部国家'
))
{
isShow
=
true
isShow
=
true
}
}
return
isShow
return
isShow
...
@@ -686,7 +686,7 @@ const handleGetProvinceList = async () => {
...
@@ -686,7 +686,7 @@ const handleGetProvinceList = async () => {
try
{
try
{
const
res
=
await
getProvinceList
()
const
res
=
await
getProvinceList
()
console
.
log
(
'获取省份列表'
,
res
);
console
.
log
(
'获取省份列表'
,
res
);
if
(
res
&&
res
.
length
)
{
if
(
res
&&
res
.
length
)
{
provinceList
.
value
=
res
.
map
(
item
=>
{
provinceList
.
value
=
res
.
map
(
item
=>
{
return
{
return
{
name
:
item
,
name
:
item
,
...
@@ -1051,30 +1051,33 @@ const initParam = () => {
...
@@ -1051,30 +1051,33 @@ const initParam = () => {
customTime
.
value
=
JSON
.
parse
(
route
.
query
.
selectedDate
)
customTime
.
value
=
JSON
.
parse
(
route
.
query
.
selectedDate
)
}
}
selectedCountry
.
value
=
route
.
query
.
orgnizationName
?
route
.
query
.
orgnizationName
:
'全部国家'
selectedProvince
.
value
=
route
.
query
.
selectedProvince
?
provinceList
.
value
.
filter
(
item
=>
item
.
name
.
indexOf
(
route
.
query
.
selectedProvince
)
>
-
1
)[
0
].
name
:
'全部省份'
selectedCountry
.
value
=
route
.
query
.
selectedCountryId
?
route
.
query
.
selectedCountryId
:
'全部国家'
isHalfRule
.
value
=
route
.
query
.
isHalfRule
?
true
:
false
isHalfRule
.
value
=
route
.
query
.
isHalfRule
?
true
:
false
isCnEntityOnly
.
value
=
route
.
query
.
isCnEntityOnly
?
true
:
false
isCnEntityOnly
.
value
=
route
.
query
.
isCnEntityOnly
?
true
:
false
selectedEntityType
.
value
=
route
.
query
.
selectedEntityType
?
route
.
query
.
selectedEntityType
:
'全部实体类型'
selectedEntityType
.
value
=
route
.
query
.
selectedEntityType
?
entityTypeList
.
value
.
filter
(
item
=>
item
.
name
===
route
.
query
.
selectedEntityType
)[
0
].
id
:
'全部实体类型'
const
query
=
route
.
query
;
const
query
=
route
.
query
;
if
(
Object
.
keys
(
query
).
length
>
0
)
{
if
(
Object
.
keys
(
query
).
length
>
0
)
{
sessionStorage
.
setItem
(
'
decree
RouteQuery'
,
JSON
.
stringify
(
query
));
sessionStorage
.
setItem
(
'
entity
RouteQuery'
,
JSON
.
stringify
(
query
));
}
}
}
else
{
}
else
{
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
decree
RouteQuery'
)
||
'{
}
'
);
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
entity
RouteQuery'
)
||
'{
}
'
);
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
selectedDate
.
value
=
'自定义'
selectedDate
.
value
=
'自定义'
customTime
.
value
=
JSON
.
parse
(
savedQuery
.
selectedDate
)
customTime
.
value
=
JSON
.
parse
(
savedQuery
.
selectedDate
)
}
}
isHalfRule
.
value
=
savedQuery
.
isHalfRule
?
true
:
false
isHalfRule
.
value
=
savedQuery
.
isHalfRule
?
true
:
false
selectedProvince
.
value
=
savedQuery
.
selectedProvince
?
provinceList
.
value
.
filter
(
item
=>
item
.
name
.
indexOf
(
savedQuery
.
selectedProvince
)
>
-
1
)[
0
].
name
:
'全部省份'
selectedCountry
.
value
=
route
.
query
.
selectedCountryId
?
route
.
query
.
selectedCountryId
:
'全部国家'
isCnEntityOnly
.
value
=
savedQuery
.
isCnEntityOnly
?
true
:
false
isCnEntityOnly
.
value
=
savedQuery
.
isCnEntityOnly
?
true
:
false
selectedEntityType
.
value
=
savedQuery
.
selectedEntityType
?
savedQuery
.
selectedEntityType
:
'全部实体类型'
selectedEntityType
.
value
=
savedQuery
.
selectedEntityType
?
entityTypeList
.
value
.
filter
(
item
=>
item
.
name
===
savedQuery
.
selectedEntityType
)[
0
].
id
:
'全部实体类型'
}
}
}
}
...
@@ -1129,9 +1132,9 @@ const handleExport = () => {
...
@@ -1129,9 +1132,9 @@ const handleExport = () => {
}
;
}
;
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
handleGetProvinceList
()
// 获取省份列表
await
handleGetProvinceList
()
// 获取省份列表
handleGetCountryList
()
// 获取国家列表
await
handleGetCountryList
()
// 获取国家列表
handleGetEntityTypes
()
// 获取实体类型列表
await
handleGetEntityTypes
()
// 获取实体类型列表
initParam
()
initParam
()
// 初始化
// 初始化
await
fetchTableData
()
await
fetchTableData
()
...
...
src/views/dataLibrary/exportControl/entityListEvent/index.vue
浏览文件 @
4a198500
...
@@ -803,10 +803,10 @@ const initParam = () => {
...
@@ -803,10 +803,10 @@ const initParam = () => {
const
query
=
route
.
query
;
const
query
=
route
.
query
;
if
(
Object
.
keys
(
query
).
length
>
0
)
{
if
(
Object
.
keys
(
query
).
length
>
0
)
{
sessionStorage
.
setItem
(
'
decree
RouteQuery'
,
JSON
.
stringify
(
query
));
sessionStorage
.
setItem
(
'
entityEvent
RouteQuery'
,
JSON
.
stringify
(
query
));
}
}
}
else
{
}
else
{
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
decree
RouteQuery'
)
||
'{
}
'
);
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
entityEvent
RouteQuery'
)
||
'{
}
'
);
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
if
(
savedQuery
.
selectedDate
&&
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
selectedDate
.
value
=
'自定义'
selectedDate
.
value
=
'自定义'
...
...
src/views/dataLibrary/index.vue
浏览文件 @
4a198500
...
@@ -393,7 +393,7 @@ const timer = ref(null);
...
@@ -393,7 +393,7 @@ const timer = ref(null);
// 关闭当前标签页
// 关闭当前标签页
const
handleCloseCurTab
=
(
tab
,
index
)
=>
{
const
handleCloseCurTab
=
(
tab
,
index
)
=>
{
if
(
tagsViewStore
.
visitedViews
.
length
===
1
)
{
if
(
tagsViewStore
.
visitedViews
.
length
===
1
)
{
ElMessage
.
warning
(
'至少保留一个标签页'
)
ElMessage
.
warning
(
'至少保留一个标签页'
)
return
return
}
}
...
@@ -494,16 +494,17 @@ onMounted(() => {
...
@@ -494,16 +494,17 @@ onMounted(() => {
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
children
[
0
].
active
=
true
;
siderList
.
value
[
3
].
children
[
0
].
active
=
true
;
break
;
break
;
case
"/dataLibrary/data
CommerceControlLis
t"
:
case
"/dataLibrary/data
EntityListEven
t"
:
siderList
.
value
[
3
].
active
=
true
;
siderList
.
value
[
3
].
active
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
children
[
1
].
active
=
true
;
siderList
.
value
[
3
].
children
[
1
].
active
=
true
;
break
;
break
;
case
"/dataLibrary/data
EntityListEven
t"
:
case
"/dataLibrary/data
CommerceControlLis
t"
:
siderList
.
value
[
3
].
active
=
true
;
siderList
.
value
[
3
].
active
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
children
[
2
].
active
=
true
;
siderList
.
value
[
3
].
children
[
2
].
active
=
true
;
break
;
break
;
case
"/dataLibrary/dataCommerceControlListEvent"
:
case
"/dataLibrary/dataCommerceControlListEvent"
:
siderList
.
value
[
3
].
active
=
true
;
siderList
.
value
[
3
].
active
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
siderList
.
value
[
3
].
isExpanded
=
true
;
...
...
src/views/exportControl/index.vue
浏览文件 @
4a198500
差异被折叠。
点击展开。
src/views/exportControl/utils/charts.js
浏览文件 @
4a198500
...
@@ -973,7 +973,7 @@ export const getMultipleBarChart_m = object => {
...
@@ -973,7 +973,7 @@ export const getMultipleBarChart_m = object => {
const
option
=
{
const
option
=
{
tooltip
:
{
tooltip
:
{
trigger
:
"
axis
"
,
trigger
:
"
item
"
,
axisPointer
:
{
axisPointer
:
{
type
:
"shadow"
type
:
"shadow"
}
}
...
...
src/views/exportControl/v2.0EntityList/components/dataStatistics/index.vue
浏览文件 @
4a198500
...
@@ -105,7 +105,8 @@
...
@@ -105,7 +105,8 @@
</div>
</div>
</
template
>
</
template
>
<!-- <div class="echarts" ref="sanctionCountChartRef"></div> -->
<!-- <div class="echarts" ref="sanctionCountChartRef"></div> -->
<EChart
:option=
"sanctionCountChartOption"
autoresize
:style=
"{ height: '300px', padding: '0 20px' }"
/>
<EChart
:option=
"sanctionCountChartOption"
autoresize
:style=
"{ height: '300px', padding: '0 20px' }"
@
chart-click=
"handleBarChartClick"
/>
<!-- <div class="bottom">
<!-- <div class="bottom">
<div class="ai">
<div class="ai">
<div class="left">
<div class="left">
...
@@ -139,17 +140,14 @@
...
@@ -139,17 +140,14 @@
<div
class=
"map-wrapper"
>
<div
class=
"map-wrapper"
>
<div
class=
"map-chart"
ref=
"mapChartRef"
></div>
<div
class=
"map-chart"
ref=
"mapChartRef"
></div>
<div
class=
"rank-list"
>
<div
class=
"rank-list"
>
<div
class=
"rank-item"
v-for=
"(item, index) in rankData"
:key=
"index"
>
<div
class=
"rank-item"
v-for=
"(item, index) in rankData"
:key=
"index"
@
click=
"handleClickRankChart(item)"
>
<div
class=
"rank-index"
:class=
"'rank-' + (index + 1)"
>
{{ index + 1 }}
</div>
<div
class=
"rank-index"
:class=
"'rank-' + (index + 1)"
>
{{ index + 1 }}
</div>
<div
class=
"rank-name"
>
{{ item.name }}
</div>
<div
class=
"rank-name"
>
{{ item.name }}
</div>
<div
class=
"rank-bar-bg"
>
<div
class=
"rank-bar-bg"
>
<div
<div
class=
"rank-bar-fill"
:style=
"{
class=
"rank-bar-fill"
:style=
"{
width: (item.value / maxRankValue) * 100 + '%',
width: (item.value / maxRankValue) * 100 + '%',
background: getBarColor(index)
background: getBarColor(index)
}"
}"
></div>
></div>
</div>
</div>
<div
class=
"rank-value"
>
{{ item.value }}家
</div>
<div
class=
"rank-value"
>
{{ item.value }}家
</div>
</div>
</div>
...
@@ -186,7 +184,8 @@
...
@@ -186,7 +184,8 @@
</el-select>
</el-select>
</
template
>
</
template
>
<!-- <div class="echarts" ref="domainChartRef"></div> -->
<!-- <div class="echarts" ref="domainChartRef"></div> -->
<EChart
:option=
"domainChartOption"
autoresize
:style=
"{ height: '300px', padding: '0 20px' }"
/>
<EChart
:option=
"domainChartOption"
autoresize
:style=
"{ height: '300px', padding: '0 20px' }"
@
chart-click=
"handlePieChartClick"
/>
<!-- <div class="bottom">
<!-- <div class="bottom">
<div class="ai">
<div class="ai">
<div class="left">
<div class="left">
...
@@ -218,7 +217,7 @@
...
@@ -218,7 +217,7 @@
</el-select>
</el-select>
</
template
>
</
template
>
<!-- <div class="echarts" ref="typeChartRef"></div> -->
<!-- <div class="echarts" ref="typeChartRef"></div> -->
<EChart
:option=
"typeChartOption"
autoresize
:style=
"{ height: '300px', padding: '0 20px' }"
/>
<EChart
:option=
"typeChartOption"
autoresize
:style=
"{ height: '300px', padding: '0 20px' }"
@
chart-click=
"handlePieChartClick1"
/>
<!-- <div class="bottom">
<!-- <div class="bottom">
<div class="ai">
<div class="ai">
<div class="left">
<div class="left">
...
@@ -261,6 +260,7 @@ import {
...
@@ -261,6 +260,7 @@ import {
}
from
"@/api/exportControlV2.0"
;
}
from
"@/api/exportControlV2.0"
;
import
EChart
from
"@/components/Chart/index.vue"
;
import
EChart
from
"@/components/Chart/index.vue"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useRoute
}
from
"vue-router"
;
import
{
useRouter
}
from
"vue-router"
;
import
tipsIcon
from
"../../../assets/icons/info-icon.png"
;
import
tipsIcon
from
"../../../assets/icons/info-icon.png"
;
import
AiButton
from
"@/components/base/Ai/AiButton/index.vue"
;
import
AiButton
from
"@/components/base/Ai/AiButton/index.vue"
;
import
AiPane
from
"@/components/base/Ai/AiPane/index.vue"
;
import
AiPane
from
"@/components/base/Ai/AiPane/index.vue"
;
...
@@ -271,6 +271,7 @@ const typeChart = useChartInterpretation();
...
@@ -271,6 +271,7 @@ const typeChart = useChartInterpretation();
const
rankChart
=
useChartInterpretation
();
const
rankChart
=
useChartInterpretation
();
const
route
=
useRoute
();
const
route
=
useRoute
();
const
router
=
useRouter
()
// 实体清单-数据统计-制裁实体类型分布情况
// 实体清单-数据统计-制裁实体类型分布情况
const
typeData
=
ref
([]);
const
typeData
=
ref
([]);
const
getTypeCountData
=
async
()
=>
{
const
getTypeCountData
=
async
()
=>
{
...
@@ -637,6 +638,17 @@ const updateMapChart = () => {
...
@@ -637,6 +638,17 @@ const updateMapChart = () => {
};
};
mapChartInstance
.
setOption
(
option
);
mapChartInstance
.
setOption
(
option
);
mapChartInstance
.
on
(
'click'
,
function
(
params
)
{
const
param
=
{
selectedProvince
:
params
.
name
,
selectedDate
:
regionTime
.
value
===
'all'
?
null
:
JSON
.
stringify
([
regionTime
.
value
+
'-01-01'
,
regionTime
.
value
+
'-12-31'
])
}
const
route
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
param
});
window
.
open
(
route
.
href
,
"_blank"
);
});
};
};
const
initMapChart
=
()
=>
{
const
initMapChart
=
()
=>
{
...
@@ -1100,6 +1112,64 @@ const initTypeChart = () => {
...
@@ -1100,6 +1112,64 @@ const initTypeChart = () => {
};
};
const
sanTypeId
=
ref
(
""
);
const
sanTypeId
=
ref
(
""
);
// 点击制裁实体数量变化情况
const
handleBarChartClick
=
(
val
)
=>
{
console
.
log
(
'value'
,
val
);
const
params
=
{
selectedDate
:
activeTab
.
value
===
'year'
?
JSON
.
stringify
([
val
.
name
+
'-01-01'
,
val
.
name
+
'-12-31'
])
:
JSON
.
stringify
([
val
.
name
,
val
.
name
])
}
const
route
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
route
.
href
,
"_blank"
);
}
// 制裁实体各省分布情况
const
handleClickRankChart
=
(
item
)
=>
{
// console.log('item', item);
const
params
=
{
selectedProvince
:
item
.
name
,
selectedDate
:
regionTime
.
value
===
'all'
?
null
:
JSON
.
stringify
([
regionTime
.
value
+
'-01-01'
,
regionTime
.
value
+
'-12-31'
])
}
const
route
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
route
.
href
,
"_blank"
);
}
// 制裁实体领域分布情况
const
handlePieChartClick
=
(
val
)
=>
{
console
.
log
(
'val'
,
val
);
const
params
=
{
domains
:
val
.
name
,
selectedDate
:
domainTime
.
value
===
'all'
?
null
:
JSON
.
stringify
([
domainTime
.
value
+
'-01-01'
,
domainTime
.
value
+
'-12-31'
])
}
const
route
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
route
.
href
,
"_blank"
);
}
// 制裁实体类型分布情况
const
handlePieChartClick1
=
(
val
)
=>
{
console
.
log
(
'val'
,
val
);
const
params
=
{
selectedEntityType
:
val
.
name
,
selectedDate
:
typeTime
.
value
===
'all'
?
null
:
JSON
.
stringify
([
typeTime
.
value
+
'-01-01'
,
typeTime
.
value
+
'-12-31'
])
}
const
route
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
route
.
href
,
"_blank"
);
}
onMounted
(()
=>
{
onMounted
(()
=>
{
sanTypeId
.
value
=
route
.
query
.
sanTypeId
||
""
;
sanTypeId
.
value
=
route
.
query
.
sanTypeId
||
""
;
console
.
log
(
"数据统计页面接收到的 sanTypeId:"
,
sanTypeId
.
value
);
console
.
log
(
"数据统计页面接收到的 sanTypeId:"
,
sanTypeId
.
value
);
...
@@ -1536,16 +1606,19 @@ onMounted(() => {
...
@@ -1536,16 +1606,19 @@ onMounted(() => {
align-items
:
center
;
align-items
:
center
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
padding
:
22px
;
padding
:
22px
;
.data-origin-icon
{
.data-origin-icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
font-size
:
0px
;
font-size
:
0px
;
margin-right
:
8px
;
margin-right
:
8px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.data-origin-text
{
.data-origin-text
{
font-family
:
Source
Han
Sans
CN
;
font-family
:
Source
Han
Sans
CN
;
font-size
:
14px
;
font-size
:
14px
;
...
@@ -1558,18 +1631,23 @@ onMounted(() => {
...
@@ -1558,18 +1631,23 @@ onMounted(() => {
right
:
0px
;
right
:
0px
;
bottom
:
15px
;
bottom
:
15px
;
z-index
:
2
;
z-index
:
2
;
:deep
(
.ai-pane-wrapper
)
{
:deep
(
.ai-pane-wrapper
)
{
display
:
none
;
display
:
none
;
}
}
:deep
(
.ai-button-wrapper
)
{
:deep
(
.ai-button-wrapper
)
{
display
:
flex
;
display
:
flex
;
}
}
&
:hover
{
&
:hover
{
width
:
100%
;
width
:
100%
;
bottom
:
0px
;
bottom
:
0px
;
:deep
(
.ai-pane-wrapper
)
{
:deep
(
.ai-pane-wrapper
)
{
display
:
block
;
display
:
block
;
}
}
:deep
(
.ai-button-wrapper
)
{
:deep
(
.ai-button-wrapper
)
{
display
:
none
;
display
:
none
;
}
}
...
...
src/views/exportControl/v2.0SingleSanction/components/dataStatistics/index.vue
浏览文件 @
4a198500
...
@@ -54,7 +54,8 @@
...
@@ -54,7 +54,8 @@
</div>
</div>
</div>
</div>
</div>
-->
</div>
-->
<EChart
:option=
"domainChartOption"
autoresize
:style=
"
{ height: '300px', padding: '0 20px' }" />
<EChart
:option=
"domainChartOption"
autoresize
:style=
"
{ height: '300px', padding: '0 20px' }"
@chart-click="handlePieChartClick" />
<div
class=
"data-origin-box"
>
<div
class=
"data-origin-box"
>
<div
class=
"data-origin-icon"
>
<div
class=
"data-origin-icon"
>
<img
:src=
"tipsIcon"
alt=
""
/>
<img
:src=
"tipsIcon"
alt=
""
/>
...
@@ -104,7 +105,8 @@
...
@@ -104,7 +105,8 @@
</div>
</div>
</div>
</div>
</div>
-->
</div>
-->
<EChart
:option=
"typeChartOption"
autoresize
:style=
"
{ height: '300px', padding: '0 20px' }" />
<EChart
:option=
"typeChartOption"
autoresize
:style=
"
{ height: '300px', padding: '0 20px' }"
@chart-click="handlePieChartClick1" />
<div
class=
"data-origin-box"
>
<div
class=
"data-origin-box"
>
<div
class=
"data-origin-icon"
>
<div
class=
"data-origin-icon"
>
<img
:src=
"tipsIcon"
alt=
""
/>
<img
:src=
"tipsIcon"
alt=
""
/>
...
@@ -120,17 +122,15 @@
...
@@ -120,17 +122,15 @@
<div
class=
"main-item"
>
<div
class=
"main-item"
>
<AnalysisBox
title=
"制裁实体国家地区分布情况"
>
<AnalysisBox
title=
"制裁实体国家地区分布情况"
>
<div
class=
"country-list"
>
<div
class=
"country-list"
>
<div
class=
"list-item"
v-for=
"(item, index) in countryDistribution"
:key=
"index"
>
<div
class=
"list-item"
v-for=
"(item, index) in countryDistribution"
:key=
"index"
@
click=
"handleClickRankChart(item)"
>
<img
:src=
"flag"
alt=
""
class=
"flag"
/>
<img
:src=
"flag"
alt=
""
class=
"flag"
/>
<div
class=
"country-name"
>
{{
item
.
name
}}
</div>
<div
class=
"country-name"
>
{{
item
.
name
}}
</div>
<div
class=
"progress-bar-container"
>
<div
class=
"progress-bar-container"
>
<div
<div
class=
"progress-bar"
:style=
"
{
class=
"progress-bar"
:style=
"
{
width: item.width,
width: item.width,
background: item.gradient
background: item.gradient
}"
}">
</div>
>
</div>
</div>
</div>
<div
class=
"count"
:class=
"
{ highlight: index === 0 }">
{{
item
.
count
}}
家
</div>
<div
class=
"count"
:class=
"
{ highlight: index === 0 }">
{{
item
.
count
}}
家
</div>
</div>
</div>
...
@@ -163,17 +163,15 @@
...
@@ -163,17 +163,15 @@
<div
class=
"map-wrapper"
>
<div
class=
"map-wrapper"
>
<div
class=
"map-chart"
ref=
"mapChartRef"
></div>
<div
class=
"map-chart"
ref=
"mapChartRef"
></div>
<div
class=
"rank-list"
>
<div
class=
"rank-list"
>
<div
class=
"rank-item"
v-for=
"(item, index) in regionDistribution"
:key=
"index"
>
<div
class=
"rank-item"
v-for=
"(item, index) in regionDistribution"
:key=
"index"
@
click=
"handleRankChartClick(item)"
>
<div
class=
"rank-index"
:class=
"'rank-' + (index + 1)"
>
{{
index
+
1
}}
</div>
<div
class=
"rank-index"
:class=
"'rank-' + (index + 1)"
>
{{
index
+
1
}}
</div>
<div
class=
"rank-name"
>
{{
item
.
name
}}
</div>
<div
class=
"rank-name"
>
{{
item
.
name
}}
</div>
<div
class=
"rank-bar-bg"
>
<div
class=
"rank-bar-bg"
>
<div
<div
class=
"rank-bar-fill"
:style=
"
{
class=
"rank-bar-fill"
:style=
"
{
width: (maxRegionCount > 0 ? (item.count / maxRegionCount) * 100 : 0) + '%',
width: (maxRegionCount > 0 ? (item.count / maxRegionCount) * 100 : 0) + '%',
background: getBarColor(index)
background: getBarColor(index)
}"
}">
</div>
>
</div>
</div>
</div>
<div
class=
"rank-value"
>
{{
item
.
count
}}
家
</div>
<div
class=
"rank-value"
>
{{
item
.
count
}}
家
</div>
</div>
</div>
...
@@ -474,6 +472,18 @@ const initMapChart = () => {
...
@@ -474,6 +472,18 @@ const initMapChart = () => {
chart
.
setOption
(
option
);
chart
.
setOption
(
option
);
chart
.
on
(
'click'
,
function
(
params
)
{
const
param
=
{
selectedProvince
:
params
.
name
,
selectedDate
:
JSON
.
stringify
([
route
.
query
.
date
,
route
.
query
.
date
])
}
const
curRoute
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
param
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
});
window
.
addEventListener
(
"resize"
,
()
=>
{
window
.
addEventListener
(
"resize"
,
()
=>
{
chart
.
resize
();
chart
.
resize
();
});
});
...
@@ -841,6 +851,64 @@ const initTypeChart = () => {
...
@@ -841,6 +851,64 @@ const initTypeChart = () => {
// });
// });
};
};
const
sanTypeId
=
ref
(
""
);
const
sanTypeId
=
ref
(
""
);
// 制裁实体领域分布情况
const
handlePieChartClick
=
(
val
)
=>
{
// console.log('val', val);
const
params
=
{
domains
:
val
.
name
,
selectedDate
:
JSON
.
stringify
([
route
.
query
.
date
,
route
.
query
.
date
])
}
const
curRoute
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
// 制裁实体类型分布情况
const
handlePieChartClick1
=
(
val
)
=>
{
// console.log('val', val);
const
params
=
{
selectedEntityType
:
val
.
name
,
selectedDate
:
JSON
.
stringify
([
route
.
query
.
date
,
route
.
query
.
date
])
}
const
curRoute
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
// 制裁实体国家地区分布情况
const
handleClickRankChart
=
(
item
)
=>
{
// console.log('item', item);
const
params
=
{
selectedCountryId
:
item
.
id
,
selectedDate
:
JSON
.
stringify
([
route
.
query
.
date
,
route
.
query
.
date
])
}
const
curRoute
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
// 制裁实体各省分布情况
const
handleRankChartClick
=
(
item
)
=>
{
console
.
log
(
'item'
,
item
);
const
params
=
{
selectedProvince
:
item
.
name
,
selectedDate
:
JSON
.
stringify
([
route
.
query
.
date
,
route
.
query
.
date
])
}
const
curRoute
=
router
.
resolve
({
path
:
'/dataLibrary/dataEntityList'
,
query
:
params
});
window
.
open
(
curRoute
.
href
,
"_blank"
);
}
onMounted
(()
=>
{
onMounted
(()
=>
{
// 获取路由参数id
// 获取路由参数id
sanTypeId
.
value
=
route
.
query
.
sanTypeId
;
sanTypeId
.
value
=
route
.
query
.
sanTypeId
;
...
@@ -986,6 +1054,11 @@ onMounted(() => {
...
@@ -986,6 +1054,11 @@ onMounted(() => {
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
margin-bottom
:
16px
;
margin-bottom
:
16px
;
cursor
:
pointer
;
&
:hover
{
background
:
var
(
--
color-primary-2
);
}
&
:last-child
{
&
:last-child
{
margin-bottom
:
0
;
margin-bottom
:
0
;
...
@@ -1284,22 +1357,26 @@ onMounted(() => {
...
@@ -1284,22 +1357,26 @@ onMounted(() => {
}
}
}
}
}
}
.data-origin-box
{
.data-origin-box
{
width
:
100%
;
width
:
100%
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
flex-start
;
justify-content
:
flex-start
;
padding
:
22px
;
padding
:
22px
;
.data-origin-icon
{
.data-origin-icon
{
width
:
16px
;
width
:
16px
;
height
:
16px
;
height
:
16px
;
font-size
:
0px
;
font-size
:
0px
;
margin-right
:
8px
;
margin-right
:
8px
;
img
{
img
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.data-origin-text
{
.data-origin-text
{
font-family
:
Source
Han
Sans
CN
;
font-family
:
Source
Han
Sans
CN
;
font-size
:
14px
;
font-size
:
14px
;
...
@@ -1312,18 +1389,23 @@ onMounted(() => {
...
@@ -1312,18 +1389,23 @@ onMounted(() => {
right
:
0px
;
right
:
0px
;
bottom
:
15px
;
bottom
:
15px
;
z-index
:
2
;
z-index
:
2
;
:deep
(
.ai-pane-wrapper
)
{
:deep
(
.ai-pane-wrapper
)
{
display
:
none
;
display
:
none
;
}
}
:deep
(
.ai-button-wrapper
)
{
:deep
(
.ai-button-wrapper
)
{
display
:
flex
;
display
:
flex
;
}
}
&
:hover
{
&
:hover
{
width
:
100%
;
width
:
100%
;
bottom
:
0px
;
bottom
:
0px
;
:deep
(
.ai-pane-wrapper
)
{
:deep
(
.ai-pane-wrapper
)
{
display
:
block
;
display
:
block
;
}
}
:deep
(
.ai-button-wrapper
)
{
:deep
(
.ai-button-wrapper
)
{
display
:
none
;
display
:
none
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论