123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- // @ts-nocheck
- // #ifdef APP
- type EchartsEventHandler = (event: UTSJSONObject)=>void
- // type EchartsTempResolve = (obj : UTSJSONObject) => void
- // type EchartsTempOptions = UTSJSONObject
- export class Echarts {
- options: UTSJSONObject = {} as UTSJSONObject
- context: UniWebViewElement
- eventMap: Map<string, EchartsEventHandler> = new Map()
- private temp: UTSJSONObject[] = []
- constructor(context: UniWebViewElement){
- this.context = context
- this.init()
- }
- init(){
- this.context.evalJS(`init(null, null, ${JSON.stringify({})})`)
-
- this.context.addEventListener('message', (e : UniWebViewMessageEvent) => {
- // event.stopPropagation()
- // event.preventDefault()
-
- const detail = e.detail.data[0]
- const file = detail.getString('file')
- const data = detail.get('data')
- const key = detail.getString('event')
- const options = typeof data == 'object' ? (data as UTSJSONObject).getJSON('options'): null
- const event = typeof data == 'object' ? (data as UTSJSONObject).getString('event'): null
- if (key == 'log' && data != null) {
- console.log(data)
- }
- if (event != null && options != null) {
- this.dispatchAction(event.replace(/"/g,''), options)
- }
- if(file != null){
- while (this.temp.length > 0) {
- const opt = this.temp.pop()
- const success = opt?.get('success')
- if(typeof success == 'function'){
- success as (res: UTSJSONObject) => void
- success({tempFilePath: file})
- }
- }
- }
-
- })
- }
- setOption(option: UTSJSONObject){
- this.options = option;
- this.context.evalJS(`setOption(${JSON.stringify([option])})`)
- }
- setOption(option: UTSJSONObject, notMerge: boolean = false, lazyUpdate: boolean = false){
- this.options = option;
- this.context.evalJS(`setOption(${JSON.stringify([option, notMerge, lazyUpdate])})`)
- }
- setOption(option: UTSJSONObject, notMerge: UTSJSONObject){
- this.options = option;
- this.context.evalJS(`setOption(${JSON.stringify([option, notMerge])})`)
- }
- getOption(): UTSJSONObject {
- return this.options
- }
- showLoading(){
- this.context.evalJS(`showLoading(${JSON.stringify([] as any[])})`);
- }
- showLoading(type: string, opts: UTSJSONObject){
- this.context.evalJS(`showLoading(${JSON.stringify([type, opts])})`);
- }
- hideLoading(){
- this.context.evalJS(`hideLoading()`);
- }
- clear(){
- this.context.evalJS(`clear()`);
- }
- dispose(){
- this.context.evalJS(`dispose()`);
- }
- resize(size:UTSJSONObject){
- setTimeout(()=>{
- this.context.evalJS(`resize(${JSON.stringify(size)})`);
- },0)
- }
- resize(){
- setTimeout(()=>{
- this.context.evalJS(`resize()`);
- },10)
-
- }
- on(type:string, query: any, callback: EchartsEventHandler) {
- const key = `${type}${JSON.stringify(query)}`
- if(typeof callback == 'function'){
- this.eventMap.set(key, callback)
- }
- this.context.evalJS(`on(${JSON.stringify([type, query])})`);
- console.warn('uvue 暂不支持事件')
- }
- on(type:string, callback: EchartsEventHandler) {
- const key = `${type}`
- if(typeof callback == 'function'){
- this.eventMap.set(key, callback)
- }
- this.context.evalJS(`on(${JSON.stringify([type])})`);
- console.warn('uvue 暂不支持事件')
- }
- dispatchAction(type:string, options: UTSJSONObject){
- const handler = this.eventMap.get(type)
- if(handler!=null){
- handler(options)
- }
- }
- canvasToTempFilePath(opt: UTSJSONObject){
- // this.context.evalJS(`on(${JSON.stringify(opt)})`);
- this.context.evalJS(`canvasToTempFilePath(${JSON.stringify(opt)})`);
- this.temp.push(opt)
- }
- }
- // #endif
- // #ifndef APP
- export class Echarts {
- constructor() {}
- setOption(option: UTSJSONObject): void
- isDisposed(): boolean;
- clear(): void;
- resize(size:UTSJSONObject): void;
- resize(): void;
- canvasToTempFilePath(opt : UTSJSONObject): void;
- dispose(): void;
- showLoading(cfg?: UTSJSONObject): void;
- showLoading(name?: string, cfg?: UTSJSONObject): void;
- hideLoading(): void;
- getZr(): any
- }
- // #endif
|