index.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // 引入全局mixin
  2. import mixin from './libs/mixin/mixin.js';
  3. // 小程序特有的mixin
  4. import mpMixin from './libs/mixin/mpMixin.js';
  5. // 全局挂载引入http相关请求拦截插件
  6. import Request from './libs/luch-request';
  7. // 路由封装
  8. import route from './libs/util/route.js';
  9. // 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制
  10. import colorGradient from './libs/function/colorGradient.js';
  11. // 规则检验
  12. import test from './libs/function/test.js';
  13. // 防抖方法
  14. import debounce from './libs/function/debounce.js';
  15. // 节流方法
  16. import throttle from './libs/function/throttle.js';
  17. // 公共文件写入的方法
  18. import index from './libs/function/index.js';
  19. // 配置信息
  20. import config from './libs/config/config.js';
  21. // 主题配置
  22. import theme from './libs/config/theme.js';
  23. // 平台
  24. import platform from './libs/function/platform';
  25. // 国际化
  26. import { $t, VueI18n, createI18n } from './locale';
  27. const http = new Request();
  28. const $u = {
  29. date: index.timeFormat, // 另名date
  30. colorGradient: colorGradient.colorGradient,
  31. hexToRgb: colorGradient.hexToRgb,
  32. rgbToHex: colorGradient.rgbToHex,
  33. colorToRgba: colorGradient.colorToRgba,
  34. darkenColor: colorGradient.darkenColor,
  35. route,
  36. test,
  37. type: ['primary', 'success', 'error', 'warning', 'info'],
  38. http,
  39. config, // uView配置信息相关,比如版本号
  40. debounce,
  41. throttle,
  42. mixin,
  43. mpMixin,
  44. theme,
  45. platform,
  46. $t,
  47. ...index
  48. };
  49. // $u挂载到uni对象上
  50. uni.$u = $u;
  51. const install = (Vue, Params) => {
  52. // #ifdef VUE2
  53. // 时间格式化,同时两个名称,date和timeFormat
  54. Vue.filter('timeFormat', (timestamp, format) => uni.$u.timeFormat(timestamp, format));
  55. Vue.filter('date', (timestamp, format) => uni.$u.timeFormat(timestamp, format));
  56. // 将多久以前的方法,注入到全局过滤器
  57. Vue.filter('timeFrom', (timestamp, format) => uni.$u.timeFrom(timestamp, format));
  58. Vue.prototype.$t = uni.$u.$t;
  59. // 同时挂载到uni和Vue.prototype中
  60. // #ifndef APP-NVUE
  61. Vue.prototype.$u = $u;
  62. Vue.mixin(mixin);
  63. // #endif
  64. // #endif
  65. // 同时挂载到uni和app.config.globalProperties中
  66. // #ifdef VUE3
  67. Vue.config.globalProperties.$timeFormat = (timestamp, format) => uni.$u.timeFormat(timestamp, format);
  68. Vue.config.globalProperties.$date = (timestamp, format) => uni.$u.timeFormat(timestamp, format);
  69. Vue.config.globalProperties.$timeFrom = (timestamp, format) => uni.$u.timeFrom(timestamp, format);
  70. // #ifndef APP-NVUE
  71. Vue.mixin(mixin);
  72. // #endif
  73. // #endif
  74. if (Params) {
  75. uni.$u.setConfig(Params);
  76. }
  77. };
  78. export { VueI18n, createI18n, http, route, debounce, throttle, theme, platform };
  79. export default {
  80. install
  81. };