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;
}
}