138 lines
3.1 KiB
JavaScript
138 lines
3.1 KiB
JavaScript
import store from '../vuex/store'
|
||
|
||
/**
|
||
* 弹出框
|
||
*/
|
||
export const Dialog = (str) => {
|
||
store.dispatch('showAlert', true)
|
||
store.dispatch('alertMsg', str)
|
||
// setTimeout(() => {
|
||
// store.dispatch('showAlert', false)
|
||
// }, 30000)
|
||
}
|
||
|
||
/**
|
||
* 提示框
|
||
*/
|
||
export const toast = (str) => {
|
||
store.dispatch('showToast', true)
|
||
store.dispatch('toastMsg', str)
|
||
setTimeout(() => {
|
||
store.dispatch('showToast', false)
|
||
}, 3000)
|
||
}
|
||
|
||
/**
|
||
* 存储localStorage
|
||
*/
|
||
export const setStore = (name, content) => {
|
||
if (!name) return
|
||
if (typeof content !== 'string') {
|
||
content = JSON.stringify(content)
|
||
}
|
||
window.localStorage.setItem(name, content)
|
||
}
|
||
|
||
/**
|
||
* 获取localStorage
|
||
*/
|
||
export const getStore = name => {
|
||
if (!name) return
|
||
return window.localStorage.getItem(name)
|
||
}
|
||
|
||
/**
|
||
* 获取style样式
|
||
*/
|
||
export const getStyle = (element, attr, NumberMode = 'int') => {
|
||
let target
|
||
// scrollTop 获取方式不同,没有它不属于style,而且只有document.body才能用
|
||
if (attr === 'scrollTop') {
|
||
target = element.scrollTop
|
||
} else if (element.currentStyle) {
|
||
target = element.currentStyle[attr]
|
||
} else {
|
||
target = document.defaultView.getComputedStyle(element, null)[attr]
|
||
}
|
||
// 在获取 opactiy 时需要获取小数 parseFloat
|
||
return NumberMode === 'float' ? parseFloat(target) : parseInt(target)
|
||
}
|
||
|
||
/**
|
||
* 小数加法
|
||
*/
|
||
export const accAdd = (arg1, arg2) => {
|
||
var r1, r2, m, c
|
||
try {
|
||
r1 = arg1.toString().split('.')[1].length
|
||
} catch (e) {
|
||
r1 = 0
|
||
}
|
||
try {
|
||
r2 = arg2.toString().split('.')[1].length
|
||
} catch (e) {
|
||
r2 = 0
|
||
}
|
||
c = Math.abs(r1 - r2)
|
||
m = Math.pow(10, Math.max(r1, r2))
|
||
if (c > 0) {
|
||
var cm = Math.pow(10, c)
|
||
if (r1 > r2) {
|
||
arg1 = Number(arg1.toString().replace('.', ''))
|
||
arg2 = Number(arg2.toString().replace('.', '')) * cm
|
||
} else {
|
||
arg1 = Number(arg1.toString().replace('.', '')) * cm
|
||
arg2 = Number(arg2.toString().replace('.', ''))
|
||
}
|
||
} else {
|
||
arg1 = Number(arg1.toString().replace('.', ''))
|
||
arg2 = Number(arg2.toString().replace('.', ''))
|
||
}
|
||
return (arg1 + arg2) / m
|
||
}
|
||
|
||
/**
|
||
* 小数减法
|
||
*/
|
||
export const accSubtract = (arg1, arg2) => {
|
||
var r1, r2, m, c
|
||
try {
|
||
r1 = arg1.toString().split('.')[1].length
|
||
} catch (e) {
|
||
r1 = 0
|
||
}
|
||
try {
|
||
r2 = arg2.toString().split('.')[1].length
|
||
} catch (e) {
|
||
r2 = 0
|
||
}
|
||
c = Math.abs(r1 - r2)
|
||
m = Math.pow(10, Math.max(r1, r2))
|
||
if (c > 0) {
|
||
var cm = Math.pow(10, c)
|
||
if (r1 > r2) {
|
||
arg1 = Number(arg1.toString().replace('.', ''))
|
||
arg2 = Number(arg2.toString().replace('.', '')) * cm
|
||
} else {
|
||
arg1 = Number(arg1.toString().replace('.', '')) * cm
|
||
arg2 = Number(arg2.toString().replace('.', ''))
|
||
}
|
||
} else {
|
||
arg1 = Number(arg1.toString().replace('.', ''))
|
||
arg2 = Number(arg2.toString().replace('.', ''))
|
||
}
|
||
return (arg1 - arg2) / m
|
||
}
|
||
|
||
/**
|
||
* 小数乘法
|
||
*/
|
||
export const accMul = (arg1, arg2) => {
|
||
var m = 0
|
||
var s1 = arg1.toString()
|
||
var s2 = arg2.toString()
|
||
try { m += s1.split('.')[1].length } catch (e) {}
|
||
try { m += s2.split('.')[1].length } catch (e) {}
|
||
return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m)
|
||
}
|