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) }, 5000) } /** * 存储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) }