jqh 5 ani în urmă
părinte
comite
f725c5140b
2 a modificat fișierele cu 38 adăugiri și 14 ștergeri
  1. 11 11
      resources/views/form/map.blade.php
  2. 27 3
      src/Form/Field/Map.php

+ 11 - 11
resources/views/form/map.blade.php

@@ -7,12 +7,12 @@
         @include('admin::form.error')
         @include('admin::form.error')
 
 
         @if($type === 'baidu')
         @if($type === 'baidu')
-            <div class="row">
-                <div class="col-md-6 col-md-offset-3">
+            <div class="row mb-1">
+                <div class="col-md-5 col-md-offset-3">
                     <div class="input-group">
                     <div class="input-group">
-                        <input type="text" class="form-control" id="{{ $searchId }}">
+                        <input type="text" placeholder="{{ trans('admin.search') }}" class="form-control" id="{{ $searchId }}">
                         <span class="input-group-btn">
                         <span class="input-group-btn">
-                        <button type="button" class="btn btn-info btn-flat"><i class="fa fa-search"></i></button>
+                        <button type="button" class="btn btn-primary btn-flat"><i class="fa fa-search"></i></button>
                     </span>
                     </span>
                     </div>
                     </div>
                 </div>
                 </div>
@@ -20,7 +20,7 @@
         @endif
         @endif
 
 
         <div class="{{ $class }}">
         <div class="{{ $class }}">
-            <div class="form-map"></div>
+            <div class="form-map" style="width: 100%;height: {{ $height }}"></div>
             <input type="hidden" class="form-lat" name="{{ $name['lat'] }}" value="{{ $value['lat'] ?? null }}" {!! $attributes !!} />
             <input type="hidden" class="form-lat" name="{{ $name['lat'] }}" value="{{ $value['lat'] ?? null }}" {!! $attributes !!} />
             <input type="hidden" class="form-lng" name="{{$name['lng']}}" value="{{ $value['lng'] ?? null }}" {!! $attributes !!} />
             <input type="hidden" class="form-lng" name="{{$name['lng']}}" value="{{ $value['lng'] ?? null }}" {!! $attributes !!} />
         </div>
         </div>
@@ -146,10 +146,10 @@
         map.addOverlay(marker);
         map.addOverlay(marker);
         marker.enableDragging();
         marker.enableDragging();
 
 
-        if( ! lat.val() || ! lng.val()) {
+        if (! lat.val() || ! lng.val()) {
             var geolocation = new BMap.Geolocation();
             var geolocation = new BMap.Geolocation();
             geolocation.getCurrentPosition(function(e){
             geolocation.getCurrentPosition(function(e){
-                if(this.getStatus() == BMAP_STATUS_SUCCESS){
+                if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                     map.panTo(e.point);
                     map.panTo(e.point);
                     marker.setPosition(e.point);
                     marker.setPosition(e.point);
 
 
@@ -162,13 +162,13 @@
             },{enableHighAccuracy: true})
             },{enableHighAccuracy: true})
         }
         }
 
 
-        map.addEventListener("click", function(e){
+        map.addEventListener("click", function(e) {
             marker.setPosition(e.point);
             marker.setPosition(e.point);
             lat.val(e.point.lat);
             lat.val(e.point.lat);
             lng.val(e.point.lng);
             lng.val(e.point.lng);
         });
         });
 
 
-        marker.addEventListener("dragend", function(e){
+        marker.addEventListener("dragend", function(e) {
             lat.val(e.point.lat);
             lat.val(e.point.lat);
             lng.val(e.point.lng);
             lng.val(e.point.lng);
         });
         });
@@ -182,8 +182,8 @@
             address = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
             address = _value.province +  _value.city +  _value.district +  _value.street +  _value.business;
             setPlace();
             setPlace();
         });
         });
-        function setPlace(){
-            function myFun(){
+        function setPlace() {
+            function myFun() {
                 var pp = local.getResults().getPoi(0).point;
                 var pp = local.getResults().getPoi(0).point;
                 map.centerAndZoom(pp, 15);
                 map.centerAndZoom(pp, 15);
                 marker.setPosition(pp);
                 marker.setPosition(pp);

+ 27 - 3
src/Form/Field/Map.php

@@ -15,6 +15,11 @@ class Map extends Field
      */
      */
     protected $column = [];
     protected $column = [];
 
 
+    /**
+     * @var string
+     */
+    protected $height = '300px';
+
     /**
     /**
      * Get assets required by this field.
      * Get assets required by this field.
      *
      *
@@ -35,10 +40,8 @@ class Map extends Field
                 $js = '//api-maps.yandex.ru/2.1/?lang=ru_RU';
                 $js = '//api-maps.yandex.ru/2.1/?lang=ru_RU';
                 break;
                 break;
             case 'baidu':
             case 'baidu':
-                $js = '//api.map.baidu.com/api?v=2.0&ak='.($keys['baidu'] ?? env('BAIDU_MAP_API_KEY'));
-                break;
             default:
             default:
-                $js = '//api.map.baidu.com/api?v=2.0&ak='.($keys['baidu'] ?? env('BAIDU_MAP_API_KEY'));
+                $js = '//api.map.baidu.com/getscript?v=2.0&ak='.($keys['baidu'] ?? env('BAIDU_MAP_API_KEY'));
         }
         }
 
 
         Admin::js($js);
         Admin::js($js);
@@ -73,6 +76,13 @@ class Map extends Field
         }
         }
     }
     }
 
 
+    public function height(string $height)
+    {
+        $this->height = $height;
+
+        return $this;
+    }
+
     protected static function getUsingMap()
     protected static function getUsingMap()
     {
     {
         return config('admin.map.provider') ?: config('admin.map_provider');
         return config('admin.map.provider') ?: config('admin.map_provider');
@@ -97,4 +107,18 @@ class Map extends Field
     {
     {
         return $this->addVariables(['type' => 'baidu', 'searchId' => 'bdmap'.Str::random()]);
         return $this->addVariables(['type' => 'baidu', 'searchId' => 'bdmap'.Str::random()]);
     }
     }
+
+    protected function getDefaultElementClass()
+    {
+        $class = $this->normalizeElementClass($this->column['lat']).$this->normalizeElementClass($this->column['lng']);
+
+        return [$class, static::NORMAL_CLASS];
+    }
+
+    public function render()
+    {
+        $this->addVariables(['height' => $this->height]);
+
+        return parent::render();
+    }
 }
 }