Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
d7757e36
提交
d7757e36
authored
3月 24, 2026
作者:
coderBryanFu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:更新数据资源库
上级
09b8b813
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
488 行增加
和
113 行删除
+488
-113
graphChart.js
src/components/base/GraphChart/graphChart.js
+6
-0
index.vue
src/components/base/GraphChart/index.vue
+3
-0
index.vue
src/styles/components/GraphChart/index.vue
+2
-3
index.vue
src/styles/components/GraphTreeChart/index.vue
+126
-3
setChart.js
src/utils/setChart.js
+22
-1
index.vue
src/views/bill/billHome/index.vue
+28
-37
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+301
-59
index.vue
src/views/dataLibrary/components/ChartContainer/index.vue
+0
-10
没有找到文件。
src/components/base/GraphChart/graphChart.js
浏览文件 @
d7757e36
...
@@ -41,6 +41,12 @@ const getGraphChart = (nodes, links, layoutType) => {
...
@@ -41,6 +41,12 @@ const getGraphChart = (nodes, links, layoutType) => {
itemStyle
:
{
itemStyle
:
{
color
:
'#73C0DE'
color
:
'#73C0DE'
},
},
// 方法1:通过 left/right/top/bottom 控制绘图区域
left
:
'5%'
,
right
:
'5%'
,
top
:
'5%'
,
bottom
:
'5%'
,
layout
:
layoutType
,
layout
:
layoutType
,
data
:
nodes
,
data
:
nodes
,
links
:
links
,
links
:
links
,
...
...
src/components/base/GraphChart/index.vue
浏览文件 @
d7757e36
...
@@ -52,5 +52,7 @@ onBeforeUnmount(() => {
...
@@ -52,5 +52,7 @@ onBeforeUnmount(() => {
.graph-chart-wrapper
{
.graph-chart-wrapper
{
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
// width: 800px;
// height: 500px;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/styles/components/GraphChart/index.vue
浏览文件 @
d7757e36
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
`
}}
`
}}
</pre>
</pre>
<div
class=
"chart-box"
>
<div
class=
"chart-box"
>
<GraphChart
:nodes=
"nodes"
:links=
"links"
layoutType=
"
non
e"
>
<GraphChart
:nodes=
"nodes"
:links=
"links"
layoutType=
"
forc
e"
>
</GraphChart>
</GraphChart>
</div>
</div>
</el-col>
</el-col>
...
@@ -207,6 +207,7 @@ const links = ref([
...
@@ -207,6 +207,7 @@ const links = ref([
{
source
:
15
,
target
:
7
,
label
:
{
show
:
true
,
formatter
:
'合作'
,
color
:
'red'
,
borderColor
:
'red'
}
},
{
source
:
15
,
target
:
7
,
label
:
{
show
:
true
,
formatter
:
'合作'
,
color
:
'red'
,
borderColor
:
'red'
}
},
]);
]);
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
@@ -218,5 +219,4 @@ const links = ref([
...
@@ -218,5 +219,4 @@ const links = ref([
width
:
800px
;
width
:
800px
;
height
:
500px
;
height
:
500px
;
}
}
</
style
>
</
style
>
\ No newline at end of file
src/styles/components/GraphTreeChart/index.vue
浏览文件 @
d7757e36
...
@@ -10,8 +10,8 @@
...
@@ -10,8 +10,8 @@
</template>
</template>
`
}}
`
}}
</pre>
</pre>
<div
class=
"chart-box"
>
<div
class=
"
graphtree-
chart-box"
>
<GraphChart
:nodes=
"nodes"
:links=
"links"
>
<GraphChart
:nodes=
"nodes"
:links=
"links"
chartType=
"force"
>
</GraphChart>
</GraphChart>
</div>
</div>
</el-col>
</el-col>
...
@@ -176,6 +176,129 @@ const links = ref([
...
@@ -176,6 +176,129 @@ const links = ref([
{
source
:
16
,
target
:
7
,
label
:
{
show
:
true
,
formatter
:
'合作'
,
color
:
'red'
,
borderColor
:
'red'
}
},
{
source
:
16
,
target
:
7
,
label
:
{
show
:
true
,
formatter
:
'合作'
,
color
:
'red'
,
borderColor
:
'red'
}
},
]);
]);
// const nodes = ref([
// {
// "id": 0,
// "name": "布拉德·米勒 (Brad Miller)",
// // "category": 1,
// "symbolSize": 80,
// "symbol": "image://data:image/png;base64,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"
// },
// {
// "id": 1,
// "name": "以利亚·E·卡明斯(Elijah E. Cummings)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 2,
// "name": "托马斯·L·阿什利 (Thomas L. Ashley)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 3,
// "name": "沃伦·拉德曼 (Warren Rudman)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 4,
// "name": "比尔·D·伯利森 (Bill D. Burlison)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 5,
// "name": "柯特·韦尔登 (Curt Weldon)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 6,
// "name": "詹姆斯·R·曼 (James R. Mann)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 7,
// "name": "迈克尔·N·卡斯尔 (Michael N. Castle)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 8,
// "name": "弗兰克·哈里森 (Frank Harrison)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 9,
// "name": "艾伦·努内利(Alan Nunnelee)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 10,
// "name": "阿尔丰索·贝尔 (Alphonzo Bell)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": 11,
// "name": "劳拉·吉伦(Laura Gillen)",
// // "category": 1,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// },
// {
// "id": "c",
// "name": "托德·扬 (Todd Young)",
// // "category": 0,
// "symbolSize": 80,
// symbol: `image://${CompanyImg}`,
// "label": {
// "show": true,
// "position": "bottom",
// "formatter": "{n|{b}}",
// "rich": {
// "n": {
// "color": "rgba(5,95,194,1)",
// "fontSize": 24,
// "fontWeight": 700,
// "fontFamily": "Microsoft YaHei",
// "lineHeight": 36
// }
// }
// }
// }
// ])
// const links = ref(
// [
// { "source": 0, "target": "c", "label": { "show": true, "formatter": "儿子" }, "value": 2 },
// { "source": 1, "target": "c", "label": { "show": true, "formatter": "弟弟" }, "value": 2 },
// { "source": 2, "target": "c", "label": { "show": true, "formatter": "哥哥" }, "value": 2 },
// { "source": 3, "target": "c", "label": { "show": true, "formatter": "经理" }, "value": 2 },
// { "source": 4, "target": "c", "label": { "show": true, "formatter": "属下" }, "value": 2 },
// { "source": 5, "target": "c", "label": { "show": true, "formatter": "领导" }, "value": 2 },
// { "source": 6, "target": "c", "label": { "show": true, "formatter": "同事" }, "value": 2 },
// { "source": 7, "target": "c", "label": { "show": true, "formatter": "投资人" }, "value": 2 },
// { "source": 8, "target": "c", "label": { "show": true, "formatter": "爷爷" }, "value": 2 },
// { "source": 9, "target": "c", "label": { "show": true, "formatter": "妈妈" }, "value": 2 },
// { "source": 10, "target": "c", "label": { "show": true, "formatter": "奶奶" }, "value": 2 },
// { "source": 11, "target": "c", "label": { "show": true, "formatter": "孙子" }, "value": 2 }]
// )
</
script
>
</
script
>
...
@@ -185,7 +308,7 @@ const links = ref([
...
@@ -185,7 +308,7 @@ const links = ref([
width
:
100%
;
width
:
100%
;
}
}
.chart-box
{
.
graphtree-
chart-box
{
width
:
1600px
;
width
:
1600px
;
height
:
800px
;
height
:
800px
;
}
}
...
...
src/utils/setChart.js
浏览文件 @
d7757e36
// 绘制echarts图表
// 绘制echarts图表
import
*
as
echarts
from
'echarts'
import
*
as
echarts
from
'echarts'
import
'echarts-wordcloud'
;
import
'echarts-wordcloud'
;
const
setChart
=
(
option
,
chartId
)
=>
{
import
router
from
'@/router/index'
const
setChart
=
(
option
,
chartId
,
allowClick
,
selectParam
)
=>
{
let
chartDom
=
document
.
getElementById
(
chartId
);
let
chartDom
=
document
.
getElementById
(
chartId
);
if
(
!
chartDom
)
{
if
(
!
chartDom
)
{
return
null
;
return
null
;
...
@@ -9,6 +10,26 @@ const setChart = (option, chartId) => {
...
@@ -9,6 +10,26 @@ const setChart = (option, chartId) => {
chartDom
.
removeAttribute
(
"_echarts_instance_"
);
chartDom
.
removeAttribute
(
"_echarts_instance_"
);
let
chart
=
echarts
.
init
(
chartDom
);
let
chart
=
echarts
.
init
(
chartDom
);
chart
.
setOption
(
option
);
chart
.
setOption
(
option
);
if
(
allowClick
)
{
// 3. 添加点击事件监听
chart
.
on
(
'click'
,
function
(
params
)
{
switch
(
selectParam
.
moduleType
)
{
case
'国会法案'
:
// 判断点击的是否为饼图的数据项
if
(
params
.
componentType
===
'series'
&&
params
.
seriesType
===
'pie'
)
{
console
.
log
(
'点击的扇形名称:'
,
params
.
name
);
selectParam
.
domains
=
JSON
.
stringify
([
params
.
name
])
const
route
=
router
.
resolve
({
path
:
"/dataLibrary/countryBill"
,
query
:
selectParam
});
window
.
open
(
route
.
href
,
"_blank"
);
}
}
});
}
// 容器可能受布局/异步渲染影响,强制一次 resize 保证 canvas 与容器一致
// 容器可能受布局/异步渲染影响,强制一次 resize 保证 canvas 与容器一致
setTimeout
(()
=>
{
setTimeout
(()
=>
{
chart
.
resize
();
chart
.
resize
();
...
...
src/views/bill/billHome/index.vue
浏览文件 @
d7757e36
...
@@ -40,8 +40,7 @@
...
@@ -40,8 +40,7 @@
<div
class=
"center-top"
>
<div
class=
"center-top"
>
<overviewMainBox
class=
"box1"
title=
"热门法案"
@
toDetail=
"handleClickToDetail"
>
<overviewMainBox
class=
"box1"
title=
"热门法案"
@
toDetail=
"handleClickToDetail"
>
<template
#
headerIcon
>
<template
#
headerIcon
>
<img
style=
"width: 100%; height: 100%"
src=
"./assets/images/box1-header-icon.png"
<img
style=
"width: 100%; height: 100%"
src=
"./assets/images/box1-header-icon.png"
alt=
""
/>
alt=
""
/>
</
template
>
</
template
>
<div
class=
"box1-left"
@
click=
"handleSwithCurBill('left')"
>
<div
class=
"box1-left"
@
click=
"handleSwithCurBill('left')"
>
<div
class=
"icon"
>
<div
class=
"icon"
>
...
@@ -122,27 +121,23 @@
...
@@ -122,27 +121,23 @@
<DivideHeader
id=
"position2"
class=
"divide2"
:titleText=
"'资讯要闻'"
></DivideHeader>
<DivideHeader
id=
"position2"
class=
"divide2"
:titleText=
"'资讯要闻'"
></DivideHeader>
<div
class=
"center-center"
>
<div
class=
"center-center"
>
<NewsList
:newsList=
"newsList"
img=
"newsImage"
title=
"newsTitle"
from=
"from"
<NewsList
:newsList=
"newsList"
img=
"newsImage"
title=
"newsTitle"
from=
"from"
content=
"newsContent"
/>
content=
"newsContent"
/>
<MessageBubble
:messageList=
"messageList"
imageUrl=
"personImage"
@
more-click=
"handleToSocialDetail"
<MessageBubble
:messageList=
"messageList"
imageUrl=
"personImage"
@
person-click=
"handleClickToCharacter"
name=
"personName"
content=
"remarks"
source=
"orgName"
/>
@
more-click=
"handleToSocialDetail"
@
person-click=
"handleClickToCharacter"
name=
"personName"
content=
"remarks"
source=
"orgName"
/>
</div>
</div>
<DivideHeader
id=
"position3"
class=
"divide3"
:titleText=
"'数据总览'"
></DivideHeader>
<DivideHeader
id=
"position3"
class=
"divide3"
:titleText=
"'数据总览'"
></DivideHeader>
<div
class=
"center-footer"
>
<div
class=
"center-footer"
>
<OverviewCard
class=
"overview-card--double box5"
title=
"涉华法案数量变化趋势"
:icon=
"box5HeaderIcon"
>
<OverviewCard
class=
"overview-card--double box5"
title=
"涉华法案数量变化趋势"
:icon=
"box5HeaderIcon"
>
<
template
#
right
>
<
template
#
right
>
<el-select
v-model=
"box5Select"
placeholder=
"选择领域"
@
change=
"handleBox5Change"
<el-select
v-model=
"box5Select"
placeholder=
"选择领域"
@
change=
"handleBox5Change"
style=
"width: 150px"
>
style=
"width: 150px"
>
<el-option
label=
"全部领域"
value=
"全部领域"
/>
<el-option
label=
"全部领域"
value=
"全部领域"
/>
<el-option
v-for=
"item in categoryList"
:key=
"item.id"
:label=
"item.name"
<el-option
v-for=
"item in categoryList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
:value=
"item.id"
/>
</el-select>
</el-select>
<el-select
v-model=
"box5ProposalTime"
placeholder=
"提案时间"
@
change=
"handleBox5Change"
<el-select
v-model=
"box5ProposalTime"
placeholder=
"提案时间"
@
change=
"handleBox5Change"
style=
"width: 120px; margin-left: 8px"
>
style=
"width: 120px; margin-left: 8px"
>
<el-option
v-for=
"item in box5ProposalTimeList"
:key=
"item.value"
<el-option
v-for=
"item in box5ProposalTimeList"
:key=
"item.value"
:label=
"item.label"
:
label=
"item.label"
:
value=
"item.value"
/>
:value=
"item.value"
/>
</el-select>
</el-select>
</
template
>
</
template
>
<div
class=
"overview-card-body box5-main"
>
<div
class=
"overview-card-body box5-main"
>
...
@@ -154,8 +149,7 @@
...
@@ -154,8 +149,7 @@
<TipTab
class=
"overview-tip"
/>
<TipTab
class=
"overview-tip"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box5')"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box5')"
/>
</div>
</div>
<div
v-if=
"aiPaneVisible.box5"
class=
"overview-ai-pane"
<div
v-if=
"aiPaneVisible.box5"
class=
"overview-ai-pane"
@
mouseleave=
"handleHideAiPane('box5')"
>
@
mouseleave=
"handleHideAiPane('box5')"
>
<AiPane
:aiContent=
"overviewAiContent.box5"
/>
<AiPane
:aiContent=
"overviewAiContent.box5"
/>
</div>
</div>
</div>
</div>
...
@@ -163,13 +157,12 @@
...
@@ -163,13 +157,12 @@
<OverviewCard
class=
"overview-card--single box6"
title=
"涉华法案领域分布"
:icon=
"box6HeaderIcon"
>
<OverviewCard
class=
"overview-card--single box6"
title=
"涉华法案领域分布"
:icon=
"box6HeaderIcon"
>
<
template
#
right
>
<
template
#
right
>
<el-select
v-model=
"box9selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-select
v-model=
"box9selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box9YearList"
:key=
"item.value"
:label=
"item.label"
<el-option
v-for=
"item in box9YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
:value=
"item.value"
/>
</el-select>
</el-select>
<el-select
v-model=
"box9LegislativeStatus"
placeholder=
"立法状态"
@
change=
"handleBox9StatusChange"
<el-select
v-model=
"box9LegislativeStatus"
placeholder=
"立法状态"
@
change=
"handleBox9StatusChange"
style=
"width: 110px; margin-left: 8px"
>
style=
"width: 110px; margin-left: 8px"
>
<el-option
v-for=
"item in box9LegislativeStatusList"
:key=
"item.value"
<el-option
v-for=
"item in box9LegislativeStatusList"
:key=
"item.value"
:label=
"item.label"
:
label=
"item.label"
:
value=
"item.value"
/>
:value=
"item.value"
/>
</el-select>
</el-select>
</
template
>
</
template
>
<div
class=
"overview-card-body box6-main"
>
<div
class=
"overview-card-body box6-main"
>
...
@@ -181,8 +174,7 @@
...
@@ -181,8 +174,7 @@
<TipTab
class=
"overview-tip"
/>
<TipTab
class=
"overview-tip"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box6')"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box6')"
/>
</div>
</div>
<div
v-if=
"aiPaneVisible.box6"
class=
"overview-ai-pane"
<div
v-if=
"aiPaneVisible.box6"
class=
"overview-ai-pane"
@
mouseleave=
"handleHideAiPane('box6')"
>
@
mouseleave=
"handleHideAiPane('box6')"
>
<AiPane
:aiContent=
"overviewAiContent.box6"
/>
<AiPane
:aiContent=
"overviewAiContent.box6"
/>
</div>
</div>
</div>
</div>
...
@@ -192,8 +184,7 @@
...
@@ -192,8 +184,7 @@
<OverviewCard
class=
"overview-card--single box7"
title=
"涉华法案提出部门"
:icon=
"box7HeaderIcon"
>
<OverviewCard
class=
"overview-card--single box7"
title=
"涉华法案提出部门"
:icon=
"box7HeaderIcon"
>
<
template
#
right
>
<
template
#
right
>
<el-select
v-model=
"box7selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-select
v-model=
"box7selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box7YearList"
:key=
"item.value"
:label=
"item.label"
<el-option
v-for=
"item in box7YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
:value=
"item.value"
/>
</el-select>
</el-select>
</
template
>
</
template
>
<div
class=
"overview-card-body box7-main"
>
<div
class=
"overview-card-body box7-main"
>
...
@@ -205,8 +196,7 @@
...
@@ -205,8 +196,7 @@
<TipTab
class=
"overview-tip"
/>
<TipTab
class=
"overview-tip"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box7')"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box7')"
/>
</div>
</div>
<div
v-if=
"aiPaneVisible.box7"
class=
"overview-ai-pane"
<div
v-if=
"aiPaneVisible.box7"
class=
"overview-ai-pane"
@
mouseleave=
"handleHideAiPane('box7')"
>
@
mouseleave=
"handleHideAiPane('box7')"
>
<AiPane
:aiContent=
"overviewAiContent.box7"
/>
<AiPane
:aiContent=
"overviewAiContent.box7"
/>
</div>
</div>
</div>
</div>
...
@@ -214,8 +204,7 @@
...
@@ -214,8 +204,7 @@
<OverviewCard
class=
"overview-card--single box8"
title=
"涉华法案进展分布"
:icon=
"box7HeaderIcon"
>
<OverviewCard
class=
"overview-card--single box8"
title=
"涉华法案进展分布"
:icon=
"box7HeaderIcon"
>
<
template
#
right
>
<
template
#
right
>
<el-select
v-model=
"box8selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-select
v-model=
"box8selectetedTime"
placeholder=
"选择时间"
style=
"width: 90px"
>
<el-option
v-for=
"item in box8YearList"
:key=
"item.value"
:label=
"item.label"
<el-option
v-for=
"item in box8YearList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
:value=
"item.value"
/>
</el-select>
</el-select>
</
template
>
</
template
>
<div
class=
"overview-card-body box8-main"
>
<div
class=
"overview-card-body box8-main"
>
...
@@ -230,8 +219,7 @@
...
@@ -230,8 +219,7 @@
<TipTab
class=
"overview-tip"
/>
<TipTab
class=
"overview-tip"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box8')"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box8')"
/>
</div>
</div>
<div
v-if=
"aiPaneVisible.box8"
class=
"overview-ai-pane"
<div
v-if=
"aiPaneVisible.box8"
class=
"overview-ai-pane"
@
mouseleave=
"handleHideAiPane('box8')"
>
@
mouseleave=
"handleHideAiPane('box8')"
>
<AiPane
:aiContent=
"overviewAiContent.box8"
/>
<AiPane
:aiContent=
"overviewAiContent.box8"
/>
</div>
</div>
</div>
</div>
...
@@ -240,15 +228,13 @@
...
@@ -240,15 +228,13 @@
<div
class=
"overview-card-body box9-main"
>
<div
class=
"overview-card-body box9-main"
>
<div
class=
"overview-chart-wrap"
>
<div
class=
"overview-chart-wrap"
>
<el-empty
v-if=
"!wordCloudHasData"
description=
"暂无数据"
:image-size=
"100"
/>
<el-empty
v-if=
"!wordCloudHasData"
description=
"暂无数据"
:image-size=
"100"
/>
<WordCloundChart
v-else
class=
"overview-chart"
width=
"100%"
height=
"100%"
<WordCloundChart
v-else
class=
"overview-chart"
width=
"100%"
height=
"100%"
:data=
"wordCloudData"
/>
:data=
"wordCloudData"
/>
</div>
</div>
<div
class=
"overview-tip-row"
>
<div
class=
"overview-tip-row"
>
<TipTab
class=
"overview-tip"
/>
<TipTab
class=
"overview-tip"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box9')"
/>
<AiButton
class=
"overview-tip-action"
@
mouseenter=
"handleShowAiPane('box9')"
/>
</div>
</div>
<div
v-if=
"aiPaneVisible.box9"
class=
"overview-ai-pane"
<div
v-if=
"aiPaneVisible.box9"
class=
"overview-ai-pane"
@
mouseleave=
"handleHideAiPane('box9')"
>
@
mouseleave=
"handleHideAiPane('box9')"
>
<AiPane
:aiContent=
"overviewAiContent.box9"
/>
<AiPane
:aiContent=
"overviewAiContent.box9"
/>
</div>
</div>
</div>
</div>
...
@@ -258,8 +244,7 @@
...
@@ -258,8 +244,7 @@
</div>
</div>
<div
class=
"home-content-footer"
>
<div
class=
"home-content-footer"
>
<DivideHeader
id=
"position4"
class=
"divide4"
:titleText=
"'资源库'"
></DivideHeader>
<DivideHeader
id=
"position4"
class=
"divide4"
:titleText=
"'资源库'"
></DivideHeader>
<ResourceLibrarySection
:on-click-to-detail=
"handleClickToDetailO"
<ResourceLibrarySection
:on-click-to-detail=
"handleClickToDetailO"
:on-after-page-change=
"handlePageChange"
/>
:on-after-page-change=
"handlePageChange"
/>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -285,7 +270,7 @@ import {
...
@@ -285,7 +270,7 @@ import {
import
{
getPersonSummaryInfo
}
from
"@/api/common/index"
;
import
{
getPersonSummaryInfo
}
from
"@/api/common/index"
;
import
{
getChartAnalysis
}
from
"@/api/aiAnalysis/index"
;
import
{
getChartAnalysis
}
from
"@/api/aiAnalysis/index"
;
import
DivideHeader
from
"@/components/DivideHeader.vue"
;
import
DivideHeader
from
"@/components/DivideHeader.vue"
;
import
overviewMainBox
from
"@/components/base/
boxBackground/o
verviewMainBox.vue"
;
import
overviewMainBox
from
"@/components/base/
BoxBackground/O
verviewMainBox.vue"
;
import
OverviewCard
from
"./OverviewCard.vue"
;
import
OverviewCard
from
"./OverviewCard.vue"
;
import
ResourceLibrarySection
from
"./ResourceLibrarySection.vue"
;
import
ResourceLibrarySection
from
"./ResourceLibrarySection.vue"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
...
@@ -974,7 +959,13 @@ const handleBox9Data = async () => {
...
@@ -974,7 +959,13 @@ const handleBox9Data = async () => {
null
,
null
,
{
showCount
:
false
}
{
showCount
:
false
}
);
);
box9ChartInstance
=
setChart
(
box9Chart
,
"box9Chart"
);
const
selectParam
=
{
moduleType
:
'国会法案'
,
proposedDateStart
:
box9selectetedTime
.
value
,
status
:
box9LegislativeStatus
.
value
===
'提出法案'
?
0
:
1
}
box9ChartInstance
=
setChart
(
box9Chart
,
"box9Chart"
,
true
,
selectParam
);
}
}
};
};
...
...
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
d7757e36
...
@@ -7,16 +7,16 @@
...
@@ -7,16 +7,16 @@
<SelectBox
:placeholder-name=
"DatePlaceHolder"
select-title=
"提出时间"
:select-list=
"dateList"
<SelectBox
:placeholder-name=
"DatePlaceHolder"
select-title=
"提出时间"
:select-list=
"dateList"
:select-name=
"selectedDate"
:custom-time=
"customTime"
@
update:select-text=
"handleSelectDate"
:select-name=
"selectedDate"
:custom-time=
"customTime"
@
update:select-text=
"handleSelectDate"
@
update:custom-time=
"handleCustomDate"
/>
@
update:custom-time=
"handleCustomDate"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"科技领域"
:select-list=
"areaList"
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"partyPlaceHolder"
select-title=
"所属党派"
:select-list=
"partyList"
:select-name=
"selectedParty"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"congressPlaceHolder"
select-title=
"提出议院"
:select-list=
"congressList"
:select-name=
"selectedCongress"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"委员会"
:select-list=
"areaList"
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"科技领域"
:select-list=
"areaList"
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"提出议员"
:select-list=
"areaList"
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"科技领域"
:select-list=
"areaList"
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"科技领域"
:select-list=
"areaList"
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"areaPlaceHolder"
select-title=
"科技领域"
:select-list=
"areaList"
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"statusPlaceHolder"
select-title=
"所处阶段"
:select-list=
"statusList"
:select-name=
"selectedStauts"
@
update:select-text=
"handleSelectArea"
/>
</div>
</div>
<div
class=
"header-footer"
>
<div
class=
"header-footer"
>
<div
class=
"header-footer-left"
>
<div
class=
"header-footer-left"
>
...
@@ -50,10 +50,8 @@
...
@@ -50,10 +50,8 @@
<
/ChartHeader
>
<
/ChartHeader
>
<
/div
>
<
/div
>
<
div
class
=
"content-main"
>
<
div
class
=
"content-main"
>
<
ChartContainer
<
ChartContainer
chartTitle
=
"美国会法案提出数量随时间变化趋势"
:
chartTypeList
=
"curChartTypeList"
chartTitle
=
"美国会法案提出数量随时间变化趋势"
@
clickChartItem
=
"handleSwitchActiveChart"
>
:
chartTypeList
=
"curChartTypeList"
@
clickChartItem
=
"handleSwitchActiveChart"
>
<
template
#
chart
-
box
>
<
template
#
chart
-
box
>
<
LineChart
v
-
if
=
"activeChart === '折线图'"
:
lineChartData
=
"lineChartData"
/>
<
LineChart
v
-
if
=
"activeChart === '折线图'"
:
lineChartData
=
"lineChartData"
/>
<
PieChart
v
-
if
=
"activeChart === '饼状图'"
:
pieChartData
=
"pieChartData"
/>
<
PieChart
v
-
if
=
"activeChart === '饼状图'"
:
pieChartData
=
"pieChartData"
/>
...
@@ -78,10 +76,11 @@
...
@@ -78,10 +76,11 @@
<
div
class
=
"data-main-box-main-header"
>
<
div
class
=
"data-main-box-main-header"
>
<
div
class
=
"header-left"
>
<
div
class
=
"header-left"
>
<
div
class
=
"header-left-item1"
>
<
div
class
=
"header-left-item1"
>
<
el
-
checkbox
v
-
model
=
"isSelectedAll"
label
=
"全选"
size
=
"large"
/>
<
el
-
checkbox
v
-
model
=
"isSelectedAll"
label
=
"全选"
@
change
=
"handleSelectAllChange"
size
=
"large"
/>
<
/div
>
<
div
class
=
"header-left-item2 text-tip-1"
>
{{
`已选择${selectedCount
}
项`
}}
<
/div
>
<
div
class
=
"header-left-item2 text-tip-1 cancel"
@
click
=
"handleClearAll"
v
-
show
=
"selectedCount"
>
{{
'取消'
}}
<
/div
>
<
/div
>
<
div
class
=
"header-left-item2 text-tip-1"
>
{{
`已选择${selectedNum
}
项`
}}
<
/div
>
<
div
class
=
"header-left-item2 text-tip-1 cancel"
>
{{
'取消'
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"header-right"
>
<
div
class
=
"header-right"
>
<
div
class
=
"header-right-item item1"
>
<
div
class
=
"header-right-item item1"
>
...
@@ -108,7 +107,8 @@
...
@@ -108,7 +107,8 @@
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"data-main-box-main-content"
>
<
div
class
=
"data-main-box-main-content"
>
<
el
-
table
:
data
=
"tableData"
style
=
"width: 100%"
:
row
-
style
=
"{ height: '52px'
}
"
>
<
el
-
table
ref
=
"tableRef"
:
data
=
"tableData"
row
-
key
=
"id"
@
selection
-
change
=
"handleSelectionChange"
@
select
=
"handleSelect"
@
select
-
all
=
"handleSelectAll"
style
=
"width: 100%"
:
row
-
style
=
"{ height: '52px'
}
"
>
<
el
-
table
-
column
type
=
"selection"
width
=
"55"
/>
<
el
-
table
-
column
type
=
"selection"
width
=
"55"
/>
<
el
-
table
-
column
label
=
"Date"
width
=
"180"
class
-
name
=
"date-column"
>
<
el
-
table
-
column
label
=
"Date"
width
=
"180"
class
-
name
=
"date-column"
>
<
template
#
default
=
"scope"
>
{{
scope
.
row
.
date
}}
<
/template
>
<
template
#
default
=
"scope"
>
{{
scope
.
row
.
date
}}
<
/template
>
...
@@ -121,14 +121,14 @@
...
@@ -121,14 +121,14 @@
<
/div
>
<
/div
>
<
div
class
=
"data-main-box-footer"
>
<
div
class
=
"data-main-box-footer"
>
<
el
-
pagination
background
layout
=
"prev, pager, next"
:
total
=
"totalNum"
v
-
model
:
current
-
page
=
"currentPage"
<
el
-
pagination
background
layout
=
"prev, pager, next"
:
total
=
"totalNum"
v
-
model
:
current
-
page
=
"currentPage"
:
page
-
size
=
"pageSize"
@
current
-
change
=
"handle
GetData
"
/>
:
page
-
size
=
"pageSize"
@
current
-
change
=
"handle
CurrentChange
"
/>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
script
setup
>
<
script
setup
>
import
{
ref
,
computed
}
from
'vue'
import
{
ref
,
computed
,
watch
,
onMounted
,
nextTick
}
from
'vue'
import
ChartContainer
from
'../../components/ChartContainer/index.vue'
import
ChartContainer
from
'../../components/ChartContainer/index.vue'
import
ChartHeader
from
'../../components/ChartHeader/index.vue'
import
ChartHeader
from
'../../components/ChartHeader/index.vue'
import
ActiveTag
from
'../../components/ActiveTag/index.vue'
import
ActiveTag
from
'../../components/ActiveTag/index.vue'
...
@@ -138,7 +138,8 @@ import PieChart from '../../components/PieChart/index.vue'
...
@@ -138,7 +138,8 @@ import PieChart from '../../components/PieChart/index.vue'
import
BarChart
from
'../../components/BarChart/index.vue'
import
BarChart
from
'../../components/BarChart/index.vue'
import
RaderChart
from
'../../components/RadarChart/idnex.vue'
import
RaderChart
from
'../../components/RadarChart/idnex.vue'
import
SelectBox
from
'../../components/SelectBox/index.vue'
import
SelectBox
from
'../../components/SelectBox/index.vue'
import
{
useRoute
}
from
"vue-router"
;
const
route
=
useRoute
();
// 图表/数据
// 图表/数据
const
isShowChart
=
ref
(
true
)
const
isShowChart
=
ref
(
true
)
...
@@ -164,12 +165,12 @@ const staticsDemensionList = ref([
...
@@ -164,12 +165,12 @@ const staticsDemensionList = ref([
{
{
name
:
'提出议院'
,
name
:
'提出议院'
,
active
:
false
,
active
:
false
,
chartTypeList
:
[
'饼状图'
]
chartTypeList
:
[
'饼状图'
,
'雷达图'
]
}
,
}
,
{
{
name
:
'提出委员会'
,
name
:
'提出委员会'
,
active
:
false
,
active
:
false
,
chartTypeList
:
[
'饼状图'
]
chartTypeList
:
[
'
折线图'
,
'柱状图'
,
'
饼状图'
]
}
,
}
,
{
{
name
:
'提出议员党派'
,
name
:
'提出议员党派'
,
...
@@ -184,7 +185,7 @@ const staticsDemensionList = ref([
...
@@ -184,7 +185,7 @@ const staticsDemensionList = ref([
])
])
const
curChartTypeList
=
computed
(()
=>
{
const
curChartTypeList
=
computed
(()
=>
{
let
arr
=
staticsDemensionList
.
value
.
filter
(
item
=>
item
.
active
)
let
arr
=
staticsDemensionList
.
value
.
filter
(
item
=>
item
.
active
)
return
arr
[
0
].
chartTypeList
return
arr
[
0
].
chartTypeList
}
)
}
)
...
@@ -351,7 +352,6 @@ const radarChartData = ref({
...
@@ -351,7 +352,6 @@ const radarChartData = ref({
// 数据- 是否全选
// 数据- 是否全选
const
isSelectedAll
=
ref
(
false
)
const
isSelectedAll
=
ref
(
false
)
const
selectedNum
=
ref
(
8
)
// 选择项数
const
curOperation
=
ref
(
''
)
const
curOperation
=
ref
(
''
)
const
operationList
=
ref
([
const
operationList
=
ref
([
...
@@ -369,35 +369,9 @@ const operationList = ref([
...
@@ -369,35 +369,9 @@ const operationList = ref([
}
,
}
,
])
])
const
releaseTimeList
=
ref
([
{
label
:
"按发布时间倒序"
,
value
:
true
}
,
{
label
:
"按发布时间升序"
,
value
:
false
}
]);
const
isSort
=
ref
(
true
);
// true 倒序 false 升序
// const handleSwithSort = () =>
{
// isSort.value = !isSort.value;
//
}
;
const
handlePxChange
=
val
=>
{
}
;
const
currentPage
=
ref
(
1
);
const
pageSize
=
ref
(
10
)
const
handleGetData
=
()
=>
{
}
// 领域
// 领域
const
areaPlaceHolder
=
ref
(
'请选择领域'
)
const
areaPlaceHolder
=
ref
(
'请选择领域'
)
const
selectedArea
=
ref
(
'
人工智能
'
)
const
selectedArea
=
ref
(
''
)
const
areaList
=
ref
([
const
areaList
=
ref
([
{
{
name
:
'人工智能'
,
name
:
'人工智能'
,
...
@@ -419,19 +393,31 @@ const handleSelectArea = (value) => {
...
@@ -419,19 +393,31 @@ const handleSelectArea = (value) => {
// 提出时间
// 提出时间
const
DatePlaceHolder
=
ref
(
'请选择时间'
)
const
DatePlaceHolder
=
ref
(
'请选择时间'
)
const
selectedDate
=
ref
(
'
时间1
'
)
const
selectedDate
=
ref
(
''
)
const
dateList
=
ref
([
const
dateList
=
ref
([
{
{
name
:
'时间1'
,
name
:
'自定义'
,
id
:
'时间1'
id
:
'自定义'
}
,
{
name
:
'2026'
,
id
:
'2026'
}
,
}
,
{
{
name
:
'
时间2
'
,
name
:
'
2025
'
,
id
:
'
时间2
'
id
:
'
2025
'
}
,
}
,
{
{
name
:
'自定义'
,
name
:
'2024'
,
id
:
'自定义'
id
:
'2024'
}
,
{
name
:
'2023'
,
id
:
'2023'
}
,
{
name
:
'2022'
,
id
:
'2022'
}
,
}
,
])
])
const
customTime
=
ref
(
''
)
// 自定义时间
const
customTime
=
ref
(
''
)
// 自定义时间
...
@@ -445,65 +431,321 @@ const handleSelectDate = (value) => {
...
@@ -445,65 +431,321 @@ const handleSelectDate = (value) => {
selectedDate
.
value
=
value
selectedDate
.
value
=
value
}
}
// 党派列表
const
partyList
=
ref
([
{
name
:
'共和党'
,
id
:
'共和党'
}
,
{
name
:
'民主党'
,
id
:
'民主党'
}
,
{
name
:
'其他'
,
id
:
'其他'
}
,
])
const
selectedParty
=
ref
(
''
)
const
partyPlaceHolder
=
ref
(
'请选择党派'
)
// 议院列表
const
congressList
=
ref
([
{
name
:
'众议院'
,
id
:
'众议院'
}
,
{
name
:
'参议院'
,
id
:
'参议院'
}
])
const
selectedCongress
=
ref
(
''
)
const
congressPlaceHolder
=
ref
(
'请选择议院'
)
// 议院列表
const
statusList
=
ref
([
{
name
:
'提出'
,
id
:
'0'
}
,
{
name
:
'通过'
,
id
:
'1'
}
])
const
selectedStauts
=
ref
(
''
)
const
statusPlaceHolder
=
ref
(
'请选择立法阶段'
)
// 展开全部 / 收起
// 展开全部 / 收起
const
isFolderAll
=
ref
(
false
)
const
isFolderAll
=
ref
(
false
)
const
handleSwitchFolderAll
=
()
=>
{
const
handleSwitchFolderAll
=
()
=>
{
isFolderAll
.
value
=
!
isFolderAll
.
value
isFolderAll
.
value
=
!
isFolderAll
.
value
}
}
const
tableRef
=
ref
(
null
)
// 表格数据
// 表格数据
const
tableData
=
[
const
tableData
=
ref
(
[
{
{
id
:
1
,
date
:
'2016-05-04'
,
date
:
'2016-05-04'
,
name
:
'Aleyna Kutzner'
,
name
:
'Aleyna Kutzner'
,
address
:
'Lohrbergstr. 86c, Süd Lilli, Saarland'
,
address
:
'Lohrbergstr. 86c, Süd Lilli, Saarland'
,
}
,
}
,
{
{
id
:
2
,
date
:
'2016-05-03'
,
date
:
'2016-05-03'
,
name
:
'Helen Jacobi'
,
name
:
'Helen Jacobi'
,
address
:
'760 A Street, South Frankfield, Illinois'
,
address
:
'760 A Street, South Frankfield, Illinois'
,
}
,
}
,
{
{
id
:
3
,
date
:
'2016-05-02'
,
date
:
'2016-05-02'
,
name
:
'Brandon Deckert'
,
name
:
'Brandon Deckert'
,
address
:
'Arnold-Ohletz-Str. 41a, Alt Malinascheid, Thüringen'
,
address
:
'Arnold-Ohletz-Str. 41a, Alt Malinascheid, Thüringen'
,
}
,
}
,
{
{
id
:
4
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
}
,
{
{
id
:
5
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
}
,
{
{
id
:
6
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
}
,
{
{
id
:
7
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
}
,
{
{
id
:
8
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
}
,
{
{
id
:
9
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
}
,
{
{
id
:
10
,
date
:
'2016-05-01'
,
date
:
'2016-05-01'
,
name
:
'Margie Smith'
,
name
:
'Margie Smith'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
address
:
'23618 Windsor Drive, West Ricardoview, Idaho'
,
}
,
//
{
// id: 11,
// date: '2016-05-01',
// name: 'Margie Smith',
// address: '23618 Windsor Drive, West Ricardoview, Idaho',
//
}
,
//
{
// id: 12,
// date: '2016-05-01',
// name: 'Margie Smith',
// address: '23618 Windsor Drive, West Ricardoview, Idaho',
//
}
])
const
releaseTimeList
=
ref
([
{
label
:
"按发布时间倒序"
,
value
:
true
}
,
{
label
:
"按发布时间升序"
,
value
:
false
}
]);
const
isSort
=
ref
(
true
);
// true 倒序 false 升序
// const handleSwithSort = () =>
{
// isSort.value = !isSort.value;
//
}
;
const
handlePxChange
=
val
=>
{
}
;
const
currentPage
=
ref
(
1
);
const
pageSize
=
ref
(
10
)
// 存储选中的数据(跨页)[citation:3][citation:8]
const
selectedMap
=
ref
(
new
Map
())
// 使用 Map 存储,key 为唯一 id
// 计算已选中的条数
const
selectedCount
=
computed
(()
=>
selectedMap
.
value
.
size
)
// 获取表格数据(示例)
const
fetchTableData
=
async
()
=>
{
// 调用接口获取数据...
// const res = await getList(
{
page
:
currentPage
.
value
,
size
:
pageSize
.
value
}
)
// tableData.value = res.data
// total.value = res.total
// 数据加载后,回显已选中的行
nextTick
(()
=>
{
tableData
.
value
.
forEach
(
row
=>
{
if
(
selectedMap
.
value
.
has
(
row
.
id
))
{
tableRef
.
value
?.
toggleRowSelection
(
row
,
true
)
}
}
)
}
)
}
// 单选事件
const
handleSelect
=
(
selection
,
row
)
=>
{
if
(
selection
.
some
(
item
=>
item
.
id
===
row
.
id
))
{
// 选中:添加到 Map
selectedMap
.
value
.
set
(
row
.
id
,
row
)
}
else
{
// 取消选中:从 Map 移除
selectedMap
.
value
.
delete
(
row
.
id
)
}
}
]
}
// 全选/全不选事件
const
handleSelectAll
=
(
selection
)
=>
{
if
(
selection
.
length
>
0
)
{
// 全选:将当前页所有数据添加到 Map
tableData
.
value
.
forEach
(
row
=>
{
if
(
!
selectedMap
.
value
.
has
(
row
.
id
))
{
selectedMap
.
value
.
set
(
row
.
id
,
row
)
}
}
)
}
else
{
// 全不选:从 Map 中移除当前页的所有数据
tableData
.
value
.
forEach
(
row
=>
{
selectedMap
.
value
.
delete
(
row
.
id
)
}
)
}
}
// 处理选择变化(用于统计)
const
handleSelectionChange
=
(
val
)
=>
{
// 这里可以做一些额外的处理,但主要统计使用 selectedMap
console
.
log
(
'当前页选中数量:'
,
val
.
length
)
}
// 全选当前页按钮
const
handleSelectAllPage
=
()
=>
{
if
(
tableData
.
value
.
length
===
0
)
return
// 检查当前页是否已全选
const
currentPageSelected
=
tableData
.
value
.
every
(
row
=>
selectedMap
.
value
.
has
(
row
.
id
)
)
if
(
currentPageSelected
)
{
// 已全选,则取消当前页的全选
tableData
.
value
.
forEach
(
row
=>
{
tableRef
.
value
.
toggleRowSelection
(
row
,
false
)
selectedMap
.
value
.
delete
(
row
.
id
)
}
)
}
else
{
// 未全选,则全选当前页
tableData
.
value
.
forEach
(
row
=>
{
tableRef
.
value
.
toggleRowSelection
(
row
,
true
)
if
(
!
selectedMap
.
value
.
has
(
row
.
id
))
{
selectedMap
.
value
.
set
(
row
.
id
,
row
)
}
}
)
}
}
// 处理全选
const
handleSelectAllChange
=
()
=>
{
if
(
isSelectedAll
.
value
)
{
handleSelectAllPage
()
}
else
{
handleClearAll
()
}
// if (isSelectedAll.value)
{
// // 全选:将当前页所有数据添加到 Map
// tableData.value.forEach(row =>
{
// if (!selectedMap.value.has(row.id))
{
// selectedMap.value.set(row.id, row)
//
}
//
}
)
//
}
else
{
// // 全不选:从 Map 中移除当前页的所有数据
// tableData.value.forEach(row =>
{
// selectedMap.value.delete(row.id)
//
}
)
//
}
}
// 清空所有选择
const
handleClearAll
=
()
=>
{
selectedMap
.
value
.
clear
()
tableRef
.
value
?.
clearSelection
()
}
// 翻页
const
handleCurrentChange
=
(
val
)
=>
{
currentPage
.
value
=
val
fetchTableData
()
}
// 监听数据变化,回显选中状态 [citation:4][citation:8]
watch
(
tableData
,
()
=>
{
nextTick
(()
=>
{
tableData
.
value
.
forEach
(
row
=>
{
if
(
selectedMap
.
value
.
has
(
row
.
id
))
{
tableRef
.
value
?.
toggleRowSelection
(
row
,
true
)
}
}
)
}
)
}
)
onMounted
(()
=>
{
selectedArea
.
value
=
route
.
query
.
domains
?
JSON
.
parse
(
route
.
query
.
domains
)[
0
]:
''
selectedDate
.
value
=
route
.
query
.
proposedDateStart
activeTagList
.
value
=
[
]
if
(
selectedArea
.
value
)
{
activeTagList
.
value
.
push
(
{
name
:
selectedArea
.
value
}
)
}
if
(
selectedDate
.
value
)
{
activeTagList
.
value
.
push
({
name
:
selectedDate
.
value
}
)
}
if
(
route
.
query
.
status
===
'0'
||
route
.
query
.
status
===
'1'
)
{
activeTagList
.
value
.
push
({
name
:
route
.
query
.
status
===
'0'
?
'提出'
:
'通过'
}
)
}
// 初始化
fetchTableData
()
}
)
<
/script
>
<
/script
>
...
...
src/views/dataLibrary/components/ChartContainer/index.vue
浏览文件 @
d7757e36
...
@@ -100,16 +100,6 @@ const chartItemList = computed(() => {
...
@@ -100,16 +100,6 @@ const chartItemList = computed(() => {
return
arr
return
arr
})
})
// nextTick(() => {
// let arr = chartItemList.value.filter(item => item.active)
// if(!arr.length) {
// alert(1)
// chartItemList.value[0].active = true
// }
// })
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论