51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
export class Echarts {
|
|
eventMap = new Map()
|
|
constructor(webview) {
|
|
this.webview = webview
|
|
this.options = null
|
|
}
|
|
setOption() {
|
|
this.options = arguments
|
|
this.webview.evalJs(`setOption(${JSON.stringify(arguments)})`);
|
|
}
|
|
getOption() {
|
|
return this.options
|
|
}
|
|
showLoading() {
|
|
this.webview.evalJs(`showLoading(${JSON.stringify(arguments)})`);
|
|
}
|
|
hideLoading() {
|
|
this.webview.evalJs(`hideLoading()`);
|
|
}
|
|
clear() {
|
|
this.webview.evalJs(`clear()`);
|
|
}
|
|
dispose() {
|
|
this.webview.evalJs(`dispose()`);
|
|
}
|
|
resize(size) {
|
|
if(size) {
|
|
this.webview.evalJs(`resize(${size})`);
|
|
} else {
|
|
this.webview.evalJs(`resize()`);
|
|
}
|
|
}
|
|
on(type, ...args) {
|
|
const query = args[0]
|
|
const useQuery = query && typeof query != 'function'
|
|
const param = useQuery ? [type, query] : [type]
|
|
const key = `${type}${useQuery ? JSON.stringify(query): '' }`
|
|
const callback = useQuery ? args[1]: args[0]
|
|
if(typeof callback == 'function'){
|
|
this.eventMap.set(key, callback)
|
|
}
|
|
this.webview.evalJs(`on(${JSON.stringify(param)})`);
|
|
console.warn('nvue 暂不支持事件')
|
|
}
|
|
dispatchAction(type, options){
|
|
const handler = this.eventMap.get(type)
|
|
if(handler){
|
|
handler(options)
|
|
}
|
|
}
|
|
} |