Quellcode durchsuchen

map组件key改为读取config配置 #293

jqh vor 4 Jahren
Ursprung
Commit
6d31e503e1
3 geänderte Dateien mit 39 neuen und 17 gelöschten Zeilen
  1. 10 2
      config/admin.php
  2. 16 8
      src/Console/stubs/config.stub
  3. 13 7
      src/Form/Field/Map.php

+ 10 - 2
config/admin.php

@@ -300,10 +300,18 @@ return [
     | Admin map field provider
     |--------------------------------------------------------------------------
     |
-    | Supported: "tencent", "google", "yandex".
+    | Supported: "tencent", "google", "yandex", "baidu".
     |
     */
-    'map_provider' => 'google',
+    'map' => [
+        'provider' => 'baidu',
+
+        'keys' => [
+            'tencent' => env('TENCENT_MAP_API_KEY'),
+            'google' => env('GOOGLE_API_KEY'),
+            'baidu' => env('BAIDU_MAP_API_KEY'),
+        ],
+    ],
 
     /*
     |--------------------------------------------------------------------------

+ 16 - 8
src/Console/stubs/config.stub

@@ -296,14 +296,22 @@ return [
     ],
 
     /*
-    |--------------------------------------------------------------------------
-    | Admin map field provider
-    |--------------------------------------------------------------------------
-    |
-    | Supported: "tencent", "google", "yandex".
-    |
-    */
-    'map_provider' => 'google',
+	|--------------------------------------------------------------------------
+	| Admin map field provider
+	|--------------------------------------------------------------------------
+	|
+	| Supported: "tencent", "google", "yandex", "baidu".
+	|
+	*/
+	'map' => [
+		'provider' => 'baidu',
+
+		'keys' => [
+			'tencent' => env('TENCENT_MAP_API_KEY'),
+			'google' => env('GOOGLE_API_KEY'),
+			'baidu' => env('BAIDU_MAP_API_KEY'),
+		],
+	],
 
     /*
     |--------------------------------------------------------------------------

+ 13 - 7
src/Form/Field/Map.php

@@ -21,21 +21,23 @@ class Map extends Field
      */
     public static function collectAssets()
     {
-        switch (config('admin.map_provider')) {
+        $keys = config('admin.map.keys');
+
+        switch (static::getUsingMap()) {
             case 'tencent':
-                $js = '//map.qq.com/api/js?v=2.exp&key='.env('TENCENT_MAP_API_KEY');
+                $js = '//map.qq.com/api/js?v=2.exp&key='.($keys['tencent'] ?? env('TENCENT_MAP_API_KEY'));
                 break;
             case 'google':
-                $js = '//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key='.env('GOOGLE_API_KEY');
+                $js = '//maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key='.($keys['google'] ?? env('GOOGLE_API_KEY'));
                 break;
             case 'yandex':
                 $js = '//api-maps.yandex.ru/2.1/?lang=ru_RU';
                 break;
             case 'baidu':
-                $js = '//api.map.baidu.com/api?v=2.0&ak=' . env('BAIDU_MAP_API_KEY');
+                $js = '//api.map.baidu.com/api?v=2.0&ak='.($keys['baidu'] ?? env('BAIDU_MAP_API_KEY'));
                 break;
             default:
-                $js = '//api.map.baidu.com/api?v=2.0&ak=' . env('BAIDU_MAP_API_KEY');
+                $js = '//api.map.baidu.com/api?v=2.0&ak='.($keys['baidu'] ?? env('BAIDU_MAP_API_KEY'));
         }
 
         Admin::js($js);
@@ -55,7 +57,7 @@ class Map extends Field
          * Google map is blocked in mainland China
          * people in China can use Tencent map instead(;
          */
-        switch (config('admin.map_provider')) {
+        switch (static::getUsingMap()) {
             case 'tencent':
                 $this->useTencentMap();
                 break;
@@ -73,6 +75,11 @@ class Map extends Field
         }
     }
 
+    protected static function getUsingMap()
+    {
+        return config('admin.map.provider') ?: config('admin.map_provider');
+    }
+
     public function useGoogleMap()
     {
         $this->script = <<<JS
@@ -269,6 +276,5 @@ JS;
             initBaiduMap('{$this->id['lat']}{$this->id['lng']}');
         })()
 JS;
-
     }
 }