在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    微信小程序?qū)崿F(xiàn)echarts并兼容IOS

    示例簡介

    本文介紹使用ec-canvas實現(xiàn)小程序圖表功能,支持切換更新數(shù)據(jù)并在IOS順暢使用。

    Tips:本文只介紹柱形圖,其它圖形類似,具體可查看GitHub上的ecomfe/echarts-for-weixin項目。

    實現(xiàn)過程

    1、文件index.wxml和index.wxss代碼如下,這一塊比較簡單,可自行查看,不做過多分析;

    月份統(tǒng)計 {{choossArr[chooseIndex].value}} .container { height: 100%; display: flex; flex-direction: column;}.item-head { display: flex; padding: 40rpx 30rpx 20rpx;}.item-head .tit { font-size: 30rpx; margin: 6rpx 14rpx 0 0;}.item-head .picker-box { display: flex; width: 196rpx; height: 50rpx; font-size: 26rpx; line-height: 50rpx; border-radius: 6rpx; border: 2rpx solid #e6e6e6;}.item-head .picker-box .picker { display: inline-block; flex: 0.7; width: 140rpx; text-align: left; margin-left: 20rpx; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}.item-head .picker-box image { flex: 0.3; width: 12rpx; height: 8rpx; margin-top: -34rpx; vertical-align: middle;}.item-head .picker-box.ios image { margin-top: -10rpx;}.hide { display: none !important;}.echart-img { width: 100%; height: 100%;}.echart-heig { width: 100%; height: 1020rpx;}

    2、文件index.js存放所有功能的邏輯代碼,代碼實現(xiàn)如下:

    1)函數(shù)chooseChange用于獲取切換數(shù)據(jù)后的月份;

    2)函數(shù)getFinishCount用來根據(jù)月份判斷使用的數(shù)據(jù);為了方便使用簡單的數(shù)據(jù)切換,項目情況下,一般都是調(diào)用接口獲取數(shù)據(jù);有個特別要注意的,就是把echartImgSrc的值清空,不然沒辦法更新數(shù)據(jù);

    3)函數(shù)initEcharts是示例的核心,數(shù)據(jù)結(jié)構(gòu)可自行查看官網(wǎng),更新數(shù)據(jù)使用了chart.setOption(option);但這里有個比較特別的代碼,就是先使用canvasToTempFilePath把指定區(qū)域生成圖片,然后賦值echartImgSrc來重新渲染頁面,因為直接用ec-canvas渲染,在IOS滑動會很卡。

    import * as echarts from ‘../../ec-canvas/echarts’;const app = getApp();Page({ data: { villageArr: [], villageArr1: [{ value1: 90, value2: 78, name: ‘aaa’ }, { value1: 145, value2: 120, name: ‘bbb’ }, { value1: 98, value2: 87, name: ‘ccc’ }, { value1: 126, value2: 102, name: ‘ddd’ }, { value1: 90, value2: 90, name: ‘eee’ }, { value1: 108, value2: 100, name: ‘fff’ }, { value1: 134, value2: 120, name: ‘ggg’ } ], villageArr2: [{ value1: 50, value2: 45, name: ‘aaa’ }, { value1: 40, value2: 36, name: ‘bbb’ }, { value1: 70, value2: 67, name: ‘ccc’ }, { value1: 80, value2: 54, name: ‘ddd’ }, { value1: 77, value2: 55, name: ‘eee’ }, { value1: 66, value2: 57, name: ‘fff’ }, { value1: 80, value2: 50, name: ‘ggg’ } ], ec: {}, echartImgSrc: ”, // canvas在ios下滑動問題,目前只能將echarts圖表渲染完成后再生成為圖片展示。 chooseIndex: 0, // 選中的下標(biāo) choossArr: [{ value: ‘1月’, id: 1 }, { value: ‘2月’, id: 2 } ] }, // 切換不同數(shù)據(jù) getFinishCount: function (month) { let self = this; if (month === 1) { this.setData({ villageArr: this.data.villageArr1, echartImgSrc: ” }); } else { this.setData({ villageArr: this.data.villageArr2, echartImgSrc: ” }); } self.initEcharts(); }, // 數(shù)據(jù)渲染 initEcharts: function (canvas, width, height) { let that = this; this.selectComponent(‘#mychart’).init((canvas, width, height) => { // 初始化圖表 const chart = echarts.init(canvas, null, { width: width, height: height }); let villageArr = that.data.villageArr; let villageArrName = []; let villageArrValue1 = []; let villageArrValue2 = []; villageArr.map(function (item, index) { villageArrName.push({ value: item.name, id: index }); villageArrValue1.push({ value: item.value1 }); villageArrValue2.push({ value: item.value2 }); }) this.setData({ villageArr: villageArr }) let option = { color: [“#58a7f8”, “#63e669”], legend: { data: [‘上報量’, ‘完成量’], top: 0, left: 10, icon: ’roundRect’, itemWidth: 13, itemHeight: 13, itemGap: 20, }, grid: { left: 15, right: 25, bottom: 0, top: 35, containLabel: true }, xAxis: { type: ‘value’, axisTick: { show: false }, axisLine: { show: false, }, splitLine: { lineStyle: { color: ‘#e6e6e6’ } }, axisLabel: { textStyle: { color: ‘#6a737d’ } } }, yAxis: { type: ‘category’, axisTick: { show: false }, axisLine: { show: false, }, axisLabel: { textStyle: { color: ‘#6a737d’, fontSize: 11, align: ‘right’, }, formatter: function (value, index) { if (value.length > 6) return value.slice(0, 6) + ‘…’; else return value; } }, data: villageArrName }, series: [{ name: ‘上報量’, type: ‘bar’, barWidth: 12, barGap: ‘-100%’, data: villageArrValue1 }, { name: ‘完成量’, type: ‘bar’, barWidth: 12, data: villageArrValue2 } ] }; chart.on(‘finished’, () => { that.selectComponent(‘#mychart’).canvasToTempFilePath({ success: res => { that.setData({ echartImgSrc: res.tempFilePath }) wx.hideLoading(); }, fail: res => console.log(‘轉(zhuǎn)換圖片失敗’, res) }); }) chart.setOption(option); return chart; }); }, // 選項改變觸發(fā) chooseChange: function (e) { wx.showLoading({ title: ‘加載中’, mask: true }); this.setData({ chooseIndex: e.detail.value }) let month = this.data.choossArr[e.detail.value].id; this.getFinishCount(month); }, // 加載頁面 onLoad: function () { wx.showLoading({ title: ‘加載中’, mask: true }); // 默認(rèn)第一月數(shù)據(jù) this.getFinishCount(1); }});

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年7月11日 18:42
    下一篇 2022年7月11日 18:42

    相關(guān)推薦

    • 網(wǎng)通復(fù)古(網(wǎng)通復(fù)古傳奇)

      本文主要講的是網(wǎng)通復(fù)古,以及和網(wǎng)通復(fù)古傳奇相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 推薦個網(wǎng)通傳奇私服 要中變的 我是網(wǎng)通 要個網(wǎng)通的 不卡的 老傳奇?zhèn)鹘y(tǒng)戰(zhàn)…

      2022年11月27日
    • 存儲過程語法(sql server存儲過程語法)

      今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

      2022年11月26日
    • 全民K歌升級新版本7.0之后,有哪些隱藏功能?

      作者:高百烈來源:知乎 這個功能,舊版并沒有,要升級到全新的全民K歌7.0版本才能發(fā)現(xiàn)。 作為朋友圈當(dāng)代K歌之王,我費了不少功夫才搶到內(nèi)測版本。有一說一,全民K歌的路子真的很野,新…

      2022年11月25日
    • 拼多多百億補(bǔ)貼預(yù)售一般多久發(fā)貨(拼多多百億補(bǔ)貼預(yù)售)

      拼多多里面有很多優(yōu)惠活動,其中百億補(bǔ)貼活動非?;鸨恍├锩娴臇|西價格比別的平臺便宜,質(zhì)量也有保障,還有預(yù)售的活動,那么拼多多百億補(bǔ)貼預(yù)售一般多久發(fā)貨?下面小編為大家?guī)砥炊喽喟賰|…

      2022年11月25日
    • 上手Reno8 Pro體驗跨屏互聯(lián) 實在太方便!

      11月已經(jīng)來到了月底,在手機(jī)品牌又要推出新一年度的新品手機(jī)之前,我們來點評一下今年令人驚喜的產(chǎn)品。如OPPO的Reno8 Pro系列,該系列搭載雙芯影像配置獲得了很多消費者的認(rèn)可。…

      2022年11月25日
    • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

      CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實名認(rèn)證,可以是付費,可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

      2022年11月25日
    • 百度關(guān)鍵詞快速排名的4大原理解析(百度怎么刷關(guān)鍵詞)

      近期百度公告驚雷算法2.0,升級之快還是第一次吧,看來百度對于刷點擊行為是零容忍了。之前尹華峰SEO技術(shù)博客介紹過一篇如何使用刷點擊工具,其實市面上有很多這類SEO快速排名的軟件,…

      2022年11月25日
    • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點)

      如今抖音這個短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺上開通直播,更具有超強(qiáng)的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個人都能做好的,那么在…

      2022年11月24日
    • 今天出入濟(jì)南最新通知(出入濟(jì)南政策最新消息今天)

      近日濟(jì)南疫情感染人數(shù)也在不斷增加,劃分的高風(fēng)險區(qū)也是越來越多了。據(jù)最新統(tǒng)計,截止2022年11月24日11時,濟(jì)南共有低風(fēng)險地區(qū)12處,高風(fēng)險地區(qū)338處。很多朋友都擔(dān)心現(xiàn)在濟(jì)南無…

      2022年11月24日
    • Steam秋季特賣開啟 為Steam大獎提名游戲

      Steam秋季特賣開啟 為Steam大獎提名游戲 Steam秋季特賣活動現(xiàn)已正式開啟,時間從11月23日持續(xù)到11月30日(北京時間),新老游戲均有不錯的折扣,感興趣的玩家可以前往…

      2022年11月24日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息