数据可视化(BI报表的开发)第二天

9、公用面板样式

所有的面板的基础样式是一致的,提前布局好。
在这里插入图片描述

  • 面板 .panel :box-sizing,边框图,大小,定位【51 38 20 132】
  • 容器 .inner:padding:24,36,定位外部拉宽
  • 标题 h3:20px,颜色
/* 面板样式 */
.panel{box-sizing: border-box;border: 2rem solid transparent;border-width: 2.125rem 1.583rem 0.833rem 5.5rem;border-image: url(../images/border.png) 51 38 21 132;margin-bottom: 0.833rem;position: relative;
}
.panel .inner{padding: 1rem 1.5rem;position: absolute;top: -2.125rem;right: -1.583rem;bottom: -0.833rem;left: -5.5rem;
}
.panel h3{font-size: 0.833rem;color: #fff;
}

10、概览区域-布局

html结构:

      <div class="overview panel"><div class="inner"><div class="item"><h4>2,190</h4><span><i class="icon-dot" style="color: #006cff"></i>设备总数</span></div><div class="item"><h4>190</h4><span><i class="icon-dot" style="color: #6acca3"></i>季度新增</span></div><div class="item"><h4>3,001</h4><span><i class="icon-dot" style="color: #6acca3"></i>运营设备</span></div><div class="item"><h4>108</h4><span><i class="icon-dot" style="color: #ed3f35"></i>异常设备</span></div></div></div>

样式描述:

  • 容器高度 110px
  • h4字体 28px #fff 左边距 4.8px 下间隙 8px
  • span字体 16px #4c9bfd
  • 注意:引入图标地址(fonts文件夹里面的css)
/* 概览区域 */
.overview{height: 4.583rem;
}
.overview .inner{display: flex;justify-content: space-between;
}
.overview h4{font-size: 1.167rem;padding-left: 0.2rem;color: #fff;margin-bottom: 0.333rem
}
.overview span{font-size: 0.667rem;color: #4c9bfd;
}

11、监控区域-布局

html结构:

      <!--监控--><div class="monitor panel"><div class="inner"><div class="tabs"><a href="javascript:;" data-index="0" class="active">故障设备监控</a><a href="javascript:;" data-index="1">异常设备监控</a></div><div class="content" style="display: block;"><div class="head"><span class="col">故障时间</span><span class="col">设备地址</span><span class="col">异常代码</span></div><div class="marquee-view"><div class="marquee"><div class="row"><span class="col">20180701</span><span class="col">11北京市昌平西路金燕龙写字楼</span><span class="col">1000001</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190601</span><span class="col">北京市昌平区城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190704</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000003</span><span class="icon-dot"></span></div><div class="row"><span class="col">20180701</span><span class="col">北京市昌平区建路金燕龙写字楼</span><span class="col">1000004</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000005</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000006</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建西路金燕龙写字楼</span><span class="col">1000007</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000008</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000009</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190710</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000010</span><span class="icon-dot"></span></div></div></div></div><div class="content"><div class="head"><span class="col">异常时间</span><span class="col">设备地址</span><span class="col">异常代码</span></div><div class="marquee-view"><div class="marquee"><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000001</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190701</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190703</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190704</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190705</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190706</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190707</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190708</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190709</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div><div class="row"><span class="col">20190710</span><span class="col">北京市昌平区建材城西路金燕龙写字楼</span><span class="col">1000002</span><span class="icon-dot"></span></div></div></div></div></div></div>

结构解释:

  • .tabs 标签选项 加上active激活选项 默认激活第一个选项
  • .content 切换内容 加上style="display: block;"显示内容 默认激活第一个内容

样式描述:

  • .inner 容器内间距 24px 0
  • .tabs 容器内间距 0 36px
    • a 容器 颜色: #1950c4 内间距:0 27px 字体:18px
    • 第一个a容器 去除左侧内间距 加上右侧2px宽度边框#00f2f1
    • 激活的时候 颜色白色
  • .content容器
    • 占满剩余高度 flex:1
    • 默认隐藏
  • .head 容器
    • 行高 1.05 背景 rgba(255, 255, 255, 0.1) 内间距 12px 36px 颜色 #68d8fe 字体大小 14px
  • row 容器
    • 行高 1.05 内间距 12px 36px 颜色 #68d8ff 字体大小 12px
    • .icon-dot 字体图标 绝对定位 左边0.64rem 透明度0
    • 鼠标经过后:背景 rgba(255, 255, 255, 0.1) 透明度1
  • col容器
    • 宽度:3.2rem 8.4rem 3.2rem
    • 第二个col 一行不换行 溢出 省略
/* 监控 */.monitor{height: 20rem;}.monitor .inner{padding: 1rem 0;display: flex;flex-direction: column;}.monitor .tabs{padding: 0 1.5rem;margin-bottom: 0.75rem;}.monitor .tabs a{color: #1950c4;font-size: 0.75rem;padding: 0 1.125rem;}.monitor .tabs a:first-child{border-right: 0.083rem solid #00f2f1;padding-left: 0;}.monitor .tabs a.active{color: #fff;}.monitor .content{flex: 1;display: none;position: relative;}.monitor .head{background: rgba(255, 255, 255, 0.1);font-size: 0.583rem;padding: 0.5rem 1.5rem;color: #68d8fe;display: flex;justify-content: space-between;line-height: 1.05;}.monitor .col:nth-child(1) {width: 3.2rem;}.monitor .col:nth-child(2) {width: 8.4rem;/* 不换行  一行省略*/white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.monitor .col:nth-child(3) {width: 3.2rem;}.monitor .marquee-view{position: absolute;top: 1.6rem;bottom: 0; width: 100%; overflow: hidden;
}.monitor .row{line-height: 1.05;padding: 0.5rem 1.5rem;color: #61a8ff;font-size: 0.5rem;position: relative;display: flex;justify-content: space-between;
}
.monitor .row:hover{color:#68d8ff;background: rgba(255, 255, 255, 0.1);
}
.monitor .row:hover .icon-dot{opacity: 1;
}.monitor .icon-dot{position: absolute;left: 0.64rem;opacity: 0;
}
.monitor .marquee-view{position: absolute;top: 1.6rem;bottom: 0; width: 100%; overflow: hidden;}.monitor .row{line-height: 1.05;padding: 0.5rem 1.5rem;color: #61a8ff;font-size: 0.5rem;position: relative;display: flex;justify-content: space-between;}.monitor .row:hover{color:#68d8ff;background: rgba(255, 255, 255, 0.1);}.monitor .row:hover .icon-dot{opacity: 1;}.monitor .icon-dot{position: absolute;left: 0.64rem;opacity: 0;}

12、监控区域-效果

切换功能:

  • 绑定 标签页点击 事件
  • 点击的时候获取data-index的值
  • 当前容器加active其他容器移除active
  • index对应的内容容器显示其他容器隐藏
  // 切换$('.monitor').on('click','.tabs a', function(){$(this).addClass('active').siblings().removeClass('active')$('.monitor .content').eq(this.dataset.index).show().siblings('.content').hide()})

动画功能:

  • 实现思路:
    • 先克隆列表,追加在后面
    • marquee-view 占满剩余高度,溢出隐藏
      • 绝对定位,top 1.6rem bottom 0
      • 宽度100%,溢出隐藏
    • 使用animation实现动画
    • 使用 translateY 向上位移 50%
    • 动画时间15s,匀速播放,循环执行。

js代码:

  // 动画$('.marquee').each(function(){var $cloneList = $(this).children().clone()$(this).append($cloneList)})

css代码:

/* 动画 */
.monitor .marquee-view{position: absolute;width: 100%;top: 1.6rem;bottom: 0;overflow: hidden;
}
.monitor .marquee{animation: scroll-top 15s linear infinite;
}
.monitor .marquee:hover{animation-play-state: paused;
}
@keyframes scroll-top {0%{}100%{transform: translateY(-50%);}
}

13、点位区域-布局

html结构:

      <!-- 点位 --><div class="point panel"><div class="inner"><h3>点位分布统计</h3><div class="chart"><div class="pie"></div><div class="data"><div class="item"><h4>320,11</h4><span><i class="icon-dot" style="color: #ed3f35"></i>点位总数</span></div><div class="item"><h4>418</h4><span><i class="icon-dot" style="color: #eacf19"></i>本月新增</span></div></div></div></div></div>

css样式:

/* 点位 */
.point {height: 14.167rem;
}
.point .chart {display: flex;margin-top: 1rem;justify-content: space-between;
}
.point .pie {width: 13rem;height: 10rem;margin-left: -0.4rem;
}
.point .data {display: flex;flex-direction: column;justify-content: space-between;width: 7rem;padding: 1.5rem 1.25rem;box-sizing: border-box;background-image: url(../images/rect.png);background-size: cover;
}
.point h4 {margin-bottom: 0.5rem;font-size: 1.167rem;color: #fff;
}
.point span {display: block;color: #4c9bfd;font-size: 0.667rem;
}

14、点位区域-饼图

实现步骤:

  • 从官方示例中找到最接近项目需求的例子,适当修改。
  • 在自己的项目中使用起来
  • 按照产品需求,来定制图表。

第一步:参考官方例子

option = {// 控制提示tooltip: {// 非轴图形,使用item的意思是放到数据对应图形上触发提示trigger: 'item',// 格式化提示内容:// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例formatter: "{a} <br/>{b} : {c} ({d}%)"},// 控制图表series: [{// 图表名称name: '点位统计',// 图表类型type: 'pie',// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%// 百分比基于  图表DOM容器的半径radius: ['10%', '70%'],// 图表中心位置 left 50%  top 50% 距离图表DOM容器center: ['50%', '50%'],// 半径模式,另外一种是 area 面积模式roseType: 'radius',// 数据集 value 数据的值 name 数据的名称data: [{value:10, name:'rose1'},{value:5, name:'rose2'},{value:15, name:'rose3'},{value:25, name:'rose4'},{value:20, name:'rose5'},{value:35, name:'rose6'},{value:30, name:'rose7'},{value:40, name:'rose8'}]}]
};

第二步:使用起来

// 实现点位-饼状图
(function () {var option = {// 控制提示tooltip: {// 非轴图形,使用item的意思是放到数据对应图形上触发提示trigger: 'item',// 格式化提示内容:// a 代表图表名称 b 代表数据名称 c 代表数据  d代表  当前数据/总数据的比例formatter: "{a} <br/>{b} : {c} ({d}%)"},// 控制图表series: [{// 图表名称name: '点位统计',// 图表类型type: 'pie',// 南丁格尔玫瑰图 有两个圆  内圆半径10%  外圆半径70%// 百分比基于  图表DOM容器的半径radius: ['10%', '70%'],// 图表中心位置 left 50%  top 50% 距离图表DOM容器center: ['50%', '50%'],// 半径模式,另外一种是 area 面积模式roseType: 'radius',// 数据集 value 数据的值 name 数据的名称data: [{ value: 10, name: 'rose1' },{ value: 5, name: 'rose2' },{ value: 15, name: 'rose3' },{ value: 25, name: 'rose4' },{ value: 20, name: 'rose5' },{ value: 35, name: 'rose6' },{ value: 30, name: 'rose7' },{ value: 40, name: 'rose8' }]}]};var myChart = echarts.init($('.pie')[0])myChart.setOption(option)
})();

第三步:按照需求定制

  • 需求1:数据使用
          { value: 20, name: '云南' },{ value: 26, name: '北京' },{ value: 24, name: '山东' },{ value: 25, name: '河北' },{ value: 20, name: '江苏' },{ value: 25, name: '浙江' },{ value: 30, name: '四川' },{ value: 42, name: '湖北' }
  • 需求2:颜色设置
['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff'],
  • 需求3:字体略小些 10 px
  • 需求4:引导线略短些
    • 连接图表 8 px
    • 连接文字 10 px
-     data:[
-         {value:10, name:'rose1'},
-         {value:5, name:'rose2'},
-         {value:15, name:'rose3'},
-         {value:25, name:'rose4'},
-         {value:20, name:'rose5'},
-         {value:35, name:'rose6'},
-         {value:30, name:'rose7'},
-         {value:40, name:'rose8'}
-     ]
+			data: [
+          { value: 20, name: '云南' },
+          { value: 26, name: '北京' },
+          { value: 24, name: '山东' },
+          { value: 25, name: '河北' },
+          { value: 20, name: '江苏' },
+          { value: 25, name: '浙江' },
+          { value: 30, name: '四川' },
+          { value: 42, name: '湖北' }
+        ],
+        // 文字调整
+        label:{
+          fontSize: 10
+        },
+        // 引导线调整
+        labelLine: {
+          // 连接扇形图线长
+          length: 8,
+          // 连接文字线长
+          length2: 10
+        } 
+      }
+    ],
+    // 每块图颜色
+    color: ['#006cff', '#60cda0', '#ed8884', '#ff9f7f', '#0096ff', '#9fe6b8', '#32c5e9', '#1d9dff']

day2

15、地图区域-预留布局

html结构:

      <!-- 地图 --><div class="map"><h3><span class="icon-cube"></span>设备数据统计</h3><div class="chart"><div class="geo"></div></div></div>

css样式:

/* 地图  */
.map {height: 24.1rem;margin-bottom: 0.833rem;display: flex;flex-direction: column;
}
.map h3 {line-height: 1;padding: 0.667rem 0;margin: 0;font-size: 0.833rem;color: #fff;
}
.map .icon-cube {color: #68d8fe;
}
.map .chart {flex: 1;background-color: rgba(255, 255, 255, 0.05);
}
.map .geo {width: 100%;height: 100%;
}

16、用户统计-布局

html结构:

      <!-- 用户 --><div class="users panel"><div class="inner"><h3>全国用户总量统计</h3><div class="chart"><div class="bar"></div><div class="data"><div class="item"><h4>120,899</h4><span><i class="icon-dot" style="color: #ed3f35"></i>用户总量</span></div><div class="item"><h4>248</h4><span><i class="icon-dot" style="color: #eacf19"></i>本月新增</span></div></div></div></div></div>

css样式:

/* 用户模块 */
.users {height: 14.167rem;display: flex;
}
.users .chart {display: flex;margin-top: 1rem;
}
.users .bar {width: 24.5rem;height: 10rem;
}
.users .data {display: flex;flex-direction: column;justify-content: space-between;width: 7rem;padding: 1.5rem 1.25rem;box-sizing: border-box;background-image: url(../images/rect.png);background-size: cover;
}
.users h4 {margin-bottom: 0.5rem;font-size: 1.167rem;color: #fff;
}
.users span {display: block;color: #4c9bfd;font-size: 0.667rem;
}

17、用户统计-柱状图

实现步骤:

  • 从官方示例中找到最接近项目需求的例子,适当修改。
  • 在自己的项目中使用起来
  • 按照产品需求,来定制图表。

第一步:参考官方示例 + 分析

option = {// 工具提示tooltip: {// 触发类型  经过轴触发axis  经过轴触发itemtrigger: 'axis',// 轴触发提示才有效axisPointer: {    // 默认为直线,可选为:'line' 线效果 | 'shadow' 阴影效果       type: 'shadow'        }},// 图表边界控制grid: {// 距离 上右下左 的距离left: '3%',right: '4%',bottom: '3%',// 边框大小是否包含文本【类似于boxsizing】containLabel: true},// 控制x轴xAxis: [{// 使用类目,必须有data属性type: 'category',// 使用 data 中的数据设为刻度文字data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],// 刻度设置axisTick: {// true意思:图形在刻度中间// false意思:图形在刻度之间alignWithLabel: true}}],// 控制y轴yAxis: [{// 使用数据的值设为刻度文字type: 'value'}],// 控制x轴series: [{// 图表数据名称name: '用户统计',// 图表类型type: 'bar',// 柱子宽度barWidth: '60%',// 数据data: [10, 52, 200, 334, 390, 330, 220]}]};

第二步:使用起来

// 用户统计-柱状图
(function () {var option = {// 参考上面即可...                    };var myChart = echarts.init($('.bar')[0])myChart.setOption(option)
})();

第三步:按照需求修改

  • 调整刻度
    • 柱子在刻度之间【小短线】
    • 剔除刻度:show:false
    • 文字颜色 #4c9bfd:axisLabel {color : #4c9bfd}
    // 控制x轴xAxis: [{// 使用类目,必须有data属性type: 'category',// 使用 data 中的数据设为刻度文字data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],// 刻度设置axisTick: {// true意思:图形在刻度中间// false意思:图形在刻度之间
-          alignWithLabel: true,
+          alignWithLabel: false,
+          show: false},        
+        // 文字
+        axisLabel: {
+          color: '#4c9bfd'
+        }}
    // 控制y轴yAxis: [{// 使用数据的值设为刻度文字type: 'value',
+        // 刻度设置
+        axisTick: {
+          show: false
+        },
+        // 文字
+        axisLabel: {
+          color: '#4c9bfd'
+        }
+      }],
  • 调整边框与间距
    • 加上边框,颜色 rgba(0, 240, 255, 0.3)
    • 边距调整 3% 3% 3% 0%
    • y轴分割线颜色 rgba(0, 240, 255, 0.3)
    // 图表边界控制grid: {// 距离 上右下左 的距离
+      top: '3%',
+      right: '3%',
+      bottom: '3%',
+      left: '0%',// 是否包含文本containLabel: true,
+      // 显示边框
+      show: true,
+      // 边框颜色
+      borderColor: 'rgba(0, 240, 255, 0.3)'},
    // 控制y轴yAxis: [{// 使用数据的值设为刻度文字type: 'value',// 刻度设置axisTick: {show: false},// 文字axisLabel: {color: '#4c9bfd'},
+        splitLine: {
+          lineStyle: {
+            color: 'rgba(0, 240, 255, 0.3)'
+          }
+        }}],
  • 调整数据,与省略图形。
// series
data: [2100,1900,1700,1560,1400,1200,1200,1200,900,750,600,480,240]
// xAxis
data: ['上海', '广州', '北京', '深圳', '合肥', '', '......', '', '杭州', '厦门', '济南', '成都', '重庆']
  • 柱子颜色,和工具提示。

    • 颜色,使用渐变,从上#00fffb 到下#0061ce
    • 设置渐变:itemStyle
    // series配置// 颜色itemStyle: {// 提供的工具函数生成渐变颜色color: new echarts.graphic.LinearGradient(// (x1,y2) 点到点 (x2,y2) 之间进行渐变0, 0, 0, 1,[{offset: 0, color: '#00fffb'}, // 0 起始颜色{offset: 1, color: '#0061ce'}  // 1 结束颜色])}
    
    • 经过图形才显示提示,且省略的柱子不需要提示
        // 经过图形才显示工具提示tooltip: {
    -      trigger: 'axis',
    +      trigger: 'item',
    
    // 中间省略的数据  准备三项
    var item = {name:'',value: 1200,// 柱子颜色itemStyle: {color: '#254065'},// 鼠标经过柱子颜色emphasis: {itemStyle: {color: '#254065'}},// 工具提示隐藏tooltip: {extraCssText: 'opacity:0'}}
    
    // series配置data选项在中使用
    - data: [2100,1900,1700,1560,1400,1200,1200,1200,900,750,600,480,240],
    + data: [2100,1900,1700,1560,1400,item,item,item,900,750,600,480,240],
    

    总结:写echarts繁杂难记,今后在工作中只需要按照需求去查找,切勿死记硬背。

18、订单区域-布局

html结构:

      <!-- 订单 --><div class="order panel"><div class="inner"><!-- 筛选 --><div class="filter"><a href="javascript:;" data-key="day365" class="active">365天</a><a href="javascript:;" data-key="day90">90天</a><a href="javascript:;" data-key="day30">30天</a><a href="javascript:;" data-key="day1">24小时</a></div><!-- 数据 --><div class="data"><div class="item"><h4>20,301,987</h4><span><i class="icon-dot" style="color: #ed3f35;"></i>订单量</span></div><div class="item"><h4>99834</h4><span><i class="icon-dot" style="color: #eacf19;"></i>销售额(万元)</span></div></div></div></div>

css样式:

/* 订单 */
.order {height: 6.167rem;
}
.order .filter {display: flex;
}
.order .filter a {display: block;height: 0.75rem;line-height: 1;padding: 0 0.75rem;color: #1950c4;font-size: 0.75rem;border-right: 0.083rem solid #00f2f1;
}
.order .filter a:first-child {padding-left: 0;
}
.order .filter a:last-child {border-right: none;
}
.order .filter a.active {color: #fff;font-size: 0.833rem;
}
.order .data {display: flex;margin-top: 0.833rem;
}
.order .item {width: 50%;
}
.order h4 {font-size: 1.167rem;color: #fff;margin-bottom: 0.417rem;
}
.order span {display: block;color: #4c9bfd;font-size: 0.667rem;
}

19、订单区域-效果

实现步骤:

  • 提前准备数据
  • 点击后切tab激活样式
  • 点击后切换数据内容
  • 开启定时器动态切换数据
// 订单功能
(function(){// 1. 准备数据var data = {day365: { orders: '20,301,987', amount: '99834' },day90: { orders: '301,987', amount: '9834' },day30: { orders: '1,987', amount: '3834' },day1: { orders: '987', amount: '834' }}// 获取显示 订单数量 容器var $h4Orders = $('.order h4:eq(0)')// 获取显示 金额数量 容器var $h4Amount = $('.order h4:eq(1)')$('.order').on('click','.filter a',function(){// 2. 点击切换激活样式$(this).addClass('active').siblings().removeClass('active')// 3. 点击切换数据var currdata = data[this.dataset.key]$h4Orders.html(currdata.orders)$h4Amount.html(currdata.amount)})// 4. 开启定时器切换数据var index = 0var $allTab = $('.order .filter a')setInterval(function(){index ++ if (index >= 4) index = 0$allTab.eq(index).click()},5000)
})();

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

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

相关文章

关于Xcode 7.3 7.3.1 断点 卡死 无限菊花

关于Xcode 7.3 7.3.1 断点 卡死 无限菊花 只要一打断点,就无限卡死,变量区一直菊花在转,只有强制退出Xcode才能重新编译,找了Google和Stack OvewFlowe依然没有解决办法. 删除项目,重新安装Xcode,重新运行程序一切办法都解决不到,百度上说的"build setting中将Enable Clang…

html5+hbuilder+夜神模拟器+webview

HTML5 Plus应用概述 首先新建一个移动App项目&#xff0c;文件-->新建-->移动APP HTML5 Plus移动App&#xff0c;简称5App&#xff0c;是一种基于HTML、JS、CSS编写的运行于手机端的App&#xff0c;这种App可以通过扩展的JS API任意调用手机的原生能力&#xff0c;实现与…

科学计算库学习报告

numpy与matplotlib的学习随笔 我爱代码 import numpy as npimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams[font.family]SimHeimatplotlib.rcParams[font.sans-serif][SimHei]labelsnp.array([第一次,第二次,第三次,第四次,第五次,第六次])nAttr6datanp…

数据库系统原理(第二章关系数据库 )

一、关系数据库概述 20世纪80年代后&#xff0c;在商用数据库管理系统中&#xff0c;&#xff08; 关系模型 &#xff09;逐渐取代早 期的网状模型和层次模型&#xff0c;成为主流数据模型 SQL3&#xff08;SQL-99&#xff09;:1999年 SQL2&#xff08;SQL-92&#xff09;&…

iOS NSMutableAttributedString常用方法总结

NSAttributedString 叫做富文本&#xff0c;是一种带有属性的字符串&#xff0c;通过它可以轻松的在一个字符串中表现出多种字体、字号、字体大小等各不相同的风格&#xff0c;还可以对段落进行格式化&#xff0c;一般都是对可变富文本&#xff08;NSMutableAttributedString&a…

软件开发工具(第1章:绪论)

一、 软件开发工具的由来 计算机语言和软件开发工具的发展和历史 机器语言&#xff08;第一代语言&#xff09;&#xff1a;难以记忆的、无意义的、二进 制的字符串 汇编语言&#xff08;第二代语言&#xff09;针对难以记忆的、无意义的、二进 制的字符串、人们试图用英语中具…

Saiku Table展示数据合并bug修复(二十五)

Saiku Table展示数据合并bug修复 Saiku以table的形式展示数据&#xff0c;如果点击了 非空的字段 按钮&#xff0c;则会自动进行数据合并&#xff0c;为空的数据行以及数据列都会自动隐藏掉。 首先我们应该定位问题&#xff1a; 1.查看接口返回值&#xff0c;会发现接口返回都正…

软件开发工具(第2章:软件开发过程及其组织)

一、软件开发的困难 程序员做好软件工作的关键是什么&#xff1f; 关键是两个转换&#xff1a; 第一个转换是用户对软件功能的理解与程序员对软件功能的理解之间的转换。 &#xff08;不同⾏业的⼈员对于事物的认识⽅法与描述⽅法是不同的。&#xff09; 第二个转换要解决的是人…

数据可视化(BI报表的开发)第四天

练习题&#xff1a; 先找出字符串 ‘8587263747153203552943982’ 中出现次数最多的数字及次数&#xff0c;然后去重后并排序&#xff08;不准使用sort&#xff09;&#xff0c;使得到结果为 ‘0123456789’。 要求1&#xff1a;找到出现最多的数字和出现的次数 // 1、找出出…

网络经济与企业管理(第 1 章:企业管理概论)

一、企业的概念 什么是企业&#xff1f; 1.企业以市场为导向&#xff0c;以价值增值作为经济活动的目的 2.企业是从事商品生产和流通的经济组织 3.企业经营过程中要自主经营、自负盈亏、独立核算和承担风险&#xff0c;具有法人资格的基本经济单位 企业发展的三个时期&#xff…

去死吧!USB转串口!!!

首先&#xff0c;这个题目有两种歧义&#xff1a;1、USB转232串口&#xff08;严格说就是这种&#xff09;&#xff01; 2、USB转USART串口&#xff08;通常都是这么叫&#xff0c;认为就是这&#xff0c;理论上是错误的&#xff0c;歧义所在&#xff09;&#xff01; USB转TTL…

IDEA微服务项目的application.yml没有绿色叶子的解决办法

1.今天在写微服务项目的时候成功入坑&#xff0c;那么问题是啥呢&#xff1f;接下来和我一起走入bug的世界吧&#xff0c;让我们看看究竟是怎么回事。 *问题描述    1.application.yml是灰色的小格子 2.实在难看 *需要解决的最终结果 1.有绿色的小叶子 解决方案上图 1. 2. …

Ajax — 第一天

上网的目的 本质目的&#xff1a;浏览和消费资源 资源&#xff1a;文字、图片、音频、视频…资源存在哪里&#xff1a;服务器上 服务器的概念 是负责存放和对外提供资源的电脑。它的性能比普通的计算机好太多了 客户端 获取和消费资源的电脑&#xff0c;叫做客户端。 我…

Swift傻傻分不清楚系列(四)基本运算符 o_O!???

本页包含内容&#xff1a; 术语赋值运算符算术运算符组合赋值运算符比较运算符三目运算符空合运算符区间运算符逻辑运算符 运算符是检查、改变、合并值的特殊符号或短语。例如&#xff0c;加号&#xff08;&#xff09;将两个数相加&#xff08;如 let i 1 2&#xff09;。更…

网络经济与企业管理(第 2 章:企业战略管理)

一、战略的性质与类型 什么是战略&#xff1a;企业发展的谋划 企业战略的三个层次&#xff1a; 企业总体战略&#xff1a;又称经营战略&#xff0c;是企业整体运营的指导思想事业层战略&#xff1a;又称竞争战略、业务层次战略、SBU战略&#xff0c; 指导具体战略经营单位。职能…

Ajax — 图书管理

注意&#xff1a;本项目基于 jQuery 文件下进行的 Ajax 请求项目&#xff0c;需要映入jQuery文件&#xff01; <body style"padding: 15px;"><!-- 添加图书的Panel面板 --><div class"panel panel-primary"><div class"panel-h…

错误: 找不到或无法加载主类 com.leyou.LeyouItemApplication Process finished with exit code 1...

在IDEA的使用过程中&#xff0c;经常断掉服务或者重启服务&#xff0c;最近断掉服务重启时突然遇到了一个启动报错&#xff1a; 错误&#xff1a;找不到或无法加载主类 猜测&#xff1a;1&#xff0c;未能成功编译&#xff1b; 尝试&#xff1a;菜单---》Build---》Rebuild Pro…

Ajax — 第二天

Ajax-02 今天内容&#xff1a; 安装浏览器插件 聊天机器人案例 Form表单提交 模板引擎&#xff08;新的概念&#xff0c;难点&#xff09; 两个案例 Chrome浏览器插件安装 安装步骤 下载插件的网站&#xff1a; https://www.gugeapps.net/ 无需扫码 http://www.cnplu…

Ajax — 评论列表

<body style"padding: 15px;"><!-- 评论面板 --><div class"panel panel-primary"><div class"panel-heading"><h3 class"panel-title">发表评论</h3></div><form class"panel-bod…

Swift傻傻分不清楚系列(七)控制流

本页包含内容&#xff1a; For-In 循环While 循环条件语句控制转移语句&#xff08;Control Transfer Statements&#xff09;提前退出检测 API 可用性 Swift提供了多种流程控制结构&#xff0c;包括可以多次执行任务的while循环&#xff0c;基于特定条件选择执行不同代码分支…