数据大屏gs
This commit is contained in:
parent
c525285857
commit
5d7a386a75
@ -44,6 +44,7 @@
|
|||||||
"screenfull": "^6.0.2",
|
"screenfull": "^6.0.2",
|
||||||
"vite-plugin-svg-icons": "^2.0.1",
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
"vue": "^3.5.11",
|
"vue": "^3.5.11",
|
||||||
|
"vue-cesium": "^3.2.9",
|
||||||
"vue-router": "^4.2.5"
|
"vue-router": "^4.2.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
<script setup name="App">
|
<script setup name="App">
|
||||||
import { reactive, provide, nextTick } from 'vue';
|
import { reactive, provide, nextTick } from 'vue';
|
||||||
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
isRouterAlive: true,
|
isRouterAlive: true,
|
||||||
});
|
});
|
||||||
|
84
main/src/components/custom-echart-maps/index.vue
Normal file
84
main/src/components/custom-echart-maps/index.vue
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<template>
|
||||||
|
<div ref="chartRef" :style="{ height, width }"></div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { ref, reactive, watch, watchEffect } from 'vue';
|
||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import { useEcharts } from '../../hooks/useEcharts';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CustomEchartMaps',
|
||||||
|
props: {
|
||||||
|
chartData: {
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
size: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
option: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: '100%',
|
||||||
|
},
|
||||||
|
geo: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
height: {
|
||||||
|
type: String,
|
||||||
|
default: 'calc(100vh - 78px)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
emits: ['click'],
|
||||||
|
setup(props, { emit }) {
|
||||||
|
const chartRef = ref(null);
|
||||||
|
const { setOptions, getInstance, resize, registerMap } = useEcharts(chartRef);
|
||||||
|
const option = reactive({
|
||||||
|
// series: [],
|
||||||
|
});
|
||||||
|
|
||||||
|
watchEffect(() => {
|
||||||
|
props.chartData && initCharts();
|
||||||
|
});
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.size,
|
||||||
|
() => {
|
||||||
|
resize();
|
||||||
|
},
|
||||||
|
{
|
||||||
|
immediate: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
function initCharts() {
|
||||||
|
if (props.option) {
|
||||||
|
Object.assign(option, cloneDeep(props.option));
|
||||||
|
}
|
||||||
|
// option.series = props.chartData;
|
||||||
|
setOptions(option);
|
||||||
|
registerMap(props.name, props.geo);
|
||||||
|
resize();
|
||||||
|
getInstance()?.off('click', onClick);
|
||||||
|
getInstance()?.on('click', onClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onClick(params) {
|
||||||
|
emit('click', params);
|
||||||
|
}
|
||||||
|
|
||||||
|
return { chartRef };
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
@ -18,6 +18,7 @@ import CustomEchartWaterDroplet from './custom-echart-water-droplet';
|
|||||||
import CustomEchartPieGauge from './custom-echart-pie-gauge';
|
import CustomEchartPieGauge from './custom-echart-pie-gauge';
|
||||||
import CustomEchartWordCloud from './custom-echart-word-cloud';
|
import CustomEchartWordCloud from './custom-echart-word-cloud';
|
||||||
import customEchartScatterBlister from './custom-echart-scatter-blister';
|
import customEchartScatterBlister from './custom-echart-scatter-blister';
|
||||||
|
import customEchartMaps from './custom-echart-maps';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
SvgIcon,
|
SvgIcon,
|
||||||
@ -40,4 +41,5 @@ export {
|
|||||||
CustomEchartPieGauge,
|
CustomEchartPieGauge,
|
||||||
CustomEchartWordCloud,
|
CustomEchartWordCloud,
|
||||||
customEchartScatterBlister,
|
customEchartScatterBlister,
|
||||||
|
customEchartMaps,
|
||||||
};
|
};
|
||||||
|
@ -73,6 +73,19 @@ export const useEcharts = (elRef, theme = 'default') => {
|
|||||||
chartInstance?.resize();
|
chartInstance?.resize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册地图数据
|
||||||
|
* @param {string} mapName - 地图名称
|
||||||
|
* @param {object} geoJSON - GeoJSON 数据
|
||||||
|
*/
|
||||||
|
function registerMap(mapName, geoJSON) {
|
||||||
|
if (!mapName || !geoJSON) {
|
||||||
|
console.warn('地图名称或 GeoJSON 数据无效');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
echarts.registerMap(mapName, geoJSON);
|
||||||
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => getDarkMode.value,
|
() => getDarkMode.value,
|
||||||
(theme) => {
|
(theme) => {
|
||||||
@ -103,5 +116,6 @@ export const useEcharts = (elRef, theme = 'default') => {
|
|||||||
resize,
|
resize,
|
||||||
echarts,
|
echarts,
|
||||||
getInstance,
|
getInstance,
|
||||||
|
registerMap,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -10,8 +10,21 @@ import '@smallwei/avue/lib/index.css';
|
|||||||
import { registerGlobalMicroApps } from './micro';
|
import { registerGlobalMicroApps } from './micro';
|
||||||
import { registerElIcons } from './plugins/icon';
|
import { registerElIcons } from './plugins/icon';
|
||||||
import './utils/permission';
|
import './utils/permission';
|
||||||
|
// import VueCesium from 'vue-cesium';
|
||||||
|
// import 'vue-cesium/dist/index.css';
|
||||||
|
// import { VcViewer } from 'vue-cesium';
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
app.use(pinia).use(router).use(ElementPlus).use(Avue).mount('#root');
|
app
|
||||||
|
.use(pinia)
|
||||||
|
.use(router)
|
||||||
|
.use(ElementPlus)
|
||||||
|
.use(Avue)
|
||||||
|
// .use(VueCesium, {
|
||||||
|
// cesiumPath: 'https://cdn.bootcdn.net/ajax/libs/cesium/1.69.0/Cesium.js',
|
||||||
|
// accessToken:
|
||||||
|
// 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI0ZTNkNmE0MS03MjVmLTRjYjEtYjY0ZS0xOTYxZGQ5NmEwOWYiLCJpZCI6MjI1MTM2LCJpYXQiOjE3NDMwNDY5MDB9.uNWADbo2Ol2hip2BopPzk4LYAAsExE_POBasweIbYBk',
|
||||||
|
// })
|
||||||
|
.mount('#root');
|
||||||
registerElIcons(app);
|
registerElIcons(app);
|
||||||
registerGlobalMicroApps();
|
registerGlobalMicroApps();
|
||||||
|
@ -1,6 +1,17 @@
|
|||||||
import * as echarts from 'echarts/core';
|
import * as echarts from 'echarts/core';
|
||||||
|
|
||||||
import { BarChart, LineChart, PieChart, MapChart, PictorialBarChart, RadarChart, GraphChart, GaugeChart, ScatterChart } from 'echarts/charts';
|
import {
|
||||||
|
BarChart,
|
||||||
|
LineChart,
|
||||||
|
PieChart,
|
||||||
|
MapChart,
|
||||||
|
PictorialBarChart,
|
||||||
|
RadarChart,
|
||||||
|
GraphChart,
|
||||||
|
GaugeChart,
|
||||||
|
ScatterChart,
|
||||||
|
EffectScatterChart,
|
||||||
|
} from 'echarts/charts';
|
||||||
import 'echarts-gl';
|
import 'echarts-gl';
|
||||||
import 'echarts-liquidfill';
|
import 'echarts-liquidfill';
|
||||||
import 'echarts-wordcloud';
|
import 'echarts-wordcloud';
|
||||||
@ -49,6 +60,7 @@ echarts.use([
|
|||||||
GraphChart,
|
GraphChart,
|
||||||
GaugeChart,
|
GaugeChart,
|
||||||
ScatterChart,
|
ScatterChart,
|
||||||
|
EffectScatterChart,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export default echarts;
|
export default echarts;
|
||||||
|
101
main/yarn.lock
101
main/yarn.lock
@ -2,6 +2,11 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@amap/amap-jsapi-loader@^1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz#9ec4b4d5d2467eac451f6c852e35db69e9f9f0c0"
|
||||||
|
integrity sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==
|
||||||
|
|
||||||
"@ampproject/remapping@^2.2.0":
|
"@ampproject/remapping@^2.2.0":
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
|
resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
|
||||||
@ -698,6 +703,34 @@
|
|||||||
resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||||
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
||||||
|
|
||||||
|
"@turf/circle@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/circle/-/circle-6.5.0.tgz#dc017d8c0131d1d212b7c06f76510c22bbeb093c"
|
||||||
|
integrity sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==
|
||||||
|
dependencies:
|
||||||
|
"@turf/destination" "^6.5.0"
|
||||||
|
"@turf/helpers" "^6.5.0"
|
||||||
|
|
||||||
|
"@turf/destination@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/destination/-/destination-6.5.0.tgz#30a84702f9677d076130e0440d3223ae503fdae1"
|
||||||
|
integrity sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==
|
||||||
|
dependencies:
|
||||||
|
"@turf/helpers" "^6.5.0"
|
||||||
|
"@turf/invariant" "^6.5.0"
|
||||||
|
|
||||||
|
"@turf/helpers@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e"
|
||||||
|
integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==
|
||||||
|
|
||||||
|
"@turf/invariant@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f"
|
||||||
|
integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==
|
||||||
|
dependencies:
|
||||||
|
"@turf/helpers" "^6.5.0"
|
||||||
|
|
||||||
"@types/eslint@^8.4.5":
|
"@types/eslint@^8.4.5":
|
||||||
version "8.56.12"
|
version "8.56.12"
|
||||||
resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a"
|
resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a"
|
||||||
@ -939,7 +972,7 @@
|
|||||||
"@vue/compiler-ssr" "3.5.13"
|
"@vue/compiler-ssr" "3.5.13"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.5.13"
|
||||||
|
|
||||||
"@vue/shared@3.5.13":
|
"@vue/shared@3.5.13", "@vue/shared@^3.2.47":
|
||||||
version "3.5.13"
|
version "3.5.13"
|
||||||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
|
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
|
||||||
integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
|
integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
|
||||||
@ -1066,6 +1099,11 @@
|
|||||||
resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532"
|
resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532"
|
||||||
integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
|
integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
|
||||||
|
|
||||||
|
"@zouyaoji/heatmap.js@^2.0.8":
|
||||||
|
version "2.0.8"
|
||||||
|
resolved "https://registry.npmmirror.com/@zouyaoji/heatmap.js/-/heatmap.js-2.0.8.tgz#5f6b285e7635ca07f2ecdb3d83a9dc1d240433d7"
|
||||||
|
integrity sha512-kBQny/zOUFH2OFoVyu6IdGJEcQMENIAASUsaZhk+OuJ9WexsYf6EU2lCyGURcsFly1kTMZKODlV7nBTCgfvJqg==
|
||||||
|
|
||||||
acorn-jsx@^5.3.2:
|
acorn-jsx@^5.3.2:
|
||||||
version "5.3.2"
|
version "5.3.2"
|
||||||
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
||||||
@ -1742,6 +1780,11 @@ commander@~12.1.0:
|
|||||||
resolved "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
|
resolved "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
|
||||||
integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
|
integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
|
||||||
|
|
||||||
|
compare-versions@^6.1.0:
|
||||||
|
version "6.1.1"
|
||||||
|
resolved "https://registry.npmmirror.com/compare-versions/-/compare-versions-6.1.1.tgz#7af3cc1099ba37d244b3145a9af5201b629148a9"
|
||||||
|
integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==
|
||||||
|
|
||||||
component-emitter@^1.2.1:
|
component-emitter@^1.2.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
|
resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
|
||||||
@ -2200,7 +2243,7 @@ echarts-wordcloud@^2.1.0:
|
|||||||
resolved "https://registry.npmmirror.com/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz#c3de6fe267044f6c3343e4ff0e05eedb01c05096"
|
resolved "https://registry.npmmirror.com/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz#c3de6fe267044f6c3343e4ff0e05eedb01c05096"
|
||||||
integrity sha512-Kt1JmbcROgb+3IMI48KZECK2AP5lG6bSsOEs+AsuwaWJxQom31RTNd6NFYI01E/YaI1PFZeueaupjlmzSQasjQ==
|
integrity sha512-Kt1JmbcROgb+3IMI48KZECK2AP5lG6bSsOEs+AsuwaWJxQom31RTNd6NFYI01E/YaI1PFZeueaupjlmzSQasjQ==
|
||||||
|
|
||||||
echarts@^5.6.0:
|
echarts@^5.4.3, echarts@^5.6.0:
|
||||||
version "5.6.0"
|
version "5.6.0"
|
||||||
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6"
|
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6"
|
||||||
integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
|
integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
|
||||||
@ -3976,6 +4019,11 @@ jszip@^3.10.1:
|
|||||||
readable-stream "~2.3.6"
|
readable-stream "~2.3.6"
|
||||||
setimmediate "^1.0.5"
|
setimmediate "^1.0.5"
|
||||||
|
|
||||||
|
kdbush@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39"
|
||||||
|
integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==
|
||||||
|
|
||||||
keyv@^4.5.3, keyv@^4.5.4:
|
keyv@^4.5.3, keyv@^4.5.4:
|
||||||
version "4.5.4"
|
version "4.5.4"
|
||||||
resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
|
resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
|
||||||
@ -4132,7 +4180,7 @@ lodash-es@^4.17.21:
|
|||||||
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||||
|
|
||||||
lodash-unified@^1.0.2:
|
lodash-unified@^1.0.2, lodash-unified@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
|
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
|
||||||
integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
|
integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
|
||||||
@ -4352,6 +4400,11 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1:
|
|||||||
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
|
mgrs@1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/mgrs/-/mgrs-1.0.0.tgz#fb91588e78c90025672395cb40b25f7cd6ad1829"
|
||||||
|
integrity sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==
|
||||||
|
|
||||||
micromatch@3.1.0:
|
micromatch@3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz#5102d4eaf20b6997d6008e3acfe1c44a3fa815e2"
|
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz#5102d4eaf20b6997d6008e3acfe1c44a3fa815e2"
|
||||||
@ -4461,6 +4514,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
|
|||||||
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||||
|
|
||||||
|
mitt@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
|
||||||
|
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
|
||||||
|
|
||||||
mixin-deep@^1.2.0:
|
mixin-deep@^1.2.0:
|
||||||
version "1.3.2"
|
version "1.3.2"
|
||||||
resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
|
resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
|
||||||
@ -5227,6 +5285,14 @@ progress@^2.0.3:
|
|||||||
resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||||
|
|
||||||
|
proj4@^2.9.1:
|
||||||
|
version "2.15.0"
|
||||||
|
resolved "https://registry.npmmirror.com/proj4/-/proj4-2.15.0.tgz#d77c9956861c8ed516071c4208d576cebe800eb5"
|
||||||
|
integrity sha512-LqCNEcPdI03BrCHxPLj29vsd5afsm+0sV1H/O3nTDKrv8/LA01ea1z4QADDMjUqxSXWnrmmQDjqFm1J/uZ5RLw==
|
||||||
|
dependencies:
|
||||||
|
mgrs "1.0.0"
|
||||||
|
wkt-parser "^1.4.0"
|
||||||
|
|
||||||
proxy-from-env@^1.1.0:
|
proxy-from-env@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||||
@ -6780,6 +6846,11 @@ uri-js@^4.2.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
punycode "^2.1.0"
|
punycode "^2.1.0"
|
||||||
|
|
||||||
|
urijs@^1.19.11:
|
||||||
|
version "1.19.11"
|
||||||
|
resolved "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
|
||||||
|
integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==
|
||||||
|
|
||||||
urix@^0.1.0:
|
urix@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
||||||
@ -6923,6 +6994,25 @@ vite@^5.0.8:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.3"
|
fsevents "~2.3.3"
|
||||||
|
|
||||||
|
vue-cesium@^3.2.9:
|
||||||
|
version "3.2.9"
|
||||||
|
resolved "https://registry.npmmirror.com/vue-cesium/-/vue-cesium-3.2.9.tgz#67b9dcbb4ed8e228fde886b957d0f4b4a3e388ba"
|
||||||
|
integrity sha512-MOgxAfIL+qYT608n+Bqioz2NbAM9pTWztzZ2gOqfHMxNeOFGROCUFatrzCP/OhndeEH8hbqdnGyxt1bHV9+dzQ==
|
||||||
|
dependencies:
|
||||||
|
"@amap/amap-jsapi-loader" "^1.0.1"
|
||||||
|
"@turf/circle" "^6.5.0"
|
||||||
|
"@vue/shared" "^3.2.47"
|
||||||
|
"@zouyaoji/heatmap.js" "^2.0.8"
|
||||||
|
compare-versions "^6.1.0"
|
||||||
|
echarts "^5.4.3"
|
||||||
|
kdbush "^4.0.2"
|
||||||
|
lodash "^4.17.21"
|
||||||
|
lodash-es "^4.17.21"
|
||||||
|
lodash-unified "^1.0.3"
|
||||||
|
mitt "^3.0.1"
|
||||||
|
proj4 "^2.9.1"
|
||||||
|
urijs "^1.19.11"
|
||||||
|
|
||||||
vue-demi@*, vue-demi@^0.14.10:
|
vue-demi@*, vue-demi@^0.14.10:
|
||||||
version "0.14.10"
|
version "0.14.10"
|
||||||
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
|
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
|
||||||
@ -7047,6 +7137,11 @@ wildcard@^1.1.0:
|
|||||||
resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
||||||
integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
|
integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
|
||||||
|
|
||||||
|
wkt-parser@^1.4.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.npmmirror.com/wkt-parser/-/wkt-parser-1.4.0.tgz#7cca07a6ee5b4baf059b723e62d7fe95bc923bf5"
|
||||||
|
integrity sha512-qpwO7Ihds/YYDTi1aADFTI1Sm9YC/tTe3SHD24EeIlZxy7Ik6a1b4HOz7jAi0xdUAw487duqpo8OGu+Tf4nwlQ==
|
||||||
|
|
||||||
word-wrap@^1.2.5:
|
word-wrap@^1.2.5:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
||||||
|
@ -5531,6 +5531,11 @@ split-string@^3.0.1, split-string@^3.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
extend-shallow "^3.0.0"
|
extend-shallow "^3.0.0"
|
||||||
|
|
||||||
|
splitpanes@^4.0.3:
|
||||||
|
version "4.0.3"
|
||||||
|
resolved "https://registry.npmmirror.com/splitpanes/-/splitpanes-4.0.3.tgz#342c2b57d906371c2ab44b4578333fbeb13aaa94"
|
||||||
|
integrity sha512-S/f1CoH2JroOib7kzQtTQNtQCa7VzNQ2qKOO5HNj/5EVVcNkfz1eX/sH+X3XKdBdDLihEKDekVGwrLADd2oirA==
|
||||||
|
|
||||||
sprintf-js@~1.0.2:
|
sprintf-js@~1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||||
|
@ -9,7 +9,9 @@ declare module 'vue' {
|
|||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
BaseBg: typeof import('./src/components/baseBg.vue')['default']
|
BaseBg: typeof import('./src/components/baseBg.vue')['default']
|
||||||
CenterMap: typeof import('./src/components/centerMap.vue')['default']
|
CenterMap: typeof import('./src/components/centerMap.vue')['default']
|
||||||
|
CenterMapold: typeof import('./src/components/centerMapold.vue')['default']
|
||||||
CodeDialog: typeof import('./src/components/code-dialog/index.vue')['default']
|
CodeDialog: typeof import('./src/components/code-dialog/index.vue')['default']
|
||||||
|
copy: typeof import('./src/components/centerMap copy.vue')['default']
|
||||||
CurrentTime: typeof import('./src/components/currentTime.vue')['default']
|
CurrentTime: typeof import('./src/components/currentTime.vue')['default']
|
||||||
CustomBack: typeof import('./src/components/customBack.vue')['default']
|
CustomBack: typeof import('./src/components/customBack.vue')['default']
|
||||||
CustomCard: typeof import('./src/components/CustomCard.vue')['default']
|
CustomCard: typeof import('./src/components/CustomCard.vue')['default']
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
"pinia-plugin-persistedstate": "^3.2.1",
|
"pinia-plugin-persistedstate": "^3.2.1",
|
||||||
"screenfull": "^6.0.2",
|
"screenfull": "^6.0.2",
|
||||||
"vue": "^3.3.11",
|
"vue": "^3.3.11",
|
||||||
|
"vue-cesium": "^3.2.9",
|
||||||
"vue-router": "^4.2.5",
|
"vue-router": "^4.2.5",
|
||||||
"vue3-scroll-seamless": "^1.0.6"
|
"vue3-scroll-seamless": "^1.0.6"
|
||||||
},
|
},
|
||||||
|
@ -19,6 +19,11 @@ import { useSettingStore } from '@/store/modules/setting';
|
|||||||
import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
import zhCn from 'element-plus/es/locale/lang/zh-cn';
|
||||||
import currentTime from '@/components/currentTime.vue';
|
import currentTime from '@/components/currentTime.vue';
|
||||||
|
|
||||||
|
import { createApp } from 'vue';
|
||||||
|
import App from './App.vue';
|
||||||
|
import VueCesium from 'vue-cesium';
|
||||||
|
import 'vue-cesium/dist/index.css';
|
||||||
|
|
||||||
const SettingStore = useSettingStore();
|
const SettingStore = useSettingStore();
|
||||||
// 配置全局组件大小
|
// 配置全局组件大小
|
||||||
const size = computed(() => SettingStore.themeConfig.globalComSize);
|
const size = computed(() => SettingStore.themeConfig.globalComSize);
|
||||||
@ -32,6 +37,14 @@ let apptime = ref(null);
|
|||||||
// onUnmounted(() => {
|
// onUnmounted(() => {
|
||||||
// apptime.value && apptime.value.chearTime();
|
// apptime.value && apptime.value.chearTime();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
// const app = createApp(App);
|
||||||
|
// app.use(VueCesium, {
|
||||||
|
// cesiumPath: 'https://unpkg.com/cesium@1.104.0/Build/Cesium/Cesium.js',
|
||||||
|
// accessToken:
|
||||||
|
// 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiMDhmOWQzMi1mMTQwLTQ5YzktOTZjZS1lZjVlNTQzZjY4OTAiLCJpZCI6MjI1MTM2LCJpYXQiOjE3MTk1NTMxNTl9.3tRI3yX0jZxdsdx0Gvv40FWMnVpLu8CnQ8qedEDTeqs',
|
||||||
|
// });
|
||||||
|
// app.mount('#app');
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.7 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 717 KiB |
1162
sub-government-screen-service/src/components/530926geo.json
Normal file
1162
sub-government-screen-service/src/components/530926geo.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,21 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-card body-class="custom_content_card_" :shadow="props.shadow">
|
|
||||||
<slot></slot>
|
|
||||||
</el-card>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
const props = defineProps({
|
|
||||||
shadow: {
|
|
||||||
type: String,
|
|
||||||
default: 'never',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.el-card:has(.custom_content_card_) {
|
|
||||||
border: none !important;
|
|
||||||
border-radius: 10px !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,94 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-select-v2
|
|
||||||
v-model="val"
|
|
||||||
:options="options"
|
|
||||||
:placeholder="props.set.placeholder"
|
|
||||||
:props="props.set.props"
|
|
||||||
:multiple="props.set.multiple"
|
|
||||||
@change="handleSelect"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, onMounted, watch } from 'vue';
|
|
||||||
import request from '@/utils/axios';
|
|
||||||
const emit = defineEmits(['update:value']);
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
set: {
|
|
||||||
type: Object,
|
|
||||||
default: () => {
|
|
||||||
return {
|
|
||||||
url: '',
|
|
||||||
options: [
|
|
||||||
{
|
|
||||||
value: '1',
|
|
||||||
label: 'label 1',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '2',
|
|
||||||
label: 'label 2',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: '3',
|
|
||||||
label: 'label 3',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
props: {
|
|
||||||
value: 'value',
|
|
||||||
label: 'label',
|
|
||||||
},
|
|
||||||
multiple: false,
|
|
||||||
placeholder: '请选择',
|
|
||||||
};
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
value: {
|
|
||||||
type: String || Array || null,
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
if (props.set.multiple) val.value = [];
|
|
||||||
|
|
||||||
if (props.set.url) {
|
|
||||||
let res = await request(props.set.url, {
|
|
||||||
method: 'get',
|
|
||||||
data: { current: 1, size: 9999 },
|
|
||||||
});
|
|
||||||
if (res.code == 200) {
|
|
||||||
options.value = res.data.records;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
options.value = props.set.options;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/* --------------- data --------------- */
|
|
||||||
// #region
|
|
||||||
const val = ref(null);
|
|
||||||
watch(
|
|
||||||
() => props.value,
|
|
||||||
() => {
|
|
||||||
val.value = props.value;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
deep: true,
|
|
||||||
immediate: true,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
const options = ref([]);
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
/* --------------- methods --------------- */
|
|
||||||
// #region
|
|
||||||
function handleSelect(val_) {
|
|
||||||
emit('update:value', val_);
|
|
||||||
}
|
|
||||||
// #endregion
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
|
@ -1,44 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-select-v2 v-model="val" :options="options" placeholder="请选择网格" :props="_props" @change="handleSelect" />
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, onMounted } from 'vue';
|
|
||||||
import { GetEntityList } from '@/apis/grid.js';
|
|
||||||
const emit = defineEmits(['update:value']);
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
// 父组件传过来的值
|
|
||||||
value: {
|
|
||||||
type: String || null,
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
let res = await GetEntityList();
|
|
||||||
if (res.code == 200) {
|
|
||||||
options.value = res.data.records;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/* --------------- data --------------- */
|
|
||||||
// #region
|
|
||||||
const val = ref(null);
|
|
||||||
const options = ref([]);
|
|
||||||
const _props = {
|
|
||||||
value: 'id',
|
|
||||||
label: 'productName',
|
|
||||||
};
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
/* --------------- methods --------------- */
|
|
||||||
// #region
|
|
||||||
function handleSelect(val_) {
|
|
||||||
emit('update:value', val_);
|
|
||||||
}
|
|
||||||
// #endregion
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
|
@ -1,60 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-select v-model="val" @change="change">
|
|
||||||
<el-option v-for="item in options" :key="`land_type_${item.value}`" :value="item.value" :label="item.label" :placeholder="props.placeholder">
|
|
||||||
{{ item.label }}
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, watch } from 'vue';
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
// 父组件传过来的值
|
|
||||||
value: {
|
|
||||||
type: String || Number || null,
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
placeholder: {
|
|
||||||
type: String,
|
|
||||||
default: '请选择',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const emit = defineEmits(['update:value']);
|
|
||||||
/* --------------- data --------------- */
|
|
||||||
// #region
|
|
||||||
|
|
||||||
const val = ref(null);
|
|
||||||
watch(
|
|
||||||
() => props.value,
|
|
||||||
() => {
|
|
||||||
val.value = props.value || props.value == 0 ? String(props.value) : null;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
deep: true,
|
|
||||||
immediate: true,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
const options = ref([
|
|
||||||
{ label: '耕地', value: '0' },
|
|
||||||
{ label: '果园', value: '1' },
|
|
||||||
{ label: '茶园', value: '2' },
|
|
||||||
{ label: '其他园地', value: '3' },
|
|
||||||
{ label: '林地', value: '4' },
|
|
||||||
{ label: '草地', value: '5' },
|
|
||||||
{ label: '其他农用地', value: '6' },
|
|
||||||
{ label: '农村宅基地', value: '7' },
|
|
||||||
]);
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
/* --------------- methods --------------- */
|
|
||||||
// #region
|
|
||||||
function change(val_) {
|
|
||||||
val.value = val_;
|
|
||||||
emit('update:value', val_);
|
|
||||||
}
|
|
||||||
// #endregion
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
|
@ -1,54 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-select v-model="val" @change="change">
|
|
||||||
<el-option v-for="item in options" :key="`land_type_${item.value}`" :value="item.value" :label="item.label" :placeholder="props.placeholder">
|
|
||||||
{{ item.label }}
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, watch } from 'vue';
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
// 父组件传过来的值
|
|
||||||
value: {
|
|
||||||
type: String || Number || null,
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
placeholder: {
|
|
||||||
type: String,
|
|
||||||
default: '请选择',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const emit = defineEmits(['update:value']);
|
|
||||||
/* --------------- data --------------- */
|
|
||||||
// #region
|
|
||||||
|
|
||||||
const val = ref(null);
|
|
||||||
watch(
|
|
||||||
() => props.value,
|
|
||||||
() => {
|
|
||||||
val.value = props.value || props.value == 0 ? String(props.value) : null;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
deep: true,
|
|
||||||
immediate: true,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
const options = ref([
|
|
||||||
{ label: '是', value: '0' },
|
|
||||||
{ label: '否', value: '1' },
|
|
||||||
]);
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
/* --------------- methods --------------- */
|
|
||||||
// #region
|
|
||||||
function change(val_) {
|
|
||||||
val.value = val_;
|
|
||||||
emit('update:value', val_);
|
|
||||||
}
|
|
||||||
// #endregion
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
|
@ -1,55 +0,0 @@
|
|||||||
<template>
|
|
||||||
<el-select v-model="val" @change="change">
|
|
||||||
<el-option v-for="item in options" :key="`land_type_${item.value}`" :value="item.value" :label="item.label" :placeholder="props.placeholder">
|
|
||||||
{{ item.label }}
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, watch } from 'vue';
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
// 父组件传过来的值
|
|
||||||
value: {
|
|
||||||
type: String || Number || null,
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
placeholder: {
|
|
||||||
type: String,
|
|
||||||
default: '请选择',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const emit = defineEmits(['update:value']);
|
|
||||||
/* --------------- data --------------- */
|
|
||||||
// #region
|
|
||||||
|
|
||||||
const val = ref(null);
|
|
||||||
watch(
|
|
||||||
() => props.value,
|
|
||||||
() => {
|
|
||||||
val.value = props.value || props.value == 0 ? String(props.value) : null;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
deep: true,
|
|
||||||
immediate: true,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
const options = ref([
|
|
||||||
{ label: '农用地', value: '0' },
|
|
||||||
{ label: '住宅用地', value: '1' },
|
|
||||||
{ label: '园林', value: '2' },
|
|
||||||
]);
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
/* --------------- methods --------------- */
|
|
||||||
// #region
|
|
||||||
function change(val_) {
|
|
||||||
val.value = val_;
|
|
||||||
emit('update:value', val_);
|
|
||||||
}
|
|
||||||
// #endregion
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
|
@ -1,72 +0,0 @@
|
|||||||
<template>
|
|
||||||
<section :style="{ '--right': props.right ? 'flex-end' : 'unset' }">
|
|
||||||
<el-pagination
|
|
||||||
v-model:current-page="curPage"
|
|
||||||
v-model:page-size="curSize"
|
|
||||||
:page-sizes="[10, 20, 30, 40, 50, 100]"
|
|
||||||
background
|
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
|
||||||
:total="curTotal"
|
|
||||||
@size-change="handleSizeChange"
|
|
||||||
@current-change="handleCurrentChange"
|
|
||||||
/>
|
|
||||||
</section>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, watch } from 'vue';
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
pageData: {
|
|
||||||
type: Object,
|
|
||||||
default: () => {
|
|
||||||
return {
|
|
||||||
page: 1,
|
|
||||||
size: 10,
|
|
||||||
total: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
},
|
|
||||||
pageSizes: {
|
|
||||||
type: Array,
|
|
||||||
default: () => {
|
|
||||||
return [10, 20, 30, 40, 50, 100];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
right: {
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const emit = defineEmits(['pageChange', 'sizeChange']);
|
|
||||||
const curPage = ref(1);
|
|
||||||
const curSize = ref(10);
|
|
||||||
const curTotal = ref(0);
|
|
||||||
watch(
|
|
||||||
() => props.pageData,
|
|
||||||
() => {
|
|
||||||
curPage.value = props.pageData.page || 1;
|
|
||||||
curSize.value = props.pageData.size || 10;
|
|
||||||
curTotal.value = props.pageData.total || 0;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
deep: true,
|
|
||||||
immediate: true,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
function handleCurrentChange(val) {
|
|
||||||
emit('pageChange', val);
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleSizeChange(val) {
|
|
||||||
emit('sizeChange', val);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
section {
|
|
||||||
display: flex;
|
|
||||||
justify-content: var(--right);
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,27 +1,212 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="map-center-warp">
|
<div class="map-center-warp">
|
||||||
<img :src="getAssetsFile('images/vsualized/gmmap.png')" class="map-img" />
|
<img :src="getAssetsFile('images/vsualized/gmmap.png')" class="map-img" />
|
||||||
|
<div class="map-pos">
|
||||||
|
<custom-echart-maps :chart-data="chartsData.valData" height="100%" :option="chartsData.option" :geo="geoData" :name="mapName" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { isEmpty, getAssetsFile } from '@/utils';
|
import { isEmpty, getAssetsFile } from '@/utils';
|
||||||
|
import { ref, reactive, onMounted } from 'vue';
|
||||||
|
var aspectScale = 0.8807505292367753;
|
||||||
|
// var iconUrl = 'http://localhost:9529/sub-government-screen-service/src/assets/images/vsualized/home/partbg.png';
|
||||||
|
// var iconUrl = getAssetsFile('images/vsualized/gmmap.png').href;
|
||||||
|
var iconUrl = getAssetsFile('images/vsualized/gmmap2.png').href;
|
||||||
|
|
||||||
|
import geoJsonData from '../components/530926geo.json'; // 根据实际情况调整路径
|
||||||
|
let geoData = geoJsonData;
|
||||||
|
let mapName = ref('ZJ');
|
||||||
|
const chartsData = reactive({
|
||||||
|
option: {
|
||||||
|
title: {
|
||||||
|
text: '',
|
||||||
|
left: 'center',
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'item',
|
||||||
|
formatter: function (params) {
|
||||||
|
if (params.seriesType === 'effectScatter') {
|
||||||
|
return `${params.name}: (${params.value[0]}, ${params.value[1]})`;
|
||||||
|
}
|
||||||
|
return params.name;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
toolbox: {
|
||||||
|
show: false,
|
||||||
|
orient: 'vertical',
|
||||||
|
left: 'right',
|
||||||
|
top: 'center',
|
||||||
|
feature: {
|
||||||
|
// dataView: { readOnly: false },
|
||||||
|
// restore: {},
|
||||||
|
// saveAsImage: {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
geo: {
|
||||||
|
map: mapName.value,
|
||||||
|
roam: true,
|
||||||
|
zoom: 1.1,
|
||||||
|
show: false,
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
areaColor: '#1f77b4', // 正常状态下的区域颜色
|
||||||
|
borderColor: '#000', // 区域边界颜色
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
areaColor: '#ff7f0e', // 鼠标悬停时的区域颜色
|
||||||
|
borderColor: '#fff', // 悬停时的边界颜色
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
series: [
|
||||||
|
// {
|
||||||
|
// name: '镇边界',
|
||||||
|
// type: 'map',
|
||||||
|
// mapType: mapName.value,
|
||||||
|
// roam: true,
|
||||||
|
// zoom: 1.2,
|
||||||
|
// itemStyle: {
|
||||||
|
// normal: {
|
||||||
|
// borderColor: '#000', // 设置镇边界的颜色
|
||||||
|
// borderWidth: 1, // 设置镇边界的宽度
|
||||||
|
// areaColor: 'transparent', // 设置背景透明,只显示边界
|
||||||
|
// },
|
||||||
|
// emphasis: {
|
||||||
|
// borderColor: '#fff',
|
||||||
|
// borderWidth: 2,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// 闪烁散点图系列
|
||||||
|
{
|
||||||
|
name: '闪烁散点',
|
||||||
|
type: 'effectScatter', // 使用 effectScatter 类型
|
||||||
|
coordinateSystem: 'geo',
|
||||||
|
data: [
|
||||||
|
// 示例数据点,实际应用中应替换为真实的数据
|
||||||
|
{
|
||||||
|
name: '孟定镇',
|
||||||
|
value: [99.081993, 23.554045, 100], // 经度, 纬度, 数值
|
||||||
|
itemStyle: {
|
||||||
|
color: '#FF0000', // 孟定镇的颜色
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '勐永镇',
|
||||||
|
value: [99.406653, 23.534142, 80], // 经度, 纬度, 数值
|
||||||
|
itemStyle: {
|
||||||
|
color: '#00FF00', // 勐永镇的颜色
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
symbolSize: function (val) {
|
||||||
|
return val[2] ? val[2] / 10 : 10; // 如果没有数值,默认大小
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
formatter: '{b}',
|
||||||
|
position: 'right',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
rippleEffect: {
|
||||||
|
period: 4, // 波纹动画周期
|
||||||
|
scale: 3, // 波纹缩放比例
|
||||||
|
brushType: 'stroke', // 波纹绘制方式:'stroke' 或 'fill'
|
||||||
|
},
|
||||||
|
hoverAnimation: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
valData: [
|
||||||
|
{
|
||||||
|
name: '镇边界',
|
||||||
|
type: 'map',
|
||||||
|
mapType: mapName.value,
|
||||||
|
roam: true,
|
||||||
|
zoom: 1.2,
|
||||||
|
itemStyle: {
|
||||||
|
normal: {
|
||||||
|
borderColor: '#000', // 设置镇边界的颜色
|
||||||
|
borderWidth: 1, // 设置镇边界的宽度
|
||||||
|
areaColor: 'transparent', // 设置背景透明,只显示边界
|
||||||
|
},
|
||||||
|
emphasis: {
|
||||||
|
borderColor: '#fff',
|
||||||
|
borderWidth: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
// 闪烁散点图系列
|
||||||
|
{
|
||||||
|
name: '闪烁散点',
|
||||||
|
type: 'effectScatter', // 使用 effectScatter 类型
|
||||||
|
coordinateSystem: 'geo',
|
||||||
|
data: [
|
||||||
|
// 示例数据点,实际应用中应替换为真实的数据
|
||||||
|
{
|
||||||
|
name: '孟定镇',
|
||||||
|
value: [99.081993, 23.554045, 100], // 经度, 纬度, 数值
|
||||||
|
itemStyle: {
|
||||||
|
color: '#FF0000', // 孟定镇的颜色
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '勐永镇',
|
||||||
|
value: [99.406653, 23.534142, 80], // 经度, 纬度, 数值
|
||||||
|
itemStyle: {
|
||||||
|
color: '#00FF00', // 勐永镇的颜色
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
symbolSize: function (val) {
|
||||||
|
return val[2] ? val[2] / 10 : 10; // 如果没有数值,默认大小
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
formatter: '{b}',
|
||||||
|
position: 'right',
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
rippleEffect: {
|
||||||
|
period: 4, // 波纹动画周期
|
||||||
|
scale: 3, // 波纹缩放比例
|
||||||
|
brushType: 'stroke', // 波纹绘制方式:'stroke' 或 'fill'
|
||||||
|
},
|
||||||
|
hoverAnimation: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
console.info('iconUrl', iconUrl);
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
div {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
.map-center-warp {
|
.map-center-warp {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 100%;
|
height: 90%;
|
||||||
.map-img {
|
.map-img {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
height: 80%;
|
height: 80%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 50px;
|
bottom: 0;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
max-height: 1000px;
|
max-height: 1000px;
|
||||||
}
|
}
|
||||||
|
.map-pos {
|
||||||
|
width: 80%;
|
||||||
|
height: 80%;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -86,8 +86,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import InventoryCharts from './components/InventoryCharts.vue';
|
import InventoryCharts from './components/InventoryCharts.vue';
|
||||||
import waterIntakeCharts from './components/waterIntakeCharts.vue';
|
import waterIntakeCharts from './components/waterIntakeCharts.vue';
|
||||||
import growthIndexesCharts from './components/growthIndexesCharts.vue';
|
import growthIndexesCharts from './components/growthIndexesCharts.vue';
|
||||||
|
@ -1,11 +1,24 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="popular-feelings-warp">
|
<div class="popular-feelings-warp">
|
||||||
<div class="popular-feelings-content">
|
<div
|
||||||
|
class="popular-feelings-content"
|
||||||
|
:style="{
|
||||||
|
'--before-bg': `url(${beforeBg})`,
|
||||||
|
}"
|
||||||
|
>
|
||||||
<template v-for="(n, index) in datalist" :key="index">
|
<template v-for="(n, index) in datalist" :key="index">
|
||||||
<div class="popular-feelings-item" :style="{ 'background-image': 'url(' + getAssetsFile('images/early/back1.png') + ')' + ',' + n.style }">
|
<div
|
||||||
|
class="popular-feelings-item"
|
||||||
|
:style="{
|
||||||
|
'background-image': 'url(' + getAssetsFile('images/early/back1.png') + ')',
|
||||||
|
}"
|
||||||
|
:class="n.name"
|
||||||
|
>
|
||||||
|
<div class="content-bg">
|
||||||
<div class="val">{{ n.val || 0 }}</div>
|
<div class="val">{{ n.val || 0 }}</div>
|
||||||
<div class="label">{{ n.title || 0 }}</div>
|
<div class="label">{{ n.title || 0 }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -14,11 +27,13 @@
|
|||||||
import { ref, reactive, onMounted, computed } from 'vue';
|
import { ref, reactive, onMounted, computed } from 'vue';
|
||||||
import { isEmpty, getAssetsFile } from '@/utils';
|
import { isEmpty, getAssetsFile } from '@/utils';
|
||||||
let datalist = reactive([
|
let datalist = reactive([
|
||||||
{ title: '今天舆情量', val: 1872, style: 'left: 0,top: 50%,' },
|
{ name: 'popular', title: '今天舆情量', val: 1872 },
|
||||||
{ title: '今日文章量', val: 1856, style: 'right: 0,top: 50%,' },
|
{ title: '今日文章量', name: 'article', val: 1856 },
|
||||||
{ title: '今日浏览量', val: 54681, style: 'left: 50%,top: 0,' },
|
{ title: '今日浏览量', name: 'view', val: 54681 },
|
||||||
{ title: '文章总数', val: 75671, style: 'left: 50%,bottom: 0,' },
|
{ title: '文章总数', name: 'total', val: 75671 },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const beforeBg = getAssetsFile('images/early/bg5.png');
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
div {
|
div {
|
||||||
@ -37,6 +52,95 @@ div {
|
|||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-position: left bottom;
|
background-position: left bottom;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
text-align: center;
|
||||||
|
&.popular {
|
||||||
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 35%;
|
||||||
|
height: 45%;
|
||||||
|
.val {
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.label {
|
||||||
|
color: #50e3c2;
|
||||||
|
margin-top: 8%;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.article {
|
||||||
|
left: 50%;
|
||||||
|
top: 0;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: 35%;
|
||||||
|
height: 45%;
|
||||||
|
.val {
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.label {
|
||||||
|
color: #50e3c2;
|
||||||
|
margin-top: 8%;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.view {
|
||||||
|
right: 0;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 35%;
|
||||||
|
height: 45%;
|
||||||
|
.val {
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.label {
|
||||||
|
color: #50e3c2;
|
||||||
|
margin-top: 8%;
|
||||||
|
font-size: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.total {
|
||||||
|
left: 50%;
|
||||||
|
bottom: -10%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: 50%;
|
||||||
|
height: 66%;
|
||||||
|
.val {
|
||||||
|
color: #50e3c2;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 20px;
|
||||||
|
margin-top: 2%;
|
||||||
|
}
|
||||||
|
.label {
|
||||||
|
color: #fff;
|
||||||
|
margin-top: 10%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-bg {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
// .content-bg ::before {
|
||||||
|
// content: '';
|
||||||
|
// position: absolute;
|
||||||
|
// top: 0;
|
||||||
|
// left: 0;
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// background-image: var(--before-bg); /* 替换为你的背景图片路径 */
|
||||||
|
// background-size: 100% 100%;
|
||||||
|
// background-position: left bottom;
|
||||||
|
// background-repeat: no-repeat;
|
||||||
|
// z-index: -1; /* 确保伪元素在内容后面 */
|
||||||
|
// transform: rotate(90deg); /* 旋转角度 */
|
||||||
|
// transform-origin: center; /* 设置旋转中心点 */
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,9 +60,9 @@ let seriesList = computed(() => {
|
|||||||
// 获取最小值
|
// 获取最小值
|
||||||
const min = Math.min(...values);
|
const min = Math.min(...values);
|
||||||
// 定义最大气泡
|
// 定义最大气泡
|
||||||
const maxSize4Pin = 50;
|
const maxSize4Pin = 38;
|
||||||
// 定义最小气泡
|
// 定义最小气泡
|
||||||
const minSize4Pin = 10;
|
const minSize4Pin = 8;
|
||||||
// 固定套路
|
// 固定套路
|
||||||
var a = (maxSize4Pin - minSize4Pin) / (max - min);
|
var a = (maxSize4Pin - minSize4Pin) / (max - min);
|
||||||
var b = maxSize4Pin - a * max;
|
var b = maxSize4Pin - a * max;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<div class="left-charts-item">
|
<div class="left-charts-item">
|
||||||
<customBack top-title="舆情数据统计" :top-postion="'left'">
|
<customBack top-title="舆情数据统计" :top-postion="'left'">
|
||||||
<template #back>
|
<template #back>
|
||||||
<!-- <popularFeelings></popularFeelings> -->
|
<popularFeelings></popularFeelings>
|
||||||
</template>
|
</template>
|
||||||
</customBack>
|
</customBack>
|
||||||
</div>
|
</div>
|
||||||
@ -51,8 +51,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import centerMap from '@/components/centerMap.vue';
|
import centerMap from '@/components/centerMap.vue';
|
||||||
import backToCharts from './components/backToCharts.vue';
|
import backToCharts from './components/backToCharts.vue';
|
||||||
import productTypeWordClould from './components/productTypeWordClould.vue';
|
import productTypeWordClould from './components/productTypeWordClould.vue';
|
||||||
|
@ -58,8 +58,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import centerMap from '@/components/centerMap.vue';
|
import centerMap from '@/components/centerMap.vue';
|
||||||
import categoryCharts from './components/categoryCharts.vue';
|
import categoryCharts from './components/categoryCharts.vue';
|
||||||
import entitieslist from './components/entitieslist.vue';
|
import entitieslist from './components/entitieslist.vue';
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="home-trace-charts">
|
<div class="home-trace-charts">
|
||||||
<custom-echart-mixin :chart-data="chartsData.valData" :option="chartsData.option" height="100%" />
|
<custom-echart-mixin :chart-data="handelData" :option="chartsData.option" height="100%" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, onMounted } from 'vue';
|
import { ref, reactive, onMounted, computed } from 'vue';
|
||||||
|
let itemStyle = reactive({
|
||||||
|
itemStyle: { borderRadius: [8, 8, 0, 0] },
|
||||||
|
});
|
||||||
|
|
||||||
|
let legendList = reactive(['赋码', '扫码']);
|
||||||
const chartsData = ref({
|
const chartsData = ref({
|
||||||
option: {
|
option: {
|
||||||
grid: {
|
color: ['#3685fe', '#8dcbe9', '#ffd500', '#631f9f'],
|
||||||
left: '3%',
|
|
||||||
right: '4%',
|
|
||||||
bottom: '6%',
|
|
||||||
top: '18%',
|
|
||||||
containLabel: true,
|
|
||||||
},
|
|
||||||
color: ['#3685fe', '#41b879', '#ffd500', '#e57373'],
|
|
||||||
title: {
|
title: {
|
||||||
text: ' ',
|
text: ' ',
|
||||||
textStyle: {
|
textStyle: {
|
||||||
@ -23,11 +20,44 @@ const chartsData = ref({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
data: ['赋码', '扫码'],
|
show: true,
|
||||||
|
data: legendList,
|
||||||
|
left: '0', // 距离左侧10%的位置
|
||||||
|
top: '0', // 垂直居中
|
||||||
|
itemWidth: 15, // 图例标记的宽度
|
||||||
|
itemHeight: 8, // 图例标记的高度
|
||||||
|
textStyle: {
|
||||||
|
fontSize: 10, // 图例文字的字体大小
|
||||||
|
color: '#fff', // 图例文字的颜色
|
||||||
|
},
|
||||||
},
|
},
|
||||||
barStyle: {
|
barStyle: {
|
||||||
barWidth: 18,
|
barWidth: 10,
|
||||||
|
color: {
|
||||||
|
type: 'linear', // 线性渐变
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
x2: 0,
|
||||||
|
y2: 1,
|
||||||
|
colorStops: [
|
||||||
|
{ offset: 0, color: '#45bfe9' },
|
||||||
|
{ offset: 1, color: '#01589c' },
|
||||||
|
],
|
||||||
|
global: false, // 默认为 false
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
dataZoom: [
|
||||||
|
// {
|
||||||
|
// type: 'slider', // 滑动条型数据区域缩放组件
|
||||||
|
// startValue: 0, // 数据窗口起始值的索引
|
||||||
|
// endValue: 2, // 数据窗口结束值的索引
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// type: 'inside', // 支持鼠标滚轮和触控板缩放和平移
|
||||||
|
// startValue: 0,
|
||||||
|
// endValue: 2,
|
||||||
|
// },
|
||||||
|
],
|
||||||
yAxis: [
|
yAxis: [
|
||||||
{
|
{
|
||||||
type: 'value',
|
type: 'value',
|
||||||
@ -39,62 +69,62 @@ const chartsData = ref({
|
|||||||
show: true, // 显示分割线
|
show: true, // 显示分割线
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
type: 'dashed', // 设置为虚线
|
type: 'dashed', // 设置为虚线
|
||||||
color: '#ccc', // 分割线颜色
|
|
||||||
width: 0.5, // 分割线宽度
|
width: 0.5, // 分割线宽度
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
itemStyle: { fontSize: 8 },
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// type: 'value',
|
|
||||||
// name: '扫码',
|
|
||||||
// yAxisIndex: 1,
|
|
||||||
// axisLabel: {
|
|
||||||
// formatter: '{value}',
|
|
||||||
// },
|
|
||||||
// },
|
|
||||||
],
|
],
|
||||||
},
|
grid: {
|
||||||
valData: [
|
x: '10%',
|
||||||
{
|
x2: '10%',
|
||||||
name: '1月',
|
y: '20%',
|
||||||
value: 40,
|
y2: '20%',
|
||||||
type: '赋码',
|
|
||||||
seriesType: 'bar',
|
|
||||||
barWidth: 10,
|
|
||||||
itemStyle: {
|
|
||||||
color: {
|
|
||||||
type: 'linear', // 线性渐变
|
|
||||||
x: 0,
|
|
||||||
y: 0,
|
|
||||||
x2: 0,
|
|
||||||
y2: 1,
|
|
||||||
colorStops: [
|
|
||||||
{ offset: 0, color: '#ff6666' },
|
|
||||||
{ offset: 1, color: '#ffcc66' },
|
|
||||||
],
|
|
||||||
global: false, // 默认为 false
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
valData: [],
|
||||||
{ name: '1月', value: 60, type: '扫码', seriesType: 'line' },
|
|
||||||
{ name: '2月', value: 20, type: '赋码', seriesType: 'bar', itemStyle: { borderRadius: [8, 8, 0, 0] } },
|
|
||||||
{ name: '2月', value: 100, type: '扫码', seriesType: 'line' },
|
|
||||||
{ name: '3月', value: 80, type: '赋码', seriesType: 'bar', itemStyle: { borderRadius: [8, 8, 0, 0] } },
|
|
||||||
{ name: '3月', value: 100, type: '扫码', seriesType: 'line' },
|
|
||||||
{ name: '4月', value: 40, type: '赋码', seriesType: 'bar', itemStyle: { borderRadius: [8, 8, 0, 0] } },
|
|
||||||
{ name: '4月', value: 120, type: '扫码', seriesType: 'line' },
|
|
||||||
{ name: '5月', value: 50, type: '赋码', seriesType: 'bar', itemStyle: { borderRadius: [8, 8, 0, 0] } },
|
|
||||||
{ name: '5月', value: 60, type: '扫码', seriesType: 'line' },
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
const randomVal = (num) => {
|
||||||
if (chartsData.value.valData && chartsData.value.valData.length) {
|
let list = [];
|
||||||
chartsData.value.valData.forEach((m, index) => {
|
for (let i = 0; i < legendList.length; i++) {
|
||||||
let num = 100;
|
let addNum = [10, 8, 2, 5];
|
||||||
m.value = (m.value + Math.random() + num).toFixed(0);
|
let val = {
|
||||||
});
|
name: num + '月',
|
||||||
|
value: Number(Math.random() * 100 + addNum[i]).toFixed(2),
|
||||||
|
seriesType: i < legendList.length - 1 ? 'bar' : 'line',
|
||||||
|
type: legendList[i],
|
||||||
|
stack: num + '月',
|
||||||
|
};
|
||||||
|
if (val.seriesType == 'line') {
|
||||||
|
val.smooth = 30;
|
||||||
|
val.symbol = 'none';
|
||||||
}
|
}
|
||||||
|
if (val.seriesType == 'bar') {
|
||||||
|
val.symbol = 'none';
|
||||||
|
}
|
||||||
|
let lastVal = {
|
||||||
|
...val,
|
||||||
|
...itemStyle,
|
||||||
|
};
|
||||||
|
list[i] = i < legendList.length - 2 ? val : lastVal;
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
};
|
||||||
|
let handelData = computed(() => {
|
||||||
|
let list = [];
|
||||||
|
let maxMouth = 12;
|
||||||
|
for (let i = 0; i < maxMouth; i++) {
|
||||||
|
let val = randomVal(i + 1);
|
||||||
|
list = [...list, ...val];
|
||||||
|
}
|
||||||
|
|
||||||
|
list.map((m, indexm) => {
|
||||||
|
return { ...m, value: Number(Number(m.value) + Math.random() + indexm).toFixed(0) };
|
||||||
|
});
|
||||||
|
// console.info('handelData', list);
|
||||||
|
return list;
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -73,8 +73,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import centerMap from '@/components/centerMap.vue';
|
import centerMap from '@/components/centerMap.vue';
|
||||||
import comprehensive from './components/comprehensive.vue';
|
import comprehensive from './components/comprehensive.vue';
|
||||||
import plantBreedCharts from './components/plantBreedCharts.vue';
|
import plantBreedCharts from './components/plantBreedCharts.vue';
|
||||||
|
@ -58,8 +58,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import centerMap from '@/components/centerMap.vue';
|
import centerMap from '@/components/centerMap.vue';
|
||||||
import inputsGmp from './components/inputsGmp.vue';
|
import inputsGmp from './components/inputsGmp.vue';
|
||||||
import landbreedCharts from './components/landbreedCharts.vue';
|
import landbreedCharts from './components/landbreedCharts.vue';
|
||||||
|
@ -58,8 +58,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import centerMap from '@/components/centerMap.vue';
|
import centerMap from '@/components/centerMap.vue';
|
||||||
import distributionCharts from './components/distributionCharts.vue';
|
import distributionCharts from './components/distributionCharts.vue';
|
||||||
import landuseCharts from './components/landuseCharts.vue';
|
import landuseCharts from './components/landuseCharts.vue';
|
||||||
|
@ -1,10 +1,66 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="plant-gs-warp">
|
<div class="plant-gs-warp">
|
||||||
<div class="plant-gs-content" :style="{ 'background-image': 'url(' + getAssetsFile('images/plant/bg1.png') + ')' }"></div>
|
<div ref="viewwarp" class="plant-gs-content" :style="{ 'background-image': 'url(' + getAssetsFile('images/plant/bg1.png') + ')' }">
|
||||||
|
<vc-config-provider :cesium-path="vcConfig.cesiumPath" :access-token="vcConfig.accessToken">
|
||||||
|
<vc-viewer ref="viewerRef" @ready="onViewerReady">
|
||||||
|
<vc-layer-imagery :minimum-level="12" :maximum-level="18" :contrast="1.8" :saturation="1" :alpha="1">
|
||||||
|
<vc-imagery-provider-amap :key="'c843a50db7157faf295c6fa37c48719f'"></vc-imagery-provider-amap>
|
||||||
|
</vc-layer-imagery>
|
||||||
|
<!-- <vc-entity :position="[99.402267, 23.538889, 4000]" description="Hello VueCesium">
|
||||||
|
<vc-graphics-plane
|
||||||
|
ref="plane2"
|
||||||
|
:plane="[{ x: 0, y: 1, z: 1 }, 0]"
|
||||||
|
:dimensions="[400, 300]"
|
||||||
|
:material="[255, 0, 0, 125]"
|
||||||
|
:outline="true"
|
||||||
|
outline-color="black"
|
||||||
|
></vc-graphics-plane>
|
||||||
|
</vc-entity> -->
|
||||||
|
</vc-viewer>
|
||||||
|
</vc-config-provider>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { isEmpty, getAssetsFile } from '@/utils';
|
import { isEmpty, getAssetsFile } from '@/utils';
|
||||||
|
import { ref, reactive, onMounted, computed, nextTick, getCurrentInstance } from 'vue';
|
||||||
|
import { VcViewer, VcConfigProvider, VcImageryProviderAmap, VcLayerImagery, VcGraphicsPlane, VcEntity } from 'vue-cesium';
|
||||||
|
import 'vue-cesium/dist/index.css';
|
||||||
|
|
||||||
|
const vcConfig = reactive({
|
||||||
|
cesiumPath: 'https://cdn.bootcdn.net/ajax/libs/cesium/1.80.0/Cesium.js',
|
||||||
|
accessToken:
|
||||||
|
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiNjJjZTUxYi1lOTQ3LTQ3YjctOGI3ZS02ZGUzY2E4YWFkNDkiLCJpZCI6Mjg4MjAxLCJpYXQiOjE3NDMwNTY0MzN9.rjHQiqf7Y8bccaqsapqveULVAUH6M1QkeFp-AKG-frA',
|
||||||
|
});
|
||||||
|
const viewerRef = ref(null);
|
||||||
|
const viewwarp = ref(null);
|
||||||
|
let plane2 = ref(null);
|
||||||
|
onMounted(() => {
|
||||||
|
console.info('onMounted', viewerRef);
|
||||||
|
Promise.all([plane2.value.creatingPromise]).then((instances) => {
|
||||||
|
console.info('instances');
|
||||||
|
// instances[0].viewer.zoomTo(instances[0].viewer.entities);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const onViewerReady = (readyObj) => {
|
||||||
|
console.info('readyObj', readyObj.Cesium); // Cesium namespace object
|
||||||
|
console.log(readyObj.viewer); // instanceof Cesium.Viewer
|
||||||
|
|
||||||
|
// 在这里处理 Viewer 的初始化逻辑
|
||||||
|
const { Cesium, viewer } = readyObj;
|
||||||
|
|
||||||
|
// 示例:设置地球背景颜色
|
||||||
|
viewer.scene.globe.baseColor = Cesium.Color.DARKBLUE;
|
||||||
|
viewer.camera.setView({
|
||||||
|
destination: Cesium.Cartesian3.fromDegrees(99.406653, 23.534142, 4000),
|
||||||
|
orientation: {
|
||||||
|
heading: Cesium.Math.toRadians(0), // 方向角
|
||||||
|
pitch: Cesium.Math.toRadians(-90), // 俯仰角
|
||||||
|
roll: 0, // 滚动角
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.plant-gs-warp {
|
.plant-gs-warp {
|
||||||
@ -17,6 +73,20 @@ import { isEmpty, getAssetsFile } from '@/utils';
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
::v-deep() {
|
||||||
|
.vc-viewer {
|
||||||
|
height: calc(100% - 30px) !important;
|
||||||
|
width: calc(100% - 20px) !important;
|
||||||
|
margin: 20px 10px 10px 10px !important;
|
||||||
|
}
|
||||||
|
canvas {
|
||||||
|
border-radius: 10px !important;
|
||||||
|
}
|
||||||
|
.cesium-viewer-bottom {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -26,9 +26,9 @@
|
|||||||
</customBack>
|
</customBack>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12" style="height: 100%">
|
||||||
<el-row style="height: 67%">
|
<el-row style="height: 67%">
|
||||||
<el-col :span="24" class="center-top">
|
<el-col :span="24" class="center-top" style="height: 100%">
|
||||||
<div class="notice">
|
<div class="notice">
|
||||||
<noticeBar :height="'40px'"></noticeBar>
|
<noticeBar :height="'40px'"></noticeBar>
|
||||||
</div>
|
</div>
|
||||||
@ -86,10 +86,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import plantTypeCharts from './components/plantTypeCharts.vue';
|
import plantTypeCharts from './components/plantTypeCharts.vue';
|
||||||
import insectPestsCharts from './components/insectPestsCharts';
|
import insectPestsCharts from './components/insectPestsCharts.vue';
|
||||||
import pathologyCharts from './components/pathologyCharts.vue';
|
import pathologyCharts from './components/pathologyCharts.vue';
|
||||||
import waterfertilizerCharts from './components/waterfertilizerCharts.vue';
|
import waterfertilizerCharts from './components/waterfertilizerCharts.vue';
|
||||||
import irrigationCharts from './components/irrigationCharts.vue';
|
import irrigationCharts from './components/irrigationCharts.vue';
|
||||||
|
@ -58,8 +58,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import baseBg from '@/components/baseBg.vue';
|
|
||||||
import customBack from '@/components/customBack.vue';
|
|
||||||
import centerMap from '@/components/centerMap.vue';
|
import centerMap from '@/components/centerMap.vue';
|
||||||
import codeNumCharts from './components/codeNumCharts.vue';
|
import codeNumCharts from './components/codeNumCharts.vue';
|
||||||
import mainPartCharts from './components/mainPartCharts.vue';
|
import mainPartCharts from './components/mainPartCharts.vue';
|
||||||
|
@ -2,6 +2,11 @@
|
|||||||
# yarn lockfile v1
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@amap/amap-jsapi-loader@^1.0.1":
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz#9ec4b4d5d2467eac451f6c852e35db69e9f9f0c0"
|
||||||
|
integrity sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==
|
||||||
|
|
||||||
"@ampproject/remapping@^2.2.0":
|
"@ampproject/remapping@^2.2.0":
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
|
resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
|
||||||
@ -705,6 +710,34 @@
|
|||||||
resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
resolved "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||||
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
||||||
|
|
||||||
|
"@turf/circle@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/circle/-/circle-6.5.0.tgz#dc017d8c0131d1d212b7c06f76510c22bbeb093c"
|
||||||
|
integrity sha512-oU1+Kq9DgRnoSbWFHKnnUdTmtcRUMmHoV9DjTXu9vOLNV5OWtAAh1VZ+mzsioGGzoDNT/V5igbFOkMfBQc0B6A==
|
||||||
|
dependencies:
|
||||||
|
"@turf/destination" "^6.5.0"
|
||||||
|
"@turf/helpers" "^6.5.0"
|
||||||
|
|
||||||
|
"@turf/destination@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/destination/-/destination-6.5.0.tgz#30a84702f9677d076130e0440d3223ae503fdae1"
|
||||||
|
integrity sha512-4cnWQlNC8d1tItOz9B4pmJdWpXqS0vEvv65bI/Pj/genJnsL7evI0/Xw42RvEGROS481MPiU80xzvwxEvhQiMQ==
|
||||||
|
dependencies:
|
||||||
|
"@turf/helpers" "^6.5.0"
|
||||||
|
"@turf/invariant" "^6.5.0"
|
||||||
|
|
||||||
|
"@turf/helpers@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e"
|
||||||
|
integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==
|
||||||
|
|
||||||
|
"@turf/invariant@^6.5.0":
|
||||||
|
version "6.5.0"
|
||||||
|
resolved "https://registry.npmmirror.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f"
|
||||||
|
integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==
|
||||||
|
dependencies:
|
||||||
|
"@turf/helpers" "^6.5.0"
|
||||||
|
|
||||||
"@types/eslint@^8.4.5":
|
"@types/eslint@^8.4.5":
|
||||||
version "8.56.12"
|
version "8.56.12"
|
||||||
resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a"
|
resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.12.tgz#1657c814ffeba4d2f84c0d4ba0f44ca7ea1ca53a"
|
||||||
@ -941,7 +974,7 @@
|
|||||||
"@vue/compiler-ssr" "3.5.13"
|
"@vue/compiler-ssr" "3.5.13"
|
||||||
"@vue/shared" "3.5.13"
|
"@vue/shared" "3.5.13"
|
||||||
|
|
||||||
"@vue/shared@3.5.13":
|
"@vue/shared@3.5.13", "@vue/shared@^3.2.47":
|
||||||
version "3.5.13"
|
version "3.5.13"
|
||||||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
|
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f"
|
||||||
integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
|
integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
|
||||||
@ -1046,6 +1079,11 @@
|
|||||||
resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532"
|
resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz#b9df1b3ab2cd53f678b19b4d927e200774a6f532"
|
||||||
integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
|
integrity sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==
|
||||||
|
|
||||||
|
"@zouyaoji/heatmap.js@^2.0.8":
|
||||||
|
version "2.0.8"
|
||||||
|
resolved "https://registry.npmmirror.com/@zouyaoji/heatmap.js/-/heatmap.js-2.0.8.tgz#5f6b285e7635ca07f2ecdb3d83a9dc1d240433d7"
|
||||||
|
integrity sha512-kBQny/zOUFH2OFoVyu6IdGJEcQMENIAASUsaZhk+OuJ9WexsYf6EU2lCyGURcsFly1kTMZKODlV7nBTCgfvJqg==
|
||||||
|
|
||||||
acorn-jsx@^5.3.2:
|
acorn-jsx@^5.3.2:
|
||||||
version "5.3.2"
|
version "5.3.2"
|
||||||
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
||||||
@ -1683,6 +1721,11 @@ commander@^7.2.0:
|
|||||||
resolved "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
resolved "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
||||||
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
||||||
|
|
||||||
|
compare-versions@^6.1.0:
|
||||||
|
version "6.1.1"
|
||||||
|
resolved "https://registry.npmmirror.com/compare-versions/-/compare-versions-6.1.1.tgz#7af3cc1099ba37d244b3145a9af5201b629148a9"
|
||||||
|
integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==
|
||||||
|
|
||||||
component-emitter@^1.2.1:
|
component-emitter@^1.2.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
|
resolved "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
|
||||||
@ -2099,7 +2142,7 @@ echarts-gl@^2.0.9:
|
|||||||
claygl "^1.2.1"
|
claygl "^1.2.1"
|
||||||
zrender "^5.1.1"
|
zrender "^5.1.1"
|
||||||
|
|
||||||
echarts@^5.6.0:
|
echarts@^5.4.3, echarts@^5.6.0:
|
||||||
version "5.6.0"
|
version "5.6.0"
|
||||||
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6"
|
resolved "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz#2377874dca9fb50f104051c3553544752da3c9d6"
|
||||||
integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
|
integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
|
||||||
@ -3763,6 +3806,11 @@ jsonfile@^6.0.1:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
graceful-fs "^4.1.6"
|
graceful-fs "^4.1.6"
|
||||||
|
|
||||||
|
kdbush@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.npmmirror.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39"
|
||||||
|
integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==
|
||||||
|
|
||||||
keyv@^4.5.3:
|
keyv@^4.5.3:
|
||||||
version "4.5.4"
|
version "4.5.4"
|
||||||
resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
|
resolved "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
|
||||||
@ -3894,7 +3942,7 @@ lodash-es@^4.17.21:
|
|||||||
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||||
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
|
||||||
|
|
||||||
lodash-unified@^1.0.2:
|
lodash-unified@^1.0.2, lodash-unified@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
|
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
|
||||||
integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
|
integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
|
||||||
@ -4091,6 +4139,11 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1:
|
|||||||
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
|
mgrs@1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.npmmirror.com/mgrs/-/mgrs-1.0.0.tgz#fb91588e78c90025672395cb40b25f7cd6ad1829"
|
||||||
|
integrity sha512-awNbTOqCxK1DBGjalK3xqWIstBZgN6fxsMSiXLs9/spqWkF2pAhb2rrYCFSsr1/tT7PhcDGjZndG8SWYn0byYA==
|
||||||
|
|
||||||
micromatch@3.1.0:
|
micromatch@3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz#5102d4eaf20b6997d6008e3acfe1c44a3fa815e2"
|
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz#5102d4eaf20b6997d6008e3acfe1c44a3fa815e2"
|
||||||
@ -4183,6 +4236,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
|
|||||||
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||||
|
|
||||||
|
mitt@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
|
||||||
|
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
|
||||||
|
|
||||||
mixin-deep@^1.2.0:
|
mixin-deep@^1.2.0:
|
||||||
version "1.3.2"
|
version "1.3.2"
|
||||||
resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
|
resolved "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
|
||||||
@ -4900,6 +4958,14 @@ progress@^2.0.3:
|
|||||||
resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
resolved "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||||
|
|
||||||
|
proj4@^2.9.1:
|
||||||
|
version "2.15.0"
|
||||||
|
resolved "https://registry.npmmirror.com/proj4/-/proj4-2.15.0.tgz#d77c9956861c8ed516071c4208d576cebe800eb5"
|
||||||
|
integrity sha512-LqCNEcPdI03BrCHxPLj29vsd5afsm+0sV1H/O3nTDKrv8/LA01ea1z4QADDMjUqxSXWnrmmQDjqFm1J/uZ5RLw==
|
||||||
|
dependencies:
|
||||||
|
mgrs "1.0.0"
|
||||||
|
wkt-parser "^1.4.0"
|
||||||
|
|
||||||
proxy-from-env@^1.1.0:
|
proxy-from-env@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||||
@ -6368,6 +6434,11 @@ uri-js@^4.2.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
punycode "^2.1.0"
|
punycode "^2.1.0"
|
||||||
|
|
||||||
|
urijs@^1.19.11:
|
||||||
|
version "1.19.11"
|
||||||
|
resolved "https://registry.npmmirror.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
|
||||||
|
integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==
|
||||||
|
|
||||||
urix@^0.1.0:
|
urix@^0.1.0:
|
||||||
version "0.1.0"
|
version "0.1.0"
|
||||||
resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
resolved "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
||||||
@ -6511,6 +6582,25 @@ vite@^5.0.8:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.3"
|
fsevents "~2.3.3"
|
||||||
|
|
||||||
|
vue-cesium@^3.2.9:
|
||||||
|
version "3.2.9"
|
||||||
|
resolved "https://registry.npmmirror.com/vue-cesium/-/vue-cesium-3.2.9.tgz#67b9dcbb4ed8e228fde886b957d0f4b4a3e388ba"
|
||||||
|
integrity sha512-MOgxAfIL+qYT608n+Bqioz2NbAM9pTWztzZ2gOqfHMxNeOFGROCUFatrzCP/OhndeEH8hbqdnGyxt1bHV9+dzQ==
|
||||||
|
dependencies:
|
||||||
|
"@amap/amap-jsapi-loader" "^1.0.1"
|
||||||
|
"@turf/circle" "^6.5.0"
|
||||||
|
"@vue/shared" "^3.2.47"
|
||||||
|
"@zouyaoji/heatmap.js" "^2.0.8"
|
||||||
|
compare-versions "^6.1.0"
|
||||||
|
echarts "^5.4.3"
|
||||||
|
kdbush "^4.0.2"
|
||||||
|
lodash "^4.17.21"
|
||||||
|
lodash-es "^4.17.21"
|
||||||
|
lodash-unified "^1.0.3"
|
||||||
|
mitt "^3.0.1"
|
||||||
|
proj4 "^2.9.1"
|
||||||
|
urijs "^1.19.11"
|
||||||
|
|
||||||
vue-demi@*, vue-demi@^0.14.10:
|
vue-demi@*, vue-demi@^0.14.10:
|
||||||
version "0.14.10"
|
version "0.14.10"
|
||||||
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
|
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
|
||||||
@ -6642,6 +6732,11 @@ wildcard@^1.1.0:
|
|||||||
resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
resolved "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
||||||
integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
|
integrity sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==
|
||||||
|
|
||||||
|
wkt-parser@^1.4.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.npmmirror.com/wkt-parser/-/wkt-parser-1.4.0.tgz#7cca07a6ee5b4baf059b723e62d7fe95bc923bf5"
|
||||||
|
integrity sha512-qpwO7Ihds/YYDTi1aADFTI1Sm9YC/tTe3SHD24EeIlZxy7Ik6a1b4HOz7jAi0xdUAw487duqpo8OGu+Tf4nwlQ==
|
||||||
|
|
||||||
word-wrap@^1.2.5:
|
word-wrap@^1.2.5:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user