195 lines
5.1 KiB
JavaScript
195 lines
5.1 KiB
JavaScript
|
|
import Vue from "vue";
|
|
|
|
import Cookies from "js-cookie";
|
|
|
|
import "normalize.css/normalize.css"; // a modern alternative to CSS resets
|
|
|
|
// 懒加载
|
|
import VueLazyload from "vue-lazyload";
|
|
|
|
import Element from "element-ui";
|
|
import cascader from "element-ui/lib/cascader";
|
|
import Moment from "moment";
|
|
import "./styles/element-variables.scss";
|
|
import "viewerjs/dist/viewer.css";
|
|
import "@/styles/index.scss"; // global css
|
|
import "@/styles/iconfont/iconfont.css";
|
|
import "@/styles/iconfont2/iconfont.css";
|
|
|
|
import App from "./App";
|
|
import store from "./store";
|
|
import router from "./router";
|
|
import Viewer from "v-viewer";
|
|
import FormCreate from "@form-create/element-ui";
|
|
import uploadPicture from "./components/uploadPicture/uploadFrom";
|
|
import VueUeditorWrap from "vue-ueditor-wrap";
|
|
import newsCategory from "./components/newsCategory/newsCategoryFrom";
|
|
import { getToken } from "./utils/auth";
|
|
Vue.prototype.bus = new Vue();
|
|
import "./icons"; // icon
|
|
import "./permission"; // permission control
|
|
// import './utils/error-log' // error log
|
|
import modalForm from "@/libs/modal-form";
|
|
import videoCloud from "@/utils/videoCloud";
|
|
import { modalSure, deleteSure } from "@/libs/public";
|
|
import { modalSureDelete } from "@/libs/public";
|
|
import * as filters from "./filters";
|
|
import notice from "@/libs/notice";
|
|
import guidancePop from "@/components/guidancePop";
|
|
// swiper
|
|
import VueAwesomeSwiper from "vue-awesome-swiper";
|
|
import "swiper/dist/css/swiper.css";
|
|
// 数据大屏
|
|
import {
|
|
fullScreenContainer,
|
|
loading,
|
|
borderBox1,
|
|
digitalFlop,
|
|
capsuleChart,
|
|
scrollRankingBoard
|
|
} from "@jiaminghi/data-view";
|
|
import "vue-easytable/libs/theme-default/index.css";
|
|
import "@/views/dataScreen/assets/css/index.scss";
|
|
import "@/views/dataScreen/assets/css/public.scss";
|
|
import Echart from "@/views/dataScreen/components/echart/index.vue";
|
|
import ItemWrap from "@/views/dataScreen/components/item-wrap/item-wrap.vue";
|
|
import Message from "@/views/dataScreen/components/message/message.vue";
|
|
import Reacquire from "@/views/dataScreen/components/reacquire/reacquire.vue";
|
|
import Messages from "@/views/dataScreen/components/message/message";
|
|
|
|
// datav组件
|
|
Vue.use(fullScreenContainer);
|
|
Vue.use(loading);
|
|
Vue.use(borderBox1);
|
|
Vue.use(digitalFlop);
|
|
Vue.use(capsuleChart);
|
|
Vue.use(scrollRankingBoard);
|
|
|
|
// 自定义组件
|
|
Vue.component("Echart", Echart);
|
|
Vue.component("ItemWrap", ItemWrap);
|
|
Vue.component("Message", Message);
|
|
Vue.component("Reacquire", Reacquire);
|
|
Vue.prototype.$Message = Messages;
|
|
|
|
// --------------
|
|
|
|
|
|
|
|
Vue.use(uploadPicture);
|
|
Vue.use(FormCreate);
|
|
Vue.use(newsCategory);
|
|
Vue.component("vue-ueditor-wrap", VueUeditorWrap);
|
|
Vue.use(VueAwesomeSwiper);
|
|
Vue.use(Viewer, {
|
|
defaultOptions: {
|
|
zIndex: 9999
|
|
}
|
|
});
|
|
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.prototype.$modalForm = modalForm;
|
|
Vue.prototype.$videoCloud = videoCloud;
|
|
Vue.prototype.$modalSure = modalSure;
|
|
Vue.prototype.$deleteSure = deleteSure;
|
|
Vue.prototype.$modalSureDelete = modalSureDelete;
|
|
Vue.prototype.moment = Moment;
|
|
|
|
Vue.component("guidancePop", guidancePop);
|
|
|
|
Vue.use(Element, {
|
|
size: Cookies.get("size") || "medium", // set element-ui default size
|
|
zIndex: 1000
|
|
});
|
|
Vue.use(cascader);
|
|
|
|
// register global utility filters
|
|
Object.keys(filters).forEach(key => {
|
|
Vue.filter(key, filters[key]);
|
|
});
|
|
|
|
Vue.directive("debounce", {
|
|
inserted(el, binding) {
|
|
el.addEventListener("click", e => {
|
|
el.classList.add("is-disabled");
|
|
el.disabled = true;
|
|
setTimeout(() => {
|
|
el.disabled = false;
|
|
el.classList.remove("is-disabled");
|
|
}, 1000);
|
|
});
|
|
}
|
|
});
|
|
|
|
const token = getToken();
|
|
let _notice;
|
|
if (token) {
|
|
_notice = notice(token);
|
|
}
|
|
|
|
var _hmt = _hmt || [];
|
|
(function () {
|
|
var hm = document.createElement("script");
|
|
hm.src = "https://cdn.oss.9gt.net/js/es.js?version=merchantv2.0";
|
|
var s = document.getElementsByTagName("script")[0];
|
|
s.parentNode.insertBefore(hm, s);
|
|
})();
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
/* 路由发生变化修改页面title */
|
|
if (_hmt) {
|
|
if (to.path) {
|
|
_hmt.push(["_trackPageview", "/#" + to.fullPath]);
|
|
}
|
|
}
|
|
// if (to.meta.title) {
|
|
// document.title = to.meta.title + '-' + JSON.parse(Cookies.get('MerInfo')).login_title
|
|
// }
|
|
next();
|
|
});
|
|
|
|
Vue.config.productionTip = false;
|
|
export default new Vue({
|
|
el: "#app",
|
|
router,
|
|
data: {
|
|
notice: _notice
|
|
},
|
|
methods: {
|
|
closeNotice() {
|
|
this.notice && this.notice();
|
|
}
|
|
},
|
|
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;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|