< template> 
  < el- card class = "box-card"  ref= "boxCard"  v- if = "showCard" > 
    < div slot= "header"  class = "clearfix" > 
      < div class = "title" > { {  model. pointName } } < / div> 
      < div class = "time"  @click= "close" > 
        < i class = "el-icon-close" > < / i> 
      < / div> 
    < / div> 
    < div class = "top-T" > 
      111 
    < / div> 
  < / el- card> 
< / template> 
< script> 
export  default  { 
  components :  { } , 
  props :  { 
    model :  { 
      type :  Object, 
      default :  null , 
    } , 
  } , 
  mounted ( )  { } , 
  data ( )  { 
    return  { 
      showCard :  false , 
    } ; 
  } , 
  methods :  { 
    open ( )  { 
      this . showCard =  true ; 
    } , 
    close ( )  { 
      this . showCard =  false ; 
    } , 
  } , 
} ; 
< / script> 
< style lang= "scss"  scoped> 
. box- card { 
  width :  480px; 
  
  border- radius:  10px; 
  background :  rgb ( 255 ,  255 ,  255 ) ; 
  box- shadow:  0  0  10px 0  rgba ( 0 ,  0 ,  0 ,  0.14 ) ; 
  & : : after { 
    content :  "" ; 
    position :  absolute; 
    
    
    left :  50 % ; 
    bottom :  - 7px; 
    transform :  translateX ( - 50 % ) ; 
    width :  0 ; 
    height :  0 ; 
    border- top:  8px solid transparent; 
    border- bottom:  8px solid #fff; 
    border- left:  8px solid #fff; 
    border- right:  8px solid transparent; 
    transform :  rotate ( - 45deg) ; 
    box- shadow:  0  0  10px 0  rgba ( 0 ,  0 ,  0 ,  0.14 ) ; 
    border- radius:  0  0  0  4px; 
    z- index:  1 ; 
  } 
  & : : before { 
    content :  "" ; 
    position :  absolute; 
    left :  50 % ; 
    bottom :  0 ; 
    transform :  translateX ( - 50 % ) ; 
    width :  100px; 
    height :  15px; 
    background :  #fff; 
    z- index:  2 ; 
  } 
} 
: : v- deep . el- card__header { 
  padding :  20px; 
} 
: : v- deep . el- card__body { 
  max- height:  450px; 
  overflow :  auto; 
} 
. clearfix { 
  line- height:  20px; 
  . title { 
    font- weight:  700 ; 
    font- size:  16px; 
    color :  #303133 ; 
    float :  left; 
    & : : before { 
      content :  "" ; 
      display :  inline- block; 
      width :  3px; 
      height :  16px; 
      border- radius:  1 . 5px; 
      background :  #3886ffff; 
      margin- right:  10px; 
      transform :  translateY ( 2px) ; 
    } 
  } 
  . time { 
    font- weight:  400 ; 
    font- size:  14px; 
    color :  #909399 ; 
    float :  right; 
    cursor :  pointer; 
  } 
} 
< / style> 
< dialog ref= "gasDialog"  : model= "form" > < / dialog> 
import  gasDialog from  "./dialog/gas" ; 
form : { } 
marker. on ( "click" ,  ( )  =>  { 
        console. log ( "地图点击" ) ; 
        this . openGas ( { 
          
          
          
          position :  [ 120.516 ,  36.193 ] ,  
        } ) ; 
        
} ) ; 
openGas ( e )  { 
   this . $refs. gasDialog. open ( ) ; 
   this . createInfoWindow ( "gasDialog" ,  e) ; 
   console. log ( "点击" ) ; 
} , 
createInfoWindow ( refName,  e )  { 
   this . $nextTick ( ( )  =>  { 
   const  currentMap =  this . myMap; 
   var  infoWindow =  new  AMap. InfoWindow ( { 
   		  isCustom :  true , 
          autoMove :  true , 
          avoid :  [ 20 ,  20 ,  20 ,  20 ] , 
          content :  this . $refs[ refName] . $el, 
          closeWhenClickMap :  true , 
          offset :  new  AMap. Pixel ( - 2 ,  - 18 ) , 
    } ) ; 
    infoWindow. open ( this . myMap,  e. position) ; 
    
     infoWindow. on ( "mouseover" ,  ( )  =>  { 
          currentMap. setStatus ( {  zoomEnable :  false  } ) ; 
     } ) ; 
     infoWindow. on ( "mouseout" ,  ( )  =>  { 
          currentMap. setStatus ( {  zoomEnable :  true  } ) ; 
     } ) ; 
     infoWindow. on ( "mousewheel" ,  ( e )  =>  { 
          const  {  originEvent }  =  e; 
          document. querySelector ( ".el-card__body" ) . scrollTop -= 
            originEvent. wheelDelta /  5 ; 
     } ) ; 
     
     this . $nextTick ( ( )  =>  { 
       var  clickMap =  AMap. Event. addListener ( this . myMap,  "click" ,  ( e )  =>  { 
            this . $refs[ refName] . close ( ) ; 
            AMap. Event. clearListeners ( this . myMap,  clickMap) ; 
          } ) ; 
        } ) ; 
   } ) ; 
} ,