Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
c80bc520
提交
c80bc520
authored
3月 27, 2026
作者:
张伊明
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
撤销 "合并分支 'fk-dev' 到 'pre'"
这将还原合并请求
!259
上级
198a5ca5
流水线
#147
已通过 于阶段
in 1 分 35 秒
变更
7
流水线
1
显示空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
93 行增加
和
272 行删除
+93
-272
index.vue
src/components/base/messageBubble/index.vue
+8
-10
index.vue
src/styles/components/GraphChart/index.vue
+1
-1
setChart.js
src/utils/setChart.js
+1
-1
index.vue
src/views/bill/billHome/index.vue
+4
-6
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+70
-240
index.vue
src/views/dataLibrary/components/ChartContainer/index.vue
+3
-9
index.vue
src/views/dataLibrary/decree/index.vue
+6
-5
没有找到文件。
src/components/base/messageBubble/index.vue
浏览文件 @
c80bc520
...
...
@@ -10,7 +10,7 @@
</div>
<!--
<div
class=
"more"
@
click=
"handleToMoreNews"
>
{{
"更多 +"
}}
</div>
-->
</div>
<div
class=
"msg-bubble-main"
ref=
"scrollContainer"
@
mouseenter=
"stopScroll"
@
mouseleave=
"startScroll"
>
<div
class=
"msg-bubble-main"
ref=
"scrollContainer"
>
<div
class=
"message-bubble"
v-for=
"(item, index) in displayList"
:key=
"index"
@
click=
"handleClickPerson(item)"
>
<div
class=
"avatar-container"
>
<img
:src=
"item[props.imageUrl] || avatarUser"
:alt=
"item[props.name]"
class=
"avatar"
/>
...
...
@@ -110,9 +110,9 @@ const currentIndex = ref(0)
// 计算当前显示的消息列表(只显示固定数量的消息)
const
displayList
=
computed
(()
=>
{
//
if(props.messageList.length
<
4
)
{
//
return props.messageList
//
}
if
(
props
.
messageList
.
length
<
4
)
{
return
props
.
messageList
}
// 确保 messageList 存在且有数据
if
(
!
props
.
messageList
||
!
Array
.
isArray
(
props
.
messageList
)
||
props
.
messageList
.
length
===
0
)
{
return
[]
...
...
@@ -140,7 +140,7 @@ const startScroll = () => {
if
(
timer
)
clearInterval
(
timer
)
timer
=
setInterval
(()
=>
{
currentIndex
.
value
=
(
currentIndex
.
value
+
1
)
%
props
.
messageList
.
length
},
2
400
)
// 每2.4
秒滚动一条
},
2
000
)
// 每
秒滚动一条
}
// 停止滚动
...
...
@@ -152,10 +152,9 @@ const stopScroll = () => {
}
onMounted
(()
=>
{
if
(
props
.
messageList
.
length
>
3
)
{
startScroll
()
// if (props.messageList.length > 3) {
// startScroll()
// }
}
})
...
...
@@ -224,13 +223,12 @@ onBeforeUnmount(() => {
}
.msg-bubble-main
{
height
:
395
px
;
height
:
402
px
;
overflow
:
hidden
;
box-sizing
:
border-box
;
padding-bottom
:
8px
;
padding-left
:
21px
;
padding-top
:
23px
;
// background: orange;
.message-bubble
{
display
:
flex
;
...
...
src/styles/components/GraphChart/index.vue
浏览文件 @
c80bc520
...
...
@@ -11,7 +11,7 @@
`
}}
</pre>
<div
class=
"chart-box"
>
<GraphChart
:nodes=
"nodes"
:links=
"links"
layoutType=
"
non
e"
>
<GraphChart
:nodes=
"nodes"
:links=
"links"
layoutType=
"
forc
e"
>
</GraphChart>
</div>
</el-col>
...
...
src/utils/setChart.js
浏览文件 @
c80bc520
...
...
@@ -66,7 +66,7 @@ const setChart = (option, chartId, allowClick, selectParam) => {
if
(
params
.
seriesName
===
'通过法案'
)
{
selectParam
.
selectedStatus
=
1
}
else
{
selectParam
.
selectedStatus
=
0
selectParam
.
selectedStatus
=
null
}
const
route
=
router
.
resolve
({
...
...
src/views/bill/billHome/index.vue
浏览文件 @
c80bc520
...
...
@@ -273,7 +273,7 @@ import {
import
{
getPersonSummaryInfo
}
from
"@/api/common/index"
;
import
{
getChartAnalysis
}
from
"@/api/aiAnalysis/index"
;
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
ResourceLibrarySection
from
"./ResourceLibrarySection.vue"
;
import
{
useContainerScroll
}
from
"@/hooks/useScrollShow"
;
...
...
@@ -860,8 +860,7 @@ const handleBox5 = async () => {
})[
0
]?.
name
const
selectParam
=
{
moduleType
:
'国会法案'
,
domains
:
domain
,
isInvolveCn
:
true
domains
:
domain
}
setChart
(
box5Chart
,
"box5Chart"
,
true
,
selectParam
);
}
...
...
@@ -913,7 +912,6 @@ const handleBox7Data = async () => {
moduleType
:
'国会法案'
,
key
:
'议院委员会'
,
selectedDate
:
box7selectetedTime
.
value
,
isInvolveCn
:
true
}
const
box7Chart
=
getDoublePieChart
(
data1
,
data2
);
...
...
@@ -1043,7 +1041,7 @@ const handleBox9Data = async () => {
key
:
'领域'
,
selectedDate
:
box9selectetedTime
.
value
,
selectedStatus
:
box9LegislativeStatus
.
value
===
'提出法案'
?
0
:
1
,
isInvolveCn
:
true
isInvolveCn
:
1
}
box9ChartInstance
=
setChart
(
box9Chart
,
"box9Chart"
,
true
,
selectParam
);
}
...
...
@@ -1225,7 +1223,7 @@ const handleBox8Data = async () => {
moduleType
:
'国会法案'
,
key
:
'所处阶段'
,
selectedDate
:
box8selectetedTime
.
value
,
isInvolveCn
:
true
isInvolveCn
:
1
}
await
nextTick
();
...
...
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
c80bc520
...
...
@@ -30,7 +30,7 @@
</div>
<div
class=
"header-footer"
>
<div
class=
"header-footer-left"
>
<ActiveTag
v-for=
"tag, index in activeTagList"
:key=
"index"
:tagName=
"tag
.name
"
<ActiveTag
v-for=
"tag, index in activeTagList"
:key=
"index"
:tagName=
"tag"
@
close=
"handleCloseCurTag(tag, index)"
/>
</div>
<div
class=
"header-footer-right"
>
...
...
@@ -52,8 +52,8 @@
<
div
class
=
"content-header"
>
<
ChartHeader
:
list
=
"staticsDemensionList"
@
clickItem
=
"handleClickDemensionItem"
>
<
template
#
chart
-
header
-
right
>
<
el
-
select
v
-
model
=
"selectedTime"
placeholder
=
"选择时间"
style
=
"width: 150px"
v
-
show
=
"curDemension === '提案时间'"
@
change
=
"handleChangeTime
"
>
<
el
-
select
v
-
model
=
"selectedTime"
placeholder
=
"选择时间"
style
=
"width: 150px"
v
-
show
=
"curDemension === '提案时间'
"
>
<
el
-
option
v
-
for
=
"item in timeList"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
...
...
@@ -62,7 +62,7 @@
<
/div
>
<
div
class
=
"content-main"
>
<
ChartContainer
:
chartTitle
=
"curChartTitle"
:
chartTypeList
=
"curChartTypeList"
@
clickChartItem
=
"handleSwitchActiveChart"
@
download
=
"handleDownloadCurChartData"
>
@
clickChartItem
=
"handleSwitchActiveChart"
>
<
template
#
chart
-
box
>
<
LineChart
v
-
if
=
"activeChart === '折线图'"
:
lineChartData
=
"curChartData"
/>
<
BarChart
v
-
if
=
"activeChart === '柱状图'"
:
barChartData
=
"curChartData"
/>
...
...
@@ -91,8 +91,6 @@
<
/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
class
=
"header-left-item3 text-tip-1"
v
-
if
=
"isShowAllDataMaxLengthTip"
>
{{
`(当前最大选择不能超过1万条!)`
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"header-right"
>
...
...
@@ -119,7 +117,7 @@
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"data-main-box-main-content"
v
-
loading
=
"loading"
element
-
loading
-
text
=
"全部数据加载中,请稍候..."
>
<
div
class
=
"data-main-box-main-content"
>
<
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
=
"40"
/>
...
...
@@ -129,10 +127,10 @@
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"
提案时间
"
width
=
"120"
class
-
name
=
"date-column"
>
<
el
-
table
-
column
label
=
"
日期
"
width
=
"120"
class
-
name
=
"date-column"
>
<
template
#
default
=
"scope"
>
{{
scope
.
row
.
date
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"提
案
人"
width
=
"480"
>
<
el
-
table
-
column
label
=
"提
出
人"
width
=
"480"
>
<
template
#
default
=
"scope"
>
<
span
class
=
"person-item text-compact"
@
click
=
"handlePerClick(scope.row)"
>
{{
scope
.
row
.
sponsorPersonName
}}
<
/span
>
...
...
@@ -184,17 +182,7 @@ const handleSwitchChartData = () => {
}
)[
0
]
setTimeout
(()
=>
{
activeChart
.
value
=
curDemensionItem
.
chartTypeList
[
0
]
if
(
curDemension
.
value
===
'提案时间'
)
{
if
(
selectedTime
.
value
===
'按月度统计'
)
{
curChartData
.
value
=
curDemensionItem
.
data
}
else
if
(
selectedTime
.
value
===
'按季度统计'
)
{
curChartData
.
value
=
curDemensionItem
.
quatarData
}
else
{
curChartData
.
value
=
curDemensionItem
.
yearData
}
}
else
{
curChartData
.
value
=
curDemensionItem
.
data
}
}
)
}
}
...
...
@@ -214,12 +202,10 @@ const staticsDemensionList = ref([
dataY
:
[]
}
,
quatarData
:
{
dataX
:
[],
dataY
:
[]
}
,
yearData
:
{
dataX
:
[],
dataY
:
[]
}
}
,
{
...
...
@@ -265,7 +251,6 @@ const curChartTypeList = computed(() => {
return
arr
[
0
].
chartTypeList
}
)
// 当前图表标题
const
curChartTitle
=
computed
(()
=>
{
let
arr
=
staticsDemensionList
.
value
.
filter
(
item
=>
item
.
active
)
return
arr
[
0
].
chartTitle
...
...
@@ -284,19 +269,11 @@ const handleClickDemensionItem = (val) => {
curDemension
.
value
=
val
.
name
setTimeout
(()
=>
{
activeChart
.
value
=
val
.
chartTypeList
[
0
]
if
(
curDemension
.
value
===
'提案时间'
&&
selectedTime
.
value
===
'按年度统计'
)
{
curChartData
.
value
=
val
.
yearData
}
else
if
(
curDemension
.
value
===
'提案时间'
&&
selectedTime
.
value
===
'按季度统计'
)
{
curChartData
.
value
=
val
.
quatarData
}
else
{
curChartData
.
value
=
val
.
data
}
}
)
}
// 时间图表 当前选择时间
const
selectedTime
=
ref
(
'按月统计'
)
// 时间图表-时间列表
const
timeList
=
ref
([
{
label
:
'按年度统计'
,
...
...
@@ -311,140 +288,51 @@ const timeList = ref([
value
:
'按月度统计'
}
,
])
const
handleChangeTime
=
value
=>
{
let
curChart
=
activeChart
.
value
activeChart
.
value
=
''
if
(
value
===
'按月度统计'
)
{
setTimeout
(()
=>
{
activeChart
.
value
=
curChart
curChartData
.
value
=
staticsDemensionList
.
value
[
0
].
data
}
)
}
else
if
(
value
===
'按季度统计'
)
{
setTimeout
(()
=>
{
activeChart
.
value
=
curChart
curChartData
.
value
=
staticsDemensionList
.
value
[
0
].
quatarData
}
)
}
else
{
setTimeout
(()
=>
{
activeChart
.
value
=
curChart
curChartData
.
value
=
staticsDemensionList
.
value
[
0
].
yearData
}
)
}
}
// 激活的标签列表
const
activeTagList
=
computed
(()
=>
{
const
arr
=
[]
if
(
selectedArea
.
value
&&
selectedArea
.
value
!==
'全部领域'
)
{
arr
.
push
(
{
tag
:
'科技领域'
,
name
:
selectedArea
.
value
}
)
arr
.
push
(
selectedArea
.
value
)
}
if
(
selectedDate
.
value
===
'自定义'
)
{
arr
.
push
(
{
tag
:
'提出时间'
,
name
:
customTime
.
value
.
join
(
'至'
)
}
)
arr
.
push
(
customTime
.
value
.
join
(
'至'
))
}
if
(
selectedParty
.
value
&&
selectedParty
.
value
!==
'全部党派'
)
{
arr
.
push
(
{
tag
:
'所属党派'
,
name
:
selectedParty
.
value
}
)
arr
.
push
(
selectedParty
.
value
)
}
if
(
selectedCongress
.
value
&&
selectedCongress
.
value
!==
'全部议院'
)
{
arr
.
push
(
{
tag
:
'提出议院'
,
name
:
selectedCongress
.
value
}
)
arr
.
push
(
selectedCongress
.
value
)
}
if
(
selectedOrg
.
value
&&
selectedOrg
.
value
!==
'全部委员会'
)
{
arr
.
push
(
{
tag
:
'委员会'
,
name
:
selectedOrg
.
value
}
)
arr
.
push
(
selectedOrg
.
value
)
}
if
(
selectedmember
.
value
&&
selectedmember
.
value
!==
'全部议员'
)
{
arr
.
push
(
{
tag
:
'提出议员'
,
name
:
selectedmember
.
value
}
)
arr
.
push
(
selectedmember
.
value
)
}
if
(
selectedStatus
.
value
&&
selectedStatus
.
value
!==
'全部阶段'
)
{
arr
.
push
(
{
tag
:
'所处阶段'
,
name
:
selectedStatus
.
value
}
)
arr
.
push
(
selectedStatus
.
value
)
}
if
(
isInvolveCn
.
value
)
{
const
involveStr
=
'涉华'
arr
.
push
(
{
tag
:
'是否涉华'
,
name
:
involveStr
}
)
arr
.
push
(
involveStr
)
}
return
arr
}
)
// 关闭当前标签
const
handleCloseCurTag
=
(
tag
,
index
)
=>
{
switch
(
tag
.
tag
)
{
case
'科技领域'
:
selectedArea
.
value
=
'全部领域'
break
case
'提出时间'
:
selectedDate
.
value
=
''
break
case
'所属党派'
:
selectedParty
.
value
=
'全部党派'
break
case
'提出议院'
:
selectedCongress
.
value
=
'全部议院'
break
case
'委员会'
:
selectedOrg
.
value
=
'全部委员会'
break
case
'提出议员'
:
selectedmember
.
value
=
'全部议员'
break
case
'所处阶段'
:
selectedStatus
.
value
=
'全部阶段'
break
case
'是否涉华'
:
isInvolveCn
.
value
=
false
break
}
// alert(tag.name)
//
activeTagList.value.splice(index, 1)
activeTagList
.
value
.
splice
(
index
,
1
)
}
const
activeChart
=
ref
(
''
)
// 当前激活的图表
// 切换当前图表
const
handleSwitchActiveChart
=
val
=>
{
activeChart
.
value
=
val
.
name
}
// 雷达图数据
const
radarChartData
=
ref
({
title
:
[
{
...
...
@@ -494,7 +382,7 @@ const radarChartData = ref({
// 数据- 是否全选
const
isSelectedAll
=
ref
(
false
)
// 批量操作-当前操作
const
curOperation
=
ref
(
''
)
const
operationList
=
ref
([
{
...
...
@@ -611,8 +499,10 @@ const dateList = ref([
])
const
customTime
=
ref
([])
// 自定义时间
const
handleCustomDate
=
value
=>
{
// console.log('value', value);
customTime
.
value
=
value
}
const
handleSelectDate
=
(
value
)
=>
{
selectedDate
.
value
=
value
if
(
selectedDate
.
value
!==
'自定义'
)
{
...
...
@@ -641,6 +531,7 @@ const partyList = ref([
])
const
selectedParty
=
ref
(
'全部党派'
)
const
partyPlaceHolder
=
ref
(
'请选择党派'
)
const
handleSelectParty
=
value
=>
{
selectedParty
.
value
=
value
}
...
...
@@ -670,9 +561,12 @@ const handleSelectCongress = value => {
const
orgList
=
ref
([])
const
selectedOrg
=
ref
(
'全部委员会'
)
const
orgPlaceHolder
=
ref
(
'请选择委员会'
)
const
handleSelectOrg
=
value
=>
{
selectedOrg
.
value
=
value
}
// 获取委员会
const
handleGetOrgList
=
async
()
=>
{
try
{
const
res
=
await
getPostOrgList
()
...
...
@@ -700,6 +594,8 @@ const memberPlaceHolder = ref('请选择议员')
const
handleSelectMember
=
value
=>
{
selectedmember
.
value
=
value
}
// 获取议员
const
handleGetMemberList
=
async
()
=>
{
try
{
const
res
=
await
getPostMemberList
()
...
...
@@ -714,6 +610,7 @@ const handleGetMemberList = async () => {
}
)
memberList
.
value
=
[{
name
:
'全部议员'
,
id
:
'全部议员'
}
,
...
memberList
.
value
]
}
}
catch
(
error
)
{
console
.
error
(
'获取议员列表报错:'
,
error
);
...
...
@@ -735,6 +632,7 @@ const statusList = ref([
id
:
'1'
}
])
const
selectedStatus
=
ref
(
'全部阶段'
)
const
statusPlaceHolder
=
ref
(
'请选择立法阶段'
)
const
handleSelectStauts
=
value
=>
{
...
...
@@ -770,6 +668,8 @@ const handleSwitchFolderAll = () => {
isFolderAll
.
value
=
!
isFolderAll
.
value
}
const
tableRef
=
ref
(
null
)
// 表格数据
...
...
@@ -786,7 +686,11 @@ const releaseTimeList = ref([
value
:
false
}
]);
const
isSort
=
ref
(
true
);
// true 倒序 false 升序
// const handleSwithSort = () =>
{
// isSort.value = !isSort.value;
//
}
;
const
handlePxChange
=
val
=>
{
fetchTableData
()
}
;
...
...
@@ -800,10 +704,10 @@ const selectedMap = ref(new Map()) // 使用 Map 存储,key 为唯一 id
// 计算已选中的条数
const
selectedCount
=
computed
(()
=>
selectedMap
.
value
.
size
)
// 获取
当前页
表格数据(示例)
// 获取表格数据(示例)
const
fetchTableData
=
async
()
=>
{
//
isSelectedAll.value = false
//
selectedMap.value.clear()
isSelectedAll
.
value
=
false
selectedMap
.
value
.
clear
()
// 调用接口获取数据...
const
params
=
{
page
:
currentPage
.
value
,
...
...
@@ -831,14 +735,6 @@ const fetchTableData = async () => {
dataX
:
Object
.
keys
(
res
.
data
.
aggregationsDate
),
dataY
:
Object
.
values
(
res
.
data
.
aggregationsDate
).
map
(
value
=>
Number
(
value
))
}
staticsDemensionList
.
value
[
0
].
quatarData
=
{
dataX
:
Object
.
keys
(
res
.
data
.
aggregationsQuarter
),
dataY
:
Object
.
values
(
res
.
data
.
aggregationsQuarter
).
map
(
value
=>
Number
(
value
))
}
staticsDemensionList
.
value
[
0
].
yearData
=
{
dataX
:
Object
.
keys
(
res
.
data
.
aggregationsYear
),
dataY
:
Object
.
values
(
res
.
data
.
aggregationsYear
).
map
(
value
=>
Number
(
value
))
}
staticsDemensionList
.
value
[
1
].
data
=
Object
.
entries
(
res
.
data
.
aggregationsDomain
).
map
(([
key
,
value
])
=>
({
name
:
key
,
value
:
Number
(
value
)
...
...
@@ -861,6 +757,9 @@ const fetchTableData = async () => {
}
))
}
const
curDemensionItem
=
staticsDemensionList
.
value
.
filter
(
item
=>
{
return
item
.
name
===
curDemension
.
value
}
)[
0
]
...
...
@@ -869,6 +768,10 @@ const fetchTableData = async () => {
activeChart
.
value
=
curDemensionItem
.
chartTypeList
[
0
]
curChartData
.
value
=
curDemensionItem
.
data
}
)
}
catch
(
error
)
{
}
...
...
@@ -884,37 +787,6 @@ const fetchTableData = async () => {
}
)
}
)
}
const
allData
=
ref
([])
// 获取筛选条件下全部表格数据
const
fetchAllData
=
async
()
=>
{
const
params
=
{
page
:
1
,
size
:
9999
,
keyword
:
''
,
type
:
1
,
// type 1= 法案 2= 政令 3 =智库 4=智库报告 5=实体清单【制裁记录】 6= 人物 7= 机构 8=新闻 9= 社媒
domains
:
selectedArea
.
value
===
'全部领域'
?
null
:
[
selectedArea
.
value
],
proposedDateStart
:
customTime
.
value
[
0
],
proposedDateEnd
:
customTime
.
value
[
1
],
affiliation
:
selectedParty
.
value
===
'全部党派'
?
null
:
selectedParty
.
value
,
originChamber
:
selectedCongress
.
value
===
'全部议院'
?
null
:
selectedCongress
.
value
,
originDepart
:
selectedOrg
.
value
===
'全部委员会'
?
null
:
selectedOrg
.
value
,
sponsorPersonName
:
selectedmember
.
value
===
'全部议员'
?
null
:
selectedmember
.
value
,
status
:
selectedStatus
.
value
===
'通过'
?
1
:
0
,
sleStatus
:
isInvolveCn
?
'Y'
:
'N'
,
sort
:
isSort
.
value
?
0
:
1
// 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
}
try
{
const
res
=
await
search
(
params
)
console
.
log
(
'搜索结果'
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
allData
.
value
=
res
.
data
.
records
}
}
catch
(
error
)
{
ElMessage
.
error
(
'加载全部数据出错!'
)
}
}
// 单选事件
const
handleSelect
=
(
selection
,
row
)
=>
{
...
...
@@ -927,7 +799,7 @@ const handleSelect = (selection, row) => {
}
}
//
表格自带 当前页
全选/全不选事件
// 全选/全不选事件
const
handleSelectAll
=
(
selection
)
=>
{
if
(
selection
.
length
>
0
)
{
// 全选:将当前页所有数据添加到 Map
...
...
@@ -960,10 +832,10 @@ const handleSelectAllPage = () => {
)
if
(
currentPageSelected
)
{
// 已全选,则
不动
当前页的全选
// 已全选,则
取消
当前页的全选
tableData
.
value
.
forEach
(
row
=>
{
tableRef
.
value
.
toggleRowSelection
(
row
,
false
)
//
selectedMap.value.delete(row.id)
selectedMap
.
value
.
delete
(
row
.
id
)
}
)
}
else
{
// 未全选,则全选当前页
...
...
@@ -976,47 +848,39 @@ const handleSelectAllPage = () => {
}
}
// 全选最大1万条提示
const
isShowAllDataMaxLengthTip
=
ref
(
false
)
const
loading
=
ref
(
false
)
// 加载数据loading
// 处理 全选(全部数据)
const
handleSelectAllChange
=
async
()
=>
{
// 处理全选
const
handleSelectAllChange
=
()
=>
{
if
(
isSelectedAll
.
value
)
{
if
(
totalNum
.
value
>
10000
)
{
isShowAllDataMaxLengthTip
.
value
=
true
}
loading
.
value
=
true
await
fetchAllData
()
handleSelectAllPage
()
allData
.
value
.
forEach
(
row
=>
{
if
(
!
selectedMap
.
value
.
has
(
row
.
id
))
{
selectedMap
.
value
.
set
(
row
.
id
,
row
)
}
}
)
loading
.
value
=
false
}
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
=
()
=>
{
isSelectedAll
.
value
=
false
selectedMap
.
value
.
clear
()
tableRef
.
value
?.
clearSelection
()
}
// 翻页
const
handleCurrentChange
=
async
(
val
)
=>
{
const
handleCurrentChange
=
(
val
)
=>
{
currentPage
.
value
=
val
await
fetchTableData
()
if
(
isSelectedAll
.
value
)
{
handleSelectAllPage
()
}
fetchTableData
()
}
...
...
@@ -1034,20 +898,6 @@ watch(tableData, () => {
// 当前图表数据
const
curChartData
=
ref
(
null
)
// 下载当前图表数据
const
handleDownloadCurChartData
=
()
=>
{
const
jsonStr
=
JSON
.
stringify
(
curChartData
.
value
,
null
,
2
);
const
blob
=
new
Blob
([
jsonStr
],
{
type
:
'application/json'
}
);
const
url
=
URL
.
createObjectURL
(
blob
);
const
link
=
document
.
createElement
(
'a'
);
link
.
href
=
url
;
link
.
download
=
'chartData.json'
;
link
.
click
();
URL
.
revokeObjectURL
(
url
);
}
// 跳转到当前页 初始化筛选条件
const
initParam
=
()
=>
{
const
hasQuery
=
Object
.
keys
(
route
.
query
).
length
>
0
;
...
...
@@ -1143,6 +993,7 @@ onMounted(async () => {
initParam
()
// 初始化
await
fetchTableData
()
...
...
@@ -1321,10 +1172,6 @@ onMounted(async () => {
}
.
header
-
left
-
item3
{
color
:
var
(
--
color
-
orange
-
100
);
}
.
cancel
{
cursor
:
pointer
;
}
...
...
@@ -1418,21 +1265,4 @@ onMounted(async () => {
text
-
decoration
:
underline
;
}
}
:
deep
(.
el
-
table__header
-
wrapper
)
{
// background-color: #f5f7fa;
height
:
48
px
;
}
:
deep
(.
el
-
table__header
th
)
{
// background-color: #f5f7fa;
color
:
var
(
--
text
-
primary
-
50
-
color
);
font
-
weight
:
bold
;
}
/* 针对特定列 */
// :deep(.el-table__header th:first-child)
{
// background-color: #e6f7ff;
// color: #1890ff;
//
}
<
/style>
\ No newline at end of file
<
/style>
\ No newline at end of file
src/views/dataLibrary/components/ChartContainer/index.vue
浏览文件 @
c80bc520
...
...
@@ -8,7 +8,7 @@
</div>
</div>
<div
class=
"header-center text-title-3-bold"
>
{{
chartTitle
}}
</div>
<div
class=
"header-right"
@
click=
"handleDownload"
>
<div
class=
"header-right"
>
<img
src=
"./assets/icons/download.svg"
alt=
""
>
</div>
</div>
...
...
@@ -17,7 +17,7 @@
<slot
name=
"chart-box"
></slot>
</div>
<div
class=
"tip-box"
>
<TipTab
text=
"数据来源:美国各政府机构官网"
data-time=
""
/>
<TipTab
/>
</div>
</div>
</div>
...
...
@@ -63,7 +63,7 @@ const defaultChartTypeList = [
]
const
emit
=
defineEmits
(
'clickChartItem'
,
'download'
)
const
emit
=
defineEmits
(
'clickChartItem'
)
const
handleClickChartItem
=
(
item
)
=>
{
chartItemList
.
value
.
forEach
(
chart
=>
{
...
...
@@ -104,10 +104,6 @@ const chartItemList = computed(() => {
return
arr
})
const
handleDownload
=
()
=>
{
emit
(
'download'
)
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
@@ -180,8 +176,6 @@ const handleDownload = () => {
.tip-box
{
height
:
54px
;
box-sizing
:
border-box
;
padding
:
0
500px
;
padding-top
:
10px
;
// background: orange;
}
...
...
src/views/dataLibrary/decree/index.vue
浏览文件 @
c80bc520
...
...
@@ -125,23 +125,24 @@
<
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
=
"40"
/>
<
el
-
table
-
column
label
=
"
政令
名称"
width
=
"455"
>
<
el
-
table
-
column
label
=
"
法案
名称"
width
=
"455"
>
<
template
#
default
=
"scope"
>
<
span
class
=
"title-item text-compact-bold"
@
click
=
"handleClickToDetail(scope.row)"
>
{{
scope
.
row
.
title
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"
发布时间"
width
=
"18
0"
class
-
name
=
"date-column"
>
<
el
-
table
-
column
label
=
"
日期"
width
=
"12
0"
class
-
name
=
"date-column"
>
<
template
#
default
=
"scope"
>
{{
scope
.
row
.
date
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"
发布机构
"
width
=
"480"
>
<
el
-
table
-
column
label
=
"
提出人
"
width
=
"480"
>
<
template
#
default
=
"scope"
>
<
span
class
=
"person-item text-compact"
@
click
=
"handlePerClick(scope.row)"
>
{{
scope
.
row
.
sponsorPersonName
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
property
=
"affiliation"
label
=
"涉及领域"
width
=
"120"
/>
<
el
-
table
-
column
property
=
"originDepart"
label
=
"政令类型"
width
=
"180"
/>
<
el
-
table
-
column
property
=
"affiliation"
label
=
"所属党派"
width
=
"120"
/>
<
el
-
table
-
column
property
=
"originDepart"
label
=
"提出委员会"
width
=
"180"
/>
<
el
-
table
-
column
property
=
"status"
label
=
"所处阶段"
width
=
"120"
/>
<
/el-table
>
<
/div
>
<
/div
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论