main.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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. // ElementUI 放置最前,Antd放置于后
  10. import ElementUI from 'element-ui';
  11. import 'element-ui/lib/theme-chalk/index.css';
  12. // ElementUI分页组件
  13. import Pagination from "@/components/Pagination";
  14. Vue.component('Pagination', Pagination);
  15. import ViewUI from "view-design";
  16. import "view-design/dist/styles/iview.css";
  17. require('@jeecg/antd-online-mini')
  18. require('@jeecg/antd-online-mini/dist/OnlineForm.css')
  19. import Antd, { version } from 'ant-design-vue'
  20. console.log('ant-design-vue version:', version)
  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 '@babel/polyfill'*/
  27. import preview from 'vue-photo-preview'
  28. import 'vue-photo-preview/dist/skin.css'
  29. import SSO from '@/cas/sso.js'
  30. import {
  31. ACCESS_TOKEN,
  32. DEFAULT_COLOR,
  33. DEFAULT_THEME,
  34. DEFAULT_LAYOUT_MODE,
  35. DEFAULT_COLOR_WEAK,
  36. SIDEBAR_TYPE,
  37. DEFAULT_FIXED_HEADER,
  38. DEFAULT_FIXED_HEADER_HIDDEN,
  39. DEFAULT_FIXED_SIDEMENU,
  40. DEFAULT_CONTENT_WIDTH_TYPE,
  41. DEFAULT_MULTI_PAGE
  42. } from "@/store/mutation-types"
  43. import config from '@/defaultSettings'
  44. import JDictSelectTag from './components/dict/index.js'
  45. import hasPermission from '@/utils/hasPermission'
  46. import vueBus from '@/utils/vueBus';
  47. import JeecgComponents from '@/components/jeecg/index'
  48. import '@/assets/less/JAreaLinkage.less'
  49. import VueAreaLinkage from 'vue-area-linkage'
  50. import '@/components/jeecg/JVxeTable/install'
  51. import '@/components/JVxeCells/install'
  52. //For IM add by nbacheng 2022-08-17
  53. import { dateStr, formatDateTime } from "@/utils/im/ChatUtils.js";
  54. if (process.env.VUE_APP_MODE === "web") {
  55. Vue.prototype.winControl = require("@/mode/webControl").default;
  56. }
  57. //For erp add by nbacheng 2022-08-25
  58. import utils from '@/utils/utils'
  59. //for formdesigner add by nbchang 2022-09-03
  60. import formDesigner from '@/components/formdesigner/components/index'
  61. import '@/components/formdesigner/assets/iconfont/iconfont.js'
  62. //for highlightjs add by nbchang 2022-09-20
  63. //import highlightPlugin from "@highlightjs/vue-plugin";
  64. //import 'highlight.js/styles/dark.css'; // 引入内置样式
  65. // 引入bpmn-process-designer插件 add by nbacheng 2022-09-29
  66. import "@/plugins/package/theme/element-variables.scss";
  67. import "@/plugins/package/theme/index.scss";
  68. import { vuePlugin } from "@/plugins/package/highlight";
  69. import "highlight.js/styles/atom-one-dark-reasonable.css";
  70. Vue.use(vuePlugin);
  71. // 引入bpmn插件
  72. import "bpmn-js/dist/assets/diagram-js.css";
  73. import "bpmn-js/dist/assets/bpmn-font/css/bpmn.css";
  74. import "bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css";
  75. // 大屏引入 add by nbacheng2023-03-22
  76. import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
  77. import 'normalize.css/normalize.css'// A modern alternative to CSS resets
  78. import echarts from 'echarts';
  79. // 全局定义echarts
  80. import ECharts from 'vue-echarts'
  81. import 'echarts/lib/chart/bar'
  82. import 'echarts/lib/component/tooltip'
  83. Vue.component('bs-chart', ECharts) //不能用v-chart,否则有问题
  84. import Avue from '@smallwei/avue';
  85. import '@smallwei/avue/lib/index.css';
  86. Vue.use(Avue);
  87. // 大屏引入 add by nbacheng2023-03-22
  88. // 网盘引入全局函数
  89. import globalFunction from '@/libs/globalFunction/index.js'
  90. // 网盘引入文件操作相关插件
  91. import fileOperationPlugins from '@/plugins/netdisk/fileOperationPlugins.js'
  92. /**
  93. * vue-simple-uploader 中文官方文档 https://github.com/simple-uploader/vue-uploader/blob/master/README_zh-CN.md
  94. * simple-uploader.js 中文官方文档 https://github.com/simple-uploader/Uploader/blob/develop/README_zh-CN.md
  95. */
  96. import uploader from 'vue-simple-uploader'
  97. // collapse 展开折叠
  98. import CollapseTransition from 'element-ui/lib/transitions/collapse-transition'
  99. Vue.use(uploader)
  100. // 网盘引入
  101. // add by nbacheng 2023-07-03 for teamwork
  102. import VueClipboards from 'vue-clipboards';
  103. Vue.use(VueClipboards);
  104. import vuescroll from 'vuescroll';
  105. import 'vuescroll/dist/vuescroll.css';
  106. Vue.use(vuescroll);
  107. Vue.prototype.$vuescrollConfig = {
  108. vuescroll: {
  109. mode: 'native'
  110. },
  111. scrollPanel: {
  112. scrollingX: true,
  113. },
  114. bar: {
  115. delayTime: 500,
  116. onlyShowBarOnScroll: false,
  117. background: "#cecece",
  118. keepShow: false
  119. }
  120. };
  121. // add by nbacheng 2023-07-03
  122. //For IM add by nbacheng 2022-08-17
  123. Vue.use(ElementUI, { zhLocale });
  124. Vue.use(ViewUI);
  125. //for formdesigner add by nbchang 2022-09-03
  126. Vue.use(formDesigner);
  127. //Vue.use(highlightPlugin);//for highlightjs add by nbchang 2022-09-20
  128. //表单验证
  129. import { rules } from '@/utils/rules'
  130. Vue.prototype.rules = rules
  131. Vue.config.productionTip = false
  132. //IM
  133. Vue.prototype.formatDateTime = formatDateTime;
  134. Vue.prototype.dateStr = dateStr;
  135. //For erp add by nbacheng 2022-08-25
  136. Vue.prototype.$utils = utils
  137. //For netdisk add by nbacheng 2023-04-07
  138. for (let key in globalFunction) {
  139. Vue.prototype[`$${key}`] = globalFunction[key]
  140. }
  141. for (let key in fileOperationPlugins) {
  142. Vue.prototype[`$${key}`] = fileOperationPlugins[key]
  143. }
  144. Vue.use(Storage, config.storageOptions)
  145. Vue.use(Antd)
  146. Vue.use(VueAxios, router)
  147. Vue.use(Viser)
  148. Vue.use(hasPermission)
  149. Vue.use(JDictSelectTag)
  150. Vue.use(Print)
  151. Vue.use(preview)
  152. Vue.use(vueBus);
  153. Vue.use(JeecgComponents);
  154. Vue.use(VueAreaLinkage);
  155. SSO.init(() => {
  156. main()
  157. })
  158. function main() {
  159. new Vue({
  160. router,
  161. store,
  162. mounted () {
  163. store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
  164. store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
  165. store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
  166. store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
  167. store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
  168. store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
  169. store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
  170. store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
  171. store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
  172. store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
  173. store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage))
  174. },
  175. render: h => h(App)
  176. }).$mount('#app')
  177. }