2022-10-28 17:58:53 +08:00

194 lines
5.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2022 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 VueTreeList from 'vue-tree-list';
Vue.use(VueTreeList);
// 版本升级
import upgrade from '@/components/upGrade/index.vue';
Vue.component('upgrade', upgrade);
//日期
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 = '';
}
},
},
});