提交 d26a1cfc authored 作者: 付康's avatar 付康

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

Fk dev 查看合并请求 !338
流水线 #447 已通过 于阶段
in 4 分 37 秒
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
</div> </div>
<!-- <div class="more" @click="handleToMoreNews">{{ "更多 +" }}</div> --> <!-- <div class="more" @click="handleToMoreNews">{{ "更多 +" }}</div> -->
</div> </div>
<div class="msg-bubble-main" ref="scrollContainer"> <div class="msg-bubble-main" ref="scrollContainer" @mouseenter="pauseScroll" @mouseleave="resumeScroll">
<div class="message-bubble" v-for="(item, index) in displayList" :key="index" @click="handleClickPerson(item)"> <div class="message-bubble" v-for="(item, index) in infiniteList" :key="index" @click="handleClickPerson(item)">
<div class="avatar-container"> <div class="avatar-container">
<img :src="item[props.imageUrl] || avatarUser" :alt="item[props.name]" class="avatar" /> <img :src="item[props.imageUrl] || avatarUser" :alt="item[props.name]" class="avatar" />
<div class="avatar-containerOne" v-if="isRepublicanParty"> <div class="avatar-containerOne" v-if="isRepublicanParty">
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</template> </template>
<script setup> <script setup>
import { ref, computed, onMounted, onBeforeUnmount } from "vue"; import { ref, computed, watch, nextTick, onMounted, onBeforeUnmount, onUnmounted } from "vue";
import avatarUser from "@/assets/images/avatar_user.png"; import avatarUser from "@/assets/images/avatar_user.png";
const emit = defineEmits(["click", "info-click"]); const emit = defineEmits(["click", "info-click"]);
...@@ -135,30 +135,164 @@ const displayList = computed(() => { ...@@ -135,30 +135,164 @@ const displayList = computed(() => {
return list return list
}) })
const scrollSpeed = ref(30)
const autoStart = ref(true)
const copyCount = ref(3)
// 创建无限列表(复制多份)
const infiniteList = computed(() => {
if (!displayList.value || displayList.value.length === 0) return []
const result = []
for (let i = 0; i < copyCount.value; i++) {
result.push(...displayList.value)
}
return result
})
// 状态
let animationId = null
let lastTimestamp = 0
let isPaused = ref(false)
let isScrolling = ref(false)
// 滚动动画函数(使用 requestAnimationFrame)
const scrollAnimation = (timestamp) => {
if (!scrollContainer.value || isPaused.value) {
if (!isPaused.value) {
animationId = requestAnimationFrame(scrollAnimation)
}
return
}
if (!lastTimestamp) {
lastTimestamp = timestamp
animationId = requestAnimationFrame(scrollAnimation)
return
}
// 计算时间差(秒)
const deltaTime = Math.min(0.033, (timestamp - lastTimestamp) / 1000) // 限制最大33ms
if (deltaTime <= 0) {
lastTimestamp = timestamp
animationId = requestAnimationFrame(scrollAnimation)
return
}
const container = scrollContainer.value
const scrollHeight = container.scrollHeight
const clientHeight = container.clientHeight
// 计算滚动步长
const step = scrollSpeed.value * deltaTime
let newScrollTop = container.scrollTop + step
// 检查是否滚动到底部
const maxScrollTop = scrollHeight - clientHeight
if (newScrollTop >= maxScrollTop - 1) {
// 到达底部,无缝跳转到顶部
container.scrollTop = 0
// 重置时间戳避免跳跃
lastTimestamp = timestamp
} else {
container.scrollTop = newScrollTop
}
lastTimestamp = timestamp
animationId = requestAnimationFrame(scrollAnimation)
}
// 开始滚动 // 开始滚动
const startScroll = () => { const startScroll = () => {
if (timer) clearInterval(timer) if (animationId) {
timer = setInterval(() => { cancelAnimationFrame(animationId)
currentIndex.value = (currentIndex.value + 1) % props.messageList.length animationId = null
}, 2000) // 每秒滚动一条 }
if (isPaused.value) return
lastTimestamp = 0
isScrolling.value = true
animationId = requestAnimationFrame(scrollAnimation)
} }
// 停止滚动 // 停止滚动
const stopScroll = () => { const stopScroll = () => {
if (timer) { if (animationId) {
clearInterval(timer) cancelAnimationFrame(animationId)
timer = null animationId = null
}
lastTimestamp = 0
isScrolling.value = false
}
// 暂停滚动
const pauseScroll = () => {
if (isPaused.value) return
isPaused.value = true
stopScroll()
}
// 恢复滚动
const resumeScroll = () => {
if (!isPaused.value) return
isPaused.value = false
if (autoStart.value) {
startScroll()
}
}
// 重置滚动位置(可选方法)
const resetScrollPosition = () => {
if (scrollContainer.value) {
scrollContainer.value.scrollTop = 0
} }
} }
onMounted(() => { // 监听 displayList 变化
// if (props.messageList.length > 3) { watch(
() => displayList.value,
async (newVal, oldVal) => {
if (newVal && newVal.length > 0) {
await nextTick()
// 如果列表内容变化,重置滚动位置并重新开始
if (scrollContainer.value) {
const wasPaused = isPaused.value
stopScroll()
scrollContainer.value.scrollTop = 0
if (!wasPaused && autoStart.value) {
isPaused.value = false
startScroll() startScroll()
// } }
}
}
},
{ deep: true, immediate: false }
)
// 监听 scrollSpeed 变化
watch(
() => scrollSpeed.value,
() => {
if (isScrolling.value && !isPaused.value) {
// 重新启动滚动以应用新速度
stopScroll()
startScroll()
}
}
)
// 组件挂载
onMounted(async () => {
await nextTick()
if (autoStart.value && displayList.value && displayList.value.length > 0) {
startScroll()
}
}) })
onBeforeUnmount(() => { // 组件卸载
onUnmounted(() => {
stopScroll() stopScroll()
}) })
......
...@@ -52,8 +52,8 @@ ...@@ -52,8 +52,8 @@
<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" <el-select v-model="selectedTime" placeholder="选择时间" style="width: 150px" v-show="curDemension === '提案时间'"
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>
...@@ -77,7 +77,6 @@ ...@@ -77,7 +77,6 @@
<div class="data-main-box" v-else> <div class="data-main-box" v-else>
<div class="data-main-box-header"> <div class="data-main-box-header">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<!-- <img src="@/views/dataLibrary/assets/icons/data-active.svg" alt=""> -->
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
</div> </div>
<div class="num-box text-title-3-bold"> <div class="num-box text-title-3-bold">
...@@ -923,7 +922,17 @@ const fetchTableData = async () => { ...@@ -923,7 +922,17 @@ const fetchTableData = async () => {
timer3.value = setTimeout(() => { timer3.value = setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] 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 curChartData.value = curDemensionItem.data
}
}) })
} catch (error) { } catch (error) {
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="chart-main-box" v-if="isShowChart"> <div class="chart-main-box" v-if="isShowChart" v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="info-box"> <div class="info-box">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="data-main-box box-glow" v-else> <div class="data-main-box box-glow" v-else v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="data-main-box-header"> <div class="data-main-box-header">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
</div> </div>
</div> </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" <el-table ref="tableRef" :data="tableData" row-key="id" @selection-change="handleSelectionChange"
@select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }"> @select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }">
<el-table-column type="selection" width="40" /> <el-table-column type="selection" width="40" />
...@@ -794,7 +794,7 @@ const fetchTableData = async () => { ...@@ -794,7 +794,7 @@ const fetchTableData = async () => {
} }
staticsDemensionList.value[4].chartTypeList[0].data = Object.entries(res.data.aggregationIsSanctioned).map(([key, value]) => ({ staticsDemensionList.value[4].chartTypeList[0].data = Object.entries(res.data.aggregationIsSanctioned).map(([key, value]) => ({
name: key, name: key === 'Y' ? '是' : '否',
value: Number(value) value: Number(value)
})) }))
...@@ -808,7 +808,17 @@ const fetchTableData = async () => { ...@@ -808,7 +808,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] activeChart.value = curDemensionItem.chartTypeList[0]
if (curDemension.value === '成立时间') {
if (selectedTime.value === '按月度统计') {
curChartData.value = curDemensionItem.chartTypeList[0].data curChartData.value = curDemensionItem.chartTypeList[0].data
} else if (selectedTime.value === '按季度统计') {
curChartData.value = curDemensionItem.chartTypeList[0].quatarData
} else {
curChartData.value = curDemensionItem.chartTypeList[0].yearData
}
} else {
curChartData.value = curDemensionItem.chartTypeList[0].data
}
}) })
} catch (error) { } catch (error) {
......
...@@ -774,7 +774,17 @@ const fetchTableData = async () => { ...@@ -774,7 +774,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] 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 curChartData.value = curDemensionItem.data
}
}) })
} catch (error) { } catch (error) {
......
...@@ -683,7 +683,17 @@ const fetchTableData = async () => { ...@@ -683,7 +683,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] 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 curChartData.value = curDemensionItem.data
}
}) })
loading.value = false loading.value = false
} catch (error) { } catch (error) {
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
@close="handleCloseCurTag(tag, index)" /> @close="handleCloseCurTag(tag, index)" />
</div> </div>
<div class="header-footer-right"> <div class="header-footer-right">
<HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll" @clear="handleClear" <HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll"
@confirm="handleConfirm" /> @clear="handleClear" @confirm="handleConfirm" />
</div> </div>
</div> </div>
</div> </div>
...@@ -612,7 +612,17 @@ const fetchTableData = async () => { ...@@ -612,7 +612,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] 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 curChartData.value = curDemensionItem.data
}
}) })
loading.value = false loading.value = false
} catch (error) { } catch (error) {
......
...@@ -862,7 +862,17 @@ const fetchTableData = async () => { ...@@ -862,7 +862,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] 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 curChartData.value = curDemensionItem.data
}
}) })
loading.value = false loading.value = false
} catch (error) { } catch (error) {
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
@close="handleCloseCurTag(tag, index)" /> @close="handleCloseCurTag(tag, index)" />
</div> </div>
<div class="header-footer-right"> <div class="header-footer-right">
<HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll" @clear="handleClear" <HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll"
@confirm="handleConfirm" /> @clear="handleClear" @confirm="handleConfirm" />
</div> </div>
</div> </div>
</div> </div>
...@@ -613,7 +613,17 @@ const fetchTableData = async () => { ...@@ -613,7 +613,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] activeChart.value = curDemensionItem.chartTypeList[0]
if (curDemension.value === '制裁时间') {
if (selectedTime.value === '按月度统计') {
curChartData.value = curDemensionItem.data curChartData.value = curDemensionItem.data
} else if (selectedTime.value === '按季度统计') {
curChartData.value = curDemensionItem.quatarData
} else {
curChartData.value = curDemensionItem.yearData
}
} else {
curChartData.value = curDemensionItem.data
}
}) })
loading.value = false loading.value = false
} catch (error) { } catch (error) {
...@@ -1010,6 +1020,7 @@ onMounted(async () => { ...@@ -1010,6 +1020,7 @@ onMounted(async () => {
} }
} }
} }
.data-main-box { .data-main-box {
width: 1568px; width: 1568px;
min-height: 810px; min-height: 810px;
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="chart-main-box" v-if="isShowChart"> <div class="chart-main-box" v-if="isShowChart" v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="info-box"> <div class="info-box">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="data-main-box" v-else> <div class="data-main-box" v-else v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="data-main-box-header"> <div class="data-main-box-header">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -99,7 +99,7 @@ ...@@ -99,7 +99,7 @@
</div> </div>
</div> </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" <el-table ref="tableRef" :data="tableData" row-key="id" @selection-change="handleSelectionChange"
@select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }"> @select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }">
<el-table-column type="selection" width="40" /> <el-table-column type="selection" width="40" />
...@@ -152,14 +152,6 @@ import { getProvinceList, getCountryList, getEntityTypes } from '@/api/comprehen ...@@ -152,14 +152,6 @@ import { getProvinceList, getCountryList, getEntityTypes } from '@/api/comprehen
const route = useRoute(); const route = useRoute();
const isShowProvinceBox = computed(() => {
let isShow = false
if (isFolderAll.value && (selectedCountry.value === '0101' || selectedCountry.value === '全部国家')) {
isShow = true
}
return isShow
})
// 图表/数据 // 图表/数据
const isShowChart = ref(false) const isShowChart = ref(false)
// 点击切换数据/图表 // 点击切换数据/图表
...@@ -170,17 +162,17 @@ const handleSwitchChartData = () => { ...@@ -170,17 +162,17 @@ const handleSwitchChartData = () => {
return item.name === curDemension.value return item.name === curDemension.value
})[0] })[0]
// setTimeout(() => { // setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] activeChart.value = curDemensionItem.chartTypeList[0].name
if (curDemension.value === '成立时间') { if (curDemension.value === '成立时间') {
if (selectedTime.value === '按月度统计') { if (selectedTime.value === '按月度统计') {
curChartData.value = curDemensionItem.data curChartData.value = curDemensionItem.chartTypeList[0].data
} else if (selectedTime.value === '按季度统计') { } else if (selectedTime.value === '按季度统计') {
curChartData.value = curDemensionItem.quatarData curChartData.value = curDemensionItem.chartTypeList[0].quatarData
} else { } else {
curChartData.value = curDemensionItem.yearData curChartData.value = curDemensionItem.chartTypeList[0].yearData
} }
} else { } else {
curChartData.value = curDemensionItem.data curChartData.value = curDemensionItem.chartTypeList[0].data
} }
// }) // })
} }
...@@ -273,13 +265,13 @@ const handleClickDemensionItem = (val) => { ...@@ -273,13 +265,13 @@ const handleClickDemensionItem = (val) => {
val.active = true val.active = true
curDemension.value = val.name curDemension.value = val.name
setTimeout(() => { setTimeout(() => {
activeChart.value = val.chartTypeList[0] activeChart.value = val.chartTypeList[0].name
if (curDemension.value === '成立时间' && selectedTime.value === '按年度统计') { if (curDemension.value === '成立时间' && selectedTime.value === '按年度统计') {
curChartData.value = val.yearData curChartData.value = val.chartTypeList[0].yearData
} else if (curDemension.value === '成立时间' && selectedTime.value === '按季度统计') { } else if (curDemension.value === '成立时间' && selectedTime.value === '按季度统计') {
curChartData.value = val.quatarData curChartData.value = val.chartTypeList[0].quatarData
} else { } else {
curChartData.value = val.data curChartData.value = val.chartTypeList[0].data
} }
}) })
} }
...@@ -307,17 +299,17 @@ const handleChangeTime = value => { ...@@ -307,17 +299,17 @@ const handleChangeTime = value => {
if (value === '按月度统计') { if (value === '按月度统计') {
setTimeout(() => { setTimeout(() => {
activeChart.value = curChart activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].data curChartData.value = staticsDemensionList.value[0].chartTypeList[0].data
}) })
} else if (value === '按季度统计') { } else if (value === '按季度统计') {
setTimeout(() => { setTimeout(() => {
activeChart.value = curChart activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].quatarData curChartData.value = staticsDemensionList.value[0].chartTypeList[0].quatarData
}) })
} else { } else {
setTimeout(() => { setTimeout(() => {
activeChart.value = curChart activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].yearData curChartData.value = staticsDemensionList.value[0].chartTypeList[0].yearData
}) })
} }
} }
...@@ -371,7 +363,13 @@ const activeChart = ref('') // 当前激活的图表 ...@@ -371,7 +363,13 @@ const activeChart = ref('') // 当前激活的图表
const handleSwitchActiveChart = val => { const handleSwitchActiveChart = val => {
activeChart.value = val.name activeChart.value = val.name
const curChartItem = curChartTypeList.value.filter(item => item.name === val.name)[0] const curChartItem = curChartTypeList.value.filter(item => item.name === val.name)[0]
if (curDemension.value === '成立时间' && selectedTime.value === '按年度统计') {
curChartData.value = curChartItem.yearData
} else if (curDemension.value === '成立时间' && selectedTime.value === '按季度统计') {
curChartData.value = curChartItem.quatarData
} else {
curChartData.value = curChartItem.data curChartData.value = curChartItem.data
}
} }
// 数据- 是否全选 // 数据- 是否全选
...@@ -532,34 +530,38 @@ const fetchTableData = async () => { ...@@ -532,34 +530,38 @@ const fetchTableData = async () => {
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
tableData.value = res.data.records tableData.value = res.data.records
totalNum.value = res.data.total totalNum.value = res.data.total
staticsDemensionList.value[0].data = { staticsDemensionList.value[0].chartTypeList[0].data = {
dataX: Object.keys(res.data.aggregationsDate),
dataY: Object.values(res.data.aggregationsDate).map(value => Number(value))
}
staticsDemensionList.value[0].chartTypeList[0].quatarData = {
dataX: Object.keys(res.data.aggregationsQuarter),
dataY: Object.values(res.data.aggregationsQuarter).map(value => Number(value))
}
staticsDemensionList.value[0].chartTypeList[0].yearData = {
dataX: Object.keys(res.data.aggregationsYear),
dataY: Object.values(res.data.aggregationsYear).map(value => Number(value))
}
staticsDemensionList.value[0].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationsDate), dataX: Object.keys(res.data.aggregationsDate),
dataY: Object.values(res.data.aggregationsDate).map(value => Number(value)) dataY: Object.values(res.data.aggregationsDate).map(value => Number(value))
} }
staticsDemensionList.value[0].quatarData = { staticsDemensionList.value[0].chartTypeList[1].quatarData = {
dataX: Object.keys(res.data.aggregationsQuarter), dataX: Object.keys(res.data.aggregationsQuarter),
dataY: Object.values(res.data.aggregationsQuarter).map(value => Number(value)) dataY: Object.values(res.data.aggregationsQuarter).map(value => Number(value))
} }
staticsDemensionList.value[0].yearData = { staticsDemensionList.value[0].chartTypeList[1].yearData = {
dataX: Object.keys(res.data.aggregationsYear), dataX: Object.keys(res.data.aggregationsYear),
dataY: Object.values(res.data.aggregationsYear).map(value => Number(value)) dataY: Object.values(res.data.aggregationsYear).map(value => Number(value))
} }
staticsDemensionList.value[1].data = Object.entries(res.data.aggregationCountryId).map(([key, value]) => ({ staticsDemensionList.value[1].chartTypeList[0].data = Object.entries(res.data.aggregationCountryId).map(([key, value]) => ({
name: key, name: key,
value: Number(value) value: Number(value)
})) }))
// staticsDemensionList.value[2].data = Object.entries(res.data.aggregationSentityTypeCode).map(([key, value]) => ({ staticsDemensionList.value[1].chartTypeList[1].data = {
// name: key, dataX: Object.keys(res.data.aggregationCountryId),
// value: Number(value) dataY: Object.values(res.data.aggregationCountryId).map(value => Number(value))
// })) }
// staticsDemensionList.value[3].data = Object.entries(res.data.aggregationCountryId).map(([key, value]) => ({
// name: key,
// value: Number(value)
// }))
// staticsDemensionList.value[4].data = Object.entries(res.data.aggregationProvinceName).map(([key, value]) => ({
// name: key,
// value: Number(value)
// }))
} }
...@@ -570,8 +572,18 @@ const fetchTableData = async () => { ...@@ -570,8 +572,18 @@ const fetchTableData = async () => {
activeChart.value = '' activeChart.value = ''
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] activeChart.value = curDemensionItem.chartTypeList[0].name
curChartData.value = curDemensionItem.data if (curDemension.value === '成立时间') {
if (selectedTime.value === '按月度统计') {
curChartData.value = curDemensionItem.chartTypeList[0].data
} else if (selectedTime.value === '按季度统计') {
curChartData.value = curDemensionItem.chartTypeList[0].quatarData
} else {
curChartData.value = curDemensionItem.chartTypeList[0].yearData
}
} else {
curChartData.value = curDemensionItem.chartTypeList[0].data
}
}) })
loading.value = false loading.value = false
} catch (error) { } catch (error) {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="chart-main-box" v-if="isShowChart"> <div class="chart-main-box" v-if="isShowChart" v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="info-box"> <div class="info-box">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="data-main-box" v-else> <div class="data-main-box" v-else v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="data-main-box-header"> <div class="data-main-box-header">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
</div> </div>
</div> </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" <el-table ref="tableRef" :data="tableData" row-key="id" @selection-change="handleSelectionChange"
@select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }"> @select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }">
<el-table-column type="selection" width="40" /> <el-table-column type="selection" width="40" />
...@@ -586,7 +586,17 @@ const fetchTableData = async () => { ...@@ -586,7 +586,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0] 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 curChartData.value = curDemensionItem.data
}
}) })
} catch (error) { } catch (error) {
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="chart-main-box" v-if="isShowChart"> <div class="chart-main-box" v-if="isShowChart" v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="info-box"> <div class="info-box">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -34,13 +34,13 @@ ...@@ -34,13 +34,13 @@
<div class="content-box"> <div class="content-box">
<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>
</template> </template> -->
</ChartHeader> </ChartHeader>
</div> </div>
<div class="content-main"> <div class="content-main">
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="data-main-box" v-else> <div class="data-main-box" v-else v-loading="loading" element-loading-text="数据加载中,请稍候...">
<div class="data-main-box-header"> <div class="data-main-box-header">
<div class="switch-box" @click="handleSwitchChartData"> <div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" /> <DataChartSwitchBox :is-show-data="!isShowChart" />
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
</div> </div>
</div> </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" <el-table ref="tableRef" :data="tableData" row-key="id" @selection-change="handleSelectionChange"
@select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }"> @select="handleSelect" @select-all="handleSelectAll" style="width: 100%" :row-style="{ height: '52px' }">
<el-table-column type="selection" width="40" /> <el-table-column type="selection" width="40" />
...@@ -168,8 +168,8 @@ const handleSwitchChartData = () => { ...@@ -168,8 +168,8 @@ const handleSwitchChartData = () => {
const curDemensionItem = staticsDemensionList.value.filter(item => { const curDemensionItem = staticsDemensionList.value.filter(item => {
return item.name === curDemension.value return item.name === curDemension.value
})[0] })[0]
activeChart.value = curDemensionItem.chartTypeList[0] activeChart.value = curDemensionItem.chartTypeList[0].name
curChartData.value = curDemensionItem.data curChartData.value = curDemensionItem.chartTypeList[0].data
} }
} }
...@@ -271,8 +271,8 @@ const handleClickDemensionItem = (val) => { ...@@ -271,8 +271,8 @@ const handleClickDemensionItem = (val) => {
}) })
val.active = true val.active = true
nextTick(() => { nextTick(() => {
activeChart.value = val.chartTypeList[0] activeChart.value = val.chartTypeList[0].name
curChartData.value = val.data curChartData.value = val.chartTypeList[0].data
curDemension.value = val.name curDemension.value = val.name
}) })
} }
...@@ -294,26 +294,26 @@ const timeList = ref([ ...@@ -294,26 +294,26 @@ const timeList = ref([
value: '按月度统计' value: '按月度统计'
}, },
]) ])
const handleChangeTime = value => { // const handleChangeTime = value => {
let curChart = activeChart.value // let curChart = activeChart.value
activeChart.value = '' // activeChart.value = ''
if (value === '按月度统计') { // if (value === '按月度统计') {
setTimeout(() => { // setTimeout(() => {
activeChart.value = curChart // activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].data // curChartData.value = staticsDemensionList.value[0].data
}) // })
} else if (value === '按季度统计') { // } else if (value === '按季度统计') {
setTimeout(() => { // setTimeout(() => {
activeChart.value = curChart // activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].quatarData // curChartData.value = staticsDemensionList.value[0].quatarData
}) // })
} else { // } else {
setTimeout(() => { // setTimeout(() => {
activeChart.value = curChart // activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].yearData // curChartData.value = staticsDemensionList.value[0].yearData
}) // })
} // }
} // }
// 激活的标签列表 // 激活的标签列表
...@@ -617,19 +617,38 @@ const fetchTableData = async () => { ...@@ -617,19 +617,38 @@ const fetchTableData = async () => {
if (res.code === 200 && res.data) { if (res.code === 200 && res.data) {
tableData.value = res.data.records tableData.value = res.data.records
totalNum.value = res.data.total totalNum.value = res.data.total
staticsDemensionList.value[0].data = Object.entries(res.data.aggregationCountryId).map(([key, value]) => ({ staticsDemensionList.value[0].chartTypeList[0].data = Object.entries(res.data.aggregationCountryId).map(([key, value]) => ({
name: key, name: key,
value: Number(value) value: Number(value)
})) }))
staticsDemensionList.value[1].data = Object.entries(res.data.aggregationsAffiliation).map(([key, value]) => ({ staticsDemensionList.value[0].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationCountryId),
dataY: Object.values(res.data.aggregationCountryId).map(value => Number(value))
}
staticsDemensionList.value[1].chartTypeList[0].data = Object.entries(res.data.aggregationsAffiliation).map(([key, value]) => ({
name: key, name: key,
value: Number(value) value: Number(value)
})) }))
staticsDemensionList.value[2].data = Object.entries(res.data.aggregationsorganizationName).map(([key, value]) => ({ staticsDemensionList.value[1].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationsAffiliation),
dataY: Object.values(res.data.aggregationsAffiliation).map(value => Number(value))
}
staticsDemensionList.value[2].chartTypeList[0].data = Object.entries(res.data.aggregationsorganizationName).map(([key, value]) => ({
name: key, name: key,
value: Number(value) value: Number(value)
})) }))
staticsDemensionList.value[2].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationsorganizationName),
dataY: Object.values(res.data.aggregationsorganizationName).map(value => Number(value))
}
staticsDemensionList.value[3].chartTypeList[0].data = Object.entries(res.data.aggregationPersonType).map(([key, value]) => ({
name: key,
value: Number(value)
}))
staticsDemensionList.value[3].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationPersonType),
dataY: Object.values(res.data.aggregationPersonType).map(value => Number(value))
}
} }
const curDemensionItem = staticsDemensionList.value.filter(item => { const curDemensionItem = staticsDemensionList.value.filter(item => {
......
...@@ -715,7 +715,17 @@ const fetchTableData = async () => { ...@@ -715,7 +715,17 @@ const fetchTableData = async () => {
setTimeout(() => { setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0]; activeChart.value = curDemensionItem.chartTypeList[0];
curChartData.value = curDemensionItem.data; 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
}
}); });
} catch (error) { } catch (error) {
console.error(error); console.error(error);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论