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 | |||
|  | } |