<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> <style type="text/css"> html, body, .canvas { padding: 0; margin: 0; overflow-y: hidden; background-color: transparent; width: 100%; height: 100%; } </style> </head> <body> <div class="canvas" id="limeChart"></div> <script type="text/javascript" src="./uni.webview.1.5.3.js"></script> <script type="text/javascript" src="./echarts.min.js"></script> <script type="text/javascript" src="./ecStat.min.js"></script> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-liquidfill@latest/dist/echarts-liquidfill.min.js"></script> --> <script> let chart = null; let cache = []; console.log = function(...agrs) { postMessage(agrs) } function emit(event, data) { let dataStr = JSON.stringify(data, stringify) postMessage({ event, data: dataStr }) cache = [] } function postMessage(data) { uni.postMessage({ data }); } function stringify(key, value) { if (typeof value === 'object' && value !== null) { if (cache.indexOf(value) !== -1) { return; } cache.push(value); } return value; } function parse(name, callback, options) { const optionNameReg = /[\w]+\.setOption\(([\w]+\.)?([\w]+)\)/ if (optionNameReg.test(callback)) { const optionNames = callback.match(optionNameReg) if(optionNames[1]) { const _this = optionNames[1].split('.')[0] window[_this] = {} window[_this][optionNames[2]] = options return optionNames[2] } else { return null } } return null } function init(callback, options, opts = {}, theme = null) { if(!chart) { chart = echarts.init(document.getElementById('limeChart'), theme, opts) if(options) { chart.setOption(options) } // const name = parse('a', callback, options) // console.log('options::', callback) // if(name) this[name] = options // eval(`a = ${callback};`) // if(a) {a(chart)} } } function setChart(callback, options) { if(!callback) return if(chart && callback && options) { var r = null const name = parse('r', callback, options) if(name) this[name] = options eval(`r = ${callback};`) if(r) {r(chart)} } } function setOption(data) { if (chart) chart.setOption(data[0], data[1]) } function showLoading(data) { if (chart) chart.showLoading(data[0], data[1]) } function hideLoading() { if (chart) chart.hideLoading() } function clear() { if (chart) chart.clear() } function dispose() { if (chart) chart.dispose() } function resize(size) { if (chart) chart.resize(size) } function canvasToTempFilePath(opt = {}) { if (chart) { const src = chart.getDataURL(opt) postMessage({ file: true, data: src }) } } </script> </body> </html>