main.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. import Vue from 'vue'
  2. import App from './App'
  3. import store from "store";
  4. import uView from "uview-ui";
  5. Vue.use(uView);
  6. Vue.config.productionTip = false
  7. import {
  8. setStorage,
  9. getStorage,
  10. removeStorage
  11. } from "@/common/utils/storage.js"
  12. // #ifdef H5
  13. // 解析地址栏参数
  14. function getQueryVariable(variable) {
  15. // 从?开始获取后面的所有数据
  16. var query = window.location.search.substring(1);
  17. // 从字符串&开始分隔成数组split
  18. var vars = query.split('&');
  19. // 遍历该数组
  20. for (var i = 0; i < vars.length; i++) {
  21. // 从等号部分分割成字符
  22. var pair = vars[i].split('=');
  23. // 如果第一个元素等于 传进来的参的话 就输出第二个元素
  24. if (pair[0] == variable) {
  25. return (pair[1]);
  26. }
  27. }
  28. return undefined;
  29. }
  30. if (getQueryVariable("x-token")) {
  31. setStorage('token', getQueryVariable("x-token") || '')
  32. }
  33. if (getQueryVariable("openId")) {
  34. setStorage('openId', getQueryVariable("openId") || '')
  35. }
  36. if (getQueryVariable("username")) {
  37. setStorage('name', getQueryVariable("username") || '')
  38. }
  39. if (getQueryVariable("useravatar")) {
  40. setStorage('avatar', getQueryVariable("useravatar") || '')
  41. }
  42. if (getQueryVariable("userId")) {
  43. setStorage('userId', getQueryVariable("userId") || '')
  44. }
  45. if (getQueryVariable("mobile")) {
  46. setStorage('mobile', getQueryVariable("mobile") || '')
  47. }
  48. if (getQueryVariable("miniProgram")) {
  49. setStorage('miniProgram', getQueryVariable("miniProgram") || '')
  50. }
  51. if (getQueryVariable("appId")) {
  52. setStorage('appId', getQueryVariable("appId") || '')
  53. }
  54. if (getQueryVariable("miniOpenId")) {
  55. setStorage('miniOpenId', getQueryVariable("miniOpenId") || '')
  56. }
  57. if (getQueryVariable("sharerOpenId")) {
  58. setStorage('sharerOpenId', getQueryVariable("sharerOpenId") || '')
  59. }
  60. // #endif
  61. import {
  62. Base64
  63. } from 'js-base64'
  64. Vue.prototype.$Base64 = Base64
  65. import {
  66. toast,
  67. successToast,
  68. showLoading,
  69. tipLoading,
  70. hideLoading,
  71. modal,
  72. tips,
  73. navPage,
  74. redPage,
  75. backPage,
  76. callPhone,
  77. copy,
  78. openLocation,
  79. getLocation,
  80. getAddress,
  81. getNowDate,
  82. getNowDatetime,
  83. } from "common/utils/common"
  84. import {
  85. navToPage
  86. } from "common/utils/navPag"
  87. Vue.prototype.$navToPage = navToPage;
  88. Vue.prototype.$H5Href = process.env.VUE_APP_HREF;
  89. Vue.prototype.$toast = toast;
  90. Vue.prototype.$successToast = successToast;
  91. Vue.prototype.$showLoading = showLoading;
  92. Vue.prototype.$tipLoading = tipLoading;
  93. Vue.prototype.$hideLoading = hideLoading;
  94. Vue.prototype.$modal = modal;
  95. Vue.prototype.$tips = tips;
  96. Vue.prototype.$navPage = navPage;
  97. Vue.prototype.$redPage = redPage;
  98. Vue.prototype.$backPage = backPage;
  99. Vue.prototype.$callPhone = callPhone;
  100. Vue.prototype.$copy = copy;
  101. Vue.prototype.$openLocation = openLocation;
  102. Vue.prototype.$getLocation = getLocation;
  103. Vue.prototype.$getAddress = getAddress;
  104. Vue.prototype.$getNowDate = getNowDate;
  105. Vue.prototype.$getNowDatetime = getNowDatetime;
  106. Vue.prototype.$setStorage = setStorage;
  107. Vue.prototype.$getStorage = getStorage;
  108. Vue.prototype.$removeStorage = removeStorage;
  109. // 注入全局
  110. import pages from 'mixins';
  111. Vue.mixin(pages);
  112. App.mpType = 'app'
  113. import api from '@/common/http/'
  114. Vue.prototype.$api = api
  115. import * as filters from './filters/index.js' // global filters
  116. // register global utility filters
  117. Object.keys(filters).forEach(key => {
  118. Vue.filter(key, filters[key])
  119. })
  120. Vue.prototype.$onLaunched = new Promise((resolve, reject) => {
  121. Vue.prototype.$isResolve = resolve
  122. Vue.prototype.$isReject = reject
  123. })
  124. import custom from '@/components/custom.vue';
  125. import Loading from '@/components/Loading.vue';
  126. import zjPageLayout from "@/components/zj-container/zj-page-layout.vue"
  127. Vue.component('custom', custom);
  128. Vue.component('Loading', Loading);
  129. Vue.component('zjPageLayout', zjPageLayout);
  130. import floatButton from '@/components/floatButton.vue';
  131. Vue.component('floatButton', floatButton)
  132. import {
  133. getUserInfo,
  134. getConfigInfo,
  135. getTemplateInfo,
  136. } from "@/common/utils/util.js";
  137. Vue.prototype.$getUserInfo = getUserInfo;
  138. Vue.prototype.$getConfigInfo = getConfigInfo;
  139. Vue.prototype.$getTemplateInfo = getTemplateInfo;
  140. // #ifdef H5
  141. import {
  142. router,
  143. RouterMount
  144. } from 'router'
  145. Vue.use(router)
  146. import Mylink from 'uni-simple-router/dist/link.vue'
  147. // 组件式导航
  148. Vue.component('my-link', Mylink)
  149. // #endif
  150. // 渲染图片文件
  151. Vue.prototype.$imageUrl = process.env.VUE_APP_BASE_URL + process.env.VUE_APP_BASE_API + '/common/img/get?key=';
  152. const app = new Vue({
  153. ...App,
  154. store
  155. })
  156. //v1.3.5起 H5端 你应该去除原有的app.$mount();使用路由自带的渲染方式
  157. // #ifdef H5
  158. RouterMount(app, router, '#app')
  159. // #endif
  160. // #ifndef H5
  161. app.$mount(); //为了兼容小程序及app端必须这样写才有效果
  162. // #endif