main.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /** init domain config */
  2. import './config'
  3. import Vue from 'vue'
  4. import App from './App.vue'
  5. import Storage from 'vue-ls'
  6. import router from './router'
  7. import store from './store/'
  8. import EventBus from "@/EventBus";
  9. import { VueAxios } from "@/utils/request"
  10. //本地化部署,避免使用ArcGIS在线引用,因为ArcGIS服务器不稳定,经常访问不到
  11. import esriConfig from "@arcgis/core/config";
  12. esriConfig.assetsPath = "./assets";
  13. import '@arcgis/core/assets/esri/themes/light/main.css';
  14. // esriConfig.request.corsEnabledServers.push("localhost:8080");//设置地图服务器已允许跨域
  15. require('@jeecg/antd-online-mini')
  16. require('@jeecg/antd-online-mini/dist/OnlineForm.css')
  17. esriConfig.fontsUrl='./assets'
  18. import Antd, { version } from 'ant-design-vue'
  19. console.log('ant-design-vue version:', version)
  20. esriConfig.request.corsEnabledServers.push("localhost:8080");//设置地图服务器已允许跨域
  21. import Viser from 'viser-vue'
  22. import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less'
  23. import '@/permission' // permission control
  24. import '@/utils/filter' // base filter
  25. import Print from 'vue-print-nb-jeecg'
  26. import ImageViewer from 'vue2-viewer';
  27. /*import '@babel/polyfill'*/
  28. import preview from 'vue-photo-preview'
  29. import 'vue-photo-preview/dist/skin.css'
  30. import SSO from '@/cas/sso.js'
  31. import {
  32. ACCESS_TOKEN,
  33. DEFAULT_COLOR,
  34. DEFAULT_THEME,
  35. DEFAULT_LAYOUT_MODE,
  36. DEFAULT_COLOR_WEAK,
  37. SIDEBAR_TYPE,
  38. DEFAULT_FIXED_HEADER,
  39. DEFAULT_FIXED_HEADER_HIDDEN,
  40. DEFAULT_FIXED_SIDEMENU,
  41. DEFAULT_CONTENT_WIDTH_TYPE,
  42. DEFAULT_MULTI_PAGE
  43. } from "@/store/mutation-types"
  44. import config from '@/defaultSettings'
  45. import JDictSelectTag from './components/dict/index.js'
  46. import hasPermission from '@/utils/hasPermission'
  47. import vueBus from '@/utils/vueBus';
  48. import JeecgComponents from '@/components/jeecg/index'
  49. import '@/assets/less/JAreaLinkage.less'
  50. import VueAreaLinkage from 'vue-area-linkage'
  51. import '@/components/jeecg/JVxeTable/install'
  52. import '@/components/JVxeCells/install'
  53. //表单验证
  54. import { rules } from '@/utils/rules'
  55. Vue.prototype.rules = rules
  56. Vue.config.productionTip = false
  57. Vue.prototype.$EventBus= new Vue()
  58. // esriConfig.defaults.io.proxyUrl = "http://localhost/Java/proxy.jsp";
  59. Vue.use(ImageViewer,{});
  60. Vue.use(Storage, config.storageOptions)
  61. Vue.use(Antd)
  62. Vue.use(VueAxios, router)
  63. Vue.use(Viser)
  64. Vue.use(hasPermission)
  65. Vue.use(JDictSelectTag)
  66. Vue.use(Print)
  67. Vue.use(preview)
  68. Vue.use(vueBus);
  69. Vue.use(JeecgComponents);
  70. Vue.use(VueAreaLinkage);
  71. //拖拽事件
  72. Vue.directive('drag', {
  73. inserted: function(el, binding, vnode) {
  74. //获取拖拽主体
  75. var pannel = document.querySelector(`${binding.value}`);
  76. //整体拖拽物
  77. var all = el;
  78. //当鼠标点击时触发
  79. pannel.onmousedown = fndrag;
  80. function fndrag(event) {
  81. //获取鼠标距离窗口的位置
  82. var disX = event.clientX - all.offsetLeft;
  83. var disY = event.clientY - all.offsetTop;
  84. //鼠标移动
  85. document.onmousemove = function(event) {
  86. all.style.zIndex=1000;
  87. var e = event || window.event;
  88. fnmove(e, disX, disY);
  89. }
  90. //放开鼠标
  91. document.onmouseup = function() {
  92. document.onmouseup = null;
  93. document.onmousemove = null;
  94. all.style.zIndex=100;
  95. }
  96. }
  97. function fnmove(e, disX, disY) {
  98. //获取窗口的位置(左上角)
  99. var l = e.clientX - disX;
  100. var t = e.clientY - disY;
  101. //获取可视窗口的长宽,兼容浏览器
  102. var winWid = document.documentElement.clientWidth || document.body.clientWidth;
  103. var winHei = document.documentElement.clientHeight || document.body.clientHeight;
  104. //获取窗口的最大宽度和长度(左上角)
  105. var maxWid = winWid - all.offsetWidth;
  106. var maxHei = winHei - all.offsetHeight;
  107. //超出左边间距
  108. // console.log(t)
  109. if (l < 228) {
  110. l = 228;
  111. }
  112. //超出右边间距
  113. else if (l > maxWid) {
  114. l = maxWid;
  115. }
  116. //超出上面距离
  117. if (t < 115) {
  118. t = 115;
  119. } else if (t > maxHei) {
  120. t = maxHei;
  121. }
  122. // all.style.left = l + "px";
  123. all.style.right =winWid - all.offsetWidth - l + "px";
  124. all.style.top = t + "px";
  125. }
  126. }
  127. });
  128. SSO.init(() => {
  129. main()
  130. })
  131. function main() {
  132. new Vue({
  133. router,
  134. store,
  135. mounted () {
  136. store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
  137. store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
  138. store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
  139. store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
  140. store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
  141. store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
  142. store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
  143. store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
  144. store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
  145. store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
  146. store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage))
  147. },
  148. render: h => h(App)
  149. }).$mount('#app')
  150. }