You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.js 3.8 KiB

2 vuotta sitten
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // 引入全局mixin
  2. import mixin from './libs/mixin/mixin.js'
  3. // 引入关于是否mixin集成小程序分享的配置
  4. // import wxshare from './libs/mixin/mpShare.js'
  5. // 全局挂载引入http相关请求拦截插件
  6. import http from './libs/request'
  7. function wranning(str) {
  8. // 开发环境进行信息输出,主要是一些报错信息
  9. // 这个环境的来由是在程序编写时候,点击hx编辑器运行调试代码的时候,详见:
  10. // 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
  11. if (process.env.NODE_ENV === 'development') {
  12. console.warn(str)
  13. }
  14. }
  15. // 尝试判断在根目录的/store中是否有$u.mixin.js,此文件uView默认为需要挂在到全局的vuex的state变量
  16. // HX2.6.11版本,放到try中,控制台依然会警告,暂时不用此方式,
  17. // let vuexStore = {};
  18. // try {
  19. // vuexStore = require("@/store/$u.mixin.js");
  20. // } catch (e) {
  21. // //TODO handle the exception
  22. // }
  23. // post类型对象参数转为get类型url参数
  24. import queryParams from './libs/function/queryParams.js'
  25. // 路由封装
  26. import route from './libs/function/route.js'
  27. // 时间格式化
  28. import timeFormat from './libs/function/timeFormat.js'
  29. // 时间戳格式化,返回多久之前
  30. import timeFrom from './libs/function/timeFrom.js'
  31. // 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
  32. import colorGradient from './libs/function/colorGradient.js'
  33. // 生成全局唯一guid字符串
  34. import guid from './libs/function/guid.js'
  35. // 主题相关颜色,info|success|warning|primary|default|error,此颜色已在uview.scss中定义,但是为js中也能使用,故也定义一份
  36. import color from './libs/function/color.js'
  37. // 根据type获取图标名称
  38. import type2icon from './libs/function/type2icon.js'
  39. // 打乱数组的顺序
  40. import randomArray from './libs/function/randomArray.js'
  41. // 对象和数组的深度克隆
  42. import deepClone from './libs/function/deepClone.js'
  43. // 对象深度拷贝
  44. import deepMerge from './libs/function/deepMerge.js'
  45. // 添加单位
  46. import addUnit from './libs/function/addUnit.js'
  47. // 规则检验
  48. import test from './libs/function/test.js'
  49. // 随机数
  50. import random from './libs/function/random.js'
  51. // 去除空格
  52. import trim from './libs/function/trim.js'
  53. // toast提示,对uni.showToast的封装
  54. import toast from './libs/function/toast.js'
  55. // 获取父组件参数
  56. import getParent from './libs/function/getParent.js'
  57. // 获取整个父组件
  58. import $parent from './libs/function/$parent.js'
  59. // 配置信息
  60. import config from './libs/config/config.js'
  61. // 各个需要fixed的地方的z-index配置文件
  62. import zIndex from './libs/config/zIndex.js'
  63. const $u = {
  64. queryParams: queryParams,
  65. route: route,
  66. timeFormat: timeFormat,
  67. date: timeFormat, // 另名date
  68. timeFrom,
  69. colorGradient: colorGradient.colorGradient,
  70. guid,
  71. color,
  72. type2icon,
  73. randomArray,
  74. wranning,
  75. get: http.get,
  76. post: http.post,
  77. put: http.put,
  78. 'delete': http.delete,
  79. hexToRgb: colorGradient.hexToRgb,
  80. rgbToHex: colorGradient.rgbToHex,
  81. test,
  82. random,
  83. deepClone,
  84. deepMerge,
  85. getParent,
  86. $parent,
  87. addUnit,
  88. trim,
  89. type: ['primary', 'success', 'error', 'warning', 'info'],
  90. http,
  91. toast,
  92. config, // uView配置信息相关,比如版本号
  93. zIndex
  94. }
  95. const install = Vue => {
  96. Vue.mixin(mixin)
  97. if (Vue.prototype.openShare) {
  98. Vue.mixin(mpShare);
  99. }
  100. // Vue.mixin(vuexStore);
  101. // 时间格式化,同时两个名称,date和timeFormat
  102. Vue.filter('timeFormat', (timestamp, format) => {
  103. return timeFormat(timestamp, format)
  104. })
  105. Vue.filter('date', (timestamp, format) => {
  106. return timeFormat(timestamp, format)
  107. })
  108. // 将多久以前的方法,注入到全局过滤器
  109. Vue.filter('timeFrom', (timestamp, format) => {
  110. return timeFrom(timestamp, format)
  111. })
  112. Vue.prototype.$u = $u
  113. }
  114. export default {
  115. install
  116. }