import Vue from 'vue'; import App from './App.vue'; import router from './router'; import ElementUI, { TabPane } from 'element-ui'; import VueI18n from 'vue-i18n'; import { messages } from './components/common/i18n'; import 'element-ui/lib/theme-chalk/index.css'; // 默认主题 import locale from 'element-ui/lib/locale/lang/en.js'; // 中英文 // import './assets/css/theme-green/index.css'; // 浅绿色主题 import './assets/css/icon.css'; import './components/common/directives'; import 'babel-polyfill'; import api from './api/index.js'; import Common from './components/common/common' Vue.prototype.$validateString = function (str) { return /^[a-zA-Z\s\u00C0-\u00FF\u0100-\u017F-]+$/.test(str); } import VXETable from 'vxe-table' import 'vxe-table/lib/style.css' Vue.use(VXETable) // 引入富文本编辑器 import VueQuillEditor from 'vue-quill-editor' // 富文本编辑器对应的样式 import 'quill/dist/quill.core.css' import 'quill/dist/quill.snow.css' import 'quill/dist/quill.bubble.css' // 注册富文本编辑器组件为全局组件 Vue.use(VueQuillEditor) // 时间过滤器 // 定义时间过滤器(不含时分秒) Vue.filter('formatDate', function (originVal) { const dt = new Date(originVal * 1000) const y = dt.getFullYear() const m = (dt.getMonth() + 1 + '').padStart(2, '0') const d = (dt.getDate() + '').padStart(2, '0') const hh = (dt.getHours() + '').padStart(2, '0') const mm = (dt.getMinutes() + '').padStart(2, '0') const ss = (dt.getSeconds() + '').padStart(2, '0') return `${y}-${m}-${d}` }) // 含时分秒 Vue.filter('formatDatehms', function (originVal) { const dt = new Date(originVal * 1000) const y = dt.getFullYear() const m = (dt.getMonth() + 1 + '').padStart(2, '0') const d = (dt.getDate() + '').padStart(2, '0') const hh = (dt.getHours() + '').padStart(2, '0') const mm = (dt.getMinutes() + '').padStart(2, '0') const ss = (dt.getSeconds() + '').padStart(2, '0') return `${y}-${m}-${d} ${hh}:${mm}:${ss}` }) // 引入wps文档编辑 import mammoth from "mammoth"; import commonJS from '@/common/js/commonJS.js' Vue.prototype.$commonJS = commonJS Vue.prototype.Common = Common; // 使用 ES Module import * as echarts from 'echarts'; Vue.prototype.$echarts = echarts Vue.prototype.$api = api Vue.config.productionTip = false; import Editor from "@tinymce/tinymce-vue"; // 默认导入 Vue.component("Editor", Editor); import commonTable from '@/components/page/components/table/table.vue' Vue.component('common-table', commonTable); import commonLateX from '@/components/page/components/table/LateX.vue' Vue.component('common-late-x', commonLateX); import commonMajor from '@/components/page/components/major/index.vue' Vue.component('common-major', commonMajor); import commonMajorList from '@/components/page/components/major/list.vue' Vue.component('common-major-list', commonMajorList); import commonPayPalButton from '@/components/page/components/pendingPayment/PayPalButton.vue' Vue.component('common-paypal-button', commonPayPalButton); import commonTiff from '@/components/page/components/table/tiff.vue' Vue.component('common-tiff', commonTiff); import commonContent from '@/components/page/components/table/content.vue' Vue.component('common-content', commonContent); import commonWord from '@/components/page/components/table/word.vue' Vue.component('common-comment', commonComment); import commonEditTable from '@/components/page/components/table/editTable.vue' Vue.component('common-edit-table', commonEditTable); import commonComment from '@/components/page/components/table/comment.vue' Vue.component('common-word', commonWord); import commonAnnotations from '@/components/page/components/table/annotations.vue' Vue.component('common-annotations', commonAnnotations); import commonWordHtml from '@/components/page/components/table/wordHtml.vue' Vue.component('common-word-html', commonWordHtml); import commonWordHtmlTypesetting from '@/components/page/components/table/wordHtmlTypesetting.vue' Vue.component('common-word-html-type-setting', commonWordHtmlTypesetting); import commonDragWord from '@/components/page/components/table/dragWord.vue' Vue.component('common-drag-word', commonDragWord); Vue.use(VueI18n); Vue.use(ElementUI, { size: 'small', locale }); const i18n = new VueI18n({ locale: localStorage.getItem('langs') || 'en', messages }); //使用钩子函数对路由进行权限跳转 router.beforeEach((to, from, next) => { document.title = `${to.meta.title} | Traditional Medicine Research`; const role = localStorage.getItem('U_name'); const userrole = localStorage.getItem('U_status'); if (!role && to.path != '/register' && to.path !== '/submission' && to.path !== '/verification' && to.path !== '/orcidLink' && to.path !== '/img' && to.path !== '/reviewer' && to.path !== '/thanks' && to.path !== '/login' && to.path !== '/refuse' && to.path !== '/managing' && to.path.search(/retrieve/i) < 0) { next('/login'); // } else if (to.meta.permission) { // // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已 // // role === 'admin' ? next() : next('/403'); // if(userrole == to.meta.permission){ // next(); // }else{ // next('/403'); // } } else { //审稿人导航 // if(to.path=='/reviewerArticleList'&&userrole!='reviewer'){ // next('/authorApplyReviewer'); // } // 简单的判断IE10及以下不进入富文本编辑器,该组件不兼容 if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') { Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器,请使用更高版本的浏览器查看', '浏览器不兼容通知', { confirmButtonText: '确定' }); } else { next(); } } }); new Vue({ router, i18n, render: h => h(App) }).$mount('#app');