提交 6dcd8134 authored 作者: 付康's avatar 付康

合并分支 'fk-dev' 到 'pre'

Fk dev 查看合并请求 !275
流水线 #195 已通过 于阶段
in 3 分 26 秒
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</div> </div>
<div class="header-footer"> <div class="header-footer">
<div class="header-footer-left"> <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)" /> @close="handleCloseCurTag(tag, index)" />
</div> </div>
<div class="header-footer-right"> <div class="header-footer-right">
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
</div> </div>
<div class="content-main"> <div class="content-main">
<ChartContainer :chartTitle="curChartTitle" :chartTypeList="curChartTypeList" <ChartContainer :chartTitle="curChartTitle" :chartTypeList="curChartTypeList"
@clickChartItem="handleSwitchActiveChart"> @clickChartItem="handleSwitchActiveChart" @download="handleDownloadCurChartData">
<template #chart-box> <template #chart-box>
<LineChart v-if="activeChart === '折线图'" :lineChartData="curChartData" /> <LineChart v-if="activeChart === '折线图'" :lineChartData="curChartData" />
<BarChart v-if="activeChart === '柱状图'" :barChartData="curChartData" /> <BarChart v-if="activeChart === '柱状图'" :barChartData="curChartData" />
...@@ -293,38 +293,100 @@ const timeList = ref([ ...@@ -293,38 +293,100 @@ const timeList = ref([
const activeTagList = computed(() => { const activeTagList = computed(() => {
const arr = [] const arr = []
if (selectedArea.value && selectedArea.value !== '全部领域') { if (selectedArea.value && selectedArea.value !== '全部领域') {
arr.push(selectedArea.value) arr.push(
{
tag: '科技领域',
name: selectedArea.value
}
)
} }
if (selectedDate.value === '自定义') { if (selectedDate.value === '自定义') {
arr.push(customTime.value.join('至')) arr.push(
{
tag: '提出时间',
name: customTime.value.join('至')
}
)
} }
if (selectedParty.value && selectedParty.value !== '全部党派') { if (selectedParty.value && selectedParty.value !== '全部党派') {
arr.push(selectedParty.value) arr.push(
{
tag: '所属党派',
name: selectedParty.value
}
)
} }
if (selectedCongress.value && selectedCongress.value !== '全部议院') { if (selectedCongress.value && selectedCongress.value !== '全部议院') {
arr.push(selectedCongress.value) arr.push(
{
tag: '提出议院',
name: selectedCongress.value
}
)
} }
if (selectedOrg.value && selectedOrg.value !== '全部委员会') { if (selectedOrg.value && selectedOrg.value !== '全部委员会') {
arr.push(selectedOrg.value) arr.push(
{
tag: '委员会',
name: selectedOrg.value
}
)
} }
if (selectedmember.value && selectedmember.value !== '全部议员') { if (selectedmember.value && selectedmember.value !== '全部议员') {
arr.push(selectedmember.value) arr.push(
{
tag: '提出议员',
name: selectedmember.value
}
)
} }
if (selectedStatus.value && selectedStatus.value !== '全部阶段') { if (selectedStatus.value && selectedStatus.value !== '全部阶段') {
arr.push(selectedStatus.value) arr.push(
{
tag: '所处阶段',
name: selectedStatus.value
}
)
} }
if (isInvolveCn.value) { if (isInvolveCn.value) {
const involveStr = '涉华' const involveStr = '涉华'
arr.push(involveStr) arr.push(
{
tag: '是否涉华',
name: involveStr
}
)
} }
return arr return arr
}) })
const handleCloseCurTag = (tag, index) => { const handleCloseCurTag = (tag, index) => {
// alert(tag.name) switch (tag.tag) {
activeTagList.value.splice(index, 1) 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('') // 当前激活的图表 const activeChart = ref('') // 当前激活的图表
...@@ -624,13 +686,25 @@ const statusList = ref([ ...@@ -624,13 +686,25 @@ const statusList = ref([
id: '全部阶段' id: '全部阶段'
}, },
{ {
name: '提出', name: '提出法案',
id: '0' id: '提出法案'
}, },
{ {
name: '通过', name: '通过法案',
id: '1' id: '通过法案'
} },
{
name: '众议院通过',
id: '众议院通过'
},
{
name: '参议院通过',
id: '参议院通过'
},
{
name: '双院通过',
id: '双院通过'
},
]) ])
const selectedStatus = ref('全部阶段') const selectedStatus = ref('全部阶段')
...@@ -668,8 +742,6 @@ const handleSwitchFolderAll = () => { ...@@ -668,8 +742,6 @@ const handleSwitchFolderAll = () => {
isFolderAll.value = !isFolderAll.value isFolderAll.value = !isFolderAll.value
} }
const tableRef = ref(null) const tableRef = ref(null)
// 表格数据 // 表格数据
...@@ -722,7 +794,7 @@ const fetchTableData = async () => { ...@@ -722,7 +794,7 @@ const fetchTableData = async () => {
originDepart: selectedOrg.value === '全部委员会' ? null : selectedOrg.value, originDepart: selectedOrg.value === '全部委员会' ? null : selectedOrg.value,
sponsorPersonName: selectedmember.value === '全部议员' ? null : selectedmember.value, sponsorPersonName: selectedmember.value === '全部议员' ? null : selectedmember.value,
status: selectedStatus.value === '通过' ? 1 : 0, status: selectedStatus.value === '通过' ? 1 : 0,
sleStatus: isInvolveCn ? 'Y' : 'N', isInvolveCn: isInvolveCn ? 'Y' : 'N',
sort: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序 sort: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
} }
try { try {
...@@ -788,6 +860,38 @@ const fetchTableData = async () => { ...@@ -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) => { const handleSelect = (selection, row) => {
if (selection.some(item => item.id === row.id)) { if (selection.some(item => item.id === row.id)) {
...@@ -832,10 +936,10 @@ const handleSelectAllPage = () => { ...@@ -832,10 +936,10 @@ const handleSelectAllPage = () => {
) )
if (currentPageSelected) { if (currentPageSelected) {
// 已全选,则取消当前页的全选 // 已全选,则不动当前页的全选
tableData.value.forEach(row => { tableData.value.forEach(row => {
tableRef.value.toggleRowSelection(row, false) tableRef.value.toggleRowSelection(row, false)
selectedMap.value.delete(row.id) // selectedMap.value.delete(row.id)
}) })
} else { } else {
// 未全选,则全选当前页 // 未全选,则全选当前页
...@@ -848,39 +952,47 @@ const handleSelectAllPage = () => { ...@@ -848,39 +952,47 @@ const handleSelectAllPage = () => {
} }
} }
// 处理全选 // 全选最大1万条提示
const handleSelectAllChange = () => { const isShowAllDataMaxLengthTip = ref(false)
const loading = ref(false) // 加载数据loading
// 处理 全选(全部数据)
const handleSelectAllChange = async () => {
if (isSelectedAll.value) { if (isSelectedAll.value) {
if (totalNum.value > 10000) {
isShowAllDataMaxLengthTip.value = true
}
loading.value = true
await fetchAllData()
handleSelectAllPage() handleSelectAllPage()
allData.value.forEach(row => {
if (!selectedMap.value.has(row.id)) {
selectedMap.value.set(row.id, row)
}
})
loading.value = false
} else { } else {
handleClearAll() 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 = () => { const handleClearAll = () => {
isSelectedAll.value = false
selectedMap.value.clear() selectedMap.value.clear()
tableRef.value?.clearSelection() tableRef.value?.clearSelection()
} }
// 翻页 // 翻页
const handleCurrentChange = (val) => { const handleCurrentChange = async (val) => {
currentPage.value = val currentPage.value = val
fetchTableData() await fetchTableData()
if (isSelectedAll.value) {
handleSelectAllPage()
}
} }
...@@ -898,6 +1010,20 @@ watch(tableData, () => { ...@@ -898,6 +1010,20 @@ watch(tableData, () => {
// 当前图表数据 // 当前图表数据
const curChartData = ref(null) 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 initParam = () => {
const hasQuery = Object.keys(route.query).length > 0; const hasQuery = Object.keys(route.query).length > 0;
......
...@@ -4,26 +4,31 @@ ...@@ -4,26 +4,31 @@
<div class="header-top"> <div class="header-top">
<SelectBox :placeholder-name="areaPlaceHolder" select-title="科技领域" :select-list="areaList" <SelectBox :placeholder-name="areaPlaceHolder" select-title="科技领域" :select-list="areaList"
:select-name="selectedArea" @update:select-text="handleSelectArea" /> :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" :select-name="selectedDate" :custom-time="customTime" @update:select-text="handleSelectDate"
@update:custom-time="handleCustomDate" /> @update:custom-time="handleCustomDate" />
<SelectBox v-if="isFolderAll" :placeholder-name="partyPlaceHolder" select-title="所属党派" :select-list="partyList" <SelectBox v-if="isFolderAll" :placeholder-name="insPlaceHolder" select-title="发布机构" :select-list="insList"
:select-name="selectedParty" @update:select-text="handleSelectParty" /> :select-name="selectedIns" @update:select-text="handleSelectIns" />
<SelectBox v-if="isFolderAll" :placeholder-name="congressPlaceHolder" select-title="提出议院" <SelectBox v-if="isFolderAll" :placeholder-name="decreeTypePlaceHolder" select-title="政令类型"
:select-list="congressList" :select-name="selectedCongress" @update:select-text="handleSelectCongress" /> :select-list="decreeTypeList" :select-name="selectedDecreeType"
<SelectBox v-if="isFolderAll" :placeholder-name="orgPlaceHolder" select-title="委员会" :select-list="orgList" @update:select-text="handleSelectDecreeType" />
: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" />
<div class="check-box"> <div class="check-box">
<div class="check-box-left text-tip-1"> <div class="check-box-left text-tip-1">
{{ '是否涉华:' }} {{ '是否涉华:' }}
</div> </div>
<div class="check-box-right"> <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> </el-checkbox>
</div> </div>
</div> </div>
...@@ -52,7 +57,7 @@ ...@@ -52,7 +57,7 @@
<div class="content-header"> <div class="content-header">
<ChartHeader :list="staticsDemensionList" @clickItem="handleClickDemensionItem"> <ChartHeader :list="staticsDemensionList" @clickItem="handleClickDemensionItem">
<template #chart-header-right> <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"> @change="handleChangeTime">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select> </el-select>
...@@ -129,7 +134,7 @@ ...@@ -129,7 +134,7 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </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> <template #default="scope">{{ scope.row.date }}</template>
</el-table-column> </el-table-column>
<el-table-column label="提案人" width="480"> <el-table-column label="提案人" width="480">
...@@ -166,7 +171,6 @@ import SelectBox from '../components/SelectBox/index.vue' ...@@ -166,7 +171,6 @@ import SelectBox from '../components/SelectBox/index.vue'
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import router from '@/router' import router from '@/router'
import { getPostOrgList, getPostMemberList } from '@/api/bill/billHome'
import { search } from '@/api/comprehensiveSearch' import { search } from '@/api/comprehensiveSearch'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import getDateRange from '@/utils/getDateRange' import getDateRange from '@/utils/getDateRange'
...@@ -184,7 +188,7 @@ const handleSwitchChartData = () => { ...@@ -184,7 +188,7 @@ const handleSwitchChartData = () => {
})[0] })[0]
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] activeChart.value = curDemensionItem.chartTypeList[0]
if (curDemension.value === '提案时间') { if (curDemension.value === '发布时间') {
if (selectedTime.value === '按月度统计') { if (selectedTime.value === '按月度统计') {
curChartData.value = curDemensionItem.data curChartData.value = curDemensionItem.data
} else if (selectedTime.value === '按季度统计') { } else if (selectedTime.value === '按季度统计') {
...@@ -205,10 +209,10 @@ const totalNum = ref(0) ...@@ -205,10 +209,10 @@ const totalNum = ref(0)
// 统计维度列表 // 统计维度列表
const staticsDemensionList = ref([ const staticsDemensionList = ref([
{ {
name: '提案时间', name: '发布时间',
active: true, active: true,
chartTypeList: ['折线图', '柱状图'], chartTypeList: ['折线图', '柱状图'],
chartTitle: '美国会法案提出数量随时间变化趋势', chartTitle: '美国科技政令提出数量随时间变化趋势',
data: { data: {
dataX: [], dataX: [],
dataY: [] dataY: []
...@@ -226,37 +230,16 @@ const staticsDemensionList = ref([ ...@@ -226,37 +230,16 @@ const staticsDemensionList = ref([
name: '科技领域', name: '科技领域',
active: false, active: false,
chartTypeList: ['饼状图'], chartTypeList: ['饼状图'],
chartTitle: '美国会法案领域分布', chartTitle: '美国科技政令领域分布',
data: [] data: []
}, },
{ {
name: '提出议院', name: '发布机构',
active: false, active: false,
chartTypeList: ['饼状图'], chartTypeList: ['饼状图'],
chartTitle: '美国会法案议院分布', chartTitle: '美国科技政令发布机构分布',
data: [] data: []
}, }
{
name: '提出委员会',
active: false,
chartTypeList: ['饼状图'],
chartTitle: '美国会法案委员会分布',
data: []
},
{
name: '提出议员党派',
active: false,
chartTypeList: ['饼状图'],
chartTitle: '美国会法案党派分布',
data: []
},
{
name: '立法阶段',
active: false,
chartTypeList: ['饼状图'],
chartTitle: '美国会法案立法阶段分布',
data: []
},
]) ])
// 当前维度下的图表列表 // 当前维度下的图表列表
...@@ -272,7 +255,7 @@ const curChartTitle = computed(() => { ...@@ -272,7 +255,7 @@ const curChartTitle = computed(() => {
}) })
// 当前维度 // 当前维度
const curDemension = ref('提案时间') const curDemension = ref('发布时间')
// 点击维度item // 点击维度item
const handleClickDemensionItem = (val) => { const handleClickDemensionItem = (val) => {
...@@ -284,9 +267,9 @@ const handleClickDemensionItem = (val) => { ...@@ -284,9 +267,9 @@ const handleClickDemensionItem = (val) => {
curDemension.value = val.name curDemension.value = val.name
setTimeout(() => { setTimeout(() => {
activeChart.value = val.chartTypeList[0] activeChart.value = val.chartTypeList[0]
if (curDemension.value === '提案时间' && selectedTime.value === '按年度统计') { if (curDemension.value === '发布时间' && selectedTime.value === '按年度统计') {
curChartData.value = val.yearData curChartData.value = val.yearData
} else if (curDemension.value === '提案时间' && selectedTime.value === '按季度统计') { } else if (curDemension.value === '发布时间' && selectedTime.value === '按季度统计') {
curChartData.value = val.quatarData curChartData.value = val.quatarData
} else { } else {
curChartData.value = val.data curChartData.value = val.data
...@@ -347,62 +330,50 @@ const activeTagList = computed(() => { ...@@ -347,62 +330,50 @@ const activeTagList = computed(() => {
if (selectedDate.value === '自定义') { if (selectedDate.value === '自定义') {
arr.push( arr.push(
{ {
tag: '提出时间', tag: '发布时间',
name: customTime.value.join('至') name: customTime.value.join('至')
} }
) )
} }
if (selectedParty.value && selectedParty.value !== '全部党派') { if (selectedIns.value && selectedIns.value !== '全部机构') {
arr.push( arr.push(
{ {
tag: '所属党派', tag: '发布机构',
name: selectedParty.value name: selectedIns.value
} }
) )
} }
if (selectedCongress.value && selectedCongress.value !== '全部议院') { if (selectedDecreeType.value && selectedDecreeType.value !== '全部类型') {
arr.push( arr.push(
{ {
tag: '提出议院', tag: '政令类型',
name: selectedCongress.value name: selectedDecreeType.value
} }
) )
} }
if (selectedOrg.value && selectedOrg.value !== '全部委员会') {
arr.push(
{
tag: '委员会',
name: selectedOrg.value
}
)
}
if (selectedmember.value && selectedmember.value !== '全部议员') {
arr.push(
{
tag: '提出议员',
name: selectedmember.value
}
)
} if (isInvolveCn.value) {
if (selectedStatus.value && selectedStatus.value !== '全部阶段') { const involveStr = '涉华'
arr.push( arr.push(
{ {
tag: '所处阶段', tag: '是否涉华',
name: selectedStatus.value name: involveStr
} }
) )
} }
if (isInvolveCn.value) {
const involveStr = '涉华' if (isInvolveTechnology.value) {
const involveStr = '政令相关'
arr.push( arr.push(
{ {
tag: '是否涉华', tag: '科技相关',
name: involveStr name: involveStr
} }
) )
} }
return arr return arr
}) })
...@@ -413,27 +384,23 @@ const handleCloseCurTag = (tag, index) => { ...@@ -413,27 +384,23 @@ const handleCloseCurTag = (tag, index) => {
case '科技领域': case '科技领域':
selectedArea.value = '全部领域' selectedArea.value = '全部领域'
break break
case '提出时间': case '发布时间':
selectedDate.value = '' selectedDate.value = ''
break break
case '所属党派': case '发布机构':
selectedParty.value = '全部党派' selectedIns.value = '全部机构'
break
case '提出议院':
selectedCongress.value = '全部议院'
break
case '委员会':
selectedOrg.value = '全部委员会'
break break
case '提出议员': case '政令类型':
selectedmember.value = '全部议员' selectedDecreeType.value = '全部类型'
break
case '所处阶段':
selectedStatus.value = '全部阶段'
break break
case '是否涉华': case '是否涉华':
isInvolveCn.value = false isInvolveCn.value = false
break break
case '科技相关':
isInvolveTechnology.value = false
break
} }
// alert(tag.name) // alert(tag.name)
// activeTagList.value.splice(index, 1) // activeTagList.value.splice(index, 1)
...@@ -620,142 +587,65 @@ const handleSelectDate = (value) => { ...@@ -620,142 +587,65 @@ const handleSelectDate = (value) => {
} }
} }
// 所属党派 // 发布机构
const partyList = ref([ const insList = ref([
{ {
name: '全部党派', name: '全部机构',
id: '全部党派' id: '全部机构'
}, },
{ {
name: '共和党', name: '机构1',
id: '共和党' id: '机构1'
}, },
{ {
name: '民主党', name: '机构2',
id: '民主党' id: '机构2'
}, },
{ {
name: '其他', name: '其他',
id: '其他' id: '其他'
}, },
]) ])
const selectedParty = ref('全部党派') const selectedIns = ref('全部机构')
const partyPlaceHolder = ref('请选择党派') const insPlaceHolder = ref('请选择发布机构')
const handleSelectParty = value => { const handleSelectIns = value => {
selectedParty.value = value selectedIns.value = value
} }
// 议院列表 // 政令类型列表
const congressList = ref([ const decreeTypeList = ref([
{ {
name: '全部议院', name: '全部类型',
id: '全部议院' id: '全部类型'
}, },
{ {
name: '众议院', name: '行政命令',
id: '众议院' id: '行政命令'
}, },
{ {
name: '参议院', name: '备忘录',
id: '参议院' id: '备忘录'
} }
]) ])
const selectedCongress = ref('全部议院') const selectedDecreeType = ref('全部类型')
const congressPlaceHolder = ref('请选择议院') const decreeTypePlaceHolder = ref('请选择政令类型')
const handleSelectCongress = value => { const handleSelectDecreeType = value => {
selectedCongress.value = value selectedDecreeType.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 statusList = ref([
{
name: '全部阶段',
id: '全部阶段'
},
{
name: '提出',
id: '0'
},
{
name: '通过',
id: '1'
}
])
const selectedStatus = ref('全部阶段')
const statusPlaceHolder = ref('请选择立法阶段')
const handleSelectStauts = value => {
selectedStatus.value = value
} }
// 是否涉华 // 是否涉华
const isInvolveCn = ref(false) const isInvolveCn = ref(false)
const handleInvolveCnChange = () => { // 是否科技相关
} const isInvolveTechnology = ref(false)
// 清空条件 // 清空条件
const handleClear = () => { const handleClear = () => {
selectedArea.value = '全部领域' selectedArea.value = '全部领域'
selectedDate.value = '' selectedDate.value = ''
selectedParty.value = '全部党派' selectedIns.value = '全部机构'
selectedCongress.value = '全部议院' selectedDecreeType.value = '全部类型'
selectedOrg.value = '全部委员会'
selectedmember.value = '全部议员'
selectedStatus.value = '全部阶段'
isInvolveCn.value = false isInvolveCn.value = false
isInvolveTechnology.value = false
ElMessage.success('已清空条件!') ElMessage.success('已清空条件!')
} }
...@@ -809,16 +699,14 @@ const fetchTableData = async () => { ...@@ -809,16 +699,14 @@ const fetchTableData = async () => {
page: currentPage.value, page: currentPage.value,
size: pageSize.value, size: pageSize.value,
keyword: '', 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], domains: selectedArea.value === '全部领域' ? null : [selectedArea.value],
proposedDateStart: customTime.value[0], proposedDateStart: customTime.value[0],
proposedDateEnd: customTime.value[1], proposedDateEnd: customTime.value[1],
affiliation: selectedParty.value === '全部党派' ? null : selectedParty.value, affiliation: selectedIns.value === '全部机构' ? null : selectedIns.value,
originChamber: selectedCongress.value === '全部议院' ? null : selectedCongress.value, originChamber: selectedDecreeType.value === '全部类型' ? null : selectedDecreeType.value,
originDepart: selectedOrg.value === '全部委员会' ? null : selectedOrg.value,
sponsorPersonName: selectedmember.value === '全部议员' ? null : selectedmember.value,
status: selectedStatus.value === '通过' ? 1 : 0,
sleStatus: isInvolveCn ? 'Y' : 'N', sleStatus: isInvolveCn ? 'Y' : 'N',
aaaa: isInvolveTechnology? 'Y' : 'N',
sort: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序 sort: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
} }
try { try {
...@@ -847,18 +735,7 @@ const fetchTableData = async () => { ...@@ -847,18 +735,7 @@ const fetchTableData = async () => {
name: key, name: key,
value: Number(value) 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 => { const curDemensionItem = staticsDemensionList.value.filter(item => {
...@@ -892,16 +769,14 @@ const fetchAllData = async () => { ...@@ -892,16 +769,14 @@ const fetchAllData = async () => {
page: 1, page: 1,
size: 9999, size: 9999,
keyword: '', 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], domains: selectedArea.value === '全部领域' ? null : [selectedArea.value],
proposedDateStart: customTime.value[0], proposedDateStart: customTime.value[0],
proposedDateEnd: customTime.value[1], proposedDateEnd: customTime.value[1],
affiliation: selectedParty.value === '全部党派' ? null : selectedParty.value, affiliation: selectedIns.value === '全部机构' ? null : selectedIns.value,
originChamber: selectedCongress.value === '全部议院' ? null : selectedCongress.value, originChamber: selectedDecreeType.value === '全部类型' ? null : selectedDecreeType.value,
originDepart: selectedOrg.value === '全部委员会' ? null : selectedOrg.value,
sponsorPersonName: selectedmember.value === '全部议员' ? null : selectedmember.value,
status: selectedStatus.value === '通过' ? 1 : 0,
sleStatus: isInvolveCn ? 'Y' : 'N', sleStatus: isInvolveCn ? 'Y' : 'N',
aaaa: isInvolveTechnology? 'Y' : 'N',
sort: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序 sort: isSort.value ? 0 : 1 // 0 先按分数降序 后按时间降序 1 先按分数降序,再按时间升序
} }
try { try {
...@@ -1059,35 +934,27 @@ const initParam = () => { ...@@ -1059,35 +934,27 @@ const initParam = () => {
customTime.value = JSON.parse(route.query.selectedDate) customTime.value = JSON.parse(route.query.selectedDate)
} }
isInvolveCn.value = route.query.isInvolveCn ? true : false 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 : '全部议院' isInvolveTechnology.value = route.query.isInvolveTechnology ? true : false
selectedOrg.value = route.query.selectedOrg ? route.query.selectedOrg : '全部委员会'
selectedDecreeType.value = route.query.selectedDecreeType ? route.query.selectedDecreeType : '全部类型'
const query = route.query; const query = route.query;
if (Object.keys(query).length > 0) { if (Object.keys(query).length > 0) {
sessionStorage.setItem('routeQuery', JSON.stringify(query)); sessionStorage.setItem('decreeRouteQuery', JSON.stringify(query));
} }
} else { } else {
const savedQuery = JSON.parse(sessionStorage.getItem('routeQuery') || '{}'); const savedQuery = JSON.parse(sessionStorage.getItem('decreeRouteQuery') || '{}');
selectedArea.value = savedQuery.domains ? savedQuery.domains : '全部领域' selectedArea.value = savedQuery.domains ? savedQuery.domains : '全部领域'
if (Array.isArray(JSON.parse(savedQuery.selectedDate)) && JSON.parse(savedQuery.selectedDate).length) { if (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)
} }
isInvolveCn.value = savedQuery.isInvolveCn ? true : false isInvolveCn.value = savedQuery.isInvolveCn ? true : false
if (savedQuery.selectedStatus) {
selectedStatus.value = savedQuery.selectedStatus === '1' ? '通过' : '提出'
} else {
selectedStatus.value = '全部阶段'
}
selectedCongress.value = savedQuery.selectedCongress ? savedQuery.selectedCongress : '全部议院' isInvolveTechnology.value = savedQuery.isInvolveTechnology ? true : false
selectedOrg.value = savedQuery.selectedOrg ? savedQuery.selectedOrg : '全部委员会'
selectedDecreeType.value = savedQuery.selectedDecreeType ? savedQuery.selectedDecreeType : '全部类型'
} }
} }
...@@ -1138,8 +1005,6 @@ const handleExport = () => { ...@@ -1138,8 +1005,6 @@ const handleExport = () => {
}; };
onMounted(async () => { onMounted(async () => {
handleGetOrgList()
handleGetMemberList()
initParam() initParam()
......
...@@ -600,8 +600,8 @@ onMounted(() => { ...@@ -600,8 +600,8 @@ onMounted(() => {
<style lang="scss"> <style lang="scss">
.data-library-wrapper { .data-library-wrapper {
width: 1920px; width: 100%;
height: 1080px; height: 100%;
overflow: hidden; overflow: hidden;
// background: orange; // background: orange;
...@@ -682,7 +682,7 @@ onMounted(() => { ...@@ -682,7 +682,7 @@ onMounted(() => {
} }
.data-library-main { .data-library-main {
height: calc(100% - 64px); height: 100%;
background: #F7F8F9; background: #F7F8F9;
display: flex; display: flex;
...@@ -816,8 +816,9 @@ onMounted(() => { ...@@ -816,8 +816,9 @@ onMounted(() => {
.main-box { .main-box {
width: 1600px; width: 1600px;
height: 968px; height: calc(100% - 48px);
overflow: hidden; overflow: hidden;
overflow-y: auto;
} }
.select-box { .select-box {
......
...@@ -555,7 +555,7 @@ body { ...@@ -555,7 +555,7 @@ body {
} }
.main-container1 { .main-container1 {
width: 100%; width: 100%;
height: calc(100vh - 64px) !important; height: calc(100vh - 64px);
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论