| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // -防抖
- export function debounce(fn: Function, wait: number) {
- let delay = wait || 500
- let timer: any = null;
- return function () {
- let args = arguments;
- if (timer) {
- clearTimeout(timer)
- console.log('debounce')
- }
- let callNow = !timer
- timer = setTimeout(() => {
- console.log('debounce send')
- timer = null
- }, delay)
- if (callNow) fn.apply(null, args)
- }
- }
- // -节流
- export function throttle(fn: Function, wait: number) {
- let delay = wait || 500
- let timer: any = null;
- return function () {
- if (timer) {
- console.log('throttle');
- return
- }
- timer = setTimeout(() => {
- console.log('throttle send');
- fn.apply(null, arguments)
- timer = null
- }, delay)
- }
- }
- //计算坐标距离
- export function calcMapDistance(lat1: number, lng1: number, lat2: number, lng2: number) {
- let radLat1 = (lat1 * Math.PI) / 180.0;
- let radLat2 = (lat2 * Math.PI) / 180.0;
- let a = radLat1 - radLat2;
- let b = (lng1 * Math.PI) / 180.0 - (lng2 * Math.PI) / 180.0;
- let s =
- 2 *
- Math.asin(
- Math.sqrt(
- Math.pow(Math.sin(a / 2), 2) +
- Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)
- )
- );
- s = s * 6378.137; // EARTH_RADIUS;
- s = Math.round(s * 10000) / 10000;
- return s.toFixed(2);
- }
- export function groupByKey(elements: Array<any>, key: string) {
- return elements.reduce((groups, item) => {
- const groupKey = item[key];
- if (!groups[groupKey]) {
- groups[groupKey] = [];
- }
- groups[groupKey].push(item);
- return groups;
- }, {});
- }
- export function getDictName(code:string, value: string) {
- let dictStorage:any = uni.getStorageSync('dict');
- console.log(dictStorage)
- if(!dictStorage){
- return value;
- }
- let elements = dictStorage[code];
- if(elements){
- let ele = elements.find((k: any)=>k.value===value);
- if(ele){
- return ele.name;
- }
- }
- return value;
- }
|