1. 程式人生 > >wepy 小程式 echarts 搭配使用

wepy 小程式 echarts 搭配使用

元件:
canvas-id不能自定義貌似是wepy的原因
<style>
</style>
<template>
  <canvas class="ec-canvas" canvas-id="eChart" ></canvas>
</template>
<script>
  import wepy from 'wepy'
  import * as echarts from '../plugins/ec-canvas/echarts'
  import WxCanvas from '../plugins/ec-canvas/wx-canvas'
  export default class ecCanvas extends wepy.component {
    props = {
      ec: {
        type: Object
      },
      canvasId: {
        type: String,
        default: 'eChart'
      }
    }
    data = {
      ec: null,
      canvasId: null,
      chart: null
    }
    onLoad() {
      const version = wx.version.version.split('.').map(n => parseInt(n, 10))
      const isValid = version[0] > 1 || (version[0] === 1 && version[1] >= 9) || (version[0] === 1 && version [1] === 9 && version[2] >= 91)
      if (!isValid) {
        console.error('This version of Wexin is not supported by ECharts. Please update Wexin with versions after 1.9.91')
        return
      }
      const ctx = wx.createCanvasContext(this.canvasId, this.$wxpage)

      const canvas = new WxCanvas(ctx)
      echarts.setCanvasCreator(() => {
        return canvas
      })
      var query = wx.createSelectorQuery().in(this.$wxpage)
      query.select('.ec-canvas').boundingClientRect(res => {
        if (this.ec && this.ec.onInit) {
          this.chart = this.ec.onInit(canvas, res.width, res.height)
        }
      }).exec()
    }
    methods = {
      touchStart: function(e) {
        if (this.chart && e.touches.length > 0) {
          var touch = e.touches[0]
          this.chart._zr.handler.dispatch('mousedown', {
            zrX: touch.x,
            zrY: touch.y
          })
          this.chart._zr.handler.dispatch('mousemove', {
            zrX: touch.x,
            zrY: touch.y
          })
        }
      },
      touchMove: function(e) {
        if (this.chart && e.touches.length > 0) {
          var touch = e.touches[0];
          this.chart._zr.handler.dispatch('mousemove', {
            zrX: touch.x,
            zrY: touch.y
          })
        }
      },
      touchEnd: function (e) {
        if (this.chart) {
          var touch = e.changedTouches ? e.changedTouches[0] : {}
          this.chart._zr.handler.dispatch('mouseup', {
            zrX: touch.x,
            zrY: touch.y
          })
          this.chart._zr.handler.dispatch('click', {
            zrX: touch.x,
            zrY: touch.y
          })
        }
      }
    }
  }
</script>

page:

</template>
  <view class="container">
    <ecCanvas :ec.sync="ec"></ecCanvas>
  </view>
</template>
<script>
  import wepy from 'wepy'
  import echarts from '../plugins/ec-canvas/echarts'
  import ecCanvas from '../components/eCanvas'
  export default class page extends wepy.page {
和echarts一致
components = {
  ecCanvas: ecCanvas
}
}
未經允許請勿轉載

相關推薦

wepy 程式 echarts 搭配使用

元件:canvas-id不能自定義貌似是wepy的原因<style> </style> <template> <canvas class="ec-canvas" canvas-id="eChart" ></canvas

微信程式 Echarts 非同步資料更新

微信小程式 Echarts 非同步資料更新的練習,被坑了很多次,特作記錄。 作者:羅兵 地址:https://www.cnblogs.com/hhh5460/p/9989805.html 0、效果圖 1、檢視 <!--index.wxml--> <view class="

WePY程式框架實戰四】-使用async&await非同步請求資料

async await 是對promise的近一步優化,既解決了promise鏈式then的這種寫法壁壘,又讓非同步請求更像同步,若對async await不太瞭解的同學可以直接參考阮一峰老師的文章async 函式的含義和用法,這裡我們只關注怎麼在小程式wepy架構中如何使用。 依賴庫 import

快速入門 WePY 程式

一、WePY介紹 WePY 是 騰訊 參考了Vue 等框架對原生小程式進行再次封裝的框架,更貼近於 MVVM 架構模式, 並支援ES6/7的一些新特性。 二、WePY 使用 1、WePY的安裝或更新都通過npm進行: npm install -g wepy-cli

使用wepy 程式授權點選取消授權失敗的方案

在wepy裡使用進行小程式頁面授權,裡面包含了使用者點選取消的重新授權方案: //auth.js /* * @Author: Porco_Mar * @Date: 2018-04-11 15:49:55 * @Last Modified by: Porco_Mar * @Las

wepy-程式開發框架學習(一)

一、安裝npm由於新版的NodeJS已經集成了npm,我們可以安裝NodeJS來實現安裝npm。首先去nodejs官網(https://nodejs.org/en/)上下載最新版的nodejs,如下圖,點選下載下載完成以後,一路next即可安裝,如需更改安裝目錄,請自行配置。

Atom 完美支援WePY 程式開發

Atom-完美支援WePY 簡介 為何使用WePY? 我們都知道開發小程式的時候有很多很多的不方便的地方,譬如: 小程式的元件化支援能力太弱 小程式無法使用npm包,無法使用第三方元件

微信程式---ECharts

import * as echarts from '../../ec-canvas/echarts';Page({ data: { ecBar: { lazyLoad: true // 延遲載入 }, ecScatter: { lazyLoad: true }

wepy程式

wepy文件 https://tencent.github.io/wepy/document.html#/ 開始 wepy init standard myproject ——>npm install安裝node包——>wepy build –watch現在出現dist目錄

Echarts圖表在移動端和程式中影響頁面的滾動的解決辦法

Echats圖表在移動端顯示後,當手指在圖表區域內滑動,會影響頁面的滾動。h5頁面沒有親測,小程式頁面,經排查,是因為觸發了touchStart、touchMove和touchEnd方法。 一、h5頁面解決方法 1.如果可以的話,移動端建議使用highCharts代替echarts,感覺

微信程式中使用Echarts(可非同步請求資料)

在微信小程式中使用Echarts,主要分為以下幾步: 1.首先要下載ecomfe/echarts-for-weixin專案,下載後將ec-canvas資料夾複製到小程式專案中,假設放在根目錄下utils資料夾中。 2.在要實現echarts圖的頁面引入echarts.js檔案,例如要在i

微信程式顯示 html wepy + wxParse

本問出自: http://blog.csdn.net/wyk304443164 修改自: http://www.wxappclub.com/topic/961 本著不重複造輪子的基礎上我找到了上面這篇。發現它不能正常執行,也就是顯示的是空白的。

微信程式 wx.request wepy 簡單封裝

本文出自: http://blog.csdn.net/wyk304443164 很簡單 import sha1 from './sha1' // sign // 簽名 function sign (signObj = {}) { ... // 自行加密

微信程式 wepy wx.previewImage 封裝

本文出自: http://blog.csdn.net/wyk304443164 imagebrowse.wpy <style lang="less"> .clear { clear: both; } </style> &

程式第三方框架對比 ( wepy / mpvue / taro )

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 60.0px "PingFang SC Semibold"; color: #42464d } span.s1 { font: 60.0px "PingFang SC" } &

微信程式WEPY不支援過濾器的替代方案

用慣了VUE和Angular的小夥伴們,肯定很喜歡過濾器這個功能,非常的簡介和好用 課時微信小程式不支援過濾器,從而導致WEPY和MPVUE等開發微信小程式的框架也不支援過濾器 對於單一的資料,還是比較好處理的,寫一個計算屬性就能解決問題 我遇到的問題是: 在一個列表中

微信程式 wepy框架關於攔截器的應用例項

需求 因為安全的需要,很多時候我們訪問介面的時候需要進行驗籤,而用於驗籤的資訊是需要存入請求頭的 業務邏輯如下: 登入並獲取使用者資訊 將使用者資訊存入全域性變數中 其他業務訪問介面 攔截請求,並將需要的驗籤資訊存入到請求頭裡面 放行

thirdScriptError sdk 報錯、程式遇到的各種報錯提醒以及使用wepy框架中出現的問題程式遇到的各種報錯提醒以及使用wepy框架中出現的問題

      最近一直在寫我們公司的小程式,已經發布,在這個過程中遇到了很多bug以及小程式wepy框架的問題。下面我就簡單的羅列出來一些bug和解決方案,後期如果遇到新的問題或者報錯提醒,我會持續更新的。  &nbs

程式wepy踩坑之旅(五)----- 購物車的實現

首先大家可以看下演示效果 我先把封裝的幾個元件程式碼放到前面。 1.購物車數量加減cart-count.wpy元件 <template> <view class="cart-count"> <vi

程式wepy踩坑之旅(四)----- 簡單的動畫

大家可以先看下官網小程式apianimation:https://developers.weixin.qq.com/miniprogram/dev/api/api-animation.html,看完之後推薦看一下http://www.jb51.net/article/102263