2cc84ea3fbaa94edf4e30276b1fc8f26150cdc0a.svn-base 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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 { VueAxios } from "@/utils/request"
  9. require('@jeecg/antd-online-mini')
  10. require('@jeecg/antd-online-mini/dist/OnlineForm.css')
  11. import Antd, { version } from 'ant-design-vue'
  12. console.log('ant-design-vue version:', version)
  13. import Viser from 'viser-vue'
  14. import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less'
  15. import '@/permission' // permission control
  16. import '@/utils/filter' // base filter
  17. import Print from 'vue-print-nb-jeecg'
  18. import preview from 'vue-photo-preview'
  19. import 'vue-photo-preview/dist/skin.css'
  20. import SSO from '@/cas/sso.js'
  21. import {
  22. ACCESS_TOKEN,
  23. DEFAULT_COLOR,
  24. DEFAULT_THEME,
  25. DEFAULT_LAYOUT_MODE,
  26. DEFAULT_COLOR_WEAK,
  27. SIDEBAR_TYPE,
  28. DEFAULT_FIXED_HEADER,
  29. DEFAULT_FIXED_HEADER_HIDDEN,
  30. DEFAULT_FIXED_SIDEMENU,
  31. DEFAULT_CONTENT_WIDTH_TYPE,
  32. DEFAULT_MULTI_PAGE
  33. } from "@/store/mutation-types"
  34. import config from '@/defaultSettings'
  35. import JDictSelectTag from './components/dict/index.js'
  36. import hasPermission from '@/utils/hasPermission'
  37. import vueBus from '@/utils/vueBus';
  38. import JeecgComponents from '@/components/jeecg/index'
  39. import '@/assets/less/JAreaLinkage.less'
  40. import VueAreaLinkage from 'vue-area-linkage'
  41. import '@/components/jeecg/JVxeTable/install'
  42. import '@/components/JVxeCells/install'
  43. //表单验证
  44. import { rules } from '@/utils/rules'
  45. Vue.prototype.rules = rules
  46. Vue.config.productionTip = false
  47. Vue.use(Storage, config.storageOptions)
  48. Vue.use(Antd)
  49. Vue.use(VueAxios, router)
  50. Vue.use(Viser)
  51. Vue.use(hasPermission)
  52. Vue.use(JDictSelectTag)
  53. Vue.use(Print)
  54. Vue.use(preview)
  55. Vue.use(vueBus);
  56. Vue.use(JeecgComponents);
  57. Vue.use(VueAreaLinkage);
  58. //拖拽事件
  59. Vue.directive('drag', {
  60. inserted: function(el, binding, vnode) {
  61. //获取拖拽主体
  62. var pannel = document.querySelector(`${binding.value}`);
  63. //整体拖拽物
  64. var all = el;
  65. //当鼠标点击时触发
  66. pannel.onmousedown = fndrag;
  67. function fndrag(event) {
  68. //获取鼠标距离窗口的位置
  69. var disX = event.clientX - all.offsetLeft;
  70. var disY = event.clientY - all.offsetTop;
  71. //鼠标移动
  72. document.onmousemove = function(event) {
  73. all.style.zIndex=1000;
  74. var e = event || window.event;
  75. fnmove(e, disX, disY);
  76. }
  77. //放开鼠标
  78. document.onmouseup = function() {
  79. document.onmouseup = null;
  80. document.onmousemove = null;
  81. all.style.zIndex=100;
  82. }
  83. }
  84. function fnmove(e, disX, disY) {
  85. //获取窗口的位置(左上角)
  86. var l = e.clientX - disX;
  87. var t = e.clientY - disY;
  88. //获取可视窗口的长宽,兼容浏览器
  89. var winWid = document.documentElement.clientWidth || document.body.clientWidth;
  90. var winHei = document.documentElement.clientHeight || document.body.clientHeight;
  91. //获取窗口的最大宽度和长度(左上角)
  92. var maxWid = winWid - all.offsetWidth - 300;
  93. var maxHei = winHei - all.offsetHeight - 200;
  94. //超出左边间距
  95. if (l < 0) {
  96. l = 0;
  97. }
  98. //超出右边间距
  99. else if (l > maxWid) {
  100. l = maxWid;
  101. }
  102. //超出上面距离
  103. if (t < 0) {
  104. t = 10;
  105. } else if (t > maxHei) {
  106. t = maxHei;
  107. }
  108. all.style.left = l + "px";
  109. all.style.top = t + "px";
  110. }
  111. }
  112. });
  113. SSO.init(() => {
  114. main()
  115. })
  116. function main() {
  117. new Vue({
  118. router,
  119. store,
  120. mounted () {
  121. store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
  122. store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
  123. store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
  124. store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
  125. store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
  126. store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
  127. store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
  128. store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
  129. store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
  130. store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
  131. store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage))
  132. },
  133. render: h => h(App)
  134. }).$mount('#app')
  135. }