遥感组件,智览人员统计bug修复

main
userName 2025-03-19 11:09:28 +08:00
parent cde125960f
commit afddccda66
20 changed files with 401 additions and 33 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

View File

@ -1,9 +1,9 @@
<template>
<div class="go-title-03">
<div class="bannerbox">
<a-carousel autoplay dots-class="slick-dots slick-thumb">
<div v-for="item in bannerArr" @click="bannerClick(item)">
<img :src="item" />
<a-carousel autoplay dots-class="slick-dots slick-thumb" preview-disabled>
<div v-for="item in bannerArr">
<a-image :src="item" />
</div>
</a-carousel>
</div>
@ -17,9 +17,6 @@
</div>
</div>
</div>
<!-- <div class="bigImgbox" v-if="bigImgVisible" @click="hideClick">
<img class="bigImg" :src="bigImgSrc" />
</div> -->
</template>
<script setup lang="ts">
@ -46,16 +43,6 @@ const {
dataset
} = toRefs(props.chartConfig.option)
const bigImgVisible = ref(false)
const bigImgSrc = ref()
const bannerClick = (item) =>{
console.log('iii', item);
bigImgSrc.value = item;
// bigImgVisible.value = true
}
const hideClick = ()=>{
bigImgVisible.value = false
}
// callback
useChartDataFetch(props.chartConfig, useChartEditStore, (resData: any[]) => {
props.chartConfig.option.dataset = resData;
@ -125,6 +112,10 @@ useChartDataFetch(props.chartConfig, useChartEditStore, (resData: any[]) => {
:deep(.ant-carousel){
height: 100%;
}
:deep(.ant-image){
width: 100%;
height: 100%;
}
:deep(.slick-slider){
height: 100%;
}
@ -156,18 +147,4 @@ useChartDataFetch(props.chartConfig, useChartEditStore, (resData: any[]) => {
}
}
.bigImgbox{
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background: rgba(0,0,0,0.3);
display:flex;
align-items: center;
justify-content: center;
}
.bigImg{
width: 70%;
}
</style>

View File

@ -35,6 +35,12 @@ const option = {
type: 'line',
smooth: true,
symbolSize: 10, //设定实心点的大小
itemStyle: {
// 设置symbol的颜色
normal: {
color: '#91F2A1'
}
},
label: {
show: true,
position: 'top',
@ -51,7 +57,7 @@ const option = {
color: new graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#f00'
color: '#91F2A1'
},
{
offset: 1,

View File

@ -69,6 +69,13 @@
placeholder="自动计算"
></n-input-number>
</SettingItem>
<SettingItem name="颜色">
<n-color-picker
size="small"
:modes="['hex']"
v-model:value="item.itemStyle.normal.color"
></n-color-picker>
</SettingItem>
</SettingItemBox>
<setting-item-box name="标签">
<setting-item>

View File

@ -39,6 +39,12 @@ const option = {
name: '火情因子监测面积',
smooth: true,
symbolSize: 1, //设定实心点的大小
itemStyle: {
// 设置symbol的颜色
normal: {
color: '#EFD50BFF'
}
},
label: {
show: true,
position: 'top',
@ -69,6 +75,12 @@ const option = {
name: '雷击火监测面积',
smooth: true,
symbolSize: 1, //设定实心点的大小
itemStyle: {
// 设置symbol的颜色
normal: {
color: '#10D562FF'
}
},
label: {
show: true,
position: 'top',
@ -99,6 +111,12 @@ const option = {
name: '相控雷达监测面积',
smooth: true,
symbolSize: 1, //设定实心点的大小
itemStyle: {
// 设置symbol的颜色
normal: {
color: '#0CEDE5FF'
}
},
label: {
show: true,
position: 'top',

View File

@ -48,6 +48,13 @@
placeholder="自动计算"
></n-input-number>
</SettingItem>
<SettingItem name="颜色">
<n-color-picker
size="small"
:modes="['hex']"
v-model:value="item.itemStyle.normal.color"
></n-color-picker>
</SettingItem>
</SettingItemBox>
<setting-item-box name="标签">
<setting-item>

View File

@ -45,6 +45,12 @@ const option = {
name: '路网规划率',
smooth: false,
symbolSize: 10, //设定实心点的大小
itemStyle: {
// 设置symbol的颜色
normal: {
color: '#08EE73FF'
}
},
label: {
show: true,
position: 'top',
@ -75,6 +81,12 @@ const option = {
name: '信息处置率',
smooth: false,
symbolSize: 10, //设定实心点的大小
itemStyle: {
// 设置symbol的颜色
normal: {
color: '#DC9D15FF'
}
},
label: {
show: true,
position: 'top',

View File

@ -72,6 +72,13 @@
placeholder="自动计算"
></n-input-number>
</SettingItem>
<SettingItem name="颜色">
<n-color-picker
size="small"
:modes="['hex']"
v-model:value="item.itemStyle.normal.color"
></n-color-picker>
</SettingItem>
</SettingItemBox>
<setting-item-box name="标签">
<setting-item>

View File

@ -0,0 +1,32 @@
import { PublicConfigClass } from '@/packages/public'
import { chartInitConfig,requestSqlConfig } from '@/settings/designSetting'
import { CreateComponentType } from '@/packages/index.d'
import { WeiXingGuoLvConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
export const option = {
textColors: ['#FFFFFF','#FFFFFF'],
textSize: [14,10],
backgroundColors: ["#05231A","#0A392A","#0A392A"],
headerData:["卫星","观测目标","开始时间","结束时间"],
dataset: [
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
{ title: '山东卫星一号' , target: '山东临沂市费县费城街道', startTime: '2025-3-17 16:12:57', endTime: '2025-3-17 16:12:57' },
],
}
export default class Config extends PublicConfigClass implements CreateComponentType {
public key = WeiXingGuoLvConfig.key
public attr = { ...chartInitConfig, w: 378, h: 550, zIndex: 1 }
public chartConfig = cloneDeep(WeiXingGuoLvConfig)
public option = cloneDeep(option)
public request = { ...requestSqlConfig, requestSQLContent: { sql: 'select * from ' }, }
public filter = "return res.result;"
}

View File

@ -0,0 +1,78 @@
<template>
<CollapseItem name="文本样式" :expanded="true">
<SettingItemBox
:name="`颜色-${index + 1}`"
v-for="(item, index) in optionData.textColors"
:key="index"
>
<SettingItem name="颜色">
<n-color-picker
size="small"
:modes="['hex']"
v-model:value="optionData.textColors[index]"
></n-color-picker>
</SettingItem>
<SettingItem>
<n-button
size="small"
@click="optionData.textColors[index] = option.textColors[index]"
>
恢复默认
</n-button>
</SettingItem>
</SettingItemBox>
<SettingItemBox
:name="`大小-${index + 1}`"
v-for="(item, index) in optionData.textSize"
:key="index"
>
<SettingItem name="">
<n-input-number
size="small"
v-model:value="optionData.textSize[index]"
:min="10"
/>
</SettingItem>
</SettingItemBox>
</CollapseItem>
<CollapseItem name="样式" :expanded="true">
<SettingItemBox
:name="`背景颜色-${index + 1}`"
v-for="(item, index) in optionData.backgroundColors"
:key="index"
>
<SettingItem name="颜色">
<n-color-picker
size="small"
:modes="['hex']"
v-model:value="optionData.backgroundColors[index]"
></n-color-picker>
</SettingItem>
<SettingItem>
<n-button
size="small"
@click="optionData.backgroundColors[index] = option.backgroundColors[index]"
>
恢复默认
</n-button>
</SettingItem>
</SettingItemBox>
</CollapseItem>
</template>
<script setup lang="ts">
import { PropType } from 'vue'
import {
CollapseItem,
SettingItemBox,
SettingItem
} from '@/components/Pages/ChartItemSetting'
import { option } from './config'
const props = defineProps({
optionData: {
type: Object as PropType<typeof option>,
required: true
}
})
</script>

View File

@ -0,0 +1,14 @@
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d';
import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d';
export const WeiXingGuoLvConfig: ConfigType = {
key: 'WeiXingGuoLv',
chartKey: 'VWeiXingGuoLv',
conKey: 'VCWeiXingGuoLv',
title: '卫星过滤信息',
category: ChatCategoryEnum.ZHILAN,
categoryName: ChatCategoryEnumName.ZHILAN,
package: PackagesCategoryEnum.ZHILAN,
chartFrame: ChartFrameEnum.STATIC,
image: 'wxglxx.png',
};

View File

@ -0,0 +1,119 @@
<template>
<div class="go-title-03">
<div class="headerbox">
<div class="headerli" v-for="item in headerData">{{item}}</div>
</div>
<div class="sectionbox">
<div class="secli" v-for="item in dataset">
<div class="li">
<div class="la">{{ item.title }}</div>
</div>
<div class="li">
<div class="la">{{ item.target }}</div>
</div>
<div class="li time">{{ item.startTime }}</div>
<div class="li time">{{ item.endTime }}</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { PropType, toRefs, ref, onMounted } from 'vue'
import { CreateComponentType } from '@/packages/index.d'
import { useChartDataFetch } from '@/hooks';
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore';
const props = defineProps({
chartConfig: {
type: Object as PropType<CreateComponentType>,
required: true
}
})
const { w, h } = toRefs(props.chartConfig.attr)
const {
textColors,
textSize,
backgroundColors,
dataset,
headerData
} = toRefs(props.chartConfig.option)
// callback
useChartDataFetch(props.chartConfig, useChartEditStore, (resData: any[]) => {
props.chartConfig.option.dataset = resData;
});
</script>
<style lang="scss" scoped>
@include go('title-03') {
position: relative;
display: flex;
flex-direction: column;
.headerbox{
height: 38px;
background: v-bind('backgroundColors[0]');
display: flex;
.headerli{
width: 25%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: v-bind('textSize[0]+"px"');
color: v-bind('textColors[0]');
}
}
.sectionbox{
height: calc(100% - 38px);
overflow: auto;
.secli{
background: v-bind('backgroundColors[1]');
display: flex;
height: 38px;
.li{
width: 0;
flex: 1;
height: 100%;
display: flex;
align-items: center;
justify-content: space-evenly;
font-size: v-bind('textSize[1]+"px"');
color: v-bind('textColors[1]');
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
.la{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.time{
white-space: normal;
}
}
.secli:nth-child(2n){
background: v-bind('backgroundColors[2]');
}
}
}
/* 整个滚动条的样式 */
::-webkit-scrollbar {
width: 5px; /* 滚动条宽度 */
}
/* 滚动轨道的样式 */
::-webkit-scrollbar-track {
background: #00611A; /* 轨道背景颜色 */
}
/* 滚动滑块的样式 */
::-webkit-scrollbar-thumb {
background: #0EB687; /* 滑块背景颜色 */
}
/* 当鼠标悬停在滑块上时改变颜色 */
::-webkit-scrollbar-thumb:hover {
background: #34FFE0; /* 鼠标悬停时的滑块颜色 */
}
</style>

View File

@ -0,0 +1,16 @@
import { PublicConfigClass } from '@/packages/public'
import { chartInitConfig } from '@/settings/designSetting'
import { CreateComponentType } from '@/packages/index.d'
import { WeiXingImgConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
export const option = {
}
export default class Config extends PublicConfigClass implements CreateComponentType {
public key = WeiXingImgConfig.key
public attr = { ...chartInitConfig, w: 400, h: 271, zIndex: 1 }
public chartConfig = cloneDeep(WeiXingImgConfig)
public option = cloneDeep(option)
}

View File

@ -0,0 +1,20 @@
<template>
</template>
<script setup lang="ts">
import { PropType } from 'vue'
import {
CollapseItem,
SettingItemBox,
SettingItem
} from '@/components/Pages/ChartItemSetting'
import { option } from './config'
const props = defineProps({
optionData: {
type: Object as PropType<typeof option>,
required: true
}
})
</script>

View File

@ -0,0 +1,14 @@
import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d';
import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d';
export const WeiXingImgConfig: ConfigType = {
key: 'WeiXingImg',
chartKey: 'VWeiXingImg',
conKey: 'VCWeiXingImg',
title: '卫星',
category: ChatCategoryEnum.ZHILAN,
categoryName: ChatCategoryEnumName.ZHILAN,
package: PackagesCategoryEnum.ZHILAN,
chartFrame: ChartFrameEnum.STATIC,
image: 'weixingimg.png',
};

View File

@ -0,0 +1,35 @@
<template>
<div class="go-title-03">
<img :width="w" :height="h" src="/src/assets/images/chart/zhilan/weixingimg.png" />
</div>
</template>
<script setup lang="ts">
import { PropType, toRefs } from 'vue'
import { CreateComponentType } from '@/packages/index.d'
const props = defineProps({
chartConfig: {
type: Object as PropType<CreateComponentType>,
required: true
}
})
const { w, h } = toRefs(props.chartConfig.attr)
const {
} = toRefs(props.chartConfig.option)
</script>
<style lang="scss" scoped>
@include go('title-03') {
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
}
</style>

View File

@ -7,8 +7,10 @@
<div class="bg">
<div class="rate"
:style="{
width: (item.value / maxValue * 90) + '%',
background: 'linear-gradient(90deg, ' + animalColor[index].color1 + ' 0%, ' + animalColor[index].color2 + ' 100%)'}">
width: `${(item.value / maxValue * 90)}%`,
background: `linear-gradient(90deg,
${animalColor[index] ? animalColor[index].color1 : animalColor[0].color1} 0%,
${animalColor[index] ? animalColor[index].color2 : animalColor[0].color2} 100%)`}">
</div>
</div>
</div>

View File

@ -16,6 +16,8 @@ import { ZLLingZhongMianJiConfig } from './ZLLingZhongMianJi/index';
import { ZhiLanTitlesConfig } from './ZhiLanTitles/index';
import { ZhiLanRenYuanLeiXingConfig } from './ZhiLanRenYuanLeiXing/index';
import { ZhiLanGongNengLeiXingConfig } from './ZhiLanGongNengLeiXing/index';
import { WeiXingGuoLvConfig } from './WeiXingGuoLv/index';
import { WeiXingImgConfig } from './WeiXingImg/index';
export default [
@ -23,6 +25,8 @@ export default [
ZLLingZhongMianJiConfig,
ZhiLanRenYuanLeiXingConfig,
ZhiLanGongNengLeiXingConfig,
WeiXingGuoLvConfig,
WeiXingImgConfig,
ZhiLanIcons01Config,
ZhiLanIcons02Config,
ZhiLanIcons03Config,