## 4.1.文字提示 :id=tips
鼠標滑過彈出tips,使用示例:
```html
<button lay-tips="大家好!">按鈕</button>
<button lay-tips="大家好!" lay-direction="2" lay-bg="#009788">按鈕</button>
<button lay-tips="大家好!" lay-offset="10px">按鈕</button>
<button lay-tips="大家好!" lay-offset="10px,10px">按鈕</button>
```
- lay-direction: 設置位置,1上面(默認)、2右邊、3下面、4左邊
- lay-bg: 設置背景顏色
- lay-offset: 設置偏移距離,(上下,左右)

## 4.2.地圖選擇位置 :id=location
快速使用:
```javascript
admin.chooseLocation({
needCity: true,
onSelect: function (res) {
layer.msg(JSON.stringify(res), {icon: 1});
}
});
```
參數 | 默認 | 描述
:---|:--- | :---
title | "選擇位置" | 彈窗標題
needCity | false | 是否返回行政區,省市區默認不返回
center | 定位當前城市 | 地圖默認的中心點
defaultZoom | 11 | 地圖默認縮放級別
pointZoom | 17 | 選中時地圖的縮放級別
keywords | 無 | poi檢索關鍵字,例如:建筑、寫字樓
pageSize | 30 | poi檢索最大數量
onSelect | 無 | 選擇回調
mapJsUrl | 內置 | 高德地圖js的url
- 地圖默認中心點參考值:[116.397428, 39.90923],經度,緯度
- 地圖url參考值:`https://webapi.amap.com/maps?v=1.4.14&key=xxxxxxx`
- 返回結果說明:
- res.name; // 地點名稱
- res.address; // 詳細地址
- res.lat; // 緯度
- res.lng; // 經度
- res.city; // 城市,是一個對象
- res.city.province; // 省
- res.city.city; // 市
- res.city.district; // 區
- res.city.citycode; // 城市代碼
地圖相關參數的詳細介紹請前往[高德地圖API](https://lbs.amap.com/api/javascript-api/summary)查看。

## 4.3.裁剪圖片 :id=crop_img
快速使用:
```javascript
admin.cropImg({
aspectRatio: 1/1,
imgSrc: '../../assets/images/15367146917869444.jpg',
onCrop: function (res) {
// 返回的res是base64編碼的裁剪后的圖片
layer.msg('<img src="' + res + '" width="220px" height="220px"/>');
}
});
```
參數 | 默認 | 描述
:---|:--- | :---
title | "裁剪圖片" | 彈窗標題
aspectRatio | 1/1 | 裁剪比例,例如:16/9
imgSrc | 無 | 要裁剪的圖片,無則先彈出選擇圖片
imgType | 'image/jpeg' | 裁剪的圖片類型,非必填
onCrop | 無 | 裁剪完成回調
limitSize | 不限制 | 限制選擇的圖片大小
acceptMime | 'image/*' | 限制選擇的圖片類型
exts | 不限制 | 限制選擇的圖片后綴
- acceptMime參考值:'image/jpg, image/png'(只顯示 jpg 和 png 文件)
- exts參考值:jpg|png|gif|bmp|jpeg
后面三個參數配置可參考[upload模塊](https://www.layui.com/doc/modules/upload.html),
如果想單獨在頁面中使用圖片裁剪功能請參考[Cropper插件文檔](http://fengyuanchen.github.io/cropper/)

## 4.2.動畫數字 :id=anim_num
快速使用:
```html
<h2 id="demoAnimNum1">12345</h2>
<h2 id="demoAnimNum2">¥2373467.342353</h2>
<h2 id="demoAnimNum3">上浮99.98%</h2>
<script>
layui.use(['admin'], function () {
var $ = layui.jquery;
var admin = layui.admin;
admin.util.animateNum('#demoAnimNum1');
admin.util.animateNum('#demoAnimNum2');
admin.util.animateNum('#demoAnimNum3', true, 500, 100);
});
</script>
```
- 參數一   需要動畫的元素
- 參數二   是否開啟千分位,開啟后每進千加逗號分隔
- 參數三   動畫間隔,默認500
- 參數四   動畫粒度,默認100
 此方法會智能過濾除數字外的字符。
## 4.3.經緯度轉換 :id=jwdzh
快速使用:
```javascript
// GCJ02轉BD09
var point = admin.util.Convert_GCJ02_To_BD09({
lat: 30.505674,
lng: 114.40043
});
console.log(point.lng + ',' + point.lat);
// BD09轉GCJ02
var point = admin.util.Convert_BD09_To_GCJ02({
lat: 30.512004,
lng: 114.405701
});
console.log(point.lng + ',' + point.lat);
```
- 高德地圖、騰訊地圖以及谷歌中國區地圖使用的是GCJ-02坐標系
- 百度地圖使用的是BD-09坐標系
 不同的坐標系之間會有幾十到幾百米的偏移,所以在開發基于地圖的產品時,可以通過此方法修正不同坐標系之間的偏差,
[詳細了解國內各坐標系](https://blog.csdn.net/m0_37738114/article/details/80452485),當然即使用此方法轉換也會存在幾米的誤差,
因為浮點運算精度難免會丟失。
## 4.4.深度克隆對象 :id=deepclone
快速使用:
```javascript
var o1 = {
name: 'xxx',
role: ['admin', 'user']
};
var o2 = admin.util.deepClone(o1);
```
 對象型在參數傳遞是通常是引用傳遞,有時需要把對象克隆一份再傳遞,避免傳遞的參數被修改導致第二次傳遞出現問題。