Browse Source

update chart

jqh 5 years ago
parent
commit
41b10dea44
2 changed files with 32 additions and 31 deletions
  1. 6 11
      src/Widgets/Chart/Chart.php
  2. 26 20
      src/Widgets/Sparkline/Sparkline.php

+ 6 - 11
src/Widgets/Chart/Chart.php

@@ -4,7 +4,7 @@ namespace Dcat\Admin\Widgets\Chart;
 
 use Dcat\Admin\Admin;
 use Dcat\Admin\Widgets\Color;
-use Dcat\Admin\Traits\HasRemoteData;
+use Dcat\Admin\Traits\FromApi;
 use Dcat\Admin\Widgets\Widget;
 use Illuminate\Support\Str;
 
@@ -18,9 +18,10 @@ use Illuminate\Support\Str;
  */
 abstract class Chart extends Widget
 {
-    use HasRemoteData;
+    use FromApi;
 
     public static $js = '@chartjs';
+
     public static $css = '@chartjs';
 
     public static $globalSettings = [
@@ -45,15 +46,11 @@ abstract class Chart extends Widget
     protected $options = [];
 
     protected $width;
+
     protected $height;
 
     protected $containerStyle = '';
 
-    /**
-     * Chart constructor.
-     *
-     * @param mixed ...$params
-     */
     public function __construct(...$params)
     {
         if (count($params) == 2) {
@@ -73,13 +70,11 @@ abstract class Chart extends Widget
     }
 
     /**
-     * Composite the chart.
-     *
      * @param Chart $chart
      *
      * @return $this
      */
-    public function composite(self $chart)
+    public function combine(self $chart)
     {
         $this->data['datasets']
             = array_merge($this->data['datasets'], $chart->datasets());
@@ -382,7 +377,7 @@ abstract class Chart extends Widget
         ];
         $options = json_encode($config);
 
-        if (! $this->allowBuildRequestScript()) {
+        if (! $this->allowBuildRequest()) {
             return <<<JS
 setTimeout(function () { 
     new Chart($("#{$this->getId()}").get(0).getContext("2d"), $options) 

+ 26 - 20
src/Widgets/Sparkline/Sparkline.php

@@ -3,7 +3,7 @@
 namespace Dcat\Admin\Widgets\Sparkline;
 
 use Dcat\Admin\Admin;
-use Dcat\Admin\Traits\HasRemoteData;
+use Dcat\Admin\Traits\FromApi;
 use Dcat\Admin\Widgets\Widget;
 use Illuminate\Contracts\Support\Arrayable;
 use Illuminate\Support\Str;
@@ -22,7 +22,7 @@ use Illuminate\Support\Str;
  */
 class Sparkline extends Widget
 {
-    use HasRemoteData;
+    use FromApi;
 
     public static $js = '@jquery.sparkline';
     public static $css = '@jquery.sparkline';
@@ -78,7 +78,7 @@ class Sparkline extends Widget
 
     protected $values = [];
 
-    protected $combos = [];
+    protected $combinations = [];
 
     public function __construct($values = [])
     {
@@ -148,13 +148,9 @@ class Sparkline extends Widget
      *
      * @return $this
      */
-    public function composite(self $chart)
+    public function combine(self $chart)
     {
-        $options = $chart->getOptions();
-
-        $options['composite'] = true;
-
-        $this->combos[] = [$chart->values(), $chart->getOptions()];
+        $this->combinations[] = [$chart->values(), $chart->getOptions()];
 
         return $this;
     }
@@ -171,19 +167,10 @@ class Sparkline extends Widget
         $values = json_encode($this->values);
         $options = json_encode($this->options);
 
-        $combos = '';
-        foreach ($this->combos as $combo) {
-            $v = json_encode($combo[0]);
-            $o = json_encode($combo[1]);
-            $combos .= <<<JS
-$('#{$this->id}').sparkline($v, $o);
-JS;
-        }
-
-        if (! $this->allowBuildRequestScript()) {
+        if (! $this->allowBuildRequest()) {
             return <<<JS
 $('#{$this->id}').sparkline($values, $options);
-{$combos};
+{$this->buildCombinationScript()};
 JS;
         }
 
@@ -201,6 +188,25 @@ JS
         return $this->buildRequestScript();
     }
 
+    /**
+     * @return string
+     */
+    protected function buildCombinationScript()
+    {
+        $script = '';
+
+        foreach ($this->combinations as $value) {
+            $value = json_encode($value[0]);
+            $options = json_encode($value[1]);
+
+            $script .= <<<JS
+$('#{$this->id}').sparkline($value, $options);
+JS;
+        }
+
+        return $script;
+    }
+
     /**
      * @return string
      */