|
|
@@ -8,17 +8,13 @@
|
|
|
// | 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';
|
|
|
Vue.prototype.bus = new Vue();
|
|
|
-import Router from 'vue-router';
|
|
|
import Auth from '@/libs/wechat';
|
|
|
import { i18n } from '@/i18n/index.js';
|
|
|
-
|
|
|
import config from '@/config';
|
|
|
import importDirective from '@/directive';
|
|
|
import { directive as clickOutside } from 'v-click-outside-x';
|
|
|
@@ -28,16 +24,12 @@ import '@/assets/iconfont/iconfont.css';
|
|
|
import '@/theme/index.scss';
|
|
|
import Element from 'element-ui';
|
|
|
import 'element-ui/lib/theme-chalk/index.css';
|
|
|
-import { globalComponentSize } from '@/utils/componentSize.js';
|
|
|
-
|
|
|
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.scss';
|
|
|
import 'swiper/css/swiper.css';
|
|
|
@@ -45,10 +37,8 @@ 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 VueAwesomeSwiper from 'vue-awesome-swiper'; // swiper
|
|
|
+import VueLazyload from 'vue-lazyload'; // 懒加载
|
|
|
import VXETable, { t } from 'vxe-table';
|
|
|
import Viewer from 'v-viewer';
|
|
|
import VueDND from 'awe-dnd';
|
|
|
@@ -67,16 +57,12 @@ import * as tools from '@/libs/tools';
|
|
|
import VueTreeList from 'vue-tree-list';
|
|
|
import Pagination from '@/components/Pagination';
|
|
|
import pagesHeader from '@/components/pagesHeader';
|
|
|
+import vuescroll from 'vuescroll'; // 移动端滚动插件
|
|
|
+import VueClipboard from 'vue-clipboard2'; // 复制到粘贴板插件
|
|
|
|
|
|
// 全局组件挂载
|
|
|
Vue.component('Pagination', Pagination);
|
|
|
Vue.component('pagesHeader', pagesHeader);
|
|
|
-// 复制到粘贴板插件
|
|
|
-import VueClipboard from 'vue-clipboard2';
|
|
|
-
|
|
|
-VueClipboard.config.copyText = true;
|
|
|
-Vue.use(VueClipboard);
|
|
|
-Vue.use(VueTreeList);
|
|
|
|
|
|
//日期
|
|
|
import moment from 'moment';
|
|
|
@@ -85,28 +71,8 @@ moment.locale('zh-cn');
|
|
|
|
|
|
// 全局过滤
|
|
|
import * as filters from './filters'; // global filters modalTemplates
|
|
|
-
|
|
|
import settings from '@/setting';
|
|
|
-
|
|
|
-Vue.prototype.$routeProStr = settings.routePre;
|
|
|
-
|
|
|
-window.Promise = Promise;
|
|
|
-Vue.prototype.$modalForm = modalForm;
|
|
|
-Vue.prototype.$modalSure = modalSure;
|
|
|
-Vue.prototype.$exportExcel = exportExcel;
|
|
|
-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;
|
|
|
-
|
|
|
const messages = ['success', 'warning', 'info', 'error'];
|
|
|
-
|
|
|
messages.forEach((type) => {
|
|
|
Element.Message[type] = (options) => {
|
|
|
if (typeof options === 'string') {
|
|
|
@@ -121,6 +87,8 @@ messages.forEach((type) => {
|
|
|
return Element.Message(options);
|
|
|
};
|
|
|
});
|
|
|
+
|
|
|
+VueClipboard.config.copyText = true; // 复制到粘贴板插件
|
|
|
Vue.use(Element, { i18n: (key, value) => i18n.t(key, value), size: 'small' });
|
|
|
Vue.use(formCreate);
|
|
|
Vue.use(VueCodeMirror);
|
|
|
@@ -129,6 +97,7 @@ Vue.use(TreeTable);
|
|
|
Vue.use(VOrgTree);
|
|
|
Vue.use(VueAwesomeSwiper);
|
|
|
Vue.use(VXETable);
|
|
|
+Vue.use(vuescroll);
|
|
|
Vue.use(VueLazyload, {
|
|
|
preLoad: 1.3,
|
|
|
error: require('./assets/images/no.png'),
|
|
|
@@ -141,29 +110,45 @@ Vue.use(Viewer, {
|
|
|
zIndex: 9999,
|
|
|
},
|
|
|
});
|
|
|
+Vue.use(VueClipboard);
|
|
|
+Vue.use(VueTreeList);
|
|
|
+
|
|
|
/**
|
|
|
* @description 注册admin内置插件
|
|
|
*/
|
|
|
installPlugin(Vue);
|
|
|
+
|
|
|
/**
|
|
|
* @description 生产环境关掉提示
|
|
|
*/
|
|
|
Vue.config.productionTip = false;
|
|
|
+
|
|
|
/**
|
|
|
* @description 全局注册应用配置
|
|
|
*/
|
|
|
+window.Promise = Promise;
|
|
|
Vue.prototype.$config = config;
|
|
|
+Vue.prototype.$routeProStr = settings.routePre;
|
|
|
+Vue.prototype.$modalForm = modalForm;
|
|
|
+Vue.prototype.$modalSure = modalSure;
|
|
|
+Vue.prototype.$exportExcel = exportExcel;
|
|
|
+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.$tools = tools;
|
|
|
+Vue.prototype.$validator = function (rule) {
|
|
|
+ return new schema(rule);
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* 注册指令
|
|
|
*/
|
|
|
importDirective(Vue);
|
|
|
Vue.directive('clickOutside', clickOutside);
|
|
|
|
|
|
-// 移动端滚动插件
|
|
|
-import vuescroll from 'vuescroll';
|
|
|
-
|
|
|
-Vue.use(vuescroll);
|
|
|
-
|
|
|
// 注册全局 过滤器
|
|
|
Object.keys(filters).forEach((key) => {
|
|
|
Vue.filter(key, filters[key]);
|
|
|
@@ -188,33 +173,4 @@ new Vue({
|
|
|
i18n,
|
|
|
store,
|
|
|
render: (h) => h(App),
|
|
|
- watch: {
|
|
|
- // 监听路由 控制侧边栏显示 标记当前顶栏菜单(如需要)
|
|
|
- $route(to, from) {
|
|
|
- const onRoutes = to.meta.activeMenu ? to.meta.activeMenu : to.meta.path;
|
|
|
- this.$store.commit('menu/setActivePath', onRoutes);
|
|
|
- if (to.name == 'crud_crud') {
|
|
|
- this.$store.state.menus.oneLvRoutes.map((e) => {
|
|
|
- if (e.path === to.path) {
|
|
|
- to.meta.title = e.title;
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- if (
|
|
|
- [
|
|
|
- 'product_productAdd',
|
|
|
- 'marketing_bargainCreate',
|
|
|
- 'marketing_storeSeckillCreate',
|
|
|
- 'marketing_storeIntegralCreate',
|
|
|
- ].includes(to.name)
|
|
|
- ) {
|
|
|
- let route = to.matched[1].path.split(':')[0];
|
|
|
- this.$store.state.menus.oneLvRoutes.map((e) => {
|
|
|
- if (route.indexOf(e.path) != -1) {
|
|
|
- to.meta.title = `${e.title} ${to.params.id ? 'ID:' + to.params.id : ''}`;
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
});
|