vue在el-tab中使用echart(出现canvas高宽一直是100px问题+echart随外层div变化而自适应)

news2024/11/19 11:22:15

问题1:canvas高宽一直是100px问题

解决方法:使用v-if,参考文献https://blog.csdn.net/qq_42527726/article/details/106147539?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-0-106147539-blog-132323416.235^v38^pc_relevant_default_base&spm=1001.2101.3001.4242.1&utm_relevant_index=3

template部分:

<el-tabs v-model="activeName" @tab-click="handleClick">

	<el-tab-pane label="运行状态" name="first">
	...
    </el-tab-pane>
    <el-tab-pane label="镜像数据统计" name="second">
	...
    </el-tab-pane>
 	<el-tab-pane label="实验在线人数统计" name="third">
      	<div v-if="isshow" style="height:500px;width:100%">
          	<myEcharts height='100%' width='100%'></myEcharts>
      	</div>
  	</el-tab-pane>
</el-tabs>

script部分:

<script>
import myEcharts from './echarts'
export default {
    components:{
        myEcharts
    },
    data(){
        return{
            isshow:false,
        }
    },
    methods:{
        handleClick(tab, event){
            if(tab.name=="third"){
                this.isshow=true
            }else{
                this.isshow=false
            }
        },
    }

echarts组件部分:

<template>
    <div style="width:100%;height:100%">
        <div id="myChart" style="width:100%;height:100%"></div>
    </div>
</template>
<script>
export default {
    data(){
        return{

        }
    },
    methods:{
        //画图表
        drawLine(){
            // 基于准备好的dom,初始化echarts实例
            let myChart = this.$echarts.init(document.getElementById('myChart'))
            // 绘制图表
            myChart.setOption({
                title: {
                    text:"实验人数统计"
                },
                tooltip: {},
                xAxis: {
                    data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
                },
                yAxis: {},
                series: [{
                    name: '销量',
                    type: 'bar',
                    data: [5, 20, 36, 10, 10, 20],
                    itemStyle:{
                        normal:{
                            color:'#409EFF'
                        }
                    },
                }]
            });
        },
    },
    mounted(){
        this.drawLine()
    },
}
</script>
<style scoped>

</style>

问题2:一般都是echart随windows窗口变化而变化,现在需求是外层div能够被拖动,而echart不会随着外层div变化而变化

解决方法:使用element-resize-detector插件监听div

在main.js文件中

// (用来监听div变化)
import ElementResizeDetectorMaker from "element-resize-detector";
Vue.prototype.$erd = ElementResizeDetectorMaker();

在写echart的文件中

 

在script代码为:

主要代码:

        const _this = this;
        this.$erd.listenTo(this.$refs.echartButtom, () => {
          _this.$nextTick(() => {
            myChart.resize();
          });
        });

问题3:柱状图叠图

option = {
    tooltip : {
        trigger: 'axis',
        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
            type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
        }
    },
    legend: {
        data: ['直接访问', '邮件营销','联盟广告','视频广告','搜索引擎']
    },
     toolbox: {
                show: true,
                feature: {
                    dataZoom: {
                        yAxisIndex: 'none'
                    },
                    dataView: {readOnly: false},
                    magicType: {type: ['line', 'bar']},
                    restore: {},
                    saveAsImage: {}
                }
            },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis:  {
        
        type: 'category',
        data: ['周一','周二','周三','周四','周五','周六','周日']
    },
    yAxis: {
         type: 'value'
    },
    series: [
        {
            name: '直接访问',
            type: 'bar',
            stack: '总量',
            smooth: true,
            label: {
                  normal: {
                      show: true,
                      position: 'insideTop',
                      formatter: function(v) {
                        return v.value || ""
                      }
                  }
              },
              
            data: [302, 302, 301, 334, 390, 330, 320]
        },
        {
            name: '邮件营销',
            type: 'bar',
            stack: '总量',
              smooth: true,
            label: {
                  normal: {
                      show: true,
                      position: 'insideTop',
                      formatter: function(v) {
                        return v.value || ""
                      }
                  }
              },
            data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
            name: '联盟广告',
            type: 'bar',
            stack: '总量',
              smooth: true,
            label: {
                  normal: {
                      show: true,
                      position: 'insideTop',
                      formatter: function(v) {
                        return v.value || ""
                      }
                  }
              },
            data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
            name: '视频广告',
            type: 'bar',
            stack: '总量',
              smooth: true,
            label: {
                  normal: {
                      show: true,
                      position: 'insideTop',
                      formatter: function(v) {
                        return v.value || ""
                      }
                  }
              },
            data: [150, 212, 201, 154, 190, 330, 410]
        },
        {
            name: '搜索引擎',
            type: 'bar',
            stack: '总量',
              smooth: true,
            label: {
                  normal: {
                      show: true,
                      position: 'insideTop',
                      formatter: function(v) {
                        return v.value || ""
                      }
                  }
              },
            data: [820, 832, 901, 934, 1290, 1330, 1320]
        },
        {
            name: '总计',
            type: 'bar',
            stack: '总计',
            barGap: '-100%',
              smooth: true,
            label: {
                normal: {
                    show: true,
                    position: 'top',
                    textStyle: { color: '#000' },
                    formatter: function(v) {
                        return "总计:" + (v.value)
                    }
                }
            },
            itemStyle: {
                normal: {
                    color: 'rgba(128, 128, 128, 0)',
                    borderWidth: 1,
                    borderColor: '#1FBCD2'
                }
            },
            data: [1600,1600,1600,1600,1600,2600]
        }
    ]
};

问题4:柱状叠图点击不同区域显示不同弹窗内容(主要代码)

     if (myChart == undefined) {
        myChart = this.$echarts.init(document.getElementById("bottomCharts"));
        myChart.setOption(option);
        window.addEventListener("resize", () => {
          myChart.resize();
        });
        // 随着div变化而变化
        const _this = this;
        let form ={};
        this.$erd.listenTo(this.$refs.echartButtom, () => {
          _this.$nextTick(() => {
            myChart.resize();
          });
        });
        myChart.on("click", function (params) {
          if(params.seriesName == '计划航班'){
            form.queryFlag = 'eobt';
          }else if(params.seriesName == '离场航班'){
            form.queryFlag = 'adep';
          }else{
            form.queryFlag = 'ades';
          }
          let index = params.dataIndex;
          form.startTime = timeRangList[index];
          form.endTime = timeRangList[index + 1];
          getPlanListByHour(form).then((res)=>{
            _this.tableData = res.data.data;
          })
          _this.showPlanDetail = true;
        });
      } else {
        myChart.clear();
        myChart.setOption(option);
        myChart.off("click")
        let form ={};
        const _this = this;
        myChart.on("click", function (params) {
          if(params.seriesName == '计划航班'){
            form.queryFlag = 'eobt';
          }else if(params.seriesName == '离场航班'){
            form.queryFlag = 'adep';
          }else{
            form.queryFlag = 'ades';
          }
          let index = params.dataIndex;
          form.startTime = timeRangList[index];
          form.endTime = timeRangList[index + 1];
          getPlanListByHour(form).then((res)=>{
            _this.tableData = res.data.data;
          })
          _this.showPlanDetail = true;
        });
      }

结果:

所有代码:

<!--
 * @Author: 
 * @Description: 
 * @Date: 2023-09-19 16:42:56
 * @LastEditTime: 2023-09-22 09:35:57
-->
<template>
  <div class="local-landing-panel" ref="echartButtom">
    <div class="flight-title-span">
      <!-- <span class="small-module-title-label">本场降落航班计划</span> -->
      <el-form
        :inline="true"
        :model="formInline"
        ref="form"
        class="flight-title-span"
      >
        <el-form-item label="日期" prop="queryDate">
          <el-date-picker
            v-model="formInline.queryDate"
            value-format="yyyy-MM-dd"
            type="date"
            placeholder="选择日期"
            @blur="queryFlightData()"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="机场" prop="airport">
          <el-input
            v-model="airport"
            style="width: 120px"
            maxlength="8"
            :disabled="true"
          ></el-input>
        </el-form-item>
      </el-form>
    </div>
    <div class="echartMain">
      <div
        class="bottomCharts"
        style="width: 100%; height: 100%"
        id="bottomCharts"
      ></div>
    </div>
    <!-- 飞行计划详情页面 -->
    <FlightDataDetail
      :showDetail.sync="showPlanDetail"
      :tableData="tableData"
      @handleDetail="handlePlanDetailDialog"
    ></FlightDataDetail>
  </div>
</template>
  
  <script>
import { statFlightNumByHour,getPlanListByHour } from "@/api/homePage.js";
import FlightDataDetail from "@/views/sipds/plan/flightDataDetail";

export default {
  components: { FlightDataDetail },
  data() {
    return {
      formInline: {
        queryDate: this.moment().format("YYYY-MM-DD"),
      },
      airport: "",
      showPlanDetail: false,
      planRow: "",
      tableData: [] // 传给子组件的参数
    };
  },
  mounted() {
    this.queryFlightData();
    this.airport = window.ownAirportCode;
  },

  //页面销毁时
  beforeDestroy() {},

  methods: {
    queryFlightData() {
      let param = {};
      param.queryDate = this.processParam(this.formInline.queryDate);
      statFlightNumByHour(param).then((res) => {
        if (res.data.code == "1") {
          let resData = res.data.data;
          let timeRangList = [];
          let planNumList = [];
          let adepNumList = [];
          let adesNumList = [];
          let medianNumList = [];
          let maximumList = [];
          let averageList = [];
          let capacityList = [];
          let totalList = [];

          // 遍历data数组
          for (let i = 0; i < resData.length; i++) {
            let item = resData[i];
            // 将数据分别存储到对应的数组中
            timeRangList.push(item.timeRang);
            planNumList.push(item.planNum);
            adepNumList.push(item.adepNum);
            adesNumList.push(item.adesNum);
            medianNumList.push(item.medianNum);
            maximumList.push(item.maximum);
            averageList.push(item.average);
            capacityList.push(item.capacity);
          }
          for (let i = 0; i < planNumList.length; i++) {
            let totalValue = planNumList[i] + adepNumList[i] + adesNumList[i];
            totalList.push(totalValue);
          }
          let finalHour = this.formInline.queryDate + ' 24:00:00';
          timeRangList.push(finalHour) // 方便发送弹窗接口需要的参数
          let timeRangListNumber = ['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'];
          this.getBottomCharts(
            timeRangListNumber,
            planNumList,
            adepNumList,
            adesNumList,
            medianNumList,
            maximumList,
            averageList,
            capacityList,
            totalList,
            timeRangList
          );
        } else {
          return false;
        }
      });
    },
    processParam(inputDateStr) {
      // 创建一个新的Date对象并将日期字符串解析为日期
      var inputDate = new Date(inputDateStr);
      // 获取年、月、日、小时、分钟和秒
      var year = inputDate.getFullYear();
      var month = String(inputDate.getMonth() + 1).padStart(2, "0"); // 月份从0开始,需要加1,并补0
      var day = String(inputDate.getDate()).padStart(2, "0");
      var hours = "00"; // 设置小时为00
      var minutes = "00"; // 设置分钟为00
      var seconds = "00"; // 设置秒钟为00

      // 构建新的日期时间字符串
      var dateTimeStr = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
      return dateTimeStr; // 输出结果:2023-09-20 00:00:00
    },
    getBottomCharts(
      timeRangListNumber,
      planNumList,
      adepNumList,
      adesNumList,
      medianNumList,
      maximumList,
      averageList,
      capacityList,
      totalList,
      timeRangList
    ) {
      let myChart = this.$echarts.getInstanceByDom(document.getElementById("bottomCharts"));

      let option = {
        tooltip: {
          // 提示框
          trigger: "axis", // 鼠标只要在轴上就会触发
          axisPointer: {
            // 坐标轴指示器,坐标轴触发有效
            type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
          },
        },
        legend: {
          data: [
            "计划航班",
            "进场航班",
            "离场航班",
            "平均架次",
            "最高架次",
            "中位架次",
            "跑道容量",
          ],
        },
        // toolbox: {
        //   // 工具栏
        //   show: true,
        //   feature: {
        //     dataZoom: {
        //       //数据区域缩放
        //       yAxisIndex: "none",
        //     },
        //     dataView: { readOnly: false }, //数据视图
        //     magicType: { type: ["line", "bar"] }, // //动态类型切换
        //     restore: {}, //重置
        //     saveAsImage: {}, //导出图片
        //   },
        // },
        grid: {
          left: "3%",
          right: "4%",
          bottom: "8%",
          top:40,
          containLabel: true,
        },
        xAxis: {
          name: "时间",
          nameGap: 25,
          nameLocation: "middle",
          type: "category",
          data: timeRangListNumber,
        },
        yAxis: {
          name: "架次",
          nameRotate: 90, // y轴name旋转90度 使其垂直
          nameGap: 25, // y轴name与横纵坐标轴线的间距
          nameLocation: "middle", // y轴name处于y轴的什么位置
          axisLine: {
            show: true,
          },
          axisTick: {
            //刻度
            show: true, // 显示刻度线
          },
          type: "value",
          splitLine: {
            //坐标轴在grid区域中的分隔线(网格中的横线)
            show: false,
            lineStyle: {
              color: ["#B8B8B8"],
              width: 1,
              type: "solid",
            },
          },
        },
        series: [
          {
            name: "计划航班",
            type: "bar",
            stack: "总量",
            smooth: true,
            label: {
              normal: {
                show: true,
                position: "insideTop",
                formatter: function (v) {
                  return v.value || "";
                },
              },
            },

            data: planNumList,
          },
          {
            name: "进场航班",
            type: "bar",
            stack: "总量",
            smooth: true,
            label: {
              normal: {
                show: true,
                position: "insideTop",
                formatter: function (v) {
                  return v.value || "";
                },
              },
            },
            data: adesNumList,
          },
          {
            name: "离场航班",
            type: "bar",
            stack: "总量",
            smooth: true,
            label: {
              normal: {
                show: true,
                position: "insideTop",
                formatter: function (v) {
                  return v.value || "";
                },
              },
            },
            data: adepNumList,
          },
          {
            //折线图
            name: "平均架次",
            // 这里要修改成y_c
            data: averageList,
            symbol: "circle", //拐点设置为实心
            symbolSize: 0, //拐点大小
            type: "line",
            itemStyle: {
              normal: {
                label: {
                  show: false,
                  position: "top",
                },
              },
            },
          },
          {
            //折线图
            name: "最高架次",
            // 这里要修改成y_c
            data: maximumList,
            symbol: "circle", //拐点设置为实心
            symbolSize: 0, //拐点大小
            type: "line",
            itemStyle: {
              normal: {
                label: {
                  show: false,
                  position: "top",
                },
              },
            },
          },
          {
            //折线图
            name: "中位架次",
            // 这里要修改成y_c
            data: medianNumList,
            symbol: "circle", //拐点设置为实心
            symbolSize: 0, //拐点大小
            type: "line",
            itemStyle: {
              normal: {
                label: {
                  show: false,
                  position: "top",
                },
              },
            },
          },
          {
            //折线图
            name: "跑道容量",
            // 这里要修改成y_c
            data: capacityList,
            type: "line",
            symbol: "circle", //拐点设置为实心
            symbolSize: 0, //拐点大小
            itemStyle: {
              normal: {
                label: {
                  show: false,
                  position: "top",
                },
              },
            },
          },
          // {
          //   name: "总计",
          //   type: "bar",
          //   // stack: "总计",
          //   barGap: "-100%",
          //   smooth: true,
          //   label: {
          //     normal: {
          //       show: true,
          //       position: "top",
          //       textStyle: { color: "#000" },
          //       // formatter: function (v) {
          //       //   return "总计:" + v.value;
          //       // },
          //       formatter: "{c}",
          //     },
          //   },
          //   itemStyle: {
          //     normal: {
          //       color: "rgba(128, 128, 128, 0)",
          //       // borderWidth: 0,
          //       // borderColor: "#1FBCD2",
          //     },
          //   },
          //   data: totalList,
          // },
        ],
      };

      if (myChart == undefined) {
        myChart = this.$echarts.init(document.getElementById("bottomCharts"));
        myChart.setOption(option);
        window.addEventListener("resize", () => {
          myChart.resize();
        });
        // 随着div变化而变化
        const _this = this;
        let form ={};
        this.$erd.listenTo(this.$refs.echartButtom, () => {
          _this.$nextTick(() => {
            myChart.resize();
          });
        });
        myChart.on("click", function (params) {
          if(params.seriesName == '计划航班'){
            form.queryFlag = 'eobt';
          }else if(params.seriesName == '离场航班'){
            form.queryFlag = 'adep';
          }else{
            form.queryFlag = 'ades';
          }
          let index = params.dataIndex;
          form.startTime = timeRangList[index];
          form.endTime = timeRangList[index + 1];
          getPlanListByHour(form).then((res)=>{
            _this.tableData = res.data.data;
          })
          _this.showPlanDetail = true;
        });
      } else {
        myChart.clear();
        myChart.setOption(option);
        myChart.off("click")
        let form ={};
        const _this = this;
        myChart.on("click", function (params) {
          if(params.seriesName == '计划航班'){
            form.queryFlag = 'eobt';
          }else if(params.seriesName == '离场航班'){
            form.queryFlag = 'adep';
          }else{
            form.queryFlag = 'ades';
          }
          let index = params.dataIndex;
          form.startTime = timeRangList[index];
          form.endTime = timeRangList[index + 1];
          getPlanListByHour(form).then((res)=>{
            _this.tableData = res.data.data;
          })
          _this.showPlanDetail = true;
        });
      }
    },
    //飞行计划详情弹框隐藏
    handlePlanDetailDialog(val) {
      this.showPlanDetail = val;
    },
  },
};
</script>
  
  <style scoped>
.local-landing-panel {
  height: 100%;
  width: 100%;
  /* display: flex;
  flex-direction: column; */
}
.small-module-title-label {
  color: #9fe1f9;
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 5px;
}

.flight-title-span {
  margin-bottom: 5px;
}

.flight-title-span >>> .el-radio {
  margin-right: 10px;
}

.flight-title-span >>> .el-radio__label {
  margin-left: 3px;
}

.cstat-radio {
  float: right;
  width: 322px;
}
.echartMain {
  height: calc(100% - 50px);
  width: 100%;
}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全流量安全分析的重要性

网络安全的重要性体现在以下几个方面&#xff1a; 保护数据安全&#xff1a;随着数字化时代的到来&#xff0c;企业和组织的数据变得越来越重要和敏感。网络安全能够有效保护敏感数据不被未授权的访问、篡改或泄露。通过加密、访问控制、身份认证等手段&#xff0c;网络安全确…

Redis怎么测?这篇文章写的太全了

Redis是一个高性能、内存数据库和缓存系统&#xff0c;在开发和生产环境中被广泛应用。本文将介绍如何进行有效的Redis软件测试&#xff0c;以确保其稳定性、高性能和可靠性。 Redis作为一种非关系型数据库和缓存系统&#xff0c;被广泛用于支持高流量、低延迟的应用。为了保证…

从技术创新到应用实践,百度智能云发起大模型平台应用开发挑战赛!

大模型已经成为未来技术发展方向的重大变革&#xff0c;热度之下更需去虚向实&#xff0c;让技术走进产业场景。在这样的背景下&#xff0c;百度智能云于近期发起了“百度智能云千帆大模型平台应用开发挑战赛”。 挖掘大模型落地应用 千帆大模型平台应用开发挑战赛启动 在不久…

短视频无人直播双端开播源码部署

设置语音 商家可以通过语音库&#xff0c;完成直播间语音设置&#xff0c;支持人声录制和智能配音直播间语音 语音库 语音库列表 语音库名称 语音库 录音 合成配音 进入“语音库” 可编辑、删除语音库 列表右下角-添加语音库-输入语音库名称 针对每个语音库&#…

Lua学习笔记:require非.lua拓展名的文件

前言 本篇在讲什么 Lua的require相关的内容 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 依赖Visual Studio工具 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &#x1f449; ♠…

ChatGPT的问世给哪些行业带来了冲击?

目录 引言Chat GPT 对行业的影响在线客服和智能客服行业传统自动回复机器人的局限性Chat GPT 的提升能力 教育培训行业个性化学习需求的挑战Chat GPT 的个性化优势 金融保险行业客户服务的变革Chat GPT 的智能化应用 医疗健康领域自助诊断及咨询的便利性Chat GPT 在医疗领域的应…

Spring学习笔记11 GoF代理模式

Spring学习笔记10 JdbcTemplate_biubiubiu0706的博客-CSDN博客 新建个maven模块 static-proxy 演示静态代理 订单接口 测试 需求:统计每个业务方法的耗时 package com.example.proxy.service;/*** author hrui* date 2023/9/25 8:42*/ public class OrderServiceImpl implem…

云安全【阿里云ECS攻防】

关于VPC的概念还请看&#xff1a;记录一下弹性计算云服务的一些词汇概念 - 火线 Zone-安全攻防社区 一、初始化访问 1、元数据 1.1、SSRF导致读取元数据 如果管理员给ECS配置了RAM角色&#xff0c;那么就可以获得临时凭证 如果配置RAM角色 在获取ram临时凭证的时候&#xff…

Android平台轻量级RTSP服务模块如何实现一个服务发布多路RTSP流?

我们在做Android平台轻量级RTSP服务和内网RTSP网关的时候&#xff0c;遇到过这样的问题&#xff0c;如何同时发布多路RTSP流出去&#xff1f; 回答这个问题&#xff0c;实际上不难&#xff0c;大牛直播SDK在设计这个模块的时候&#xff0c;考虑到了一个Service带多路流的情况&…

【Axure高保真原型】滑动评分条_自由控制起始数值

今天和大家分享能自动控制起始数值的滑动评分条的原型模板&#xff0c;我们可以左右拖动滑块或者点击滑条让滑块移动到点击的位置&#xff0c;评分的数值能根据滑块的位置自动计算&#xff1b;我们也可以控制左右侧输入框里的数值&#xff0c;从而控制滑动评分条的区间&#xf…

什么是Peppol ID?如何创建?

Peppol 网络的两大优势是安全和高效&#xff0c;由于Peppol 最常用于电子发票&#xff0c;因此这些优势在电子发票上展露无遗。相比之下&#xff0c;通过电子邮件发送 PDF 格式的发票和其他文件不仅处理成本较高&#xff0c;而且容易出现发票欺诈。 如果您所在的公共部门组织或…

游戏联运和游戏自主运营有什么区别?哪个更好?

游戏联运和游戏自主运营是两种不同的运营模式&#xff0c;各有优劣势&#xff0c;选择取决于具体情况和目标。 一、游戏联运 游戏联运是指将游戏交由第三方发行商或合作伙伴进行运营和推广。这些合作伙伴通常有更丰富的市场经验和资源&#xff0c;能够协助游戏进入不同地区和平…

Linux环境下使用SVN快速访问资料库?试试使用cpolar端口映射

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

LeetCode的第 363 场周赛——记录+补题

研究生生涯第一次打力扣周赛——3题 1. 计算 K 置位下标对应元素的和 class Solution { public:int cnt(int x){int sum 0;while (x) {sum ((x%2)?1:0);x/2;}return sum;}int sumIndicesWithKSetBits(vector<int>& nums, int k) {int n nums.size();int ans 0…

qiankun微服务搭建遇到的坑

目录 1.子应用vue.config中的headers设置成可跨域请求 2.output设置成library&#xff0c;打包成umd库格式 3.父应用使用了babel-pollfill&#xff0c;子应用不要在在bable-pollfill 4.iconfont.js要取消样式隔离才能生效 5.关于nginx的配置 6.主应用和各应用相同依赖的版…

【周赛364-单调栈】美丽塔 II-力扣 2866

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

华为OD机试 - 相同数字组成图形的周长 - 矩阵(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多…

windows下查看端口及占用端口的进程

1、使用命令查看端口&#xff0c;这里查看10000端口 netstat -aon|findstr "10000" 2、使用tasklist命令查看进程 tasklist|findstr "9640"

基于Spring Boot的在线考试系统springboot19

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…