Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
R
risk-monitor
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
蔡建
risk-monitor
Commits
6dcd8134
提交
6dcd8134
authored
3月 30, 2026
作者:
付康
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'fk-dev' 到 'pre'
Fk dev 查看合并请求
!275
上级
aa42c0a7
152adc61
流水线
#195
已通过 于阶段
in 3 分 26 秒
变更
4
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
276 行增加
和
284 行删除
+276
-284
index.vue
src/views/dataLibrary/bill/countryBill/index.vue
+167
-41
index.vue
src/views/dataLibrary/decree/index.vue
+103
-238
index.vue
src/views/dataLibrary/index.vue
+5
-4
index.vue
src/views/home/index.vue
+1
-1
没有找到文件。
src/views/dataLibrary/bill/countryBill/index.vue
浏览文件 @
6dcd8134
...
...
@@ -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"
<ActiveTag
v-for=
"tag, index in activeTagList"
:key=
"index"
:tagName=
"tag
.name
"
@
close=
"handleCloseCurTag(tag, index)"
/>
</div>
<div
class=
"header-footer-right"
>
...
...
@@ -62,7 +62,7 @@
<
/div
>
<
div
class
=
"content-main"
>
<
ChartContainer
:
chartTitle
=
"curChartTitle"
:
chartTypeList
=
"curChartTypeList"
@
clickChartItem
=
"handleSwitchActiveChart"
>
@
clickChartItem
=
"handleSwitchActiveChart"
@
download
=
"handleDownloadCurChartData"
>
<
template
#
chart
-
box
>
<
LineChart
v
-
if
=
"activeChart === '折线图'"
:
lineChartData
=
"curChartData"
/>
<
BarChart
v
-
if
=
"activeChart === '柱状图'"
:
barChartData
=
"curChartData"
/>
...
...
@@ -293,38 +293,100 @@ const timeList = ref([
const
activeTagList
=
computed
(()
=>
{
const
arr
=
[]
if
(
selectedArea
.
value
&&
selectedArea
.
value
!==
'全部领域'
)
{
arr
.
push
(
selectedArea
.
value
)
arr
.
push
(
{
tag
:
'科技领域'
,
name
:
selectedArea
.
value
}
)
}
if
(
selectedDate
.
value
===
'自定义'
)
{
arr
.
push
(
customTime
.
value
.
join
(
'至'
))
arr
.
push
(
{
tag
:
'提出时间'
,
name
:
customTime
.
value
.
join
(
'至'
)
}
)
}
if
(
selectedParty
.
value
&&
selectedParty
.
value
!==
'全部党派'
)
{
arr
.
push
(
selectedParty
.
value
)
arr
.
push
(
{
tag
:
'所属党派'
,
name
:
selectedParty
.
value
}
)
}
if
(
selectedCongress
.
value
&&
selectedCongress
.
value
!==
'全部议院'
)
{
arr
.
push
(
selectedCongress
.
value
)
arr
.
push
(
{
tag
:
'提出议院'
,
name
:
selectedCongress
.
value
}
)
}
if
(
selectedOrg
.
value
&&
selectedOrg
.
value
!==
'全部委员会'
)
{
arr
.
push
(
selectedOrg
.
value
)
arr
.
push
(
{
tag
:
'委员会'
,
name
:
selectedOrg
.
value
}
)
}
if
(
selectedmember
.
value
&&
selectedmember
.
value
!==
'全部议员'
)
{
arr
.
push
(
selectedmember
.
value
)
arr
.
push
(
{
tag
:
'提出议员'
,
name
:
selectedmember
.
value
}
)
}
if
(
selectedStatus
.
value
&&
selectedStatus
.
value
!==
'全部阶段'
)
{
arr
.
push
(
selectedStatus
.
value
)
arr
.
push
(
{
tag
:
'所处阶段'
,
name
:
selectedStatus
.
value
}
)
}
if
(
isInvolveCn
.
value
)
{
const
involveStr
=
'涉华'
arr
.
push
(
involveStr
)
arr
.
push
(
{
tag
:
'是否涉华'
,
name
:
involveStr
}
)
}
return
arr
}
)
const
handleCloseCurTag
=
(
tag
,
index
)
=>
{
// alert(tag.name)
activeTagList
.
value
.
splice
(
index
,
1
)
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
}
}
const
activeChart
=
ref
(
''
)
// 当前激活的图表
...
...
@@ -624,13 +686,25 @@ const statusList = ref([
id
:
'全部阶段'
}
,
{
name
:
'提出'
,
id
:
'
0
'
name
:
'提出
法案
'
,
id
:
'
提出法案
'
}
,
{
name
:
'通过'
,
id
:
'1'
}
name
:
'通过法案'
,
id
:
'通过法案'
}
,
{
name
:
'众议院通过'
,
id
:
'众议院通过'
}
,
{
name
:
'参议院通过'
,
id
:
'参议院通过'
}
,
{
name
:
'双院通过'
,
id
:
'双院通过'
}
,
])
const
selectedStatus
=
ref
(
'全部阶段'
)
...
...
@@ -668,8 +742,6 @@ const handleSwitchFolderAll = () => {
isFolderAll
.
value
=
!
isFolderAll
.
value
}
const
tableRef
=
ref
(
null
)
// 表格数据
...
...
@@ -722,7 +794,7 @@ const fetchTableData = async () => {
originDepart
:
selectedOrg
.
value
===
'全部委员会'
?
null
:
selectedOrg
.
value
,
sponsorPersonName
:
selectedmember
.
value
===
'全部议员'
?
null
:
selectedmember
.
value
,
status
:
selectedStatus
.
value
===
'通过'
?
1
:
0
,
sleStatus
:
isInvolveCn
?
'Y'
:
'N'
,
isInvolveCn
:
isInvolveCn
?
'Y'
:
'N'
,
sort
:
isSort
.
value
?
0
:
1
// 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
}
try
{
...
...
@@ -788,6 +860,38 @@ 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
,
isInvolveCn
:
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
)
=>
{
if
(
selection
.
some
(
item
=>
item
.
id
===
row
.
id
))
{
...
...
@@ -832,10 +936,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
{
// 未全选,则全选当前页
...
...
@@ -848,39 +952,47 @@ const handleSelectAllPage = () => {
}
}
// 处理全选
const
handleSelectAllChange
=
()
=>
{
// 全选最大1万条提示
const
isShowAllDataMaxLengthTip
=
ref
(
false
)
const
loading
=
ref
(
false
)
// 加载数据loading
// 处理 全选(全部数据)
const
handleSelectAllChange
=
async
()
=>
{
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
=
(
val
)
=>
{
const
handleCurrentChange
=
async
(
val
)
=>
{
currentPage
.
value
=
val
fetchTableData
()
await
fetchTableData
()
if
(
isSelectedAll
.
value
)
{
handleSelectAllPage
()
}
}
...
...
@@ -898,6 +1010,20 @@ 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
;
...
...
src/views/dataLibrary/decree/index.vue
浏览文件 @
6dcd8134
...
...
@@ -4,26 +4,31 @@
<div
class=
"header-top"
>
<SelectBox
:placeholder-name=
"areaPlaceHolder"
select-title=
"科技领域"
:select-list=
"areaList"
:select-name=
"selectedArea"
@
update:select-text=
"handleSelectArea"
/>
<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"
@
update:custom-time=
"handleCustomDate"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"partyPlaceHolder"
select-title=
"所属党派"
:select-list=
"partyList"
:select-name=
"selectedParty"
@
update:select-text=
"handleSelectParty"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"congressPlaceHolder"
select-title=
"提出议院"
:select-list=
"congressList"
:select-name=
"selectedCongress"
@
update:select-text=
"handleSelectCongress"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"orgPlaceHolder"
select-title=
"委员会"
:select-list=
"orgList"
:select-name=
"selectedOrg"
@
update:select-text=
"handleSelectOrg"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"memberPlaceHolder"
select-title=
"提出议员"
:select-list=
"memberList"
:select-name=
"selectedmember"
@
update:select-text=
"handleSelectMember"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"statusPlaceHolder"
select-title=
"所处阶段"
:select-list=
"statusList"
:select-name=
"selectedStatus"
@
update:select-text=
"handleSelectStauts"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"insPlaceHolder"
select-title=
"发布机构"
:select-list=
"insList"
:select-name=
"selectedIns"
@
update:select-text=
"handleSelectIns"
/>
<SelectBox
v-if=
"isFolderAll"
:placeholder-name=
"decreeTypePlaceHolder"
select-title=
"政令类型"
:select-list=
"decreeTypeList"
:select-name=
"selectedDecreeType"
@
update:select-text=
"handleSelectDecreeType"
/>
<div
class=
"check-box"
>
<div
class=
"check-box-left text-tip-1"
>
{{
'是否涉华:'
}}
</div>
<div
class=
"check-box-right"
>
<el-checkbox
v-model=
"isInvolveCn"
class=
"involve-checkbox"
@
change=
"handleInvolveCnChange"
>
{{
'只看涉华法案'
}}
<el-checkbox
v-model=
"isInvolveCn"
class=
"involve-checkbox"
>
{{
'只看涉华政令'
}}
</el-checkbox>
</div>
</div>
<div
class=
"check-box"
>
<div
class=
"check-box-left text-tip-1"
>
{{
'科技相关:'
}}
</div>
<div
class=
"check-box-right"
>
<el-checkbox
v-model=
"isInvolveTechnology"
class=
"involve-checkbox"
>
{{
'只看科技相关'
}}
</el-checkbox>
</div>
</div>
...
...
@@ -52,7 +57,7 @@
<
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 === '
提案
时间'"
<
el
-
select
v
-
model
=
"selectedTime"
placeholder
=
"选择时间"
style
=
"width: 150px"
v
-
show
=
"curDemension === '
发布
时间'"
@
change
=
"handleChangeTime"
>
<
el
-
option
v
-
for
=
"item in timeList"
:
key
=
"item.value"
:
label
=
"item.label"
:
value
=
"item.value"
/>
<
/el-select
>
...
...
@@ -129,7 +134,7 @@
}}
<
/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"
>
...
...
@@ -166,7 +171,6 @@ import SelectBox from '../components/SelectBox/index.vue'
import
{
useRoute
}
from
"vue-router"
;
import
router
from
'@/router'
import
{
getPostOrgList
,
getPostMemberList
}
from
'@/api/bill/billHome'
import
{
search
}
from
'@/api/comprehensiveSearch'
import
{
ElMessage
}
from
'element-plus'
import
getDateRange
from
'@/utils/getDateRange'
...
...
@@ -184,7 +188,7 @@ const handleSwitchChartData = () => {
}
)[
0
]
setTimeout
(()
=>
{
activeChart
.
value
=
curDemensionItem
.
chartTypeList
[
0
]
if
(
curDemension
.
value
===
'
提案
时间'
)
{
if
(
curDemension
.
value
===
'
发布
时间'
)
{
if
(
selectedTime
.
value
===
'按月度统计'
)
{
curChartData
.
value
=
curDemensionItem
.
data
}
else
if
(
selectedTime
.
value
===
'按季度统计'
)
{
...
...
@@ -205,10 +209,10 @@ const totalNum = ref(0)
// 统计维度列表
const
staticsDemensionList
=
ref
([
{
name
:
'
提案
时间'
,
name
:
'
发布
时间'
,
active
:
true
,
chartTypeList
:
[
'折线图'
,
'柱状图'
],
chartTitle
:
'美国
会法案
提出数量随时间变化趋势'
,
chartTitle
:
'美国
科技政令
提出数量随时间变化趋势'
,
data
:
{
dataX
:
[],
dataY
:
[]
...
...
@@ -226,37 +230,16 @@ const staticsDemensionList = ref([
name
:
'科技领域'
,
active
:
false
,
chartTypeList
:
[
'饼状图'
],
chartTitle
:
'美国会法案领域分布'
,
data
:
[]
}
,
{
name
:
'提出议院'
,
active
:
false
,
chartTypeList
:
[
'饼状图'
],
chartTitle
:
'美国会法案议院分布'
,
chartTitle
:
'美国科技政令领域分布'
,
data
:
[]
}
,
{
name
:
'
提出委员会
'
,
name
:
'
发布机构
'
,
active
:
false
,
chartTypeList
:
[
'饼状图'
],
chartTitle
:
'美国
会法案委员会
分布'
,
chartTitle
:
'美国
科技政令发布机构
分布'
,
data
:
[]
}
,
{
name
:
'提出议员党派'
,
active
:
false
,
chartTypeList
:
[
'饼状图'
],
chartTitle
:
'美国会法案党派分布'
,
data
:
[]
}
,
{
name
:
'立法阶段'
,
active
:
false
,
chartTypeList
:
[
'饼状图'
],
chartTitle
:
'美国会法案立法阶段分布'
,
data
:
[]
}
,
}
])
// 当前维度下的图表列表
...
...
@@ -272,7 +255,7 @@ const curChartTitle = computed(() => {
}
)
// 当前维度
const
curDemension
=
ref
(
'
提案
时间'
)
const
curDemension
=
ref
(
'
发布
时间'
)
// 点击维度item
const
handleClickDemensionItem
=
(
val
)
=>
{
...
...
@@ -284,9 +267,9 @@ const handleClickDemensionItem = (val) => {
curDemension
.
value
=
val
.
name
setTimeout
(()
=>
{
activeChart
.
value
=
val
.
chartTypeList
[
0
]
if
(
curDemension
.
value
===
'
提案
时间'
&&
selectedTime
.
value
===
'按年度统计'
)
{
if
(
curDemension
.
value
===
'
发布
时间'
&&
selectedTime
.
value
===
'按年度统计'
)
{
curChartData
.
value
=
val
.
yearData
}
else
if
(
curDemension
.
value
===
'
提案
时间'
&&
selectedTime
.
value
===
'按季度统计'
)
{
}
else
if
(
curDemension
.
value
===
'
发布
时间'
&&
selectedTime
.
value
===
'按季度统计'
)
{
curChartData
.
value
=
val
.
quatarData
}
else
{
curChartData
.
value
=
val
.
data
...
...
@@ -347,62 +330,50 @@ const activeTagList = computed(() => {
if
(
selectedDate
.
value
===
'自定义'
)
{
arr
.
push
(
{
tag
:
'
提出
时间'
,
tag
:
'
发布
时间'
,
name
:
customTime
.
value
.
join
(
'至'
)
}
)
}
if
(
selected
Party
.
value
&&
selectedParty
.
value
!==
'全部党派
'
)
{
if
(
selected
Ins
.
value
&&
selectedIns
.
value
!==
'全部机构
'
)
{
arr
.
push
(
{
tag
:
'
所属党派
'
,
name
:
selected
Party
.
value
tag
:
'
发布机构
'
,
name
:
selected
Ins
.
value
}
)
}
if
(
selected
Congress
.
value
&&
selectedCongress
.
value
!==
'全部议院
'
)
{
if
(
selected
DecreeType
.
value
&&
selectedDecreeType
.
value
!==
'全部类型
'
)
{
arr
.
push
(
{
tag
:
'
提出议院
'
,
name
:
selected
Congress
.
value
tag
:
'
政令类型
'
,
name
:
selected
DecreeType
.
value
}
)
}
if
(
selectedOrg
.
value
&&
selectedOrg
.
value
!==
'全部委员会'
)
{
arr
.
push
(
{
tag
:
'委员会'
,
name
:
selectedOrg
.
value
}
)
}
if
(
selectedmember
.
value
&&
selectedmember
.
value
!==
'全部议员'
)
{
arr
.
push
(
{
tag
:
'提出议员'
,
name
:
selectedmember
.
value
}
)
}
if
(
selectedStatus
.
value
&&
selectedStatus
.
value
!==
'全部阶段'
)
{
if
(
isInvolveCn
.
value
)
{
const
involveStr
=
'涉华'
arr
.
push
(
{
tag
:
'
所处阶段
'
,
name
:
selectedStatus
.
value
tag
:
'
是否涉华
'
,
name
:
involveStr
}
)
}
if
(
isInvolveCn
.
value
)
{
const
involveStr
=
'涉华'
if
(
isInvolveTechnology
.
value
)
{
const
involveStr
=
'政令相关'
arr
.
push
(
{
tag
:
'
是否涉华
'
,
tag
:
'
科技相关
'
,
name
:
involveStr
}
)
}
return
arr
}
)
...
...
@@ -413,27 +384,23 @@ const handleCloseCurTag = (tag, index) => {
case
'科技领域'
:
selectedArea
.
value
=
'全部领域'
break
case
'
提出
时间'
:
case
'
发布
时间'
:
selectedDate
.
value
=
''
break
case
'所属党派'
:
selectedParty
.
value
=
'全部党派'
break
case
'提出议院'
:
selectedCongress
.
value
=
'全部议院'
case
'发布机构'
:
selectedIns
.
value
=
'全部机构'
break
case
'委员会'
:
selectedOrg
.
value
=
'全部委员会'
break
case
'提出议员'
:
selectedmember
.
value
=
'全部议员'
break
case
'所处阶段'
:
selectedStatus
.
value
=
'全部阶段'
case
'政令类型'
:
selectedDecreeType
.
value
=
'全部类型'
break
case
'是否涉华'
:
isInvolveCn
.
value
=
false
break
case
'科技相关'
:
isInvolveTechnology
.
value
=
false
break
}
// alert(tag.name)
// activeTagList.value.splice(index, 1)
...
...
@@ -620,142 +587,65 @@ const handleSelectDate = (value) => {
}
}
//
所属党派
const
party
List
=
ref
([
//
发布机构
const
ins
List
=
ref
([
{
name
:
'全部
党派
'
,
id
:
'全部
党派
'
name
:
'全部
机构
'
,
id
:
'全部
机构
'
}
,
{
name
:
'
共和党
'
,
id
:
'
共和党
'
name
:
'
机构1
'
,
id
:
'
机构1
'
}
,
{
name
:
'
民主党
'
,
id
:
'
民主党
'
name
:
'
机构2
'
,
id
:
'
机构2
'
}
,
{
name
:
'其他'
,
id
:
'其他'
}
,
])
const
selectedParty
=
ref
(
'全部党派'
)
const
partyPlaceHolder
=
ref
(
'请选择党派'
)
const
handleSelectParty
=
value
=>
{
selectedParty
.
value
=
value
}
// 议院列表
const
congressList
=
ref
([
{
name
:
'全部议院'
,
id
:
'全部议院'
}
,
{
name
:
'众议院'
,
id
:
'众议院'
}
,
{
name
:
'参议院'
,
id
:
'参议院'
}
])
const
selectedCongress
=
ref
(
'全部议院'
)
const
congressPlaceHolder
=
ref
(
'请选择议院'
)
const
handleSelectCongress
=
value
=>
{
selectedCongress
.
value
=
value
}
// 委员会
const
orgList
=
ref
([])
const
selectedOrg
=
ref
(
'全部委员会'
)
const
orgPlaceHolder
=
ref
(
'请选择委员会'
)
const
handleSelectOrg
=
value
=>
{
selectedOrg
.
value
=
value
}
const
handleGetOrgList
=
async
()
=>
{
try
{
const
res
=
await
getPostOrgList
()
console
.
log
(
'委员会列表'
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
orgList
.
value
=
res
.
data
.
map
(
item
=>
{
return
{
name
:
item
.
departmentName
,
id
:
item
.
departmentName
}
}
)
orgList
.
value
=
[{
name
:
'全部委员会'
,
id
:
'全部委员会'
}
,
...
orgList
.
value
]
}
}
catch
(
error
)
{
console
.
error
(
'获取委员会列表报错:'
,
error
);
}
}
// 提出议员
const
memberList
=
ref
([])
const
selectedmember
=
ref
(
'全部议员'
)
const
memberPlaceHolder
=
ref
(
'请选择议员'
)
const
handleSelectMember
=
value
=>
{
selectedmember
.
value
=
value
}
const
handleGetMemberList
=
async
()
=>
{
try
{
const
res
=
await
getPostMemberList
()
console
.
log
(
'议员列表'
,
res
);
if
(
res
.
code
===
200
&&
res
.
data
)
{
memberList
.
value
=
res
.
data
.
map
(
item
=>
{
return
{
name
:
item
.
memberName
,
id
:
item
.
memberName
,
memberId
:
item
.
memberId
}
}
)
memberList
.
value
=
[{
name
:
'全部议员'
,
id
:
'全部议员'
}
,
...
memberList
.
value
]
}
}
catch
(
error
)
{
console
.
error
(
'获取议员列表报错:'
,
error
);
}
const
selectedIns
=
ref
(
'全部机构'
)
const
insPlaceHolder
=
ref
(
'请选择发布机构'
)
const
handleSelectIns
=
value
=>
{
selectedIns
.
value
=
value
}
//
阶段
列表
const
status
List
=
ref
([
//
政令类型
列表
const
decreeType
List
=
ref
([
{
name
:
'全部
阶段
'
,
id
:
'全部
阶段
'
name
:
'全部
类型
'
,
id
:
'全部
类型
'
}
,
{
name
:
'
提出
'
,
id
:
'
0
'
name
:
'
行政命令
'
,
id
:
'
行政命令
'
}
,
{
name
:
'
通过
'
,
id
:
'
1
'
name
:
'
备忘录
'
,
id
:
'
备忘录
'
}
])
const
selected
Status
=
ref
(
'全部阶段
'
)
const
statusPlaceHolder
=
ref
(
'请选择立法阶段
'
)
const
handleSelect
Stauts
=
value
=>
{
selected
Status
.
value
=
value
const
selected
DecreeType
=
ref
(
'全部类型
'
)
const
decreeTypePlaceHolder
=
ref
(
'请选择政令类型
'
)
const
handleSelect
DecreeType
=
value
=>
{
selected
DecreeType
.
value
=
value
}
// 是否涉华
const
isInvolveCn
=
ref
(
false
)
const
handleInvolveCnChange
=
()
=>
{
}
// 是否科技相关
const
isInvolveTechnology
=
ref
(
false
)
// 清空条件
const
handleClear
=
()
=>
{
selectedArea
.
value
=
'全部领域'
selectedDate
.
value
=
''
selectedParty
.
value
=
'全部党派'
selectedCongress
.
value
=
'全部议院'
selectedOrg
.
value
=
'全部委员会'
selectedmember
.
value
=
'全部议员'
selectedStatus
.
value
=
'全部阶段'
selectedIns
.
value
=
'全部机构'
selectedDecreeType
.
value
=
'全部类型'
isInvolveCn
.
value
=
false
isInvolveTechnology
.
value
=
false
ElMessage
.
success
(
'已清空条件!'
)
}
...
...
@@ -809,16 +699,14 @@ const fetchTableData = async () => {
page
:
currentPage
.
value
,
size
:
pageSize
.
value
,
keyword
:
''
,
type
:
1
,
// type 1= 法案 2= 政令 3 =智库 4=智库报告 5=实体清单【制裁记录】 6= 人物 7= 机构 8=新闻 9= 社媒
type
:
2
,
// 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
,
affiliation
:
selectedIns
.
value
===
'全部机构'
?
null
:
selectedIns
.
value
,
originChamber
:
selectedDecreeType
.
value
===
'全部类型'
?
null
:
selectedDecreeType
.
value
,
sleStatus
:
isInvolveCn
?
'Y'
:
'N'
,
aaaa
:
isInvolveTechnology
?
'Y'
:
'N'
,
sort
:
isSort
.
value
?
0
:
1
// 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
}
try
{
...
...
@@ -847,18 +735,7 @@ const fetchTableData = async () => {
name
:
key
,
value
:
Number
(
value
)
}
))
staticsDemensionList
.
value
[
3
].
data
=
Object
.
entries
(
res
.
data
.
aggregationsOriginDepart
).
map
(([
key
,
value
])
=>
({
name
:
key
,
value
:
Number
(
value
)
}
))
staticsDemensionList
.
value
[
4
].
data
=
Object
.
entries
(
res
.
data
.
aggregationsAffiliation
).
map
(([
key
,
value
])
=>
({
name
:
key
,
value
:
Number
(
value
)
}
))
staticsDemensionList
.
value
[
5
].
data
=
Object
.
entries
(
res
.
data
.
aggregationsStatus
).
map
(([
key
,
value
])
=>
({
name
:
key
===
'1'
?
'通过'
:
'提出'
,
value
:
Number
(
value
)
}
))
}
const
curDemensionItem
=
staticsDemensionList
.
value
.
filter
(
item
=>
{
...
...
@@ -892,16 +769,14 @@ const fetchAllData = async () => {
page
:
1
,
size
:
9999
,
keyword
:
''
,
type
:
1
,
// type 1= 法案 2= 政令 3 =智库 4=智库报告 5=实体清单【制裁记录】 6= 人物 7= 机构 8=新闻 9= 社媒
type
:
2
,
// 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
,
affiliation
:
selectedIns
.
value
===
'全部机构'
?
null
:
selectedIns
.
value
,
originChamber
:
selectedDecreeType
.
value
===
'全部类型'
?
null
:
selectedDecreeType
.
value
,
sleStatus
:
isInvolveCn
?
'Y'
:
'N'
,
aaaa
:
isInvolveTechnology
?
'Y'
:
'N'
,
sort
:
isSort
.
value
?
0
:
1
// 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
}
try
{
...
...
@@ -1059,35 +934,27 @@ const initParam = () => {
customTime
.
value
=
JSON
.
parse
(
route
.
query
.
selectedDate
)
}
isInvolveCn
.
value
=
route
.
query
.
isInvolveCn
?
true
:
false
if
(
route
.
query
.
selectedStatus
)
{
selectedStatus
.
value
=
route
.
query
.
selectedStatus
===
'1'
?
'通过'
:
'提出'
}
else
{
selectedStatus
.
value
=
'全部阶段'
}
selectedCongress
.
value
=
route
.
query
.
selectedCongress
?
route
.
query
.
selectedCongress
:
'全部议院'
selectedOrg
.
value
=
route
.
query
.
selectedOrg
?
route
.
query
.
selectedOrg
:
'全部委员会'
isInvolveTechnology
.
value
=
route
.
query
.
isInvolveTechnology
?
true
:
false
selectedDecreeType
.
value
=
route
.
query
.
selectedDecreeType
?
route
.
query
.
selectedDecreeType
:
'全部类型'
const
query
=
route
.
query
;
if
(
Object
.
keys
(
query
).
length
>
0
)
{
sessionStorage
.
setItem
(
'
r
outeQuery'
,
JSON
.
stringify
(
query
));
sessionStorage
.
setItem
(
'
decreeR
outeQuery'
,
JSON
.
stringify
(
query
));
}
}
else
{
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
r
outeQuery'
)
||
'{
}
'
);
const
savedQuery
=
JSON
.
parse
(
sessionStorage
.
getItem
(
'
decreeR
outeQuery'
)
||
'{
}
'
);
selectedArea
.
value
=
savedQuery
.
domains
?
savedQuery
.
domains
:
'全部领域'
if
(
Array
.
isArray
(
JSON
.
parse
(
savedQuery
.
selectedDate
))
&&
JSON
.
parse
(
savedQuery
.
selectedDate
).
length
)
{
selectedDate
.
value
=
'自定义'
customTime
.
value
=
JSON
.
parse
(
savedQuery
.
selectedDate
)
}
isInvolveCn
.
value
=
savedQuery
.
isInvolveCn
?
true
:
false
if
(
savedQuery
.
selectedStatus
)
{
selectedStatus
.
value
=
savedQuery
.
selectedStatus
===
'1'
?
'通过'
:
'提出'
}
else
{
selectedStatus
.
value
=
'全部阶段'
}
selectedCongress
.
value
=
savedQuery
.
selectedCongress
?
savedQuery
.
selectedCongress
:
'全部议院'
selectedOrg
.
value
=
savedQuery
.
selectedOrg
?
savedQuery
.
selectedOrg
:
'全部委员会'
isInvolveTechnology
.
value
=
savedQuery
.
isInvolveTechnology
?
true
:
false
selectedDecreeType
.
value
=
savedQuery
.
selectedDecreeType
?
savedQuery
.
selectedDecreeType
:
'全部类型'
}
}
...
...
@@ -1138,8 +1005,6 @@ const handleExport = () => {
}
;
onMounted
(
async
()
=>
{
handleGetOrgList
()
handleGetMemberList
()
initParam
()
...
...
src/views/dataLibrary/index.vue
浏览文件 @
6dcd8134
...
...
@@ -600,8 +600,8 @@ onMounted(() => {
<
style
lang=
"scss"
>
.data-library-wrapper
{
width
:
1
920px
;
height
:
10
80px
;
width
:
1
00%
;
height
:
10
0%
;
overflow
:
hidden
;
// background: orange;
...
...
@@ -682,7 +682,7 @@ onMounted(() => {
}
.data-library-main
{
height
:
calc
(
100%
-
64px
)
;
height
:
100%
;
background
:
#F7F8F9
;
display
:
flex
;
...
...
@@ -816,8 +816,9 @@ onMounted(() => {
.main-box
{
width
:
1600px
;
height
:
968px
;
height
:
calc
(
100%
-
48px
)
;
overflow
:
hidden
;
overflow-y
:
auto
;
}
.select-box
{
...
...
src/views/home/index.vue
浏览文件 @
6dcd8134
...
...
@@ -555,7 +555,7 @@ body {
}
.main-container1
{
width
:
100%
;
height
:
calc
(
100vh
-
64px
)
!
important
;
height
:
calc
(
100vh
-
64px
);
position
:
relative
;
overflow
:
hidden
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论