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

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

Fk dev 查看合并请求 !338
流水线 #447 已通过 于阶段
in 4 分 37 秒
......@@ -10,8 +10,8 @@
</div>
<!-- <div class="more" @click="handleToMoreNews">{{ "更多 +" }}</div> -->
</div>
<div class="msg-bubble-main" ref="scrollContainer">
<div class="message-bubble" v-for="(item, index) in displayList" :key="index" @click="handleClickPerson(item)">
<div class="msg-bubble-main" ref="scrollContainer" @mouseenter="pauseScroll" @mouseleave="resumeScroll">
<div class="message-bubble" v-for="(item, index) in infiniteList" :key="index" @click="handleClickPerson(item)">
<div class="avatar-container">
<img :src="item[props.imageUrl] || avatarUser" :alt="item[props.name]" class="avatar" />
<div class="avatar-containerOne" v-if="isRepublicanParty">
......@@ -39,7 +39,7 @@
</template>
<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";
const emit = defineEmits(["click", "info-click"]);
......@@ -135,31 +135,165 @@ const displayList = computed(() => {
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 = () => {
if (timer) clearInterval(timer)
timer = setInterval(() => {
currentIndex.value = (currentIndex.value + 1) % props.messageList.length
}, 2000) // 每秒滚动一条
if (animationId) {
cancelAnimationFrame(animationId)
animationId = null
}
if (isPaused.value) return
lastTimestamp = 0
isScrolling.value = true
animationId = requestAnimationFrame(scrollAnimation)
}
// 停止滚动
const stopScroll = () => {
if (timer) {
clearInterval(timer)
timer = null
}
if (animationId) {
cancelAnimationFrame(animationId)
animationId = null
}
lastTimestamp = 0
isScrolling.value = false
}
// 暂停滚动
const pauseScroll = () => {
if (isPaused.value) return
isPaused.value = true
stopScroll()
}
onMounted(() => {
// if (props.messageList.length > 3) {
startScroll()
// }
// 恢复滚动
const resumeScroll = () => {
if (!isPaused.value) return
isPaused.value = false
if (autoStart.value) {
startScroll()
}
}
// 重置滚动位置(可选方法)
const resetScrollPosition = () => {
if (scrollContainer.value) {
scrollContainer.value.scrollTop = 0
}
}
// 监听 displayList 变化
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()
}
}
}
},
{ 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(() => {
stopScroll()
// 组件卸载
onUnmounted(() => {
stopScroll()
})
</script>
......
......@@ -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 === '提案时间'"
@change="handleChangeTime">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
......@@ -77,7 +77,6 @@
<div class="data-main-box" v-else>
<div class="data-main-box-header">
<div class="switch-box" @click="handleSwitchChartData">
<!-- <img src="@/views/dataLibrary/assets/icons/data-active.svg" alt=""> -->
<DataChartSwitchBox :is-show-data="!isShowChart" />
</div>
<div class="num-box text-title-3-bold">
......@@ -126,7 +125,7 @@
<template #default="scope">
<span class="title-item text-compact-bold" @click="handleClickToDetail(scope.row)">{{
scope.row.originalTitle
}}</span>
}}</span>
</template>
</el-table-column>
<el-table-column label="日期" width="120" class-name="date-column">
......@@ -188,18 +187,18 @@ const handleSwitchChartData = () => {
return item.name === curDemension.value
})[0]
// timer1.value = 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 {
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
}
// })
}
}
......@@ -923,7 +922,17 @@ const fetchTableData = async () => {
timer3.value = setTimeout(() => {
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) {
......
......@@ -34,7 +34,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -69,7 +69,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -114,7 +114,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" />
......@@ -794,7 +794,7 @@ const fetchTableData = async () => {
}
staticsDemensionList.value[4].chartTypeList[0].data = Object.entries(res.data.aggregationIsSanctioned).map(([key, value]) => ({
name: key,
name: key === 'Y' ? '是' : '否',
value: Number(value)
}))
......@@ -808,7 +808,17 @@ const fetchTableData = async () => {
setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0]
curChartData.value = curDemensionItem.chartTypeList[0].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
}
})
} catch (error) {
......@@ -1211,7 +1221,7 @@ onMounted(async () => {
justify-content: space-between;
.switch-box {
width: 160px;
width: 160px;
height: 28px;
border: none;
cursor: pointer;
......
......@@ -774,7 +774,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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) {
......
......@@ -174,18 +174,18 @@ const handleSwitchChartData = () => {
return item.name === curDemension.value
})[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 {
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
}
// })
}
}
......@@ -227,7 +227,7 @@ const staticsDemensionList = ref([
chartTitle: '商业管制清单物项类别分布',
data: []
}
])
// 当前维度下的图表列表
......@@ -345,7 +345,7 @@ const activeTagList = computed(() => {
)
}
if (categoryName.value) {
if (categoryName.value) {
arr.push(
{
tag: '物项名称',
......@@ -354,7 +354,7 @@ const activeTagList = computed(() => {
)
}
return arr
......@@ -671,7 +671,7 @@ const fetchTableData = async () => {
name: key,
value: Number(value)
}))
}
......@@ -683,7 +683,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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
}
})
loading.value = false
} catch (error) {
......
......@@ -24,8 +24,8 @@
@close="handleCloseCurTag(tag, index)" />
</div>
<div class="header-footer-right">
<HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll" @clear="handleClear"
@confirm="handleConfirm" />
<HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll"
@clear="handleClear" @confirm="handleConfirm" />
</div>
</div>
</div>
......@@ -164,18 +164,18 @@ const handleSwitchChartData = () => {
return item.name === curDemension.value
})[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 {
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
}
// })
}
}
......@@ -612,7 +612,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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
}
})
loading.value = false
} catch (error) {
......
......@@ -862,7 +862,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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
}
})
loading.value = false
} catch (error) {
......@@ -1091,11 +1101,11 @@ const handleClickToDetail = (curEntity) => {
window.sessionStorage.setItem("decreeId", curEntity.id);
window.sessionStorage.setItem("curTabName", curEntity.title);
const route = router.resolve({
name: "companyPages",
params: {
id: curEntity.id
}
});
name: "companyPages",
params: {
id: curEntity.id
}
});
window.open(route.href, "_blank");
};
......
......@@ -24,15 +24,15 @@
@close="handleCloseCurTag(tag, index)" />
</div>
<div class="header-footer-right">
<HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll" @clear="handleClear"
@confirm="handleConfirm" />
<HeaderBtnBox :isShowAll="isFolderAll" :isShowAllBtn="false" @show-all="handleSwitchFolderAll"
@clear="handleClear" @confirm="handleConfirm" />
</div>
</div>
</div>
<div class="chart-main-box" v-if="isShowChart">
<div class="info-box">
<div class="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
<DataChartSwitchBox :is-show-data="!isShowChart" />
</div>
<div class="num-box text-title-3-bold">
{{ `共 ${totalNum} 条数据` }}
......@@ -165,18 +165,18 @@ const handleSwitchChartData = () => {
return item.name === curDemension.value
})[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 {
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
}
// })
}
}
......@@ -613,7 +613,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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
}
})
loading.value = false
} catch (error) {
......@@ -828,28 +838,28 @@ const handleClickToDetail = (curEntityEvent) => {
// window.sessionStorage.setItem("decreeId", curEntityEvent.id);
// window.sessionStorage.setItem("curTabName", curEntityEvent.title);
// let id = item?.id;
// let sanTypeId = item?.sanTypeId || 1;
// if (!id) {
// const currentItem = entitiesDataInfoList.value[currentCarouselIndex.value];
// id = currentItem?.id;
// sanTypeId = currentItem?.sanTypeId || 1;
// }
// window.sessionStorage.setItem(
// "curTabName",
// entitiesDataInfoList.value[currentCarouselIndex.value].postDate + " 《实体清单新增条目》"
// );
// let date = entitiesDataInfoList.value[currentCarouselIndex.value].postDate
// const routeData = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id,
// sanTypeId,
// date
// }
// });
// // 打开一个新页面
// window.open(routeData.href, "_blank");
// let id = item?.id;
// let sanTypeId = item?.sanTypeId || 1;
// if (!id) {
// const currentItem = entitiesDataInfoList.value[currentCarouselIndex.value];
// id = currentItem?.id;
// sanTypeId = currentItem?.sanTypeId || 1;
// }
// window.sessionStorage.setItem(
// "curTabName",
// entitiesDataInfoList.value[currentCarouselIndex.value].postDate + " 《实体清单新增条目》"
// );
// let date = entitiesDataInfoList.value[currentCarouselIndex.value].postDate
// const routeData = router.resolve({
// path: "/exportControl/singleSanction",
// query: {
// id,
// sanTypeId,
// date
// }
// });
// // 打开一个新页面
// window.open(routeData.href, "_blank");
};
// 跳转机构详情
......@@ -1010,6 +1020,7 @@ onMounted(async () => {
}
}
}
.data-main-box {
width: 1568px;
min-height: 810px;
......
......@@ -19,7 +19,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -54,7 +54,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -99,7 +99,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" />
......@@ -152,14 +152,6 @@ import { getProvinceList, getCountryList, getEntityTypes } from '@/api/comprehen
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)
// 点击切换数据/图表
......@@ -170,17 +162,17 @@ const handleSwitchChartData = () => {
return item.name === curDemension.value
})[0]
// setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0]
activeChart.value = curDemensionItem.chartTypeList[0].name
if (curDemension.value === '成立时间') {
if (selectedTime.value === '按月度统计') {
curChartData.value = curDemensionItem.data
curChartData.value = curDemensionItem.chartTypeList[0].data
} else if (selectedTime.value === '按季度统计') {
curChartData.value = curDemensionItem.quatarData
curChartData.value = curDemensionItem.chartTypeList[0].quatarData
} else {
curChartData.value = curDemensionItem.yearData
curChartData.value = curDemensionItem.chartTypeList[0].yearData
}
} else {
curChartData.value = curDemensionItem.data
curChartData.value = curDemensionItem.chartTypeList[0].data
}
// })
}
......@@ -235,16 +227,16 @@ const staticsDemensionList = ref([
name: '所属国家地区',
active: false,
chartTypeList: [{
name: '饼状图',
data: []
},
{
name: '柱状图',
data: {
dataX: [],
dataY: []
}
}],
name: '饼状图',
data: []
},
{
name: '柱状图',
data: {
dataX: [],
dataY: []
}
}],
chartTitle: '所属国家地区分布',
},
])
......@@ -273,13 +265,13 @@ const handleClickDemensionItem = (val) => {
val.active = true
curDemension.value = val.name
setTimeout(() => {
activeChart.value = val.chartTypeList[0]
activeChart.value = val.chartTypeList[0].name
if (curDemension.value === '成立时间' && selectedTime.value === '按年度统计') {
curChartData.value = val.yearData
curChartData.value = val.chartTypeList[0].yearData
} else if (curDemension.value === '成立时间' && selectedTime.value === '按季度统计') {
curChartData.value = val.quatarData
curChartData.value = val.chartTypeList[0].quatarData
} else {
curChartData.value = val.data
curChartData.value = val.chartTypeList[0].data
}
})
}
......@@ -307,17 +299,17 @@ const handleChangeTime = value => {
if (value === '按月度统计') {
setTimeout(() => {
activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].data
curChartData.value = staticsDemensionList.value[0].chartTypeList[0].data
})
} else if (value === '按季度统计') {
setTimeout(() => {
activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].quatarData
curChartData.value = staticsDemensionList.value[0].chartTypeList[0].quatarData
})
} else {
setTimeout(() => {
activeChart.value = curChart
curChartData.value = staticsDemensionList.value[0].yearData
curChartData.value = staticsDemensionList.value[0].chartTypeList[0].yearData
})
}
}
......@@ -371,7 +363,13 @@ const activeChart = ref('') // 当前激活的图表
const handleSwitchActiveChart = val => {
activeChart.value = val.name
const curChartItem = curChartTypeList.value.filter(item => item.name === val.name)[0]
curChartData.value = curChartItem.data
if (curDemension.value === '成立时间' && selectedTime.value === '按年度统计') {
curChartData.value = curChartItem.yearData
} else if (curDemension.value === '成立时间' && selectedTime.value === '按季度统计') {
curChartData.value = curChartItem.quatarData
} else {
curChartData.value = curChartItem.data
}
}
// 数据- 是否全选
......@@ -532,34 +530,38 @@ const fetchTableData = async () => {
if (res.code === 200 && res.data) {
tableData.value = res.data.records
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].quatarData = {
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].yearData = {
staticsDemensionList.value[0].chartTypeList[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.aggregationCountryId).map(([key, value]) => ({
staticsDemensionList.value[0].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationsDate),
dataY: Object.values(res.data.aggregationsDate).map(value => Number(value))
}
staticsDemensionList.value[0].chartTypeList[1].quatarData = {
dataX: Object.keys(res.data.aggregationsQuarter),
dataY: Object.values(res.data.aggregationsQuarter).map(value => Number(value))
}
staticsDemensionList.value[0].chartTypeList[1].yearData = {
dataX: Object.keys(res.data.aggregationsYear),
dataY: Object.values(res.data.aggregationsYear).map(value => Number(value))
}
staticsDemensionList.value[1].chartTypeList[0].data = Object.entries(res.data.aggregationCountryId).map(([key, value]) => ({
name: key,
value: Number(value)
}))
// staticsDemensionList.value[2].data = Object.entries(res.data.aggregationSentityTypeCode).map(([key, value]) => ({
// name: key,
// 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)
// }))
staticsDemensionList.value[1].chartTypeList[1].data = {
dataX: Object.keys(res.data.aggregationCountryId),
dataY: Object.values(res.data.aggregationCountryId).map(value => Number(value))
}
}
......@@ -570,8 +572,18 @@ const fetchTableData = async () => {
activeChart.value = ''
setTimeout(() => {
activeChart.value = curDemensionItem.chartTypeList[0]
curChartData.value = curDemensionItem.data
activeChart.value = curDemensionItem.chartTypeList[0].name
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
} catch (error) {
......
......@@ -21,7 +21,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -56,7 +56,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -101,7 +101,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" />
......@@ -115,7 +115,7 @@
<el-table-column label="发布时间" width="100" class-name="date-column">
<template #default="scope">{{ scope.row.date }}</template>
</el-table-column>
<el-table-column label="发布时间" class-name="date-column">
<el-table-column label="发布时间" class-name="date-column">
<template #default="scope">{{ scope.row.originalDescription }}</template>
</el-table-column>
<el-table-column label="来源媒体" width="90">
......@@ -586,7 +586,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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) {
......
......@@ -22,7 +22,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -34,13 +34,13 @@
<div class="content-box">
<div class="content-header">
<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 === '发布时间'"
@change="handleChangeTime">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</template>
</template> -->
</ChartHeader>
</div>
<div class="content-main">
......@@ -57,7 +57,7 @@
</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="switch-box" @click="handleSwitchChartData">
<DataChartSwitchBox :is-show-data="!isShowChart" />
......@@ -102,7 +102,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" />
......@@ -168,8 +168,8 @@ const handleSwitchChartData = () => {
const curDemensionItem = staticsDemensionList.value.filter(item => {
return item.name === curDemension.value
})[0]
activeChart.value = curDemensionItem.chartTypeList[0]
curChartData.value = curDemensionItem.data
activeChart.value = curDemensionItem.chartTypeList[0].name
curChartData.value = curDemensionItem.chartTypeList[0].data
}
}
......@@ -271,8 +271,8 @@ const handleClickDemensionItem = (val) => {
})
val.active = true
nextTick(() => {
activeChart.value = val.chartTypeList[0]
curChartData.value = val.data
activeChart.value = val.chartTypeList[0].name
curChartData.value = val.chartTypeList[0].data
curDemension.value = val.name
})
}
......@@ -294,26 +294,26 @@ 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 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
// })
// }
// }
// 激活的标签列表
......@@ -617,19 +617,38 @@ const fetchTableData = async () => {
if (res.code === 200 && res.data) {
tableData.value = res.data.records
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,
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,
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,
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 => {
......
......@@ -715,7 +715,17 @@ const fetchTableData = async () => {
setTimeout(() => {
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) {
console.error(error);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论