echarts-uniapp.js 2.7 KB

1
  1. "use strict";const n=require("../../common/vendor.js");var i={};const u={props:{canvasId:{type:String,default:"echarts"},option:{type:Object,default:()=>({})}},watch:{option:{immediate:!0,handler(e,s){this.initChart(e)}}},data(){return{ctx:null}},mounted(){echarts.registerPreprocessor(e=>{e&&e.series&&(e.series.length>0?e.series.forEach(s=>{s.progressive=0}):typeof e.series=="object"&&(e.series.progressive=0))})},methods:{getCanvasAttr2d(){return new Promise((e,s)=>{n.index.createSelectorQuery().in(this).select("#"+this.canvasId).fields({node:!0,size:!0}).exec(c=>{const h=c[0].node;this.canvasNode=h;const a=n.index.getSystemInfoSync().pixelRatio,r=c[0].width,o=c[0].height;this.ctx=h.getContext("2d");const v=new WxCanvas(this.ctx,this.canvasId,!0,h);echarts.setCanvasCreator(()=>v),e({canvas:v,canvasWidth:r,canvasHeight:o,canvasDpr:a})})})},getCanvasAttr(){return new Promise((e,s)=>{this.ctx=n.index.createCanvasContext(this.canvasId,this);var t=new WxCanvas(this.ctx,this.canvasId,!1);echarts.setCanvasCreator(()=>t);const c=1;var h=n.index.createSelectorQuery().in(this);h.select("#"+this.canvasId).boundingClientRect(a=>{const r=a.width,o=a.height;e({canvas:t,canvasWidth:r,canvasHeight:o,canvasDpr:c})}).exec()})},async initChart(e){const s=await this.getCanvasAttr2d(),{canvas:t,canvasWidth:c,canvasHeight:h,canvasDpr:a}=s;i[this.canvasId]=echarts.init(t,null,{width:c,height:h,devicePixelRatio:a}),t.setChart(i[this.canvasId]),i[this.canvasId].setOption(e||this.option)},canvasToTempFilePath(e){var s=n.index.createSelectorQuery().in(this);s.select("#"+this.canvasId).fields({node:!0,size:!0}).exec(t=>{const c=t[0].node;e.canvas=c,n.index.canvasToTempFilePath(e,this)})},touchStart(e){if(i[this.canvasId]&&e.touches.length>0){var s=e.touches[0],t=i[this.canvasId].getZr().handler;t.dispatch("mousedown",{zrX:s.x,zrY:s.y}),t.dispatch("mousemove",{zrX:s.x,zrY:s.y}),t.processGesture(d(e),"start")}},touchMove(e){if(i[this.canvasId]&&e.touches.length>0){var s=e.touches[0],t=i[this.canvasId].getZr().handler;t.dispatch("mousemove",{zrX:s.x,zrY:s.y}),t.processGesture(d(e),"change")}},touchEnd(e){if(i[this.canvasId]){const t=e.changedTouches?e.changedTouches[0]:{};var s=i[this.canvasId].getZr().handler;s.dispatch("mouseup",{zrX:t.x,zrY:t.y}),s.dispatch("click",{zrX:t.x,zrY:t.y}),s.processGesture(d(e),"end")}}}};function d(e){for(let s=0;s<e.touches.length;++s){const t=e.touches[s];t.offsetX=t.x,t.offsetY=t.y}return e}function l(e,s,t,c,h,a){return{a:t.canvasId,b:t.canvasId,c:n.o((...r)=>a.touchStart&&a.touchStart(...r)),d:n.o((...r)=>a.touchMove&&a.touchMove(...r)),e:n.o((...r)=>a.touchEnd&&a.touchEnd(...r))}}const x=n._export_sfc(u,[["render",l],["__scopeId","data-v-ed5954d6"],["__file","E:/psy_web_share/components/echarts-uniapp/echarts-uniapp.vue"]]);tt.createComponent(x);