import Vue from 'vue'
export default {
install ( ) {
Vue. directive ( 'fofo' , {
inserted ( el ) {
el = el. querySelector ( 'input' )
el. focus ( )
}
} )
}
}
export const formatDate = ( time ) => {
return time. replace ( / \- / g , "/" ) ;
}
export const inArray = ( search, array ) => {
for ( var i in array) {
if ( array[ i] == search) return true
}
return false
}
export const dateFormat = ( fmt, date ) => {
const opt = {
"Y+" : date. getFullYear ( ) . toString ( ) ,
"m+" : ( date. getMonth ( ) + 1 ) . toString ( ) ,
"d+" : date. getDate ( ) . toString ( ) ,
"H+" : date. getHours ( ) . toString ( ) ,
"M+" : date. getMinutes ( ) . toString ( ) ,
"S+" : date. getSeconds ( ) . toString ( )
} ;
let ret
for ( let k in opt) {
ret = new RegExp ( "(" + k + ")" ) . exec ( fmt)
if ( ret) {
fmt = fmt. replace ( ret[ 1 ] , ( ret[ 1 ] . length == 1 ) ? ( opt[ k] ) : ( opt[ k] . padStart ( ret[ 1 ] . length, "0" ) ) )
} ;
} ;
return fmt
}
eg
dateFormat('YYYY-mm-dd HH:MM:SS', new Date()) ==> 2020-01-01 08:00:00
export const isEmptyObject = ( object ) => {
return Object. keys ( object) . length === 0
}
export const isObject = ( object ) => {
return Object . prototype. toString . call ( object) === '[object Object]'
}
export const isArray = ( array ) => {
return Object . prototype. toString . call ( array) === '[object Array]'
}
export const isEmpty = ( value ) => {
if ( isArray ( value) ) {
return value. length === 0
}
if ( isObject ( value) ) {
return isEmptyObject ( value)
}
return ! value
}
export const cloneObj = ( obj ) => {
let newObj = obj. constructor === Array ? [ ] : { } ;
if ( typeof obj !== 'object' ) {
return ;
}
for ( let i in obj) {
newObj[ i] = typeof obj[ i] === 'object' ? cloneObj ( obj[ i] ) : obj[ i] ;
}
return newObj
}
export function throttle ( fn, delay = 100 ) {
var timer = null
return function ( ) {
if ( timer) return
timer = setTimeout ( ( ) => {
fn . apply ( this , arguments)
timer = null
} , delay)
}
export function debounce ( fn, delay ) {
let timer
return function ( ) {
const that = this
const _args = arguments
if ( timer) {
clearTimeout ( timer)
}
timer = setTimeout ( function ( ) {
fn . apply ( that, _args)
} , delay)
}
}
export function getHiddenName ( data ) {
if ( ! data) return ''
const surname = data. substr ( 0 , 1 )
const star = '*' . repeat ( data. length - 1 )
return surname + star
}
export function getHiddenDetailAddress ( data ) {
const chineseNumbers = [ '一' , '二' , '三' , '四' , '五' , '六' , '七' , '八' , '九' , '十' ]
if ( ! data || data. length === 0 ) {
return ''
}
let tempResult = data. replace ( ( / \d / g ) , '*' )
let result = ''
for ( let i= 0 ; i< tempResult. length; i++ ) {
if ( chineseNumbers. includes ( tempResult[ i] ) ) {
result += '*'
} else {
result += tempResult[ i]
}
}
return result
}
计算2个日期相差的天数,不包含今天,如:2024-09-13到2016-09-15,相差2天
function dateDiff ( startDate, endDate ) {
return parseInt ( ( endDate - startDate) / 1000 / 60 / 60 / 24 )
}
计算2个日期相差的天数,包含今天,如:2024-09-13到2016-09-15,相差3天
function dateDiff ( startDate, endDate ) {
return parseInt ( ( endDate - startDate) / 1000 / 60 / 60 / 24 ) + 1
}