main.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import Vue from 'vue'
  2. import App from './App'
  3. import router from './router'
  4. import store from './store'
  5. import echarts from 'echarts'
  6. import moment from 'moment' // 时间库
  7. import '@/permission'
  8. import '@/utils/validator'
  9. import '@/assets/css/reset.css'
  10. import '@/attendanceSet' // 考勤相关
  11. import '@/performanceSet' // 绩效系统相关配置
  12. import icon from 'vue2-svg-icon/Icon'
  13. import VueScroller from '@/components/scroller/src'
  14. import noData from '@/components/noData'
  15. import userImage from '@/components/user_image'
  16. import * as socketApi from '@/api/websocket'
  17. import * as socketApiTow from '@/api/websocketTow'
  18. import axios from '@/utils/axios'
  19. import axiosKq from '@/utils/axiosKq'
  20. import axiosUser from '@/utils/axiosUser'
  21. import axiosKc from '@/utils/axiosKc'
  22. import 'shepherd.js/dist/css/shepherd.css';
  23. // import 'vant/lib/index.css';
  24. import {
  25. Tabbar,
  26. Empty,
  27. TabbarItem,
  28. ShareSheet,
  29. Loading,
  30. Divider,
  31. Overlay,
  32. Grid,
  33. GridItem,
  34. Form,
  35. Field,
  36. NavBar,
  37. Row,
  38. Col,
  39. List,
  40. Picker,
  41. Cell,
  42. CellGroup,
  43. Toast,
  44. Popup,
  45. Dialog,
  46. RadioGroup,
  47. Radio,
  48. Notify,
  49. Button,
  50. Icon,
  51. Tab,
  52. Tabs,
  53. Collapse,
  54. CollapseItem
  55. } from 'vant'
  56. /*element ui*/
  57. import {
  58. Tree as ELTree,
  59. Button as ELButton,
  60. Drawer as ELDrawer,
  61. } from 'element-ui'
  62. import 'element-ui/lib/theme-chalk/index.css';
  63. import {
  64. getWxToken,
  65. setWxToken,
  66. getIsIdentity,
  67. supremeAuthority,
  68. getIsWx,
  69. getTypes,
  70. getTypesName,
  71. getUserData,
  72. getEmployeeMap,
  73. getCache,
  74. setCache,
  75. removeCache,
  76. returnDeptName,
  77. getEmployeeMapItem,
  78. returnFh
  79. } from '@/utils/auth'
  80. Vue.prototype.$echarts = echarts
  81. Vue.prototype.$moment = moment
  82. Vue.prototype.$getTypesName = getTypesName
  83. Vue.prototype.$getTypes = getTypes()
  84. Vue.prototype.$userInfo = getUserData;
  85. Vue.prototype.$getEmployeeMap = getEmployeeMap
  86. Vue.prototype.$getEmployeeMapItem = getEmployeeMapItem
  87. Vue.prototype.$getCache = getCache
  88. Vue.prototype.$setCache = setCache
  89. Vue.prototype.$getIsIdentity = getIsIdentity
  90. Vue.prototype.$supremeAuthority = supremeAuthority
  91. Vue.prototype.$axios = axios
  92. Vue.prototype.$axiosUser = axiosUser
  93. Vue.prototype.$axiosKq = axiosKq
  94. Vue.prototype.$axiosKc = axiosKc
  95. Vue.prototype.$removeCache = removeCache
  96. Vue.prototype.$returnDeptName = returnDeptName
  97. Vue.prototype.$socketApi = socketApi //长连接
  98. Vue.prototype.$socketApiTow = socketApiTow //长连接
  99. Vue.prototype.$returnFh = returnFh
  100. Vue.prototype.$isWx = getIsWx()
  101. // localStorage.setItem('Wx-Token','eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE3ODIzNDkxMTYyMzI4OTI0MTcsIm5iZiI6MTcxMzg0MzIzMjY2Niwicm9sZSI6Im1rdF91c2VyIiwicHJ2IjoiMGU1ZWM0NzM3NDk3NmFmY2NlZGJiY2Y1ZGVlNzVmMDE0Y2E1YjliNSIsImV4cCI6LTEsImlhdCI6MTcxMzg0MzIzMjY2NiwianRpIjoieGJ5N3ljbWxqNGduYXcybyJ9.Iv04__mjBDEV75QU8kbrJX2umQIKDZE87-kTD5LG4vg')
  102. // localStorage.setItem('wx_user_info',JSON.stringify({"id":"1782349116232892417","name":"雷阳","mobile":"15270803986","statistics":{"teamAmount":0,"saleAmount":0},"imgUrl":"","marketable":1,"utoken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE3ODIzNDkxMTYyMzI4OTI0MTcsIm5iZiI6MTcxMzg0MzIzMjY2Niwicm9sZSI6Im1rdF91c2VyIiwicHJ2IjoiMGU1ZWM0NzM3NDk3NmFmY2NlZGJiY2Y1ZGVlNzVmMDE0Y2E1YjliNSIsImV4cCI6LTEsImlhdCI6MTcxMzg0MzIzMjY2NiwianRpIjoieGJ5N3ljbWxqNGduYXcybyJ9.Iv04__mjBDEV75QU8kbrJX2umQIKDZE87-kTD5LG4vg"}))
  103. // true为APP打包,false为M端打包
  104. Vue.prototype.$isApp = true
  105. Vue.use(VueScroller)
  106. Vue.component('icon', icon)
  107. Vue.component('noData', noData)
  108. Vue.component('userImage', userImage)
  109. /*element ui 按需引入*/
  110. Vue.use(ELTree).use(ELButton).use(ELDrawer)
  111. Vue.use(Button).use(Tabbar).use(TabbarItem).use(ShareSheet).use(Grid).use(Overlay).use(Loading).use(Divider).use(
  112. GridItem).use(Picker).use(Form).use(Field).use(List).use(Tabs).use(Tab).use(NavBar).use(Row).use(Col).use(Cell).use(
  113. CellGroup).use(Toast).use(Popup).use(Dialog).use(RadioGroup).use(Radio).use(Icon).use(Notify).use(Empty).use(Collapse).use(CollapseItem)
  114. Vue.prototype.$route_back = function(setp) {
  115. if (typeof(setp) == 'undefined') {
  116. setp = -1
  117. }
  118. if (window.history.length <= 1 && window.plus) {
  119. //先关掉键盘再
  120. document.activeElement.blur()
  121. setTimeout(() => {
  122. plus.webview.currentWebview().close()
  123. }, 100)
  124. } else {
  125. router.go(-1)
  126. }
  127. }
  128. Vue.directive('isKeyboard', function(el) {
  129. let isAndroid = true;
  130. if (navigator.userAgent.indexOf('Android') > 0) {
  131. isAndroid = true;
  132. } else {
  133. isAndroid = false;
  134. }
  135. if (isAndroid) {
  136. //获取原窗口的高度
  137. var originalHeight = document.documentElement.clientHeight || document.body.clientHeight;
  138. window.onresize = function() {
  139. //键盘弹起与隐藏都会引起窗口的高度发生变化
  140. var resizeHeight = document.documentElement.clientHeight || document.body.clientHeight;
  141. if (resizeHeight - 0 < originalHeight - 0) {
  142. // console.log("键盘收起")
  143. el.style['display'] = 'none'
  144. } else {
  145. // console.log("键盘放下")
  146. el.style['display'] = 'block'
  147. }
  148. };
  149. } else { // ios:focusin和focusout支持冒泡,对应focus和blur, 使用focusin和focusout的原因是focusin和focusout可以冒泡,focus和blur不会冒泡,这样就可以使用事件代理,处理多个输入框存在的情况。
  150. document.body.addEventListener("focusin", () => {
  151. //软键盘弹出的事件处理
  152. el.style['display'] = 'none'
  153. });
  154. document.body.addEventListener("focusout", () => {
  155. //软键盘收起的事件处理
  156. el.style['display'] = 'block'
  157. });
  158. }
  159. })
  160. Vue.config.productionTip = false
  161. window.VueObj = new Vue({
  162. el: '#app',
  163. router,
  164. store,
  165. components: {
  166. App
  167. },
  168. template: '<App/>'
  169. })