微信小程序中使用echart、动态加载几条折线

news2024/11/17 9:32:35

一、示例

 echart小程序示例

gitub地址:GitHub - ecomfe/echarts-for-weixin: Apache ECharts 的微信小程序版本

在小程序中放入

效果

 

二、 小程序代码

json 组件的位置取决于一示例中的的echart的位置

{  
  "navigationStyle":"custom",
  "usingComponents": {
    "ec-canvas":"../../ec-canvas/ec-canvas"
  }
}

wxml

<coverheader headerOpt="{{headerOpt}}"></coverheader>
<wxs src="./../../filter/urlFilter.wxs" module="filter" /> 
<view class="tendency">
<view class="chartScreen">
  <view class="chart_item" wx:for="{{tendencyList}}" wx:key="index">
    <view class="check {{!filter.includesArr(chooseId,item.value)?'checked'+index:''}}" bindtap="clickcheck" data-item="{{item}}"></view>
    <view>{{item.label}}</view>
  </view>
</view>
<view class="echart_line">
  <view class="echart_line1">
    <ec-canvas id="mychart" canvas-id="mychart" ec="{{ ec }}"></ec-canvas>
  </view>         
</view>
</view>

js

var request = require('../../utils/request.js');
let util=require('../../utils/util')
import {getTopicAnalysis } from "../../utils/api/test/test";
import * as echarts from '../../ec-canvas/echarts';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    headerOpt:{
      showGoHome:false,
      title:"详情页",
      // styles:'background-image:url(https://assets-dajieimg.oss-cn-beijing.aliyuncs.com/meishu/login/bg_top.png);background-size:100% 100%'
    },
    navigationBarAndStatusBarHeight:wx.getStorageSync('statusBarHeight') + wx.getStorageSync('navigationBarHeight') + 'px',
    tendencyList:[{label:'1',value:1},{label:'2',value:2},{label:'3',value:3},{label:'4',value:4},{label:'5',value:5},{label:'6',value:6,}],
    chooseList:[],//选中的list
    chooseId:[],//选中的id
    ec: {
      lazyLoad: true // 延迟加载
    },
    Chart:null,
  },
  clickcheck(e){
    let that=this
    let items=e.currentTarget.dataset.item
    let id=e.currentTarget.dataset.item.value
    let chooseId=that.data.chooseId
    let chooseList=that.data.chooseList
    console.log(id);
    // 如果id不存在加入
    if(!chooseId.includes(id)){
      chooseId.push(id)
      chooseList.push(items)
    }else{
      //删除id
      var index = chooseId.findIndex(item => {return item === id})
      chooseId.splice(index,1)
      chooseList.splice(index,1)
    }
    console.log(chooseId);
    that.setData({
      chooseId,
      chooseList,
    })
    that.getseriesInfo()
  },
  getseriesInfo(){
    let colorArr= ['#556FFD', '#57BE6A', '#DF699B', '#98A1D0', '#EED46C','#D64052','#E3C24B']
    //传递的参数--
    getTopicAnalysis({chooseId:this.data.chooseId}).then((res)=>{
        if(res.data){
          let xAxisinfo = [];
          let legendInfo = [];
          let seriesInfo = [];
          res.data.forEach((ele,index) => {
              let params = {
                  data: [],
                  type: 'line',
                  showSymbol: false,
                  name: '',
                  lineStyle:{
                    color:colorArr[index]
                  },
              };
              legendInfo.push(ele.topicName)//topicId 话题id
              params.name = ele.topicName;
               ele.dailyData.forEach((eleData) => {
                      if(index == 0){
                          xAxisinfo.push(eleData.date)
                      }
                      params.data.push(eleData.cnt)
                  });
                  seriesInfo.push(params);
             })
              this.setData({
                xAxisinfo,
                legendInfo,
                seriesInfo
              })
              console.log(seriesInfo);
          if (!this.data.Chart){
            this.init_echarts(); //初始化图表
          }else{
            this.setOption(); //更新数据
          }
          console.log(seriesInfo);
        }
    })
  },
   //综合数据图标初始化
 init_echarts: function () {
  this.echartsComponnet.init((canvas, width, height,dpr) => {
    // 初始化图表
    const Chart = echarts.init(canvas, null, {
     // renderer: 'svg',
      width: width,
      height: height,
      devicePixelRatio: dpr // new
    });
    Chart.setOption(this.setOption());
    // 注意这里一定要返回 chart 实例,否则会影响事件处理等
    return Chart;
  });
},
//综合数据直线设置数据
setOption(){
  return {
  //  color: ['#DC2FDC', '#1B89FF', '#87EEFB', '#EEAD6C', '#EED46C'],
   tooltip: {
        trigger: 'axis',
      confine: true,
      // showContent: false,
      backgroundColor: 'rgba(255,255,255,0.5)',
      borderWidth: 1,
      borderColor: '#e2e6f5',
      borderRadius: 4,
      padding: [10, 20, 10, 20],
      textStyle: {
          color: "#949AB7",
      },
      axisPointer: {
          type: "cross",
          label: {
            show:false,
          // backgroundColor: 'rgba(39, 100, 131, 0.71)',
          // backgroundColor: 'null',
          },
          lineStyle:{
          backgroundColor: 'rgba(39, 100, 131, 0.71)',
          }
      },
    formatter: function (params) {
        let str = params[0].name+'\n'
        let newParams = [];
        let tooltipString = [];
        newParams = [...params];
        newParams.sort((a,b) => {return Number(b.value) - Number(a.value)});
        newParams.forEach((ele,index) => {
                str +=ele.seriesName+ele.value+'\n'
        })
        return  str
    }
},
    grid: {
      left: 20,
      right: 20,
      bottom: 15,
      top: 40,
      containLabel: true
    },
    legend: {
     icon:'circle', 
     show:false,
     itemHeight: 12,
     itemWidth: 12,
     top:'bottom',
     textStyle: { 
     //图例文字的样式
         color: '#3F96D5',
         fontSize: 12
     },
     data: this.data.legendInfo,
   },
   xAxis: {
    axisLabel:{
      color: "#9095A7", //刻度线标签颜色
      lineStyle:{
      color:'#9095A7',//更改坐标轴颜色
     },
     },
     axisTick:{show:false},
     axisPointer: {
         lineStyle:{
             color:'rgba(39, 100, 131, 1)'
         }
     },
     //设置轴线的属性
     axisLine:{
         lineStyle: {
         color: '#DFE1EB',//刻度线的颜色
       }
     },
     type: 'category',
     boundaryGap: false,
     data: this.data.xAxisinfo,
 },
 yAxis: {
  splitLine: {
    lineStyle: {
      type: 'dashed',
      color:'#DFE1EB'
    }
   },
   boundaryGap: [0, '50%'],
   type: 'value',
  //  name: 'GMV',
   position: 'left',
   axisLabel: {
       color: "#9095A7", //刻度线标签颜色
       formatter(v) {
           v = v.toString()
           if (v >= 100000000000) {
               return (v.substring(0, 5) / 10) + '亿'
           } else if (v >= 10000000000) {
               return (v.substring(0, 4) / 10) + '亿'
           } else if (v >= 1000000000) {
               return (v.substring(0, 3) / 10) + '亿'
           } else if (v >= 100000000) {
               return (v.substring(0, 2) / 10) + '亿'
           } else if (v >= 10000000) {
               return v.substring(0, 4) + 'w'
           } else if (v >= 1000000) {
               return v.substring(0, 3) + 'w'
           } else if (v >= 100000) {
               return v.substring(0, 2) + 'w'
           } else if (v >= 10000) {
               return (v.substring(0, 2) / 10) + 'w'
           } else if (v >= 1000) {
               return v
           } else {
               return v
           }
       },
   },
   axisPointer: {
     lineStyle:{
         color:'rgba(39, 100, 131, 1)'
     }
 },
},
series: this.data.seriesInfo,
grid: {top: '5%',right:'8%',bottom:'10%',left:'14%'},
}
    
},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.echartsComponnet = this.selectComponent('#mychart');
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

wxss

page{
  background-color: #F5F5F5;
  color:#212848;
}
.tendency{background-color: #fff;padding: 30rpx;margin-top:20rpx ;}
.sec_title{font-size: 32rpx;font-weight: 500;margin-bottom: 36rpx;}
.chartScreen{display: flex;align-items: center;flex-wrap: wrap;}
.chart_item{display: flex;align-items: center;flex-shrink: 0;margin-right: 30rpx;font-size: 24rpx;margin-bottom: 18rpx;}
.check{width: 28rpx;height: 28rpx; border: 2rpx solid #dbdbdb;border-radius: 4rpx;margin-right: 8rpx;}
.checked0{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAF8SURBVHgB7Za/S8NAFMe/76pInUpBF5f+Ce3iqqPgokNBXETcRLAOnXXvYAd1k9ZFBIfWQXHU2UFB3By6OAmSRYst6fNeQrGIlzYxvcV+lnBw3OfejySPoFkpcMZlrgCc1csUYoZA9RZ97tTLyQb5ss79MEQ/cNrUyimX3X0LMiE1zhMVpQNegjU4q2CXlG0hRsLQTKeBzVWCFaHIdreCjxxDTGRmgOKGQuOFcXTKxn2xRCiyPR3ZexM4DJDFIuyVlY47+GgG7zemNL/gF/782nzj+VnyGuT1TUsPOt6zH0bhVNo/0CTtyiSiQWWCMaUnNfYaQCJdW6ZfZUIYWaDQrwl7hy3OfQt6ZVXvUggF5bfdwLaS1JaKCpNJeHJZC5LmoPqa6NulIpHu68qFq9tosoGEwtOzX1NBUlitRZMJA39pLnVUorl7jC4LJRQklX/lf/wPHVhEprYH2IL5QiWI1mEnSqet2gV1VqZGglRO6+sYDo5+oW5k6pZR/wuVDZYh1UtPwwAAAABJRU5ErkJggg==') no-repeat;background-size: 100% 100%;}
.checked1{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGiSURBVHgB7Za9S0JRFMDPfUlqNEgiBAW5NDQEOgRt4ZhTg1BLQVMfk0FLS1FbYNRmtUgfg4NDDelW/QGBkVCBQwo29cGDzCzk3c559cLA9/T5cZf6LfddOO/97jnvcu9hgEwkZt3c2hYB4B6cOqDZcDhiH8pCdHQ7w75kUrIlot/I7F3xSkq7tClARji4lUUkxmAMhME8EojFIVoI/0LTuGxdMDcwCUKEJFv2Bg1jLNAk+jp7YHFwBrIvOQjfHOjGNSVDkq1gZq+lIoRvDw1jGxaWyzZSOzgWDON1Sxpw+/FgYBC7O9F9eaR7WN0gD8VnWEtu4fgE1dAVuuxO9YNEJakmK5TeapYRuiXdS8cgm8+pmU71ByrKiFUTMkMhrTyU2lXL5e/1/QjKZdqizMDGT+e5UYDL5oT1oSXosNjVTGhOxDJxw/+rR9VdSpIQ7j5NTsRzZ3XJahIS13JaLR+Ryd/D/vdzPdR80iQwK+Li8QoawdTRpkkb4W/chzIIBIX8EoShHGObyKdBTJYy3gVBKerD9pspXmrHoTVgMuycHOT6BBgHmtv8l4eBAAAAAElFTkSuQmCC') no-repeat;background-size: 100% 100%;}
.checked2{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGKSURBVHgB7Za/S8NAFMe/CbWDBCm1iIiDLp0cqlNdFBxcdBBxVXDSbnX0r9BNxUHQUQcFXRT8NXVSkW4O7SAo0oZQpEpoe967WlD00qRJb9EPhEvgkU/eu8vd08DJLW8MQAvt8NsEvyIIHHYIVl0Z3EzltU/ZbXtE37DAKsM6tI41BTIIB6+iztOdgToSOtQSUS3Ev9AzoW4DsYUxKBGSrDc97RyDgAj3R9GzNAn7sYjC7rU0LpAMSUaZ1d5sFPauHGN9C7/KXrZOUSvbjvHSkkamRsRondzIQmAk42KBVIqveF4/FmMzpMJQ1IAxGpdKGzLKyK2MkJbUPMiIBUCZRueSv8oILzJHYX1OzsTLuiaGEJsf/yGrf5QJL2i51DZzCqB/q291FnpnWMjpmaAyO82vjKarlCSUaUNOlC6yLclcCYn3hydRPoJKaO5n0Cqud5rSeZaf1UD5Pg8/eNraqJR++RvnoQWFkPAOimCMHem8OV2EmiwtDdW0Tu03dcSiHW+TiF+X5CDXBwmPnVkfFK3qAAAAAElFTkSuQmCC') no-repeat;background-size: 100% 100%;}

.checked3{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGgSURBVHgB7ZZNSwJRFIbfew0jUsgiiqAQjIQWleCm2tjKTUHQL3DZrn5Jy9pJ/8BolZtsoS1U1Fy4CoYkSbIyEiRBb/dMKQbO6Pgxm3o2d2Y4M8+ccz8ZJKfBlJNZWFAIbDBgCsOGISTq4vgw4FEYycBZaiSiX06UGw3h4dzCTkYtI4R0UBW5LOM+TILJLuMwEcrSVCHxLzSMfdIK39YiTBGSbM/vksORacaMYUjMOCbg33Gi9FZFJPqgGTeUDElGmdVqddxE87qxAwvbZVcRBZ+y1UOzpN71OZqoSGaKmi+7XQ74tpfwUanhMnyvtt3QFNrkAHAvT6vXnaRNGWXUq4zQLGksUcDLa1VmOo9N70JHGWFEpits9gl9bG11tjW32mWx+PdPGYGdnaeFXoDdZsXB7grGrRZVTvdEQpY5mXmCUbqOUpKEr5WWnMjmSn3JehIShWIFt7J8BJUwFn9Ev/S80tzlntVpouTfMQiGlraslA7KH9gPZb+UYSJcbl1pmIRoiAsuT8QBM7L8cRxxOn5DnojlkxBGgCoSiJCDXF/Qr6qL/ZClCgAAAABJRU5ErkJggg==') no-repeat;background-size: 100% 100%;}

.checked4{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGdSURBVHgB7Za/S0JRFMe/72UpEWhgIS5ltLTpf6BTDQ0SYaM155BTLQZtCoWLTkLmaBQY+Ac4NLXoUlOQYYhmmJBJIvq650Hi4I/3tHeX+kzvvnfhw3nnnHuPAEbW6V42QIhLEOxsacLvk2qi43dkUnmBZHqIWY1EvdSY1CHqMRXmICNMevYXRUBygxuCXQRfTLyF+BeqZtqyCOuhD1yEJFsKn7BihPZCw6pNln095lEMRqCp8EfWrjdQDEWG7p1Y2Ct7CYTQqX9iLKHZ68GCdwfDMK67YIudyrJn/zFapVeMQjfowwwrAOOGS36uJJJ9ZdYjH4tIuYwYGGE5GkeTFYB51wPL/l5fGaFGNlTYZrkosJy0ShXMb292e6tXVo6es6p8ghqEB+eWNGwD9dZK7Azi3KwcCa2Jt8QlKhdJqGVklZKkEAh25UT1Oj2WTJGQaOTuUWI5Jaixy5E4xkWndOP7VVo+sT5u7zAJioVElUkn5W/chzVwhKa2HDghQboRBUh0bvGIsiZCOhDXaPxmEzF7kYI2sGCkDDnI9Q1gapfGPx2fagAAAABJRU5ErkJggg==') no-repeat;background-size: 100% 100%;}

.checked5{background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGbSURBVHgB7ZbLSwJBHMe/rksFhpiIQoee4CUQ7T+IOgQd6uytQ3c9Bh2Luhl19NDNs966FZ26FQkdhLYXBWnZKito7aP5DdkDdHV97KU+MMwsDPvZ78zOwwHG9dHihOh0HrBmmBUPeo6RVjU9Pjl3eOP4lJ31R/QLWdW0iCA6xYQNMsJDoyiwuCuwj7AAe/HYLcS/0DLikB/eYAy2CEnmC+3AMOuDHjHgmoJ3ZgOqIuE1t9u0X08SkswX2oahKijmEqZ9uxZ+yyp4udyCzuqOhO7xKC9muALz8M/ucVkhuw61+oRWNJ1D56CfvXCBt8u3qYaykWDckoxomrAkJfFekeAei8IzvdZQRhQu2peZCnU+J5vQankMjy5/ra2fMvkqiTf2UVZw3J8smS0bvrYCkX04RBdLkufPBA1z+S4Fq7T8S0nyzJLW5YTykOlI1paQqJWyfPgImldZSqJT2t5plMcMr6vFU3SDpa2tLu2Gv3EeyrAREp7DJgzDyAjscroKO1IakDVdjwl0/aYbMdt00ugHBg9zrOpahFwfXxGjuLpZ9F0AAAAASUVORK5CYII=') no-repeat;background-size: 100% 100%;}

.echart_line{display: flex;align-items: center;}
.echart_line .echart_line1{height: 420rpx;width:100%;}

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

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

相关文章

STM32速成笔记—EEPROM(AT24C02)

文章目录 一、AT24C02简介二、AT24C02引脚三、AT24C02寻址四、AT24C02读/写操作4.1 AT24C02写操作4.2 AT24C02读操作 五、AT24C02程序六、应用实例七、拓展应用 一、AT24C02简介 AT24C01/02/04/08/16…是一个1K/2K/4K/8K/16K位电可擦除PROM&#xff0c;内部含有128/256/512/10…

数据中心供配电系统负荷的计算方法(三)

数据中心供配电系统是为机房内所有需要动力电源的设备提供稳定、可靠的动力电源支持的系统&#xff1b;是数据中心日常运维的重大支出之一&#xff0c;在数据中心&#xff0c;供配电系统相当于一个人的“心脏和血管”&#xff0c;负责把能量输送到系统的每一台设备。一旦供配电…

伦敦金价格实时查询

伦敦金是具有显著杠杆效应的投资品种&#xff0c;参与其中的投资者&#xff0c;往往需要时刻关注它的实时行情走势&#xff0c;以及自己交易账户内的情况&#xff0c;才能及时地兑现利润和控制交易的风险。所以对于每一位伦敦金投资者来说&#xff0c;实时的行情报价都是十分重…

stable-diffusion 预训练模型汇总

目前各个github上各个库比较杂乱&#xff0c;故此做些整理方便查询 Stable UnCLIP 2.1 New stable diffusion finetune (Stable unCLIP 2.1, Hugging Face) at 768x768 resolution, based on SD2.1-768. This model allows for image variations and mixing operations as d…

OA办公系统如何通过审批流程提高效率

企业的发展与管理离不开信息化&#xff0c;很多企业的信息化都会选择从OA信息化开始。一个成熟先进的OA办公系统流程审批也是核心功能关注的功能之一&#xff0c;今天小编举例有18年平台经验的天翎低代码平台OA系统&#xff0c;给大家分享一下如果提升流程审批效率&#xff1a;…

展会回顾|万应低代码重磅亮相2023全球人工智能产品应用博览会

6月25-27日&#xff0c;人工智能领域的行业盛会——第五届全球人工智能产品应用博览会&#xff08;简称“全球智博会”&#xff09;在苏州国际博览中心成功举行。大会由苏州市人民政府指导、苏州工业园区管理委员会支持、新一代人工智能产业技术创新战略联盟、苏州市人工智能协…

Qt 事件过滤器使用QPainter绘制温度

文章目录 【1】eventFilter使用简介【2】QPainter使用简介【3】QPainter绘制温度案例头文件源文件 【4】 UI界面设计【5】温度绘制图 【1】eventFilter使用简介 Qt的eventFilter是一个事件过滤器&#xff0c;可以用来捕获和处理Qt对象的事件。事件过滤器可以被安装到一个对象上…

【js30天挑战】第四天:数组操作

总结 filter(筛选条件为true的项) map(你想要输出的东西)&#xff0c;进来多少个 出去多少个 sort()&#xff0c;默认可排字母顺序。sort(compareFn(a, b))其中compareFn(a, b)返回的值若大于0则a在b的后面。 reduce()&#xff0c;最复杂。reduce(func(){上一轮计算出的结果…

Vue 3 + vite技术架引入静态文件的问题(require和import方式)

Vue 3 vite技术架无法使用require()的方式引入静态文件 使用Vue 3 vite技术架开发过程中&#xff0c;引入静态资源时&#xff0c;习惯性使用require()引入&#xff0c;突然发现报错了。 研究了一下才发现&#xff0c;好像vite引入静态资源或者插件啥的&#xff0c;不用requi…

JAVA 二维码绘制,可定义背景图与在背景图种的位置,码点绘制避开logo区域10个像素点

效果图&#xff1a; 背景图&#xff1a; 直接看代码和代码说明&#xff1a; 方法drawQr() 为绘制核心&#xff0c;仅绘制出图上的二维码 方法createQr() 包含 读取背景图和 调用drawQr() 。绘制出完整的带有背景图的二维码 drawQr()方法参数说明&#xff1a; * param conten…

新星计划【数据结构与算法】赛道开启,欢迎报名!

前排提醒&#xff1a;这里是新星计划2023【数据结构与算法】学习方向的报名入口&#xff0c;一经报名&#xff0c;不可更换。 ↓↓↓报名方式&#xff1a;新星计划2023【数据结构与算法】学习方向报名入口&#xff01;-CSDN社区 一、关于本学习方向导师 博客昵称&#xff1a;…

上海亚商投顾:沪指探底回升微跌 减速器概念股大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 指数今日探底回升&#xff0c;三大股指盘中均跌超1%&#xff0c;随后跌幅逐渐收窄&#xff0c;沪指午后一度拉升翻…

Elasticsearch:使用 SIMD 指令加速向量搜索

作者&#xff1a;Chris Hegarty, Elastic Principal Engineer, Lucene PMC 翻译&#xff1a;杰瑞朱 多年来&#xff0c;Java 平台上运行的代码一直受益于自动向量化 —— HotSpot C2 编译器中的 superword 优化&#xff0c;将多个标量操作打包到 SIMD&#xff08;单指令多数据…

CWDM粗波分复用和DWDM密集波分复用的区别?

WDM波分复用技术提供了一种经济高效的解决方案&#xff0c;无需在现有光纤网络中部署额外的光纤即可增加网络容量。 CWDM 和 DWDM 是两种主要的 WDM 技术&#xff0c;具有不同的波长模式、功能、成本和应用。 CWDM 代表粗波分复用&#xff0c;其中“Coarse” 是指通道之间的波…

分享一个内网的屏幕分享软件inletexemc

分享一个内网的屏幕分享软件inletexemc 参考文章&#xff1a;https://zhuanlan.zhihu.com/p/25912687 原本采用的一个叫veyon的电子教室管理软件&#xff0c;虽然可以实现这个效果&#xff0c;但是比较笨重&#xff0c;操作也比较繁琐&#xff0c;具体可参考&#xff1a;http…

对话商越苗峰:未来十年,采购数字化是ERP后最核心应用之一

“从创立开始&#xff0c;商越就非常清楚要做什么、不做什么&#xff0c;这个定位到现在没变&#xff0c;未来也不会变。” 作者|皮爷 出品|产业家 清晰、理智、坚定、条律分明&#xff0c;这是商越创始人苗峰给我的第一感觉。 在见到他之前&#xff0c;我曾想象过这家短短几…

来酷智生活,Type-C十二合一扩展坞来了

联想最新推出的“来酷智生活Type-C十二合一扩展坞”为用户带来更多接口选择&#xff0c;方便实用。 这款扩展坞包含12个接口&#xff0c;包括2个USB 3.2&#xff0c;2个USB 2.&#xff0c;2个HDMI接口&#xff0c;TF卡插槽&#xff0c;SD卡插槽&#xff0c;DP接口&#xff0c;P…

电压放大器在超声波检测中的应用

电压放大器是一种用于放大电压信号的电子设备&#xff0c;它具有低噪声、高增益、线性度高等特点&#xff0c;被广泛应用于各种电子设备中。在超声波检测中&#xff0c;电压放大器在信号的采集和处理中发挥着非常重要的作用。 超声波检测是一种通过声波的反射和传播来检测物体内…

系统定制开发-安卓输入法将应用顶起问题

输入法弹出会导致应用窗口往上移动 InputMethodService.java中有关窗口重置代码 只需要重写onComputeInsets,将outInsets.contentTopInsets 设为decor.getHeight() Overridepublic void onComputeInsets(final InputMethodService.Insets outInsets) {super.onComputeInsets(o…

6.2 文件与目录管理

6.2.1 文件与目录的检视&#xff1a; ls 在Linux中&#xff0c;ls指令最常被执行&#xff0c;因为我们随时都要知道文件或者目录的相关信息。Linux的文件记录信息很多&#xff0c;因此ls没有需要全部都列出来。所以下达ls时&#xff0c;默认的有&#xff1a;非隐藏文件的文件名…