141 lines
4.3 KiB
JavaScript
141 lines
4.3 KiB
JavaScript
// 引入全局mixin
|
||
import mixin from './libs/mixin/mixin.js'
|
||
// 引入关于是否mixin集成小程序分享的配置
|
||
// import wxshare from './libs/mixin/mpShare.js'
|
||
// 全局挂载引入http相关请求拦截插件
|
||
import http from './libs/request'
|
||
|
||
function wranning(str) {
|
||
// 开发环境进行信息输出,主要是一些报错信息
|
||
// 这个环境的来由是在程序编写时候,点击hx编辑器运行调试代码的时候,详见:
|
||
// https://uniapp.dcloud.io/frame?id=%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e5%92%8c%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83
|
||
if (process.env.NODE_ENV === 'development') {
|
||
console.warn(str)
|
||
}
|
||
}
|
||
|
||
// 尝试判断在根目录的/store中是否有$u.mixin.js,此文件uView默认为需要挂在到全局的vuex的state变量
|
||
// HX2.6.11版本,放到try中,控制台依然会警告,暂时不用此方式,
|
||
// let vuexStore = {};
|
||
// try {
|
||
// vuexStore = require("@/store/$u.mixin.js");
|
||
// } catch (e) {
|
||
// //TODO handle the exception
|
||
// }
|
||
|
||
// post类型对象参数转为get类型url参数
|
||
import queryParams from './libs/function/queryParams.js'
|
||
// 路由封装
|
||
import route from './libs/function/route.js'
|
||
// 时间格式化
|
||
import timeFormat from './libs/function/timeFormat.js'
|
||
// 时间戳格式化,返回多久之前
|
||
import timeFrom from './libs/function/timeFrom.js'
|
||
// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
|
||
import colorGradient from './libs/function/colorGradient.js'
|
||
// 生成全局唯一guid字符串
|
||
import guid from './libs/function/guid.js'
|
||
// 主题相关颜色,info|success|warning|primary|default|error,此颜色已在uview.scss中定义,但是为js中也能使用,故也定义一份
|
||
import color from './libs/function/color.js'
|
||
// 根据type获取图标名称
|
||
import type2icon from './libs/function/type2icon.js'
|
||
// 打乱数组的顺序
|
||
import randomArray from './libs/function/randomArray.js'
|
||
// 对象和数组的深度克隆
|
||
import deepClone from './libs/function/deepClone.js'
|
||
// 对象深度拷贝
|
||
import deepMerge from './libs/function/deepMerge.js'
|
||
// 添加单位
|
||
import addUnit from './libs/function/addUnit.js'
|
||
|
||
// 规则检验
|
||
import test from './libs/function/test.js'
|
||
// 随机数
|
||
import random from './libs/function/random.js'
|
||
// 去除空格
|
||
import trim from './libs/function/trim.js'
|
||
// toast提示,对uni.showToast的封装
|
||
import toast from './libs/function/toast.js'
|
||
// 获取父组件参数
|
||
import getParent from './libs/function/getParent.js'
|
||
// 获取整个父组件
|
||
import $parent from './libs/function/$parent.js'
|
||
// 获取sys()和os()工具方法
|
||
// 获取设备信息,挂载到$u的sys()(system的缩写)属性中,
|
||
// 同时把安卓和ios平台的名称"ios"和"android"挂到$u.os()中,方便取用
|
||
import {sys, os} from './libs/function/sys.js'
|
||
// 防抖方法
|
||
import debounce from './libs/function/debounce.js'
|
||
// 节流方法
|
||
import throttle from './libs/function/throttle.js'
|
||
|
||
|
||
// 配置信息
|
||
import config from './libs/config/config.js'
|
||
// 各个需要fixed的地方的z-index配置文件
|
||
import zIndex from './libs/config/zIndex.js'
|
||
|
||
const $u = {
|
||
queryParams: queryParams,
|
||
route: route,
|
||
timeFormat: timeFormat,
|
||
date: timeFormat, // 另名date
|
||
timeFrom,
|
||
colorGradient: colorGradient.colorGradient,
|
||
colorToRgba: colorGradient.colorToRgba,
|
||
guid,
|
||
color,
|
||
sys,
|
||
os,
|
||
type2icon,
|
||
randomArray,
|
||
wranning,
|
||
get: http.get,
|
||
post: http.post,
|
||
put: http.put,
|
||
'delete': http.delete,
|
||
hexToRgb: colorGradient.hexToRgb,
|
||
rgbToHex: colorGradient.rgbToHex,
|
||
test,
|
||
random,
|
||
deepClone,
|
||
deepMerge,
|
||
getParent,
|
||
$parent,
|
||
addUnit,
|
||
trim,
|
||
type: ['primary', 'success', 'error', 'warning', 'info'],
|
||
http,
|
||
toast,
|
||
config, // uView配置信息相关,比如版本号
|
||
zIndex,
|
||
debounce,
|
||
throttle,
|
||
}
|
||
|
||
// $u挂载到uni对象上
|
||
uni.$u = $u
|
||
|
||
const install = Vue => {
|
||
Vue.mixin(mixin)
|
||
if (Vue.prototype.openShare) {
|
||
Vue.mixin(mpShare);
|
||
}
|
||
// Vue.mixin(vuexStore);
|
||
// 时间格式化,同时两个名称,date和timeFormat
|
||
Vue.filter('timeFormat', (timestamp, format) => {
|
||
return timeFormat(timestamp, format)
|
||
})
|
||
Vue.filter('date', (timestamp, format) => {
|
||
return timeFormat(timestamp, format)
|
||
})
|
||
// 将多久以前的方法,注入到全局过滤器
|
||
Vue.filter('timeFrom', (timestamp, format) => {
|
||
return timeFrom(timestamp, format)
|
||
})
|
||
Vue.prototype.$u = $u
|
||
}
|
||
|
||
export default {
|
||
install
|
||
} |