2021-08-26:小程序 echarts踩坑之旅總結(jié)

使用uni-ec-canvas組件時(shí),一定要設(shè)置:force-use-old-canvas的值為true,不然就是各種大坑。以滑動(dòng)不了首當(dāng)其沖。

巨坑:force-use-old-canvas的值為true 發(fā)布線上一定要?jiǎng)h除。不然會(huì)有tooltip無(wú)法展示,畫(huà)面失真等的情況。

設(shè)置完之后,canvas的層級(jí)過(guò)高,會(huì)出現(xiàn)懸浮在各個(gè)組件之上的情況,如果有自定義navbar也無(wú)法覆蓋。
此時(shí)需要把uni-ec-canvas使用在scroll-view里,就解決問(wèn)題了。
注:開(kāi)發(fā)者工具與真機(jī)時(shí)常有不一樣的效果。
代碼:

<scroll-view class="order-scroll-view" :scroll-y="true" :style="{'height':winHeight+'px'}" :show-scrollbar="false"> 
    <view class="card-all">
      <!-- 故障占比 -->
      <view class="card-class">
        <view class="title">故障占比</view>
        <view class="container">
          <view class="flex jend">
            <view v-for="(item,index) in selectList" :key="index" @click="getOne(item.value,item.val)" :class="{'selectOneClass': item.value===selectOne}">{{item.name}}</view>
          </view>
          <view id="repairOneId">
            <uni-ec-canvas
              :force-use-old-canvas="true"
              class="uni-ec-canvas"
              id="pie-chart"
              canvas-id="repair-chart-one-id"
              :ec="repairChartOne"
            ></uni-ec-canvas>
          </view>
        </view>
      </view>
      <!-- 報(bào)修趨勢(shì) -->
      <view class="card-class">
        <view class="title">報(bào)修趨勢(shì)</view>
        <view class="container">
          <view class="flex jend">
            <view v-for="(item,index) in selectList" :key="index" @click="getTwo(item.value,item.val)" :class="{'selectOneClass': item.value===selectTwo}">{{item.name}}</view>
          </view>
          <view>
            <uni-ec-canvas
              :force-use-old-canvas="true"
              class="uni-ec-canvas"
              id="line-chart"
              canvas-id="repair-chart-two-id"
              :ec="repairChartTwo"
            ></uni-ec-canvas>
          </view>
        </view>
      </view>
    </view>
  </scroll-view>
...
  data() {
    return {
      repairChartTwo: {
        option: {
          tooltip: {
            trigger: 'axis'
          },
          xAxis: [{
            type: 'category',
              axisLine: { //坐標(biāo)軸軸線相關(guān)設(shè)置。數(shù)學(xué)上的x軸
              show: true,
              lineStyle: {
                color: '#aaaaaa'
              },
            },
            axisLabel: { //坐標(biāo)軸刻度標(biāo)簽的相關(guān)設(shè)置
              interval: 0,
              textStyle: {
                color: '#666666',
                margin: 15,
              },
              rotate:30,
            },
            axisTick: {
              show: false,
            },
            boundaryGap: false,
            data: [],
          }],
          yAxis: [{
            type: 'value',
            splitLine: {
              show: false,
            },
            axisLine: {
              show: false,
            },
            axisLabel: {
              show: false,
            },
            axisTick: {
              show: false,
            },
          }],
          grid: {
            left: '50',
            bottom: '50'
          },
          series: [{
            name: '維修工單',
            type: 'line',
            smooth: false,
            showAllSymbol: true,
            symbol: 'circle',
            symbolSize: 4,
            label: {
              show: false,
              position: 'top',
              textStyle: {
                color: '#555555',
              }
            },
            itemStyle: {
              color: "rgba(236,201,157, 0.6)",
              borderColor: "#fff",
              borderWidth: 2,
            },
            lineStyle: {
              normal: {
                width: 2,
                color: {
                  type: 'linear',
                  colorStops: [{
                    offset: 0,
                    color: '#ff5200' // 0% 處的顏色
                  }, {
                    offset: 1,
                    color: '#ffbf00' // 100% 處的顏色
                  }],
                  globalCoord: false // 缺省為 false
                },              
                shadowColor: 'rgba(236,201,157, 0.6)',
                shadowBlur: 5,
                shadowOffsetY: 3,
              }
            },
            areaStyle: {
              normal: {
                color: new echarts.graphic.LinearGradient(
                  0, 0, 0, 1,
                  [
                    {
                      offset: 0,
                      color: 'rgba(236, 169, 44, 1)',
                    },{
                      offset: 1,
                      color: 'rgba(236, 169, 44,0)',
                    },
                  ],
                  false
                ),
              },
            },
            data: []
            }
          ]
        }
      },
      selectOne: 'seven',
      selectTwo: 'seven',
      repairChartOne: {
        option: {
          tooltip: {
            trigger: 'item'
          },
          grid:{
            left:'0',
            right:'0',
            top:'8%',
            bottom:'8%'
          },
          series: [
            {
              type: 'pie',
              radius: ['32%', '65%'], 
              hoverOffset: 0,
              color: ['#0987f3','#1856a3','#ff7c69','#f0c4bb','#f69821'],
              data: [],
              label: {
                formatter: '{a|:}{b|u0z1t8os%}',
                rich: {
                  a: {
                    padding: [0, 0, 0, 10]
                  },
                  b: {
                    padding: [0, 5, 0, 0]
                  }
                }
              },
              emphasis: {
                itemStyle: {
                  shadowBlur: 10,
                  shadowOffsetX: 0,
                  shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
              },
            },
            {
              type: 'pie',
              hoverAnimation: false,
              color: 'rgba(255, 255, 255, .5)',
              radius: '40%',
              tooltip: {
                show: false
              },
              label: {
                show: false,
                position: 'center'
              },
              data: [
                {
                  value: 100
                }
              ]
            }
          ]
        }
      },
      selectList: [
        {
          value: 'seven',
          name: '7日',
          val: '7'
        },{
          value: 'month',
          name: '本月',
          val: '月'
        },{
          value: 'all',
          name: '全部',
          val: '全部'
        }
      ],
    };
  },


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 最近幾個(gè)月因?yàn)楣镜臉I(yè)務(wù)需求,一直在折騰小程序,從開(kāi)始的完全不熟悉,到后面被各種坑折磨,是時(shí)候?qū)懸黄偨Y(jié)了,避免下...
    ArmorVon閱讀 1,958評(píng)論 1 1
  • 時(shí)隔這么久,又開(kāi)始寫(xiě)總結(jié)了,主要是小程序真的好坑,o(╥﹏╥)o,以下是我踩到的坑總結(jié),希望其他的開(kāi)發(fā)者不要像我這...
    團(tuán)子Secret閱讀 680評(píng)論 0 0
  • 1. 萬(wàn)惡的button 由于小程序的限制,很多地方必須用到button來(lái)做,如分享按鈕open-type="sh...
    StevenLiupz閱讀 3,952評(píng)論 0 3
  • 前言 前段時(shí)間加入了開(kāi)發(fā)小程序的隊(duì)伍,我可算是把所有的坑的踩了。 現(xiàn)在把開(kāi)發(fā)中那些注意點(diǎn)和各位小伙伴分享下。 一、...
    佳琳_會(huì)加油的閱讀 970評(píng)論 0 0
  • 微信小程序常見(jiàn)問(wèn)題匯總 本文整理自官方微信公眾平臺(tái)開(kāi)發(fā)者社區(qū);對(duì)微信小程序開(kāi)發(fā)者提供開(kāi)發(fā)指導(dǎo);望收藏,不謝。 微信...
    31f6398db51d閱讀 9,802評(píng)論 0 51

友情鏈接更多精彩內(nèi)容