index.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /*
  2. ##### 如果你热爱编程,想快速入门云开发,欢迎使用`vk-unicloud`系列开发框架
  3. ##### 无需转变开发习惯,0成本上手云开发。
  4. ##### 框架内置了众多API、工具包,为你的业务扫平障碍。使你的项目刚起步进度就是50%(微信登录、短信、验证码、缓存、生成小程序码等等)
  5. ##### 从此你又get一个新技能,只需用js,轻松搞定前后台整体业务。
  6. ##### `client端` 框架地址:https://ext.dcloud.net.cn/plugin?id=2204
  7. ##### `admin端` 框架地址:https://ext.dcloud.net.cn/plugin?id=5043
  8. ##### `client端` 框架文档:https://vkdoc.fsq.pub/client/
  9. ##### `admin端` 框架文档:https://vkdoc.fsq.pub/admin/
  10. ##### 框架学习Q群:`22466457` 欢迎萌新和大佬来使用和共同改进框架
  11. ##### 如本插件有问题,也可加Q群反馈:22466457,只要是因本插件引起的问题,你在群里一定可以得到解决。
  12. */
  13. // 引入全局mixin
  14. import mixin from './libs/mixin/mixin.js'
  15. // 引入关于是否mixin集成小程序分享的配置
  16. // import wxshare from './libs/mixin/mpShare.js'
  17. // 全局挂载引入http相关请求拦截插件
  18. import http from './libs/request'
  19. function wranning(str) {
  20. // 开发环境进行信息输出,主要是一些报错信息
  21. // 这个环境的来由是在程序编写时候,点击hx编辑器运行调试代码的时候,详见:
  22. // 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
  23. if (process.env.NODE_ENV === 'development') {
  24. console.warn(str)
  25. }
  26. }
  27. // 尝试判断在根目录的/store中是否有$u.mixin.js,此文件uView默认为需要挂在到全局的vuex的state变量
  28. // HX2.6.11版本,放到try中,控制台依然会警告,暂时不用此方式,
  29. // let vuexStore = {};
  30. // try {
  31. // vuexStore = require("@/store/$u.mixin.js");
  32. // } catch (e) {
  33. // //TODO handle the exception
  34. // }
  35. // post类型对象参数转为get类型url参数
  36. import queryParams from './libs/function/queryParams.js'
  37. // 路由封装
  38. import route from './libs/function/route.js'
  39. // 时间格式化
  40. import timeFormat from './libs/function/timeFormat.js'
  41. // 时间戳格式化,返回多久之前
  42. import timeFrom from './libs/function/timeFrom.js'
  43. // 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
  44. import colorGradient from './libs/function/colorGradient.js'
  45. // 生成全局唯一guid字符串
  46. import guid from './libs/function/guid.js'
  47. // 主题相关颜色,info|success|warning|primary|default|error,此颜色已在uview.scss中定义,但是为js中也能使用,故也定义一份
  48. import color from './libs/function/color.js'
  49. // 根据type获取图标名称
  50. import type2icon from './libs/function/type2icon.js'
  51. // 打乱数组的顺序
  52. import randomArray from './libs/function/randomArray.js'
  53. // 对象和数组的深度克隆
  54. import deepClone from './libs/function/deepClone.js'
  55. // 对象深度拷贝
  56. import deepMerge from './libs/function/deepMerge.js'
  57. // 添加单位
  58. import addUnit from './libs/function/addUnit.js'
  59. // 规则检验
  60. import test from './libs/function/test.js'
  61. // 随机数
  62. import random from './libs/function/random.js'
  63. // 去除空格
  64. import trim from './libs/function/trim.js'
  65. // toast提示,对uni.showToast的封装
  66. import toast from './libs/function/toast.js'
  67. // 获取父组件参数
  68. import getParent from './libs/function/getParent.js'
  69. // 获取整个父组件
  70. import $parent from './libs/function/$parent.js'
  71. // 获取sys()和os()工具方法
  72. // 获取设备信息,挂载到$u的sys()(system的缩写)属性中,
  73. // 同时把安卓和ios平台的名称"ios"和"android"挂到$u.os()中,方便取用
  74. import {sys, os} from './libs/function/sys.js'
  75. // 防抖方法
  76. import debounce from './libs/function/debounce.js'
  77. // 节流方法
  78. import throttle from './libs/function/throttle.js'
  79. // 对象转字符串,或者字符串转对象
  80. import addStyle from './libs/function/addStyle.js'
  81. // 配置信息
  82. import config from './libs/config/config.js'
  83. // 各个需要fixed的地方的z-index配置文件
  84. import zIndex from './libs/config/zIndex.js'
  85. const $u = {
  86. queryParams: queryParams,
  87. route: route,
  88. timeFormat: timeFormat,
  89. date: timeFormat, // 另名date
  90. timeFrom,
  91. colorGradient: colorGradient.colorGradient,
  92. colorToRgba: colorGradient.colorToRgba,
  93. guid,
  94. color,
  95. sys,
  96. os,
  97. type2icon,
  98. randomArray,
  99. wranning,
  100. get: http.get,
  101. post: http.post,
  102. put: http.put,
  103. 'delete': http.delete,
  104. hexToRgb: colorGradient.hexToRgb,
  105. rgbToHex: colorGradient.rgbToHex,
  106. test,
  107. random,
  108. deepClone,
  109. deepMerge,
  110. getParent,
  111. $parent,
  112. addUnit,
  113. trim,
  114. type: ['primary', 'success', 'error', 'warning', 'info'],
  115. http,
  116. toast,
  117. config, // uView配置信息相关,比如版本号
  118. zIndex,
  119. debounce,
  120. throttle,
  121. addStyle
  122. }
  123. // $u挂载到uni对象上
  124. uni.$u = $u
  125. const install = Vue => {
  126. Vue.mixin(mixin)
  127. // #ifdef VUE2
  128. if (Vue.prototype.openShare) {
  129. Vue.mixin(mpShare);
  130. }
  131. // Vue.mixin(vuexStore);
  132. // 时间格式化,同时两个名称,date和timeFormat
  133. Vue.filter('timeFormat', (timestamp, format) => {
  134. return timeFormat(timestamp, format)
  135. })
  136. Vue.filter('date', (timestamp, format) => {
  137. return timeFormat(timestamp, format)
  138. })
  139. // 将多久以前的方法,注入到全局过滤器
  140. Vue.filter('timeFrom', (timestamp, format) => {
  141. return timeFrom(timestamp, format)
  142. })
  143. Vue.prototype.$u = $u
  144. // #endif
  145. // #ifdef VUE3
  146. Vue.config.globalProperties.$u = $u
  147. // #endif
  148. }
  149. export default {
  150. install
  151. }