vue3使用echarts绘制地图

vue3使用echarts绘制地图

  1. 安装echarts
npm install echarts
  1. 下载地图的json数据【我这里是把json数据单独粘出来然后新建了一个文件china.json】
    下载中国及各个省份的地图数据
  2. 引入
import chinaJson from './china.json'
  1. 绘制地图
<template>
    <div ref="myChart" style="width: 1000px; height: 1000px;"></div>
</template>
<script setup>
import * as echarts from 'echarts'
import chinaJson from './china.json'
import { ref, onMounted } from 'vue'
const myChart = ref(null)

onMounted(() => {
    const myECharts = echarts.init(myChart.value);
    echarts.registerMap('china', chinaJson);
    
    var option;
    function randomData() {
        return Math.round(Math.random() * 1000);
    }

    var data = [{
        name: '北京',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '天津',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '上海',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '重庆',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '河北',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '河南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '云南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '辽宁',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '黑龙江',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '湖南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '安徽',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '山东',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '新疆',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '江苏',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '浙江',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '江西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '湖北',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '广西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '甘肃',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '山西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '内蒙古',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '陕西',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '吉林',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '福建',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '贵州',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '广东',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '青海',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '西藏',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '四川',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '宁夏',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '海南',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '台湾',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '香港',
        value1: randomData(),
        value2: randomData(),
    }, {
        name: '澳门',
        value1: randomData(),
        value2: randomData(),
    }];

    var resultdata0 = [];
    var resultdata1 = [];
    var resultdata2 = [];
    var sum0 = 0;
    var sum1 = 0;
    var sum2 = 0;
    var titledata = [];
    for (var i = 0; i < data.length; i++) {
        var d0 = {
            name: data[i].name,
            value: data[i].value1 + data[i].value2
        };
        var d1 = {
            name: data[i].name,
            value: data[i].value1
        };
        var d2 = {
            name: data[i].name,
            value: data[i].value2
        };
        titledata.push(data[i].name)
        resultdata0.push(d0);
        resultdata1.push(d1);
        resultdata2.push(d2);
        sum0 += data[i].value1 + data[i].value2;
        sum1 += data[i].value1;
        sum2 += data[i].value2;
    }

    function NumDescSort(a, b) {
        return a.value - b.value;
    }

    resultdata0.sort(NumDescSort);
    resultdata1.sort(NumDescSort);
    resultdata2.sort(NumDescSort);

    option = {
        title: [{
            text: '销售量统计',
            subtext: '纯属虚构',
            left: 'center'
        }, {
            text: '全部: ' + sum0,
            right: 120,
            top: 40,
            width: 100,
            textStyle: {
                color: '#fff',
                fontSize: 16
            }
        }, {
            text: "门板: " + sum1,
            right: 120,
            top: 40,
            width: 100,
            textStyle: {
                color: '#fff',
                fontSize: 16
            }
        }, {
            text: "拼框门: " + sum2,
            right: 120,
            top: 40,
            width: 100,
            textStyle: {
                color: '#fff',
                fontSize: 16
            }
        },],
        tooltip: {
            trigger: 'item'
        },
        legend: {
            orient: 'vertical',
            left: 'left',
            data: ['全部', '门板', '拼框门'],
            selectedMode: 'single',
        },
        visualMap: {
            min: 0,
            max: 2500,
            left: 'left',
            top: 'bottom',
            text: ['高', '低'],
            calculable: true,
            colorLightness: [0.2, 100],
            color: ['#c05050', '#e5cf0d', '#5ab1ef'],
            dimension: 0
        },
        toolbox: {
            show: true,
            orient: 'vertical',
            left: 'right',
            top: 'center',
            feature: {
                dataView: {
                    readOnly: false
                },
                restore: {},
                saveAsImage: {}
            }
        },
        grid: {
            right: 40,
            top: 100,
            bottom: 40,
            width: '30%'
        },
        xAxis: [{
            position: 'top',
            type: 'value',
            boundaryGap: false,
            splitLine: {
                show: false
            },
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
        }],
        yAxis: [{
            type: 'category',
            data: titledata,
            axisTick: {
                alignWithLabel: true
            }
        }],
        series: [{
            z: 1,
            name: '全部',
            type: 'map',
            map: 'china',
            left: '10',
            right: '35%',
            top: 100,
            bottom: "35%",
            zoom: 0.75,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            //roam: true,
            data: resultdata0
        }, {
            z: 1,
            name: '门板',
            type: 'map',
            map: 'china',
            left: '10',
            right: '35%',
            top: 100,
            bottom: "35%",
            zoom: 0.75,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            //roam: true,
            data: resultdata1
        }, {
            z: 1,
            name: '拼框门',
            type: 'map',
            map: 'china',
            left: '10',
            right: '35%',
            top: 100,
            bottom: "35%",
            zoom: 0.85,
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            //roam: true,
            data: resultdata2
        }, {
            name: '全部',
            z: 2,
            type: 'bar',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true,
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata0
        }, {
            name: '门板',
            z: 2,
            type: 'bar',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata1
        }, {
            name: '拼框门',
            z: 2,
            type: 'bar',
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata2
        }, {
            name: '全部',
            z: 2,
            type: 'pie',
            radius: ['17%', '25%'],
            center: ['30%', '82.5%'],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true,
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata0
        }, {
            name: '门板',
            z: 2,
            type: 'pie',
            radius: ['17%', '25%'],
            center: ['30%', '82.5%'],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata1
        }, {
            name: '拼框门',
            z: 2,
            type: 'pie',
            radius: ['17%', '25%'],
            center: ['30%', '82.5%'],
            label: {
                normal: {
                    show: true
                },
                emphasis: {
                    show: true
                }
            },
            itemStyle: {
                emphasis: {
                    color: "rgb(254,153,78)"
                }
            },
            data: resultdata2
        }]
    };

    option && myECharts.setOption(option)
})

</script>
<style></style>


<!-- <template >
    <div :id="id" :style="{ width: width, height: height }">

    </div>
</template>
<script setup>
import * as echarts from 'echarts'
import { onMounted, watch} from 'vue'
const props = defineProps({
    id: {
        type: String,
        default: 'myChart'
    },
    width: {
        type: String,
        default: '100%'
    },
    height: {
        type: String,
        default: '100%'
    },
    option: {
        type: Object,
        default: () => { }
    }
})
let myChart = null;
watch(props.option, () => {
    drawEcharts();
})
onMounted(() => {
    drawEcharts();
});
function drawEcharts() {
    myChart = echarts.init(document.getElementById(props.id));
    let option = props.option;
    option && myChart.setOption(option);

}

</script>
<style></style> -->

实现效果如下图:【上述代码使用的是可视化社区里的这个案例,如有需要自行按需更改即可!】
在这里插入图片描述
5. 封装echarts【具体封装流程可参考博客】

<template >
    <div :id="id" :style="{ width: width, height: height }">

    </div>
</template>
<script setup>
import * as echarts from 'echarts'
import { onMounted, watch } from 'vue'
import chinaJson from './china.json'
const props = defineProps({
    id: {
        type: String,
        default: 'myChart'
    },
    width: {
        type: String,
        default: '100%'
    },
    height: {
        type: String,
        default: '100%'
    },
    option: {
        type: Object,
        default: () => { }
    }
})
let myChart = null;
watch(props.option, () => {
    drawEcharts();
})
onMounted(() => {
    drawEcharts();
});
function drawEcharts() {
    myChart = echarts.init(document.getElementById(props.id));
    echarts.registerMap('china', chinaJson);
    let option = props.option;
    option && myChart.setOption(option);

}

</script>
<style></style>
  1. 直接在父组件中使用
<script setup>
import Echarts from './components/Echarts.vue';
import { ref, onMounted } from 'vue';
function randomData() {
  return Math.round(Math.random() * 1000);
}

var data = [{
  name: '北京',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '天津',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '上海',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '重庆',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '河北',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '河南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '云南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '辽宁',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '黑龙江',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '湖南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '安徽',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '山东',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '新疆',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '江苏',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '浙江',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '江西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '湖北',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '广西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '甘肃',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '山西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '内蒙古',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '陕西',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '吉林',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '福建',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '贵州',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '广东',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '青海',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '西藏',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '四川',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '宁夏',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '海南',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '台湾',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '香港',
  value1: randomData(),
  value2: randomData(),
}, {
  name: '澳门',
  value1: randomData(),
  value2: randomData(),
}];

var resultdata0 = [];
var resultdata1 = [];
var resultdata2 = [];
var sum0 = 0;
var sum1 = 0;
var sum2 = 0;
var titledata = [];
for (var i = 0; i < data.length; i++) {
  var d0 = {
    name: data[i].name,
    value: data[i].value1 + data[i].value2
  };
  var d1 = {
    name: data[i].name,
    value: data[i].value1
  };
  var d2 = {
    name: data[i].name,
    value: data[i].value2
  };
  titledata.push(data[i].name)
  resultdata0.push(d0);
  resultdata1.push(d1);
  resultdata2.push(d2);
  sum0 += data[i].value1 + data[i].value2;
  sum1 += data[i].value1;
  sum2 += data[i].value2;
}

function NumDescSort(a, b) {
  return a.value - b.value;
}

resultdata0.sort(NumDescSort);
resultdata1.sort(NumDescSort);
resultdata2.sort(NumDescSort);

const lineOption = ref({});
lineOption.value = {
  title: [{
    text: '销售量统计',
    subtext: '纯属虚构',
    left: 'center'
  }, {
    text: '全部: ' + sum0,
    right: 120,
    top: 40,
    width: 100,
    textStyle: {
      color: '#fff',
      fontSize: 16
    }
  }, {
    text: "门板: " + sum1,
    right: 120,
    top: 40,
    width: 100,
    textStyle: {
      color: '#fff',
      fontSize: 16
    }
  }, {
    text: "拼框门: " + sum2,
    right: 120,
    top: 40,
    width: 100,
    textStyle: {
      color: '#fff',
      fontSize: 16
    }
  },],
  tooltip: {
    trigger: 'item'
  },
  legend: {
    orient: 'vertical',
    left: 'left',
    data: ['全部', '门板', '拼框门'],
    selectedMode: 'single',
  },
  visualMap: {
    min: 0,
    max: 2500,
    left: 'left',
    top: 'bottom',
    text: ['高', '低'],
    calculable: true,
    colorLightness: [0.2, 100],
    color: ['#c05050', '#e5cf0d', '#5ab1ef'],
    dimension: 0
  },
  toolbox: {
    show: true,
    orient: 'vertical',
    left: 'right',
    top: 'center',
    feature: {
      dataView: {
        readOnly: false
      },
      restore: {},
      saveAsImage: {}
    }
  },
  grid: {
    right: 40,
    top: 100,
    bottom: 40,
    width: '30%'
  },
  xAxis: [{
    position: 'top',
    type: 'value',
    boundaryGap: false,
    splitLine: {
      show: false
    },
    axisLine: {
      show: false
    },
    axisTick: {
      show: false
    },
  }],
  yAxis: [{
    type: 'category',
    data: titledata,
    axisTick: {
      alignWithLabel: true
    }
  }],
  series: [{
    z: 1,
    name: '全部',
    type: 'map',
    map: 'china',
    left: '10',
    right: '35%',
    top: 100,
    bottom: "35%",
    zoom: 0.75,
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    //roam: true,
    data: resultdata0
  }, {
    z: 1,
    name: '门板',
    type: 'map',
    map: 'china',
    left: '10',
    right: '35%',
    top: 100,
    bottom: "35%",
    zoom: 0.75,
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    //roam: true,
    data: resultdata1
  }, {
    z: 1,
    name: '拼框门',
    type: 'map',
    map: 'china',
    left: '10',
    right: '35%',
    top: 100,
    bottom: "35%",
    zoom: 0.85,
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    //roam: true,
    data: resultdata2
  }, {
    name: '全部',
    z: 2,
    type: 'bar',
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true,
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata0
  }, {
    name: '门板',
    z: 2,
    type: 'bar',
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata1
  }, {
    name: '拼框门',
    z: 2,
    type: 'bar',
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata2
  }, {
    name: '全部',
    z: 2,
    type: 'pie',
    radius: ['17%', '25%'],
    center: ['30%', '82.5%'],
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true,
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata0
  }, {
    name: '门板',
    z: 2,
    type: 'pie',
    radius: ['17%', '25%'],
    center: ['30%', '82.5%'],
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata1
  }, {
    name: '拼框门',
    z: 2,
    type: 'pie',
    radius: ['17%', '25%'],
    center: ['30%', '82.5%'],
    label: {
      normal: {
        show: true
      },
      emphasis: {
        show: true
      }
    },
    itemStyle: {
      emphasis: {
        color: "rgb(254,153,78)"
      }
    },
    data: resultdata2
  }]
};
</script>

<template>
 <Echarts :width="'90vw'" :height="'90vh'" :option="lineOption" id="line" />
</template>

实现效果同上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/416535.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI短视频矩阵运营软件|抖音视频矩阵控制工具

【罐头鱼AI传单功能介绍】 罐头鱼AI传单是一款专为短视频矩阵运营而设计的智能软件&#xff0c;旨在帮助用户高效管理和运营多个抖音账号&#xff0c;并提供一系列强大的功能来优化视频内容创作和发布流程。QQ:290615413以下是软件框架&#xff0c;详细介绍其功能和特点&#…

iOS开发-绘制圆圈circle

话不多说&#xff0c;直接上代码 CAShapeLayer *circleLayer [[CAShapeLayer alloc] init]; [circleLayer setFillColor:[UIColor clearColor].CGColor]; [circleLayer setStrokeColor:[UIColor redColor].CGColor]; [circleLayer setLineWidth:1.5f]; UIBezierPath *circle…

kvm虚拟机修改网络模式

kvm修改网络模式可以直接使用virsh命令进行修改 一、查看主机 virsh list --all 二、查看需要修改主机的网络模式 virsh domiflist mysql 三、vim进行修改 cd /etc/libvirt/qemu/ vim mysql.xml 四、找到要修改的网卡部分 五、重新定义虚拟机 virsh define mysql_install.xml…

rust枚举类和可以为None值的枚举对象

枚举类在 Rust 中并不像其他编程语言中的概念那样简单&#xff0c;但依然可以十分简单的使用&#xff1a; #[derive(Debug)]enum Book {Papery, Electronic }fn main() {let book Book::Papery;println!("{:?}", book); } 运行结果&#xff1a; 书分为纸质书&am…

异常网络下TCP的可靠服务机制(慢启动、拥塞避免、快重传、快恢复)

目录 TCP超时重传拥塞控制概述慢启动和拥塞避免下面讲解发送端如何判断拥塞发生。 快速重传和快速恢复 本文描述TCP在异常网络下的处理方式 以保证其可靠的数据传输的服务 TCP超时重传 tcp服务能够重传其超时时间内没有收到确认的TCP报文段&#xff0c;tcp模块为每一个报文段都…

OpenAI最新发布的文生视频模型Sora到底强在哪?

文章目录 1.Sora到底强在哪&#xff1f;2. 不足3. 结尾 2024年2月16日&#xff0c;当大家沉浸在过年的喜庆氛围中&#xff0c;OpenAI发布首款文生成视频大模型 Sora &#xff0c;其炸裂登场让人感到惊艳。 Sora官网介绍&#xff1a;https://openai.com/sora 说起文生视频工具…

openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能

文章目录 openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能230.1 适用场景与限制230.2 资源对SMP性能的影响230.3 其他因素对SMP性能的影响230.4 配置步骤 openGauss学习笔记-230 openGauss性能调优-系统调优-配置并行查询功能 openGauss的SMP并行技术是一…

使用面向对象思想去封装实现canvas功能

前言 各种插件/库和一些常规的业务代码,最大的区别就在于编程的思路与方法。 比如我们现在想写一段业务代码,使用js实现一个矩形,那很简单,几行代码就可以了 const canvas document.getElementById(canvas)const mode canvas.getContext(2d)mode.rect(200,200,200,200)mode…

CIM的基本概念知识,以及应用场景介绍

CIM的理念 CIM基本理念总结为&#xff1a;依托先进技术、面向具体需求、融合动态信息、描述实体单元、支撑各类应用。 首先要依托于对 BIM、GIS、IOT技术的透彻理解和深度应用&#xff0c;并与云计算、大数据等技术充分融合。 同时&#xff0c;针对不同区域、不同运行管理对象、…

【dc-dc】AP5101C 高压线性恒流IC 9-19V 500ma LED电源驱动方案 过压保护 抗浪涌线路

产品描述 AP5101C 是一款高压线性 LED 恒流芯片 &#xff0c; 外围简单 、 内置功率管 &#xff0c; 适用于6- 100V 输入的高精度降压 LED 恒流驱动芯片。最大电流2.0A。AP5101C 可实现内置MOS 做 2.0A,外置 MOS 可做 3.0A 的。AP5101C 内置温度保护功能 &#xff0c;温度保护…

拜登:“一切非 Rust 项目均为非法”,开发界要大变天?

文章目录 科技巨头应为安全漏洞负起责任使用其他语言的开发者​该何去何从&#xff1f; 白宫国家网络总监办公室&#xff08;ONCD&#xff0c;以下简称网总办&#xff09;在本周一发布的报告中说道&#xff1a;“程序员编写代码并非没有后果&#xff0c;他们的⼯作⽅式于国家利…

练习 2 Web [ACTF2020 新生赛]BackupFile 1

[ACTF2020 新生赛]BackupFile 1 Web常规题目 首先尝试查找常见的前端页面index.php之类的&#xff0c;没找到 题目有个“BackupFile”——备份文件 尝试用工具遍历查找相关的文件 御剑没扫出来&#xff0c;搜索搭建好dirsearch后&#xff0c;扫出来的index.php.bak 扫描工…

我又上来啦!湖人胜率反超勇士升至第九 勇士降第十

nba直播吧 02月29日讯 湖人今日在洛杉矶德比中116-112逆转击沉快船&#xff01; 赛后&#xff0c;湖人的战绩来到32胜28负&#xff0c;胜率反超勇士&#xff08;30胜27负&#xff09;&#xff0c;升至西部第九&#xff0c;勇士降到西部第十。

eBay美国站怎么样?eBay跨境电商卖家开店必知!

在众多跨境电商平台之中&#xff0c;eBay作为全球知名的电商平台之一&#xff0c;为卖家提供了跨境电商的机会。对于中国卖家而言&#xff0c;这是一个充满机遇的市场。那么&#xff0c;eBay美国站怎么样&#xff1f;如何顺利在美国eBay上开店呢&#xff1f;让我们一起来了解一…

Apache SeaTunnel 及 Web 功能部署指南(小白版)

在大数据处理领域&#xff0c;Apache SeaTunnel 已成为一款备受青睐的开源数据集成平台&#xff0c;它不仅可以基于Apache Spark和Flink&#xff0c;而且还有社区单独开发专属数据集成的Zeta引擎&#xff0c;提供了强大的数据处理能力。随着SeaTunnel Web的推出&#xff0c;用户…

证明StringBuilder不是现性安全的

1 理论证明 StringBuilder存放字符串的属性是char value[], 这在其父类AbstractStringBuilder里面可以查看&#xff1a; 数组都是创建在堆中&#xff0c;堆中的内存任意线程都可以访问。而且这个字符数组没有像String类那样用final修饰&#xff0c;所以任意线程都可以修改&am…

八、ActiveMQ持久化

ActiveMQ持久化 一、MQ的高可用二、持久化介绍三、持久化存储方式1.AMQ Mesage Store(了解&#xff09;2.KahaDB消息存储(默认)2.1 存储原理 3.JDBC消息存储4.LevelDB消息存储(了解)5.JDBC Message Store with ActiveMQ Journal查询持久化存储方式 四、持久化存储使用1.JDBC消息…

【小夏送书 | 第二期】世界顶级名校计算机专业,都在用哪些书当教材?

&#x1f304;参与规则 参与方式&#xff1a;关注博主点赞收藏评论&#xff0c;&#xff08;每人最多评论三次&#xff09; 本次送书1~3本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 活动时间至&#xff1a;2024-3-6 20:00:00 | 随机抽取由博主动态公布抽…

linux centos 挂载磁盘

linux centos 挂载磁盘 未挂载磁盘分区挂载硬盘 背景&#xff1a;客户新加了一块600G的数据盘要挂载使用 未挂载磁盘分区 查看未挂载的磁盘 fdisk -l开始分区 fdisk /dev/sdb按照图示一次输入指令 再次查看 fdisk -l格式化 mkfs -t ext4 /dev/sdb1挂载硬盘 创建数据目录…

Visio使用笔记

记录一下需要的常用操作 圆角矩形的弧度调整 如果一开始创建的是圆角矩形&#xff0c;可以菜单栏先改为矩形 取消箭头的对齐吸附 alt F9&#xff0c;取消勾选 忘记快捷键&#xff0c;可以菜单栏找到视图&#xff0c;点击视觉帮助右下角的小箭头&#xff0c;引出上面的界面…