diff --git a/bricks/build.sh b/bricks/build.sh index ffd0c19..82d14e1 100755 --- a/bricks/build.sh +++ b/bricks/build.sh @@ -4,10 +4,10 @@ SOURCES=" page_data_loader.js factory.js uitypesdef.js utils.js uitype.js \ markdown_viewer.js video.js audio.js toolbar.js tab.js \ input.js registerfunction.js button.js accordion.js dataviewer.js \ tree.js multiple_state_image.js dynamiccolumn.js form.js message.js conform.js \ - paging.js datagrid.js iframe.js cols.js echarts_ebeding.js \ + paging.js datagrid.js iframe.js cols.js echartsext.js \ floaticonbar.js miniform.js wterm.js dynamicaccordion.js \ llm_dialog.js llm.js websocket.js datarow.js tabular.js \ - line.js " + line.js pie.js bar.js " echo ${SOURCES} cat ${SOURCES} > ../dist/bricks.js # uglifyjs --compress --mangle -- ../dist/bricks.js > ../dist/bricks.min.js diff --git a/bricks/header.tmpl b/bricks/header.tmpl index 5dadbbb..38c5324 100644 --- a/bricks/header.tmpl +++ b/bricks/header.tmpl @@ -16,7 +16,7 @@ --> - + diff --git a/bricks/line.js b/bricks/line.js index e2149df..d813236 100644 --- a/bricks/line.js +++ b/bricks/line.js @@ -1,6 +1,6 @@ var bricks = window.bricks || {}; -bricks.ChartLine = class extend bricks.VBox { +bricks.ChartLine = class extends bricks.EchartsExt { /* { data_url, @@ -12,29 +12,11 @@ bricks.ChartLine = class extend bricks.VBox { valueFields } */ - constructor(opts){ - super(opts); - this.build_title_widget(); - this.build_description_widget(); - this.build_toolbar_widget(); - this.nameField = opts.nameField || 'name'; - this.valueFields = opts.valueField || ['value']; - this.chart = new bricks.Filler(); - this.add_widget(this.chart); - schedule_once(this.build_chart, 0.1); - } - async build_chart(){ - if (this.user_data){ - this.build_line(this.user_data); - } else if (this.data_url){ - await this.build_line_using_url(); - } - } values_from_data(data, name){ var d = []; data.forEach(x => { d.push(x[name]); - } + }); return d; } lineinfo_from_data(data, name){ @@ -44,52 +26,32 @@ bricks.ChartLine = class extend bricks.VBox { data:this.values_from_data(data, name) } } - build_line(data){ + setup_options(data){ var n_data = []; var series = []; this.valueFields.forEach(v => { series.push(this.lineinfo_from_data(data, v)); - } + }); data.forEach(d => { n_data.push(d[this.nameField]); }); - var e = this.chart.dom_element; - this.chartOBj = echarts.init(e); var opts = { tooltip:{ trigger:'axis' }, legend:{ data:this.valueFields - } + }, xAxis:{ type:'category', - data: n_value + data: n_data }, yAxis:{ type: 'value' }, series:series } - this.chartObj.setOption(opts); - this.chartObj.on('click', this.click_handle.bind(this)); - } - click_handle(params){ - this.bind('element_click', params); - } - async build_line_using_url(params){ - if (!params) params = {}; - var _params = bricks.extend({}, this.data_params); - _params = bricks.extend(_params, params); - var method = this.method || 'GET'; - var jc = bricks.HttpJson(); - d = jc.httpcall(this.data_url, { - method:method, - params:_params - }); - if (d){ - await this.build_line(d); - } + return opts; } }