Echarts公共方法
Vue引入Echarts
install
1.安装Echartsnpm install echarts --save
2.项目全局引入形式--#main.js 全局引入形式import * as echarts from "echarts"Vue.prototype.$echarts =echarts
公共方法JS
/*** @author: wangjie* @description: 通用echarts图表封装* @date: 2020/7/23 15:23* @update:
*/import * as echarts from "echarts"
export default class EChartsWrapper {constructor(element, options = {}) {if (element == null || element == undefined) {return;}this.chart = echarts.init(element);this.options = Object.assign({}, options);this.initChart();}initChart() {this.chart.setOption(this.options);}// 更新图表配置updateOptions(newOptions) {this.options = Object.assign(this.options, newOptions);this.chart.setOption(this.options);}// 刷新数据refreshData(seriesIndex, newData) {const series = this.options.series[seriesIndex];if (series) {series.data = newData;this.updateOptions({});}}// 图表重载,适用于窗口大小变化等情况resize() {this.chart.resize();}// 销毁图表实例dispose() {this.chart.dispose();this.chart = null;}// 扩展方法,例如添加事件监听器on(eventName, callback) {this.chart.on(eventName, callback);}// 其他自定义方法,例如根据图表类型进行特定配置customizeForType(type) {switch (type) {case 'line':this.options.xAxis.type = 'category';this.options.yAxis.type = 'value';break;case 'bar':if (this.options == undefined) return;this.options.xAxis.type = 'category';this.options.yAxis.type = 'value';break;case 'pie':this.options.series.type = 'pie';break;default:break;}this.updateOptions({});}// 新增自动滚动方法startAutoScroll(scrollInterval = 2000) {let timer = null;timer = setInterval(() => {// 检查series是否为空或不存在if (!this.options.series || !Array.isArray(this.options.series)) {console.error('Series data is not properly configured.');return;}this.options.series.forEach((series, index) => {const xAxisData = this.options.xAxis.data; // 获取X轴数据if (Array.isArray(series.data) && series.data.length > 1 && Array.isArray(xAxisData)) {// 将第一个数据移到数组末尾const firstItem = series.data.shift();const firstXLabel = xAxisData.shift(); // 同步移动X轴的第一个标签series.data.push(firstItem);xAxisData.push(firstXLabel); // 将移除的X轴标签添加到末尾// 更新图表this.refreshData(index, series.data);this.updateOptions({ xAxis: { data: xAxisData } }); // 更新X轴数据 }});}, scrollInterval);// 存储定时器引用,以便后续清除this.autoScrollTimer = timer;}// 新增停止自动滚动的方法stopAutoScroll() {if (this.autoScrollTimer) {clearInterval(this.autoScrollTimer);this.autoScrollTimer = null;}}
}
测试index.vue
<template><div class="chart-container"><div v-for="(item, index) in chartTypes" :key="index" class="chart-header"><h2>{{ item }}</h2><div ref="chartRefs" :id="`chart-${index}`" :style="{ width: '100%', height: '550px' }"></div></div><!-- <button type="primary" @click="updateChartData">更新数据</button> --></div>
</template><script>
import EChartsWrapper from '@/api/echarts/EChartsWrapper'
import * as echarts from 'echarts';
export default {name: 'ChartComponent',data() {return {chartInstance: null,chartTypes: ['bar', 'line', 'pie', 'radar', 'tree', 'calendar', 'gauge', 'funnel'],chartInstances: [],};},mounted() {this.chartTypes.forEach((item, index) => {// this.queryChartInstance(item, index)const chartRef = this.$refs.chartRefs[index];const chartInstance = new EChartsWrapper(chartRef, this.getChartOptions(item));// chartInstance.customizeForType(item);this.chartInstances.push(chartInstance);// 设置图表类型// this.chartInstance.customizeForType('bar');// 开始自动滚动// chartInstance.startAutoScroll(3000); // 每3秒滚动一次// 停止自动滚动// chartWrapper.stopAutoScroll();});},methods: {getChartOptions(type) {const commonOptions = {title: {text: type.charAt(0).toUpperCase() + type.slice(1) + ' Chart',},tooltip: {},};switch (type) {case 'bar':return {...commonOptions,tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},legend: {},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true},xAxis: [{type: 'category',data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']}],yAxis: [{type: 'value'}],series: [{name: 'Direct',type: 'bar',emphasis: {focus: 'series'},data: [320, 332, 301, 334, 390, 330, 320]},{name: 'Email',type: 'bar',stack: 'Ad',emphasis: {focus: 'series'},data: [120, 132, 101, 134, 90, 230, 210]},{name: 'Union Ads',type: 'bar',stack: 'Ad',emphasis: {focus: 'series'},data: [220, 182, 191, 234, 290, 330, 310]},{name: 'Video Ads',type: 'bar',stack: 'Ad',emphasis: {focus: 'series'},data: [150, 232, 201, 154, 190, 330, 410]},{name: 'Search Engine',type: 'bar',data: [862, 1018, 964, 1026, 1679, 1600, 1570],emphasis: {focus: 'series'},markLine: {lineStyle: {type: 'dashed'},data: [[{ type: 'min' }, { type: 'max' }]]}},{name: 'Baidu',type: 'bar',barWidth: 5,stack: 'Search Engine',emphasis: {focus: 'series'},data: [620, 732, 701, 734, 1090, 1130, 1120]},{name: 'Google',type: 'bar',stack: 'Search Engine',emphasis: {focus: 'series'},data: [120, 132, 101, 134, 290, 230, 220]},{name: 'Bing',type: 'bar',stack: 'Search Engine',emphasis: {focus: 'series'},data: [60, 72, 71, 74, 190, 130, 110]},{name: 'Others',type: 'bar',stack: 'Search Engine',emphasis: {focus: 'series'},data: [62, 82, 91, 84, 109, 110, 120]}]};case 'line':return {...commonOptions,title: {text: 'Stacked Line'},tooltip: {trigger: 'axis'},legend: {data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true},toolbox: {feature: {saveAsImage: {}}},xAxis: {type: 'category',boundaryGap: false,data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{name: 'Email',type: 'line',stack: 'Total',data: [120, 132, 101, 134, 90, 230, 210]},{name: 'Union Ads',type: 'line',stack: 'Total',data: [220, 182, 191, 234, 290, 330, 310]},{name: 'Video Ads',type: 'line',stack: 'Total',data: [150, 232, 201, 154, 190, 330, 410]},{name: 'Direct',type: 'line',stack: 'Total',data: [320, 332, 301, 334, 390, 330, 320]},{name: 'Search Engine',type: 'line',stack: 'Total',data: [820, 932, 901, 934, 1290, 1330, 1320]}]};case 'pie':return {...commonOptions,legend: {top: 'bottom'},toolbox: {show: true,feature: {mark: { show: true },dataView: { show: true, readOnly: false },restore: { show: true },saveAsImage: { show: true }}},series: [{name: 'Nightingale Chart',type: 'pie',radius: [50, 250],center: ['50%', '50%'],roseType: 'area',itemStyle: {borderRadius: 8},data: [{ value: 40, name: 'rose 1' },{ value: 38, name: 'rose 2' },{ value: 32, name: 'rose 3' },{ value: 30, name: 'rose 4' },{ value: 28, name: 'rose 5' },{ value: 26, name: 'rose 6' },{ value: 22, name: 'rose 7' },{ value: 18, name: 'rose 8' }]}]};case 'radar':const dataBJ = [[55, 9, 56, 0.46, 18, 6, 1],[25, 11, 21, 0.65, 34, 9, 2],[56, 7, 63, 0.3, 14, 5, 3],[33, 7, 29, 0.33, 16, 6, 4],[42, 24, 44, 0.76, 40, 16, 5],[82, 58, 90, 1.77, 68, 33, 6],[74, 49, 77, 1.46, 48, 27, 7],[78, 55, 80, 1.29, 59, 29, 8],[267, 216, 280, 4.8, 108, 64, 9],[185, 127, 216, 2.52, 61, 27, 10],[39, 19, 38, 0.57, 31, 15, 11],[41, 11, 40, 0.43, 21, 7, 12],[64, 38, 74, 1.04, 46, 22, 13],[108, 79, 120, 1.7, 75, 41, 14],[108, 63, 116, 1.48, 44, 26, 15],[33, 6, 29, 0.34, 13, 5, 16],[94, 66, 110, 1.54, 62, 31, 17],[186, 142, 192, 3.88, 93, 79, 18],[57, 31, 54, 0.96, 32, 14, 19],[22, 8, 17, 0.48, 23, 10, 20],[39, 15, 36, 0.61, 29, 13, 21],[94, 69, 114, 2.08, 73, 39, 22],[99, 73, 110, 2.43, 76, 48, 23],[31, 12, 30, 0.5, 32, 16, 24],[42, 27, 43, 1, 53, 22, 25],[154, 117, 157, 3.05, 92, 58, 26],[234, 185, 230, 4.09, 123, 69, 27],[160, 120, 186, 2.77, 91, 50, 28],[134, 96, 165, 2.76, 83, 41, 29],[52, 24, 60, 1.03, 50, 21, 30],[46, 5, 49, 0.28, 10, 6, 31]];const dataGZ = [[26, 37, 27, 1.163, 27, 13, 1],[85, 62, 71, 1.195, 60, 8, 2],[78, 38, 74, 1.363, 37, 7, 3],[21, 21, 36, 0.634, 40, 9, 4],[41, 42, 46, 0.915, 81, 13, 5],[56, 52, 69, 1.067, 92, 16, 6],[64, 30, 28, 0.924, 51, 2, 7],[55, 48, 74, 1.236, 75, 26, 8],[76, 85, 113, 1.237, 114, 27, 9],[91, 81, 104, 1.041, 56, 40, 10],[84, 39, 60, 0.964, 25, 11, 11],[64, 51, 101, 0.862, 58, 23, 12],[70, 69, 120, 1.198, 65, 36, 13],[77, 105, 178, 2.549, 64, 16, 14],[109, 68, 87, 0.996, 74, 29, 15],[73, 68, 97, 0.905, 51, 34, 16],[54, 27, 47, 0.592, 53, 12, 17],[51, 61, 97, 0.811, 65, 19, 18],[91, 71, 121, 1.374, 43, 18, 19],[73, 102, 182, 2.787, 44, 19, 20],[73, 50, 76, 0.717, 31, 20, 21],[84, 94, 140, 2.238, 68, 18, 22],[93, 77, 104, 1.165, 53, 7, 23],[99, 130, 227, 3.97, 55, 15, 24],[146, 84, 139, 1.094, 40, 17, 25],[113, 108, 137, 1.481, 48, 15, 26],[81, 48, 62, 1.619, 26, 3, 27],[56, 48, 68, 1.336, 37, 9, 28],[82, 92, 174, 3.29, 0, 13, 29],[106, 116, 188, 3.628, 101, 16, 30],[118, 50, 0, 1.383, 76, 11, 31]];const dataSH = [[91, 45, 125, 0.82, 34, 23, 1],[65, 27, 78, 0.86, 45, 29, 2],[83, 60, 84, 1.09, 73, 27, 3],[109, 81, 121, 1.28, 68, 51, 4],[106, 77, 114, 1.07, 55, 51, 5],[109, 81, 121, 1.28, 68, 51, 6],[106, 77, 114, 1.07, 55, 51, 7],[89, 65, 78, 0.86, 51, 26, 8],[53, 33, 47, 0.64, 50, 17, 9],[80, 55, 80, 1.01, 75, 24, 10],[117, 81, 124, 1.03, 45, 24, 11],[99, 71, 142, 1.1, 62, 42, 12],[95, 69, 130, 1.28, 74, 50, 13],[116, 87, 131, 1.47, 84, 40, 14],[108, 80, 121, 1.3, 85, 37, 15],[134, 83, 167, 1.16, 57, 43, 16],[79, 43, 107, 1.05, 59, 37, 17],[71, 46, 89, 0.86, 64, 25, 18],[97, 71, 113, 1.17, 88, 31, 19],[84, 57, 91, 0.85, 55, 31, 20],[87, 63, 101, 0.9, 56, 41, 21],[104, 77, 119, 1.09, 73, 48, 22],[87, 62, 100, 1, 72, 28, 23],[168, 128, 172, 1.49, 97, 56, 24],[65, 45, 51, 0.74, 39, 17, 25],[39, 24, 38, 0.61, 47, 17, 26],[39, 24, 39, 0.59, 50, 19, 27],[93, 68, 96, 1.05, 79, 29, 28],[188, 143, 197, 1.66, 99, 51, 29],[174, 131, 174, 1.55, 108, 50, 30],[187, 143, 201, 1.39, 89, 53, 31]];const lineStyle = {width: 1,opacity: 0.5};return {...commonOptions,backgroundColor: '#161627',title: {text: 'AQI - Radar',left: 'center',textStyle: {color: '#eee'}},legend: {bottom: 5,data: ['Beijing', 'Shanghai', 'Guangzhou'],itemGap: 20,textStyle: {color: '#fff',fontSize: 14},selectedMode: 'single'},radar: {indicator: [{ name: 'AQI', max: 300 },{ name: 'PM2.5', max: 250 },{ name: 'PM10', max: 300 },{ name: 'CO', max: 5 },{ name: 'NO2', max: 200 },{ name: 'SO2', max: 100 }],shape: 'circle',splitNumber: 5,axisName: {color: 'rgb(238, 197, 102)'},splitLine: {lineStyle: {color: ['rgba(238, 197, 102, 0.1)','rgba(238, 197, 102, 0.2)','rgba(238, 197, 102, 0.4)','rgba(238, 197, 102, 0.6)','rgba(238, 197, 102, 0.8)','rgba(238, 197, 102, 1)'].reverse()}},splitArea: {show: false},axisLine: {lineStyle: {color: 'rgba(238, 197, 102, 0.5)'}}},series: [{name: 'Beijing',type: 'radar',lineStyle: lineStyle,data: dataBJ,symbol: 'none',itemStyle: {color: '#F9713C'},areaStyle: {opacity: 0.1}},{name: 'Shanghai',type: 'radar',lineStyle: lineStyle,data: dataSH,symbol: 'none',itemStyle: {color: '#B3E4A1'},areaStyle: {opacity: 0.05}},{name: 'Guangzhou',type: 'radar',lineStyle: lineStyle,data: dataGZ,symbol: 'none',itemStyle: {color: 'rgb(238, 197, 102)'},areaStyle: {opacity: 0.05}}]};case 'tree':const data = {name: 'flare',children: [{name: 'data',children: [{name: 'converters',children: [{ name: 'Converters', value: 721 },{ name: 'DelimitedTextConverter', value: 4294 }]},{name: 'DataUtil',value: 3322}]},{name: 'display',children: [{ name: 'DirtySprite', value: 8833 },{ name: 'LineSprite', value: 1732 },{ name: 'RectSprite', value: 3623 }]},{name: 'flex',children: [{ name: 'FlareVis', value: 4116 }]},{name: 'query',children: [{ name: 'AggregateExpression', value: 1616 },{ name: 'And', value: 1027 },{ name: 'Arithmetic', value: 3891 },{ name: 'Average', value: 891 },{ name: 'BinaryExpression', value: 2893 },{ name: 'Comparison', value: 5103 },{ name: 'CompositeExpression', value: 3677 },{ name: 'Count', value: 781 },{ name: 'DateUtil', value: 4141 },{ name: 'Distinct', value: 933 },{ name: 'Expression', value: 5130 },{ name: 'ExpressionIterator', value: 3617 },{ name: 'Fn', value: 3240 },{ name: 'If', value: 2732 },{ name: 'IsA', value: 2039 },{ name: 'Literal', value: 1214 },{ name: 'Match', value: 3748 },{ name: 'Maximum', value: 843 },{name: 'methods',children: [{ name: 'add', value: 593 },{ name: 'and', value: 330 },{ name: 'average', value: 287 },{ name: 'count', value: 277 },{ name: 'distinct', value: 292 },{ name: 'div', value: 595 },{ name: 'eq', value: 594 },{ name: 'fn', value: 460 },{ name: 'gt', value: 603 },{ name: 'gte', value: 625 },{ name: 'iff', value: 748 },{ name: 'isa', value: 461 },{ name: 'lt', value: 597 },{ name: 'lte', value: 619 },{ name: 'max', value: 283 },{ name: 'min', value: 283 },{ name: 'mod', value: 591 },{ name: 'mul', value: 603 },{ name: 'neq', value: 599 },{ name: 'not', value: 386 },{ name: 'or', value: 323 },{ name: 'orderby', value: 307 },{ name: 'range', value: 772 },{ name: 'select', value: 296 },{ name: 'stddev', value: 363 },{ name: 'sub', value: 600 },{ name: 'sum', value: 280 },{ name: 'update', value: 307 },{ name: 'variance', value: 335 },{ name: 'where', value: 299 },{ name: 'xor', value: 354 },{ name: '_', value: 264 }]},{ name: 'Minimum', value: 843 },{ name: 'Not', value: 1554 },{ name: 'Or', value: 970 },{ name: 'Query', value: 13896 },{ name: 'Range', value: 1594 },{ name: 'StringUtil', value: 4130 },{ name: 'Sum', value: 791 },{ name: 'Variable', value: 1124 },{ name: 'Variance', value: 1876 },{ name: 'Xor', value: 1101 }]},{name: 'scale',children: [{ name: 'IScaleMap', value: 2105 },{ name: 'LinearScale', value: 1316 },{ name: 'LogScale', value: 3151 },{ name: 'OrdinalScale', value: 3770 },{ name: 'QuantileScale', value: 2435 },{ name: 'QuantitativeScale', value: 4839 },{ name: 'RootScale', value: 1756 },{ name: 'Scale', value: 4268 },{ name: 'ScaleType', value: 1821 },{ name: 'TimeScale', value: 5833 }]}]};var data2 = {name: 'flare',children: [{name: 'flex',children: [{ name: 'FlareVis', value: 4116 }]},{name: 'scale',children: [{ name: 'IScaleMap', value: 2105 },{ name: 'LinearScale', value: 1316 },{ name: 'LogScale', value: 3151 },{ name: 'OrdinalScale', value: 3770 },{ name: 'QuantileScale', value: 2435 },{ name: 'QuantitativeScale', value: 4839 },{ name: 'RootScale', value: 1756 },{ name: 'Scale', value: 4268 },{ name: 'ScaleType', value: 1821 },{ name: 'TimeScale', value: 5833 }]},{name: 'display',children: [{ name: 'DirtySprite', value: 8833 }]}]};return {...commonOptions,tooltip: {trigger: 'item',triggerOn: 'mousemove'},legend: {top: '2%',left: '3%',orient: 'vertical',data: [{name: 'tree1',icon: 'rectangle'},{name: 'tree2',icon: 'rectangle'}],borderColor: '#c23531'},series: [{type: 'tree',name: 'tree1',data: [data],top: '5%',left: '7%',bottom: '2%',right: '60%',symbolSize: 7,label: {position: 'left',verticalAlign: 'middle',align: 'right'},leaves: {label: {position: 'right',verticalAlign: 'middle',align: 'left'}},emphasis: {focus: 'descendant'},expandAndCollapse: true,animationDuration: 550,animationDurationUpdate: 750},{type: 'tree',name: 'tree2',data: [data2],top: '20%',left: '60%',bottom: '22%',right: '18%',symbolSize: 7,label: {position: 'left',verticalAlign: 'middle',align: 'right'},leaves: {label: {position: 'right',verticalAlign: 'middle',align: 'left'}},expandAndCollapse: true,emphasis: {focus: 'descendant'},animationDuration: 550,animationDurationUpdate: 750}]};case 'calendar':const dateList = [['2017-1-1', '初四'],['2017-1-2', '初五'],['2017-1-3', '初六'],['2017-1-4', '初七'],['2017-1-5', '初八', '小寒'],['2017-1-6', '初九'],['2017-1-7', '初十'],['2017-1-8', '十一'],['2017-1-9', '十二'],['2017-1-10', '十三'],['2017-1-11', '十四'],['2017-1-12', '十五'],['2017-1-13', '十六'],['2017-1-14', '十七'],['2017-1-15', '十八'],['2017-1-16', '十九'],['2017-1-17', '二十'],['2017-1-18', '廿一'],['2017-1-19', '廿二'],['2017-1-20', '廿三', '大寒'],['2017-1-21', '廿四'],['2017-1-22', '廿五'],['2017-1-23', '廿六'],['2017-1-24', '廿七'],['2017-1-25', '廿八'],['2017-1-26', '廿九'],['2017-1-27', '三十'],['2017-1-28', '正月'],['2017-1-29', '初二'],['2017-1-30', '初三'],['2017-1-31', '初四'],['2017-2-1', '初五'],['2017-2-2', '初六'],['2017-2-3', '初七', '立春'],['2017-2-4', '初八'],['2017-2-5', '初九'],['2017-2-6', '初十'],['2017-2-7', '十一'],['2017-2-8', '十二'],['2017-2-9', '十三'],['2017-2-10', '十四'],['2017-2-11', '十五'],['2017-2-12', '十六'],['2017-2-13', '十七'],['2017-2-14', '十八'],['2017-2-15', '十九'],['2017-2-16', '二十'],['2017-2-17', '廿一'],['2017-2-18', '廿二', '雨水'],['2017-2-19', '廿三'],['2017-2-20', '廿四'],['2017-2-21', '廿五'],['2017-2-22', '廿六'],['2017-2-23', '廿七'],['2017-2-24', '廿八'],['2017-2-25', '廿九'],['2017-2-26', '二月'],['2017-2-27', '初二'],['2017-2-28', '初三'],['2017-3-1', '初四'],['2017-3-2', '初五'],['2017-3-3', '初六'],['2017-3-4', '初七'],['2017-3-5', '初八', '驚蟄'],['2017-3-6', '初九'],['2017-3-7', '初十'],['2017-3-8', '十一'],['2017-3-9', '十二'],['2017-3-10', '十三'],['2017-3-11', '十四'],['2017-3-12', '十五'],['2017-3-13', '十六'],['2017-3-14', '十七'],['2017-3-15', '十八'],['2017-3-16', '十九'],['2017-3-17', '二十'],['2017-3-18', '廿一'],['2017-3-19', '廿二'],['2017-3-20', '廿三', '春分'],['2017-3-21', '廿四'],['2017-3-22', '廿五'],['2017-3-23', '廿六'],['2017-3-24', '廿七'],['2017-3-25', '廿八'],['2017-3-26', '廿九'],['2017-3-27', '三十'],['2017-3-28', '三月'],['2017-3-29', '初二'],['2017-3-30', '初三'],['2017-3-31', '初四'],['2017-4-1', '初五'],['2017-4-2', '初六'],['2017-4-3', '初七'],['2017-4-4', '初八', '清明'],['2017-4-5', '初九'],['2017-4-6', '初十'],['2017-4-7', '十一'],['2017-4-8', '十二'],['2017-4-9', '十三'],['2017-4-10', '十四'],['2017-4-11', '十五'],['2017-4-12', '十六'],['2017-4-13', '十七'],['2017-4-14', '十八'],['2017-4-15', '十九'],['2017-4-16', '二十'],['2017-4-17', '廿一'],['2017-4-18', '廿二'],['2017-4-19', '廿三'],['2017-4-20', '廿四', '穀雨'],['2017-4-21', '廿五'],['2017-4-22', '廿六'],['2017-4-23', '廿七'],['2017-4-24', '廿八'],['2017-4-25', '廿九'],['2017-4-26', '四月'],['2017-4-27', '初二'],['2017-4-28', '初三'],['2017-4-29', '初四'],['2017-4-30', '初五'],['2017-5-1', '初六'],['2017-5-2', '初七'],['2017-5-3', '初八'],['2017-5-4', '初九'],['2017-5-5', '初十', '立夏'],['2017-5-6', '十一'],['2017-5-7', '十二'],['2017-5-8', '十三'],['2017-5-9', '十四'],['2017-5-10', '十五'],['2017-5-11', '十六'],['2017-5-12', '十七'],['2017-5-13', '十八'],['2017-5-14', '十九'],['2017-5-15', '二十'],['2017-5-16', '廿一'],['2017-5-17', '廿二'],['2017-5-18', '廿三'],['2017-5-19', '廿四'],['2017-5-20', '廿五'],['2017-5-21', '廿六', '小滿'],['2017-5-22', '廿七'],['2017-5-23', '廿八'],['2017-5-24', '廿九'],['2017-5-25', '三十'],['2017-5-26', '五月'],['2017-5-27', '初二'],['2017-5-28', '初三'],['2017-5-29', '初四'],['2017-5-30', '初五'],['2017-5-31', '初六'],['2017-6-1', '初七'],['2017-6-2', '初八'],['2017-6-3', '初九'],['2017-6-4', '初十'],['2017-6-5', '十一', '芒種'],['2017-6-6', '十二'],['2017-6-7', '十三'],['2017-6-8', '十四'],['2017-6-9', '十五'],['2017-6-10', '十六'],['2017-6-11', '十七'],['2017-6-12', '十八'],['2017-6-13', '十九'],['2017-6-14', '二十'],['2017-6-15', '廿一'],['2017-6-16', '廿二'],['2017-6-17', '廿三'],['2017-6-18', '廿四'],['2017-6-19', '廿五'],['2017-6-20', '廿六'],['2017-6-21', '廿七', '夏至'],['2017-6-22', '廿八'],['2017-6-23', '廿九'],['2017-6-24', '六月'],['2017-6-25', '初二'],['2017-6-26', '初三'],['2017-6-27', '初四'],['2017-6-28', '初五'],['2017-6-29', '初六'],['2017-6-30', '初七'],['2017-7-1', '初八'],['2017-7-2', '初九'],['2017-7-3', '初十'],['2017-7-4', '十一'],['2017-7-5', '十二'],['2017-7-6', '十三'],['2017-7-7', '十四', '小暑'],['2017-7-8', '十五'],['2017-7-9', '十六'],['2017-7-10', '十七'],['2017-7-11', '十八'],['2017-7-12', '十九'],['2017-7-13', '二十'],['2017-7-14', '廿一'],['2017-7-15', '廿二'],['2017-7-16', '廿三'],['2017-7-17', '廿四'],['2017-7-18', '廿五'],['2017-7-19', '廿六'],['2017-7-20', '廿七'],['2017-7-21', '廿八'],['2017-7-22', '廿九', '大暑'],['2017-7-23', '閏六'],['2017-7-24', '初二'],['2017-7-25', '初三'],['2017-7-26', '初四'],['2017-7-27', '初五'],['2017-7-28', '初六'],['2017-7-29', '初七'],['2017-7-30', '初八'],['2017-7-31', '初九'],['2017-8-1', '初十'],['2017-8-2', '十一'],['2017-8-3', '十二'],['2017-8-4', '十三'],['2017-8-5', '十四'],['2017-8-6', '十五'],['2017-8-7', '十六', '立秋'],['2017-8-8', '十七'],['2017-8-9', '十八'],['2017-8-10', '十九'],['2017-8-11', '二十'],['2017-8-12', '廿一'],['2017-8-13', '廿二'],['2017-8-14', '廿三'],['2017-8-15', '廿四'],['2017-8-16', '廿五'],['2017-8-17', '廿六'],['2017-8-18', '廿七'],['2017-8-19', '廿八'],['2017-8-20', '廿九'],['2017-8-21', '三十'],['2017-8-22', '七月'],['2017-8-23', '初二', '處暑'],['2017-8-24', '初三'],['2017-8-25', '初四'],['2017-8-26', '初五'],['2017-8-27', '初六'],['2017-8-28', '初七'],['2017-8-29', '初八'],['2017-8-30', '初九'],['2017-8-31', '初十'],['2017-9-1', '十一'],['2017-9-2', '十二'],['2017-9-3', '十三'],['2017-9-4', '十四'],['2017-9-5', '十五'],['2017-9-6', '十六'],['2017-9-7', '十七', '白露'],['2017-9-8', '十八'],['2017-9-9', '十九'],['2017-9-10', '二十'],['2017-9-11', '廿一'],['2017-9-12', '廿二'],['2017-9-13', '廿三'],['2017-9-14', '廿四'],['2017-9-15', '廿五'],['2017-9-16', '廿六'],['2017-9-17', '廿七'],['2017-9-18', '廿八'],['2017-9-19', '廿九'],['2017-9-20', '八月'],['2017-9-21', '初二'],['2017-9-22', '初三'],['2017-9-23', '初四', '秋分'],['2017-9-24', '初五'],['2017-9-25', '初六'],['2017-9-26', '初七'],['2017-9-27', '初八'],['2017-9-28', '初九'],['2017-9-29', '初十'],['2017-9-30', '十一'],['2017-10-1', '十二'],['2017-10-2', '十三'],['2017-10-3', '十四'],['2017-10-4', '十五'],['2017-10-5', '十六'],['2017-10-6', '十七'],['2017-10-7', '十八'],['2017-10-8', '十九', '寒露'],['2017-10-9', '二十'],['2017-10-10', '廿一'],['2017-10-11', '廿二'],['2017-10-12', '廿三'],['2017-10-13', '廿四'],['2017-10-14', '廿五'],['2017-10-15', '廿六'],['2017-10-16', '廿七'],['2017-10-17', '廿八'],['2017-10-18', '廿九'],['2017-10-19', '三十'],['2017-10-20', '九月'],['2017-10-21', '初二'],['2017-10-22', '初三'],['2017-10-23', '初四', '霜降'],['2017-10-24', '初五'],['2017-10-25', '初六'],['2017-10-26', '初七'],['2017-10-27', '初八'],['2017-10-28', '初九'],['2017-10-29', '初十'],['2017-10-30', '十一'],['2017-10-31', '十二'],['2017-11-1', '十三'],['2017-11-2', '十四'],['2017-11-3', '十五'],['2017-11-4', '十六'],['2017-11-5', '十七'],['2017-11-6', '十八'],['2017-11-7', '十九', '立冬'],['2017-11-8', '二十'],['2017-11-9', '廿一'],['2017-11-10', '廿二'],['2017-11-11', '廿三'],['2017-11-12', '廿四'],['2017-11-13', '廿五'],['2017-11-14', '廿六'],['2017-11-15', '廿七'],['2017-11-16', '廿八'],['2017-11-17', '廿九'],['2017-11-18', '十月'],['2017-11-19', '初二'],['2017-11-20', '初三'],['2017-11-21', '初四'],['2017-11-22', '初五', '小雪'],['2017-11-23', '初六'],['2017-11-24', '初七'],['2017-11-25', '初八'],['2017-11-26', '初九'],['2017-11-27', '初十'],['2017-11-28', '十一'],['2017-11-29', '十二'],['2017-11-30', '十三'],['2017-12-1', '十四'],['2017-12-2', '十五'],['2017-12-3', '十六'],['2017-12-4', '十七'],['2017-12-5', '十八'],['2017-12-6', '十九'],['2017-12-7', '二十', '大雪'],['2017-12-8', '廿一'],['2017-12-9', '廿二'],['2017-12-10', '廿三'],['2017-12-11', '廿四'],['2017-12-12', '廿五'],['2017-12-13', '廿六'],['2017-12-14', '廿七'],['2017-12-15', '廿八'],['2017-12-16', '廿九'],['2017-12-17', '三十'],['2017-12-18', '十一月'],['2017-12-19', '初二'],['2017-12-20', '初三'],['2017-12-21', '初四'],['2017-12-22', '初五', '冬至'],['2017-12-23', '初六'],['2017-12-24', '初七'],['2017-12-25', '初八'],['2017-12-26', '初九'],['2017-12-27', '初十'],['2017-12-28', '十一'],['2017-12-29', '十二'],['2017-12-30', '十三'],['2017-12-31', '十四']];const heatmapData = [];const lunarData = [];for (let i = 0; i < dateList.length; i++) {heatmapData.push([dateList[i][0], Math.random() * 300]);lunarData.push([dateList[i][0], 1, dateList[i][1], dateList[i][2]]);}return {...commonOptions,tooltip: {formatter: function (params) {return '降雨量: ' + params.value[1].toFixed(2);}},visualMap: {show: false,min: 0,max: 300,calculable: true,seriesIndex: [2],orient: 'horizontal',left: 'center',bottom: 20,inRange: {color: ['#e0ffff', '#006edd'],opacity: 0.3},controller: {inRange: {opacity: 0.5}}},calendar: [{left: 'center',top: 'middle',cellSize: [70, 70],yearLabel: { show: false },orient: 'vertical',dayLabel: {firstDay: 1,nameMap: 'cn'},monthLabel: {show: false},range: '2017-03'}],series: [{type: 'scatter',coordinateSystem: 'calendar',symbolSize: 0,label: {show: true,formatter: function (params) {var d = echarts.number.parseDate(params.value[0]);return d.getDate() + '\n\n' + params.value[2] + '\n\n';},color: '#000'},data: lunarData,silent: true},{type: 'scatter',coordinateSystem: 'calendar',symbolSize: 0,label: {show: true,formatter: function (params) {return '\n\n\n' + (params.value[3] || '');},fontSize: 14,fontWeight: 700,color: '#a00'},data: lunarData,silent: true},{name: '降雨量',type: 'heatmap',coordinateSystem: 'calendar',data: heatmapData}]};case 'gauge':return {...commonOptions,series: [{type: 'gauge',center: ['50%', '60%'],startAngle: 200,endAngle: -20,min: 0,max: 60,splitNumber: 12,itemStyle: {color: '#FFAB91'},progress: {show: true,width: 30},pointer: {show: false},axisLine: {lineStyle: {width: 30}},axisTick: {distance: -45,splitNumber: 5,lineStyle: {width: 2,color: '#999'}},splitLine: {distance: -52,length: 14,lineStyle: {width: 3,color: '#999'}},axisLabel: {distance: -20,color: '#999',fontSize: 20},anchor: {show: false},title: {show: false},detail: {valueAnimation: true,width: '60%',lineHeight: 40,borderRadius: 8,offsetCenter: [0, '-15%'],fontSize: 60,fontWeight: 'bolder',formatter: '{value} °C',color: 'inherit'},data: [{value: 20}]},{type: 'gauge',center: ['50%', '60%'],startAngle: 200,endAngle: -20,min: 0,max: 60,itemStyle: {color: '#FD7347'},progress: {show: true,width: 8},pointer: {show: false},axisLine: {show: false},axisTick: {show: false},splitLine: {show: false},axisLabel: {show: false},detail: {show: false},data: [{value: 20}]}]};case 'funnel':return {...commonOptions,title: {text: 'Funnel Compare',subtext: 'Fake Data',left: 'left',top: 'bottom'},tooltip: {trigger: 'item',formatter: '{a} <br/>{b} : {c}%'},toolbox: {show: true,orient: 'vertical',top: 'center',feature: {dataView: { readOnly: false },restore: {},saveAsImage: {}}},legend: {orient: 'vertical',left: 'left',data: ['Prod A', 'Prod B', 'Prod C', 'Prod D', 'Prod E']},series: [{name: 'Funnel',type: 'funnel',width: '40%',height: '45%',left: '5%',top: '50%',funnelAlign: 'right',data: [{ value: 60, name: 'Prod C' },{ value: 30, name: 'Prod D' },{ value: 10, name: 'Prod E' },{ value: 80, name: 'Prod B' },{ value: 100, name: 'Prod A' }]},{name: 'Pyramid',type: 'funnel',width: '40%',height: '45%',left: '5%',top: '5%',sort: 'ascending',funnelAlign: 'right',data: [{ value: 60, name: 'Prod C' },{ value: 30, name: 'Prod D' },{ value: 10, name: 'Prod E' },{ value: 80, name: 'Prod B' },{ value: 100, name: 'Prod A' }]},{name: 'Funnel',type: 'funnel',width: '40%',height: '45%',left: '55%',top: '5%',funnelAlign: 'left',data: [{ value: 60, name: 'Prod C' },{ value: 30, name: 'Prod D' },{ value: 10, name: 'Prod E' },{ value: 80, name: 'Prod B' },{ value: 100, name: 'Prod A' }]},{name: 'Pyramid',type: 'funnel',width: '40%',height: '45%',left: '55%',top: '50%',sort: 'ascending',funnelAlign: 'left',data: [{ value: 60, name: 'Prod C' },{ value: 30, name: 'Prod D' },{ value: 10, name: 'Prod E' },{ value: 80, name: 'Prod B' },{ value: 100, name: 'Prod A' }]}]};default:break;}},updateChartData() {this.chartInstance.refreshData(0, [130, 210, 160, 90, 80, 120]);},beforeDestroy() {// 销毁图表实例,避免内存泄漏if (this.chartInstance) {this.chartInstance.dispose();}},},
};
</script><style scoped>
.chart-container {margin: 20px;
}.chart-header {display: inline-block;width: 50%;height: 650px;margin: 0 auto;text-align: center;align-items: center;justify-content: center;
}
</style>
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
Echarts公共方法
Vue引入Echarts install 1.安装Echartsnpm install echarts --save 2.项目全局引入形式--#main.js 全局引入形式import * as echarts from "echarts"Vue.prototype.$echarts echarts 公共方法JS /*** author: wangjie* description: 通用echarts图表封装* date: …...
![](https://www.ngui.cc/images/no-images.jpg)
鸿蒙学习(二)
文章目录 1、弹窗2、走马灯(实现轮播图效果)3、注解6、多选框、单选框7、Stack8、TextTimer9、DatePicker 1、弹窗 显示提示信息或者用于用户交互 导入模块 prompt 接口 showToast:显示toast showDialog:显示对话框 showContextMenu:显示上下文菜单 sh…...
![](https://img-blog.csdnimg.cn/direct/4ebfc583cb38474c8b692e53b779cc98.jpeg)
企业机构营销目前106短信群发还有用吗?此文告诉你该如何抉择!
在当今竞争激烈的企业营销环境中,106短信群发平台依然是众多企业机构青睐的营销工具之一。尽管互联网技术的发展带来了多样化的沟通方式,但106短信群发凭借其直达性强、成本低廉、覆盖广泛等优势,仍然保持着不错的营销效果。然而,…...
![](https://www.ngui.cc/images/no-images.jpg)
DJYGUI AI低代码图形编程开发平台:开启嵌入式软件图形编程新纪元
在科技高速发展的当今时代,软件开发行业对创新和高效的需求日益增长。DJYGUI AI低代码图形编程开发平台的出现,为智能屏、物联屏、串口屏等嵌入式显示设备领域带来了全新的机遇。该平台由都江堰操作系统 AI 代码自动生成平台研发,具有显著的优…...
![](https://img-blog.csdnimg.cn/direct/1a9a14c37dc04a6d89ce960ec35958f0.png)
为什么不能在foreach中删除元素
文章目录 快速失败机制(fail-fast)for-each删除元素为什么报错原因分析逻辑分析 如何正确的删除元素remove 后 breakfor 循环使用 Iterator 总结 快速失败机制(fail-fast) In systems design, a fail-fast system is one which i…...
![](https://img-blog.csdnimg.cn/direct/4433a760426f4689964a40fbe788ebf9.png)
python学习-tuple及str
为什么需要元组 定义元组 元组的相关操作 元组的相关操作 - 注意事项 元组的特点 字符串 字符串的下标(索引) 同元组一样,字符串是一个:无法修改的数据容器。 如果必须要修改字符串,只能得到一个新的字符串ÿ…...
![](https://img-blog.csdnimg.cn/direct/a50b5a681e584b40acabde3573e6357e.gif)
Python深度理解系列之【排序算法——冒泡排序】
读者大大们好呀!!!☀️☀️☀️ 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️木道寻的主页 文章目录 🔥前言🚀冒泡排序python实现算法实现图形化算法展示 ⭐️⭐️⭐️总结 🔥前…...
![](https://www.ngui.cc/images/no-images.jpg)
边界框在目标检测中的作用与应用
目标检测是计算机视觉领域的核心任务之一,旨在从图像或视频中识别和定位感兴趣的目标。边界框(Bounding Box)是目标检测中常用的一种表示方法,用于确定目标在图像中的确切位置。本文将详细探讨边界框的概念、它在目标检测中的角色…...
![](https://img-blog.csdnimg.cn/direct/c43b0d18fe56448d9ac9e408af2a0051.png)
linux 环境报错:Peer reports incompatible or unsupported protocol version
出现问题的原因: curl 不兼容或不支持的协议版本。 解决方案: yum update -y nss curl libcurl如此继续之前的操作即可。...
![](https://img-blog.csdnimg.cn/img_convert/5e40fcf6f338810d4883b5f879013d54.jpeg)
深入解析:Java爬虫的本质是什么?
深入解析:Java爬虫的本质是什么? 引言: 随着互联网的快速发展,获取网络数据已成为许多应用场景中的重要需求。而爬虫作为一种自动化程序,能够模拟人类浏览器的行为,从网页中提取所需信息,成为了…...
![](https://img-blog.csdnimg.cn/28bd12af4ea844e895c4cdd8f4feb2e4.jpeg#pic_center)
【Matlab 六自由度机器人】机器人动力学之推导拉格朗日方程(附MATLAB机器人动力学拉格朗日方程推导代码)
【Matlab 六自由度机器人】机器人动力学概述 近期更新前言正文一、拉格朗日方程的推导1. 单自由度系统2. 单连杆机械臂系统3. 双连杆机械臂系统 二、MATLAB实例推导1. 机器人模型的建立2. 动力学代码 总结参考文献 近期更新 【汇总】 【Matlab 六自由度机器人】系列文章汇总 …...
![](https://img-blog.csdnimg.cn/img_convert/19ed52795783bf7dddc724fe2755af28.png)
线下生鲜蔬果店做小程序有什么方法
生鲜蔬果是生活所需,大小商家众多,零售批发各种经营模式,小摊贩或是超市门店都有着目标客户或准属性群体。竞争和获客转化也促进着商家寻找客源和加快线上进程。 尤其是以微信社交为主的私域场景,普客/会员都需要精细化管理营收和…...
![](https://www.ngui.cc/images/no-images.jpg)
几种linux开机自启脚本的方法
几种linux开机自启脚本的方法 1. 脚本添加到init.d目录中2. 创建服务service(推荐)3. /etc/profile & /etc/profile.d(不推荐)4. /etc/rc.local 本文以启动jenkins节点为例,需要持久连接,实现开机自启 …...
![](https://img-blog.csdnimg.cn/direct/91a0d12d5f744fa592f1e18a9f6be7a5.png)
Qt开发笔记:Qt3D三维开发笔记(一):Qt3D三维开发基础概念介绍
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/140059315 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、O…...
![](https://img-blog.csdnimg.cn/direct/9421a052fb514672a54ccf3a3bd20ffc.png)
Firewalld 防火墙基础
Firewalld 防火墙基础 一、Firewalld概述firewalld 简介firewalld 和 iptables 的关系firewalld 与 iptables service 的区别 二、Firewalld 网络区域区域介绍Firewalld数据处理流程 三、Firewalld 防火墙的配置方法firewall-config 图形工具“区域”选项卡“服务”选项卡改变防…...
![](https://img-blog.csdnimg.cn/direct/a82d0810fed9424b82f55816e8c89f11.png)
针对 Windows 10 的功能更新,版本 22H2 - 错误 0xc1900204
最近想帮女朋友生win11发现她电脑安装更新总是卡到安装%10这里失败 原来是安装路径被修改过了,改回c盘 win R → 输入regedit 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion...
![](https://img-blog.csdnimg.cn/direct/1d7b4f5df14d430c803eed03b5e54b9b.png)
goframe框架规范限制(but it should be named with “Res“ suffix like “XxxRes“)
背景: 首页公司最近要启动一个项目,公司主要业务是用java开发的,但是目前这个方向的项目,公司要求部署在主机上,就是普通的一台电脑上,电脑配置不详,还有经常开关机,所以用java面临…...
![](https://img-blog.csdnimg.cn/img_convert/0a9e77694a8990d3c3fa7de16ecdd93c.png)
格式化选NTFS还是exFAT 格式化NTFS后Mac不能用怎么办 移动硬盘格式化ntfs和exfat的区别
面对硬盘、U盘或移动硬盘的格式化决策,NTFS与exFAT作为主流的文件系统,用户在选择时可以根据它们的不同特点来选择适用场景。下面我们来看看格式化选NTFS还是exFAT,格式化NTFS后Mac不能用怎么办的相关内容。 一、格式化选NTFS还是exFAT 在数…...
![](https://img-blog.csdnimg.cn/direct/c7057ffb47b54759ba1843ee7d93f977.png)
中国桥梁空间分布数据
2020年中国桥梁空间分布数据,共包含102000余条数据。 数据属性表包括:地级市名、区县名、桥梁名称和经纬度。有shp和EXCEl两种格式数据。目前暂没有广西、广东和台湾三个省份数据。...
![](https://img-blog.csdnimg.cn/img_convert/3a5d04a91d21bca1327f49a5696371fc.jpeg)
14-15 为什么我们现在对阅读如此难以接受
写出来感觉很奇怪,但最近我感觉自己失去了阅读能力。长篇文本对我来说尤其具有挑战性。句子很难读完。更别提章节了。章节有很多段落,而段落又由许多句子组成。 啊。 即使在极少数情况下,我读完了一章,下一页上已经有另一章等着…...
![](https://img-blog.csdnimg.cn/direct/bbf1dc42a3eb467eb977b92317561117.png)
经典的卷积神经网络模型 - ResNet
经典的卷积神经网络模型 - ResNet flyfish 2015年,何恺明(Kaiming He)等人在论文《Deep Residual Learning for Image Recognition》中提出了ResNet(Residual Network,残差网络)。在当时,随着…...
![](https://img-blog.csdnimg.cn/direct/240d374608344780a331b843f632b2cb.png#pic_center)
【Git 学习笔记】1.3 Git 的三个阶段
1.3 Git 的三个阶段 由于远程代码库后续存在新的提交,因此实操过程中的结果与书中并不完全一致。根据书中 HEAD 指向的 SHA-1:34acc370b4d6ae53f051255680feaefaf7f7850d,可通过以下命令切换到对应版本,并新建一个 newdemo 分支来…...
![](https://img-blog.csdnimg.cn/direct/f8c4d66d4c68463280e331904d66c9e5.png#pic_center)
华为DCN之:SDN和NFV
1. SDN概述 1.1 SDN的起源 SDN(Software Defined Network)即软件定义网络。是由斯坦福大学Clean Slate研究组提出的一种新型网络创新架构。其核心理念通过将网络设备控制平面与数据平面分离,从而实现了网络控制平面的集中控制,为…...
![](https://img-blog.csdnimg.cn/direct/6982bf045b0b4ffaa924468c5edd0ecf.png)
黑马头条-数据管理平台
目录 项目准备 验证码登录 验证码登录-流程 token 的介绍 个人信息设置和 axios 请求拦截器 axios 响应拦截器和身份验证失败 优化-axios 响应结果 发布文章-富文本编辑器 项目准备 技术: • 基于 Bootstrap 搭建网站标签和样式 • 集成 wangEditor 插件…...
![](https://img-blog.csdnimg.cn/direct/15f11b9000784d40a96da05717b0d9b0.jpeg)
API Object设计模式
API测试面临的问题 API测试由于编写简单,以及较高的稳定性,许多公司都以不同工具和框架维护API自动化测试。我们基于seldom框架也积累了几千条自动化用例。 •简单的用例 import seldomclass TestRequest(seldom.TestCase):def test_post_method(self…...
![](https://www.ngui.cc/images/no-images.jpg)
Python 爬虫:多进程,多线程爬虫<提高爬取效率>
关于多进程,多线程的知识,请自行查询资料补充 ~~~~~~~~~~~ 使用多进程: 在python中,使用多进程需要先导包: from threding import Threaddef work(name):for i in range(1000):print(f"我是线程:{n…...
![](https://img-blog.csdnimg.cn/img_convert/998cbc401689d84f1c86111f1be9bca0.png)
什么是上拉电阻器?上拉和下拉电阻的典型应用
什么是上拉电阻器? 上拉电阻是逻辑电路中使用的电阻,用于确保引脚在所有条件下具有明确定义的逻辑电平。提醒一下,数字逻辑电路有三种逻辑状态:高、低和浮动(或高阻抗)。当引脚未被拉至高或低逻辑电平&…...
![](https://www.ngui.cc/images/no-images.jpg)
centos7安装python3.10
文章目录 1. 安装依赖项2. 下载Python 3.10源码3. 解压源码并进入目录4. 配置安装选项5. 编译并安装Python6. 验证安装7.创建软连接8. 安装pip39. 换源 1. 安装依赖项 sudo yum groupinstall -y "Development Tools" sudo yum install -y openssl-devel bzip2-devel…...
![](https://img-blog.csdnimg.cn/direct/09162ec149614efc97529937f0f320e8.png)
QT事件处理及实例(鼠标事件、键盘事件、事件过滤)
这篇文章通过鼠标事件、键盘事件和事件过滤的三个实例介绍事件处理的实现。 鼠标事件及实例 鼠标事件包括鼠标的移动、按下、松开、单击和双击等。 创建一个MouseEvent项目,通过项目介绍如何获得和处理鼠标事件。程序效果如下图所示。 界面布局代码如下ÿ…...
![](https://img-blog.csdnimg.cn/img_convert/1102bc544815f4a7d20d5349052985db.png)
职场新人必备待办工具 高效待办工作更省心
作为一名初入职场的菜鸟,我曾被繁琐的工作任务压得喘不过气。每天,邮件、会议、项目任务像潮水般涌来,我常常感到力不从心,生怕遗漏了什么重要事项。那种焦虑,就像站在人来人往的地铁站,却不知道自己该搭乘…...
![](https://img-blog.csdnimg.cn/direct/8489ab1b5bce4c3d84d339410edd6c4a.jpeg#pic_center)
【创作纪念日】我的CSDN1024创作纪念
机缘 注册CSDN是很长时间了,但是上学时因为专业是电气工程,与编程打交道比较少,一直都是寻求帮助,而非内容输出。直到考研后专业改变,成为了主要跟软件编程、计算机知识相关的研究后,才逐步开启自己的CSDN…...
![](https://img-blog.csdnimg.cn/img_convert/e3ca1a6c3792251b43bb25924f6eb5a0.png)
在AvaotaA1全志T527开发板上使用 UART 连接开发板
连接开发板 AvaotaA1提供两种连接串口输出方式,因为AvaotaA1需要DC 12V/2A/5.5-2.1电源适配器才可以启动系统,请先确保电源已接通。 方式一: 使用配套的 TyepC-SUB 转接板 40Gbps雷电线标准TypeC数据线,就可以同步实现 USB 串口…...
![](https://www.ngui.cc/images/no-images.jpg)
【Asterinas】Asterinas 进程启动与切换
Asterinas 进程启动与切换 进程启动 进程创建: Rust pub fn spawn_user_process( executable_path: &str, argv: Vec, envp: Vec, ) -> Result<Arc> { // spawn user process should give an absolute path debug_assert!(executable_path.starts_with…...
![](https://img-blog.csdnimg.cn/img_convert/327df6dfff26faeaeead0f93c692296d.png)
CVE-2024-6387 分析
文章目录 1. 漏洞成因2. 漏洞利用前置知识2.1 相关 SSH 协议报文格式2.2 Glibc 内存分配相关规则 3. POC3.1 堆内存布局3.2 服务端解析数据时间测量3.3 条件竞争3.4 FSOP 4. 相关挑战 原文链接:个人博客 近几天,OpenSSH爆出了一个非常严重的安全漏洞&am…...
![](https://img-blog.csdnimg.cn/direct/af70d5f0ac3b40a9b89f5636069129d6.png)
STM32 ADC精度提升方法
STM32 ADC精度提升方法 Fang XS.1452512966qq.com如果有错误,希望被指出,学习技术的路难免会磕磕绊绊量的积累引起质的变化 硬件方法 优化布局布线,尽量减小其他干扰增加电源、Vref去耦电容使用低通滤波器,或加磁珠使用DCDC时尽…...
![](https://img-blog.csdnimg.cn/direct/2fb462d497fd466dac033f3b11bc00f0.png)
Redis为什么设计多个数据库
关于Redis的知识前面已经介绍过很多了,但有个点没有讲,那就是一个Redis的实例并不是只有一个数据库,一般情况下,默认是Databases 0。 一 内部结构 设计如下: Redis 的源码中定义了 redisDb 结构体来表示单个数据库。这个结构有若干重要字段,比如: dict:该字段存储了…...
![](https://img-blog.csdnimg.cn/direct/8fe70aee0e52491da56c2bb0bcac0df4.png)
零基础学习MySQL---MySQL入门
顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、什么是数据库 问:存储数据用文件就可以了,为什么还要弄个数据库呢? 这就不得不提…...
![](https://img-blog.csdnimg.cn/direct/c8b060f5e4bc4e449ed05a36a02e0211.png)
HUAWEI MPLS 静态配置和动态LDP配置
MPLS(Multi-Protocol Label Switching,多协议标签交换技术)技术的出现,极大地推动了互联网的发展和应用。例如:利用MPLS技术,可以有效而灵活地部署VPN(Virtual Private Network,虚拟专用网),TE(Traffic Eng…...
![](https://www.ngui.cc/images/no-images.jpg)
【Rust】——所有的模式语法
💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux…...
![](https://img-blog.csdnimg.cn/direct/5b1d6de83c224a0ea77f7750a8090abd.png)
基于Python的求职招聘管理系统【附源码】
摘 要 随着互联网技术的不断发展,人类的生活已经逐渐离不开网络了,在未来的社会中,人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看,我们完全可以肯定&…...
![](https://img-blog.csdnimg.cn/img_convert/b7e3f21a73c8310ac55f5032bb33b2ff.png)
Python23 使用Tensorflow实现线性回归
TensorFlow 是一个开源的软件库,用于数值计算,特别适用于大规模的机器学习。它由 Google 的研究人员和工程师在 Google Brain 团队内部开发,并在 2015 年首次发布。TensorFlow 的核心是使用数据流图来组织计算,使得它可以轻松地利…...
![](https://www.ngui.cc/images/no-images.jpg)
C++:枚举类的使用案例及场景
一、使用案例 在C中,枚举类(也称为枚举类型或enum class)是C11及以后版本中引入的一种更加强大的枚举类型。与传统的枚举(enum)相比,枚举类提供了更好的类型安全性和作用域控制。下面是一个使用枚举类的案…...
![](https://www.ngui.cc/images/no-images.jpg)
中英双语介绍美国的州:明尼苏达州(Minnesota)
中文版 明尼苏达州简介 明尼苏达州位于美国中北部,以其万湖之州的美誉、丰富的自然资源和多样化的经济结构而著称。以下是对明尼苏达州的详细介绍,包括其地理位置、人口、经济、教育、文化和主要城市。 地理位置 明尼苏达州东接威斯康星州࿰…...
![](https://img-blog.csdnimg.cn/direct/d4ef97dd55da4e8ea07b01e951606b57.png)
Python实现万花筒效果:创造炫目的动态图案
文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame定义绘制万花筒图案的函数主循环 完整代码 引言 万花筒效果通过反射和旋转图案创造出美丽的对称图案。在这篇博客中,我们将使用Python来实现一个动态的万花筒效果。通过利用Pygame库…...
![](https://img-blog.csdnimg.cn/direct/2ed7db66b56c4e9fb165e8af20d301aa.gif)
JavaScript之深入对象,详细讲讲构造函数与常见内置构造函数
前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家详细讲讲构造函数与常见内置构造函数,并提供具体代码帮助大家深入理解,彻底掌握!原创不易,如果能帮助到带大家,欢迎…...
![](https://img-blog.csdnimg.cn/direct/bc47d6719c904886b8adac924240d61c.png)
PyQt5水平布局--只需5分钟带你搞懂
PyQt5水平布局(QHBoxLayout)是一种在GUI应用程序中用于组织和排列控件的布局方式。它允许开发者将控件在水平方向上从左到右依次排列,非常适合于需要并排显示控件的场景,如工具栏、水平菜单等。 import sys from PyQt5.QtWidgets…...
![](https://www.ngui.cc/images/no-images.jpg)
telegram mini app和game实现登录功能
接上一篇文章,我们在创建好telegram机器人后,开始开发小游戏或者mini App,那就避免不了登录功能。 公开链接 bot设置教程:https://lengmo714.top/6e79860b.html 参考教程参考教程,telegram已经给我们提供非常多的api,我们在获取用…...
![](https://img-blog.csdnimg.cn/direct/6b7ca049e8164bfca992beddc804e85e.png)
【Python】字典练习
python期考练习 目录 1. 首都名编辑 2. 摩斯电码 3. 登录 4. 学生的姓名和年龄编辑 5. 电商 6. 学生基本信息 7. 字母数 1. 首都名 初始字典 (可复制) : d{"China":"Beijing","America":"Washington","Norway":…...
![](https://img-blog.csdnimg.cn/direct/36eda21e344546faaf96d59236c867c3.png)
Apache POI、EasyPoi、EasyExcel
目录 编辑 (一)Apache PoI 使用 (二)EasyPoi使用 (三)EasyExcel使用 写 读 最简单的读 最简单的读的excel示例 最简单的读的对象 (一)Apache PoI 使用 (二&…...
![](https://www.ngui.cc/images/no-images.jpg)
gcop:简化 Git 提交流程的高效助手 | 一键生成 commit message
💖 大家好,我是Zeeland。Tags: 大模型创业、LangChain Top Contributor、算法工程师、Promptulate founder、Python开发者。📣 个人说明书:Zeeland📣 个人网站:https://me.zeeland.cn/📚 Github…...
![](https://i-blog.csdnimg.cn/direct/a5bee0445423440b9444cbe69ccde02e.png)
C语言_练习题
求最小公倍数 思路:假设两个数,5和7,那么最小至少也要7吧,所以先假定最小公倍数是两个数之间较大的,然后看7能不能同时整除5和7,不能就加1继续除 int GetLCM(int _num1, int _num2) {int max _num1>_n…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux学习笔记(一)
命令格式 command [-options] [parameter] command:命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略 parameter:传给命令的参数,可以是零个、一个或者…...
![](https://www.ngui.cc/images/no-images.jpg)
Shell学习——Shell变量
文章目录 Shell变量使用变量只读变量删除变量变量类型字符串变量: 在 Shell中,变量通常被视为字符串。整数变量: 在一些Shell中,你可以使用 declare 或 typeset 命令来声明整数变量。数组变量: Shell 也支持数组&#…...
![](https://img-blog.csdnimg.cn/direct/c7e5f3d415d6418080969c7a926ec33b.png)
养老院生活管理系统
摘要 随着全球范围内人口老龄化趋势的日益加剧,养老院作为老年人生活的重要场所,其生活管理问题也显得愈发突出和重要。为了满足养老院在日常生活管理、老人健康监护、服务人员管理等多方面的需求,提高管理效率和服务质量。决定设计并实现了…...
![](https://img-blog.csdnimg.cn/img_convert/867e202decb2b2f458e481d6098ac53c.jpeg)
成人高考本科何时报名-深职训学校帮您规划学习之路
你有想过继续深造自己的学历吗?也许你已经工作多年,但总觉得学历是一块心病,想要通过成人高考本科来提升自己。不用着急,今天我们来聊一聊成人高考本科的报名时间,以及深职训学校如何帮助你顺利完成报名。 深圳成人高…...
![](https://www.ngui.cc/images/no-images.jpg)
实现Java Web应用的高性能负载均衡方案
实现Java Web应用的高性能负载均衡方案 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在高并发的网络环境中,负载均衡是确保Web应用程序高性能和可靠性的关键策略之一。本文将探讨如何…...
![](https://www.ngui.cc/images/no-images.jpg)
东风奕派eπ008岚图FREE318双星闪耀
6月14日晚,东风汽车在湖北武汉和四川雅安两地同步举行盛大发布会,旗下两款重磅新能源车型——东风奕派的eπ008和东风岚图的FREE 318正式上市。这两款新车的推出,不仅进一步巩固了东风汽车在新能源市场的领先地位,也为消费者带来了更加多元化的选择和无与伦比的驾驶体验。e…...
![](https://www.ngui.cc/images/no-images.jpg)
采用CTB电池、11合1电驱,银河E5高调登场
自2023年2月发布以来,银河系列通过陆续上新银河L7、银河L6、银河E8,仅用了10个月,累计销量就突破12万辆,得到用户的认可。随着技术的迭代,也为了进一步提升品牌影响力,满足用户需求,日前吉利银河发布了旗下全新紧凑型纯电SUV——银河E5的官图。新车将在今年第二季度上市…...
![](https://www.ngui.cc/images/no-images.jpg)
Java基础学习:深入解析Java中的位运算符
在Java中,位运算符用于对整数类型的值进行位运算。以下是Java中的位运算符: 位与(&):两位都为1时,结果为1,否则为0。 位或(|):两位中有1个为1,结果为1。 位非(~):位的反&#…...
![](http://dingyue.ws.126.net/2024/0528/d85825bfj00se6dxr0035d000u000mim.jpg)
淡黄色,才是牙医公认的健康色号
牙齿越白越好吗?在各种牙膏广告里,牙齿总是白到发光,令多少人羡慕不已,不管怎么美白总是微微发黄。这是为何?事实上,根据牙医专家指出,健康牙齿的颜色并非纯白,淡黄色的牙齿表明牙釉质钙化程度高,是牙齿健康的表现!▲图源:央视网牙齿由外表面的牙釉质和内部的牙本质…...
![](https://img-blog.csdnimg.cn/direct/53d27180fabf47c99b597cf6a078e9ef.png)
【大数据】Hadoop 2.X和1.X升级优化对比
目录 1.前言 2.hadoop 1.X的缺点和优化方向 3.解决NameNode的局限性 3.1.Hadoop HA 3.2.Haddop federation 4.yarn 5.周边组件 1.前言 本文是作者大数据系列中的一文,专栏地址: https://blog.csdn.net/joker_zjn/category_12631789.html?spm10…...
![](https://img-blog.csdnimg.cn/direct/a91d959f6a3a4ebba30a3f656382935e.png)
gitlab将本地文件项目上传至gitlab服务
打开gitlab网页界面,登陆管理员账号 (测试服务器安装的gitlab,浏览器输入ip或配置的gitlab地址) 创建新项目 使用gitlab创建项目 创建一个新项目(忽略分组) (忽略分组) 在创建工…...