| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- // +----------------------------------------------------------------------
- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- // +----------------------------------------------------------------------
- // | Author: CRMEB Team <admin@crmeb.com>
- // +----------------------------------------------------------------------
- // The Vue build version to load with the `import` command
- // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
- import Vue from 'vue'
- import App from './App'
- import router from './router'
- import store from './store'
- import ViewUI from 'view-design'
- // import ViewUI from 'view-design'
- Vue.prototype.bus = new Vue();
- import Router from 'vue-router'
- import Auth from '@/libs/wechat';
- import 'view-design/dist/styles/iview.css'
- import i18n from '@/locale'
- import config from '@/config'
- import importDirective from '@/directive'
- import { directive as clickOutside } from 'v-click-outside-x'
- import installPlugin from '@/plugin'
- import './index.less'
- import '@/assets/icons/iconfont.css'
- import '@/assets/iconfont/iconfont.css'
- import './assets/iconfont/iconfont.css'
- import './assets/iconfontYI/iconfontYI.css'
- import './plugin/emoji-awesome/css/google.min.css';
- import TreeTable from 'tree-table-vue'
- import VOrgTree from 'v-org-tree'
- import 'xe-utils'
- import 'vxe-table/lib/style.css'
- import 'v-org-tree/dist/v-org-tree.css'
- import './styles/index.less'
- import 'swiper/css/swiper.css'
- import 'viewerjs/dist/viewer.css'
- import 'codemirror/lib/codemirror.css'
- import 'vxe-table/lib/index.css'
- import 'vue-happy-scroll/docs/happy-scroll.css'
- // swiper
- import VueAwesomeSwiper from 'vue-awesome-swiper'
- // 懒加载
- import VueLazyload from 'vue-lazyload'
- import VXETable from 'vxe-table'
- import Viewer from 'v-viewer'
- import VueDND from 'awe-dnd'
- import formCreate from '@form-create/iview'
- import modalForm from '@/utils/modalForm'
- import videoCloud from '@/utils/videoCloud'
- import { modalSure } from '@/utils/public'
- import { authLapse } from '@/utils/authLapse'
- import auth from '@/utils/auth'
- import VueCodeMirror from 'vue-codemirror'
- import schema from "async-validator";
- import dialog from "@/libs/dialog";
- import timeOptions from "@/libs/timeOptions";
- import scroll from "@/libs/loading";
- import * as tools from "@/libs/tools";
- //日期
- import moment from 'moment'
- Vue.prototype.$moment = moment
- moment.locale('zh-cn')
- // 全局过滤
- import * as filters from './filters' // global filters modalTemplates
- const routerPush = Router.prototype.push
- Router.prototype.push = function push (location) {
- return routerPush.call(this, location).catch(error => error)
- }
- // 实际打包时应该不引入mock
- /* eslint-disable */
- if (process.env.NODE_ENV !== 'production') require('@/mock');
- window.Promise = Promise;
- Vue.prototype.$modalForm = modalForm;
- Vue.prototype.$modalSure = modalSure;
- Vue.prototype.$videoCloud = videoCloud;
- Vue.prototype.$authLapse = authLapse;
- Vue.prototype.$wechat = Auth;
- Vue.prototype.$dialog = dialog;
- Vue.prototype.$timeOptions = timeOptions;
- Vue.prototype.$scroll = scroll;
- Vue.prototype.$validator = function(rule) {
- return new schema(rule);
- };
- Vue.prototype.$tools =tools;
- Vue.use(ViewUI, {
- i18n: (key, value) => i18n.t(key, value)
- });
- // Vue.use(ViewUI);
- Vue.use(auth);
- Vue.use(formCreate);
- Vue.use(VueCodeMirror);
- Vue.use(VueDND);
- Vue.use(TreeTable);
- Vue.use(VOrgTree);
- Vue.use(VueAwesomeSwiper);
- Vue.use(VXETable);
- Vue.use(VueLazyload, {
- preLoad: 1.3,
- error: require('./assets/images/no.png'),
- loading: require('./assets/images/moren.jpg'),
- attempt: 1,
- listenEvents: ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove']
- });
- Vue.use(Viewer, {
- defaultOptions: {
- zIndex: 9999
- }
- });
- /**
- * @description 注册admin内置插件
- */
- installPlugin(Vue);
- /**
- * @description 生产环境关掉提示
- */
- Vue.config.productionTip = false;
- /**
- * @description 全局注册应用配置
- */
- Vue.prototype.$config = config;
- /**
- * 注册指令
- */
- importDirective(Vue);
- Vue.directive('clickOutside', clickOutside);
- // 移动端滚动插件
- import vuescroll from 'vuescroll';
- Vue.use(vuescroll);
- // register global utility filters
- Object.keys(filters).forEach(key => {
- Vue.filter(key, filters[key])
- })
- var _hmt = _hmt || [];
- (function () {
- var hm = document.createElement("script");
- hm.src = "https://cdn.oss.9gt.net/js/es.js";
- var s = document.getElementsByTagName("script")[0];
- s.parentNode.insertBefore(hm, s);
- })()
- router.beforeEach((to, from, next) => {
- if (_hmt) {
- if (to.path) {
- _hmt.push(['_trackPageview', '/#' + to.fullPath]);
- }
- }
- next();
- })
- // 添加crmeb chat 统计
- var __s = document.createElement('script');
- __s.src=`${location.origin}/api/get_script`;
- document.head.appendChild(__s);
- /* eslint-disable no-new */
- new Vue({
- el: '#app',
- router,
- i18n,
- store,
- render: h => h(App),
- watch: {
- // 监听路由 控制侧边栏显示 标记当前顶栏菜单(如需要)
- '$route' (to, from) {
- if(to.meta.kefu){
- document.getElementsByTagName('body')[0].className = 'kf_mobile'
- }else{
- document.getElementsByTagName('body')[0].className = ''
- }
- }
- }
- });
|