tijiao 分类变成接口
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
<router-view v-if="!$route.meta.keepAlive"></router-view> -->
|
<router-view v-if="!$route.meta.keepAlive"></router-view> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@import "./assets/css/main.css";
|
@import "./assets/css/main.css";
|
||||||
@import "./assets/css/color-dark.css";
|
@import "./assets/css/color-dark.css";
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
|
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import katex from 'katex';
|
import katex from 'katex';
|
||||||
import JSZip from 'jszip';
|
import JSZip from 'jszip';
|
||||||
import mammoth from "mammoth";
|
import mammoth from "mammoth";
|
||||||
|
import api from '../../api/index.js';
|
||||||
import Common from '@/components/common/common'
|
import Common from '@/components/common/common'
|
||||||
import Tiff from 'tiff.js';
|
import Tiff from 'tiff.js';
|
||||||
var mediaUrl = Common.mediaUrl + 'articleImage/';
|
var mediaUrl = Common.mediaUrl + 'articleImage/';
|
||||||
@@ -70,184 +72,22 @@ export default {
|
|||||||
|
|
||||||
|
|
||||||
getJournalTypeName(value) {
|
getJournalTypeName(value) {
|
||||||
var list = this.journalTypeList();
|
var list = JSON.parse(localStorage.getItem('journalTypeDataAll'));
|
||||||
list = [...list,
|
|
||||||
{ name: 'EVIDENCE-BASED MEDICINE', value: 'EM' }, // ✅ 补充项
|
|
||||||
{ name: 'PROTOCOL', value: 'PT' }, // ✅ 补充项
|
|
||||||
]
|
|
||||||
const type = list.find(item => item.value === value);
|
const type = list.find(item => item.value === value);
|
||||||
return type ? type.name : 'OTHERS';
|
return type ? type.name : 'OTHERS';
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
journalTypeList() {
|
journalTypeList(type) {
|
||||||
var journal_type = [
|
var journal_type = JSON.parse(localStorage.getItem('journalTypeData'));
|
||||||
{ name: 'ARTICLE', value: 'A' },
|
|
||||||
{ name: 'REVIEW', value: 'B' },
|
|
||||||
{ name: 'CASE REPORT', value: 'C' },
|
|
||||||
{ name: 'RESEARCH PROPOSAL', value: 'P' },
|
|
||||||
{ name: 'NEWS', value: 'N' },
|
|
||||||
{ name: 'COMMENT', value: 'T' },
|
|
||||||
{ name: 'CORRECTION', value: 'CT' },
|
|
||||||
{ name: 'HYPOTHESIS', value: 'HT' },
|
|
||||||
{ name: 'PREFACE', value: 'PF' },
|
|
||||||
{ name: 'EDITORIAL', value: 'ET' },
|
|
||||||
{ name: 'REPORT', value: 'RP' },
|
|
||||||
{ name: 'LETTER', value: 'LR' },
|
|
||||||
{ name: 'EMPIRICAL FORMULA', value: 'EF' },
|
|
||||||
|
|
||||||
{ name: 'EXPERT CONSENSUS', value: 'EC' },
|
|
||||||
{ name: 'LETTER TO EDITOR', value: 'LTE' },
|
|
||||||
{ name: 'QUESTIONNAIRE INVESTIGATION', value: 'QI' },
|
|
||||||
|
|
||||||
{ name: 'CASE SERIES', value: 'CS' },
|
|
||||||
{ name: 'RETRACTION', value: 'RT' },
|
|
||||||
{ name: 'MINI REVIEW', value: 'MR' },
|
|
||||||
{ name: 'OTHERS', value: 'O' }
|
|
||||||
];
|
|
||||||
return journal_type;
|
return journal_type;
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
opMedicalList() {
|
opMedicalList() {
|
||||||
var opMedical = [{
|
var opMedical =JSON.parse(localStorage.getItem('opMedicalListData'))
|
||||||
label: 'None',
|
|
||||||
value: ''
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'ARTICLE',
|
|
||||||
value: 'Article'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'REVIEW',
|
|
||||||
value: 'Review'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'CASE REPORT',
|
|
||||||
value: 'Case report'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'RESEARCH PROPOSAL',
|
|
||||||
value: 'Research proposal'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'NEWS',
|
|
||||||
value: 'News'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'COMMENT',
|
|
||||||
value: 'Comment'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'CORRECTION',
|
|
||||||
value: 'Correction'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'HYPOTHESIS',
|
|
||||||
value: 'Hypothesis'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'PREFACE',
|
|
||||||
value: 'Preface'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'EDITORIAL',
|
|
||||||
value: 'Editorial'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'REPORT',
|
|
||||||
value: 'Report'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'LETTER',
|
|
||||||
value: 'Letter'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'EMPIRICAL FORMULA',
|
|
||||||
value: 'Empirical formula'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'EVIDENCE-BASED MEDICINE',
|
|
||||||
value: 'Evidence-based medicine'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'EXPERT CONSENSUS',
|
|
||||||
value: 'Expert consensus'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'LETTER TO EDITOR',
|
|
||||||
value: 'Letter to editor'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'QUESTIONNAIRE INVESTIGATION',
|
|
||||||
value: 'Questionnaire investigation'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'PROTOCOL',
|
|
||||||
value: 'Protocol'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'CASE SERIES',
|
|
||||||
value: 'Case Series'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'RETRACTION',
|
|
||||||
value: 'Retraction'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'MINI REVIEW',
|
|
||||||
value: 'Mini Review'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '内经难经',
|
|
||||||
value: '内经难经'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '伤寒金匮',
|
|
||||||
value: '伤寒金匮'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '神农本草经',
|
|
||||||
value: '神农本草经'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '温病研究',
|
|
||||||
value: '温病研究'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '唐宋方药',
|
|
||||||
value: '唐宋方药'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '金元各家',
|
|
||||||
value: '金元各家'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '明清经典',
|
|
||||||
value: '明清经典'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '中西汇通',
|
|
||||||
value: '中西汇通'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '太湖选粹',
|
|
||||||
value: '太湖选粹'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '针灸推拿',
|
|
||||||
value: '针灸推拿'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '名医名方',
|
|
||||||
value: '名医名方'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '新冠肺炎',
|
|
||||||
value: '新冠肺炎'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: '书评',
|
|
||||||
value: '书评'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
return opMedical;
|
return opMedical;
|
||||||
},
|
},
|
||||||
@@ -316,6 +156,7 @@ export default {
|
|||||||
const mediaFile = rels[embedId];
|
const mediaFile = rels[embedId];
|
||||||
if (mediaFile) {
|
if (mediaFile) {
|
||||||
imageInfoMap[mediaFile] = { width, height };
|
imageInfoMap[mediaFile] = { width, height };
|
||||||
|
console.log('imageInfoMap at line 158:', imageInfoMap)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -347,19 +188,27 @@ export default {
|
|||||||
// html = html.replace(/<img[^>]+src="data:image\/x-emf[^"]*"[^>]*>/gi, '');
|
// html = html.replace(/<img[^>]+src="data:image\/x-emf[^"]*"[^>]*>/gi, '');
|
||||||
|
|
||||||
// 替换图片标签中的宽高
|
// 替换图片标签中的宽高
|
||||||
const imgTags = html.match(/<img[^>]*src="data:image\/[^"]+image(\d+)\.(png|jpg|jpeg)[^"]*"[^>]*>/gi);
|
const imgTags = html.match(/<img[^>]*src="data:image\/(png|jpg|jpeg);base64,[^"]*"/gi);
|
||||||
|
console.log('imgTags at line 190:', imgTags);
|
||||||
|
|
||||||
if (imgTags) {
|
if (imgTags) {
|
||||||
imgTags.forEach((imgTag) => {
|
imgTags.forEach((imgTag) => {
|
||||||
|
// 提取 "image数字.png" 或 "image数字.jpg" 这样的文件名
|
||||||
const match = imgTag.match(/image(\d+)\.(png|jpg|jpeg)/);
|
const match = imgTag.match(/image(\d+)\.(png|jpg|jpeg)/);
|
||||||
|
|
||||||
if (match) {
|
if (match) {
|
||||||
|
// 构造文件名,例如 "media/image1.png"
|
||||||
const filename = `media/image${match[1]}.${match[2]}`;
|
const filename = `media/image${match[1]}.${match[2]}`;
|
||||||
const info = imageInfoMap[filename];
|
const info = imageInfoMap[filename]; // 从 imageInfoMap 中查找宽高信息
|
||||||
|
console.log('info at line 196:', info); // 查看是否找到了相关图片信息
|
||||||
|
|
||||||
if (info) {
|
if (info) {
|
||||||
|
// 如果找到了图片的信息,就添加宽度和高度到 <img> 标签
|
||||||
const newImgTag = imgTag.replace(
|
const newImgTag = imgTag.replace(
|
||||||
/<img/,
|
/<img/,
|
||||||
`<img width="${info.width}" height="${info.height}"`
|
`<img width="${info.width}" height="${info.height}"`
|
||||||
);
|
);
|
||||||
html = html.replace(imgTag, newImgTag);
|
html = html.replace(imgTag, newImgTag); // 替换原始的 <img> 标签
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -178,6 +178,9 @@ export default {
|
|||||||
localStorage.removeItem('U_name');
|
localStorage.removeItem('U_name');
|
||||||
localStorage.removeItem('U_status');
|
localStorage.removeItem('U_status');
|
||||||
localStorage.removeItem('ms_journal_alias');
|
localStorage.removeItem('ms_journal_alias');
|
||||||
|
localStorage.removeItem('journalTypeData');
|
||||||
|
localStorage.removeItem('journalTypeDataAll');
|
||||||
|
localStorage.removeItem('opMedicalListData');
|
||||||
this.$router.push('/login');
|
this.$router.push('/login');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -166,6 +166,9 @@ export default {
|
|||||||
localStorage.removeItem('U_name');
|
localStorage.removeItem('U_name');
|
||||||
localStorage.removeItem('U_status');
|
localStorage.removeItem('U_status');
|
||||||
localStorage.removeItem('ms_journal_alias');
|
localStorage.removeItem('ms_journal_alias');
|
||||||
|
localStorage.removeItem('journalTypeData');
|
||||||
|
localStorage.removeItem('journalTypeDataAll');
|
||||||
|
localStorage.removeItem('opMedicalListData');
|
||||||
this.$router.push('/login');
|
this.$router.push('/login');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -166,8 +166,8 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted(){
|
async mounted(){
|
||||||
this.journal_type = this.$commonJS.journalTypeList()
|
this.journal_type =await this.$commonJS.journalTypeList()
|
||||||
// console.log(this.journal_type, this.journal_type1)
|
// console.log(this.journal_type, this.journal_type1)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1335,9 +1335,9 @@ export default {
|
|||||||
deep: true
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
async created() {
|
||||||
|
this.journal_type = await this.$commonJS.journalTypeList();
|
||||||
this.journal_type=this.$commonJS.journalTypeList()
|
console.log('this.journal_type at line 1340:', this.journal_type);
|
||||||
this.initSelect();
|
this.initSelect();
|
||||||
this.getAutData();
|
this.getAutData();
|
||||||
if (this.stagingID != undefined) {
|
if (this.stagingID != undefined) {
|
||||||
@@ -2232,7 +2232,7 @@ export default {
|
|||||||
reader.onload = function (e) {
|
reader.onload = function (e) {
|
||||||
that.$commonJS.extractWordTablesToArrays(File.raw, function (wordTables) {
|
that.$commonJS.extractWordTablesToArrays(File.raw, function (wordTables) {
|
||||||
console.log('tablesHtml at line 61:', wordTables);
|
console.log('tablesHtml at line 61:', wordTables);
|
||||||
return
|
return;
|
||||||
that.addWordTablesList(wordTables);
|
that.addWordTablesList(wordTables);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
<articleListB v-if="activeIndex == '2'" :journals="journals[1]" @changeEvent="changeEvent"></articleListB>
|
<articleListB v-if="activeIndex == '2'" :journals="journals[1]" @changeEvent="changeEvent"></articleListB>
|
||||||
<articleListC v-if="activeIndex == '3'" :journals="journals[0]"></articleListC>
|
<articleListC v-if="activeIndex == '3'" :journals="journals[0]"></articleListC>
|
||||||
<articleListD v-if="activeIndex == '4'" ></articleListD>
|
<articleListD v-if="activeIndex == '4'" ></articleListD>
|
||||||
<articleListE v-if="activeIndex == '5'" :journals="journals[2]"></articleListE>
|
<articleListE v-if="activeIndex == '5'" :journals="journals[0]"></articleListE>
|
||||||
<articleListF v-if="activeIndex == '6'" ></articleListF>
|
<articleListF v-if="activeIndex == '6'" ></articleListF>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -79,7 +79,7 @@ export default {
|
|||||||
[1, 2, 4].forEach(async (e, i) => {
|
[1, 2, 4].forEach(async (e, i) => {
|
||||||
this.$set(this.journals, i, await this.initselect(e)); // 使用 Vue.set 确保数据是响应式的
|
this.$set(this.journals, i, await this.initselect(e)); // 使用 Vue.set 确保数据是响应式的
|
||||||
|
|
||||||
console.log('this.journals at line 80:', this.journals)
|
// console.log('this.journals at line 80:', this.journals)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async initselect(e) {
|
async initselect(e) {
|
||||||
|
|||||||
@@ -404,7 +404,7 @@ export default {
|
|||||||
custom_colors: false,
|
custom_colors: false,
|
||||||
color_map: ['0082AA', 'TMR Blue'],
|
color_map: ['0082AA', 'TMR Blue'],
|
||||||
|
|
||||||
plugins: 'texttransform kityformula-editor noneditable', // 启用 forecolor 和 code 插件
|
plugins: 'texttransform noneditable table', // 启用 forecolor 和 code 插件
|
||||||
// plugins: 'forecolor code paste table image mathType searchreplace raw', // 启用 forecolor 和 code 插件
|
// plugins: 'forecolor code paste table image mathType searchreplace raw', // 启用 forecolor 和 code 插件
|
||||||
end_container_on_empty_block: true,
|
end_container_on_empty_block: true,
|
||||||
content_css: 'default', // 加载 TinyMCE 默认样式表
|
content_css: 'default', // 加载 TinyMCE 默认样式表
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
:value="updatedHtml"
|
:value="updatedHtml"
|
||||||
:typesettingType="typesettingType"
|
:typesettingType="typesettingType"
|
||||||
class="paste-area text-container"
|
class="paste-area text-container"
|
||||||
:toolbar="['bold italic|customBlue removeBlue|kityformula-editor|LateX |myuppercase myuppercasea Line|subscript superscript|table tabledelete| searchreplace |clearButton']"
|
:toolbar="['bold italic|customBlue removeBlue|LateX |myuppercase myuppercasea Line|subscript superscript|table | searchreplace |clearButton']"
|
||||||
style="
|
style="
|
||||||
/* white-space: pre-line; */
|
/* white-space: pre-line; */
|
||||||
line-height: 12px;
|
line-height: 12px;
|
||||||
|
|||||||
184
src/main.js
184
src/main.js
@@ -13,26 +13,26 @@ import 'babel-polyfill';
|
|||||||
import api from './api/index.js';
|
import api from './api/index.js';
|
||||||
import Common from './components/common/common'
|
import Common from './components/common/common'
|
||||||
Vue.prototype.$validateString = function (str) {
|
Vue.prototype.$validateString = function (str) {
|
||||||
return /^[a-zA-Z\s\u00C0-\u00FF\u0100-\u017F-]+$/.test(str);
|
return /^[a-zA-Z\s\u00C0-\u00FF\u0100-\u017F-]+$/.test(str);
|
||||||
}
|
}
|
||||||
window.MathJax = {
|
window.MathJax = {
|
||||||
tex: {
|
tex: {
|
||||||
inlineMath: [['$', '$'], ['\\(', '\\)']], // 行内公式
|
inlineMath: [['$', '$'], ['\\(', '\\)']], // 行内公式
|
||||||
displayMath: [['$$', '$$'], ['\\[', '\\]']], // 块级公式
|
displayMath: [['$$', '$$'], ['\\[', '\\]']], // 块级公式
|
||||||
},
|
},
|
||||||
svg: { fontCache: 'global' }
|
svg: { fontCache: 'global' }
|
||||||
};
|
};
|
||||||
|
|
||||||
// 监听 DOM 变化,并自动渲染公式
|
// 监听 DOM 变化,并自动渲染公式
|
||||||
Vue.prototype.$renderMath = function () {
|
Vue.prototype.$renderMath = function () {
|
||||||
if (window.MathJax && window.MathJax.typeset) {
|
if (window.MathJax && window.MathJax.typeset) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
window.MathJax.typeset();
|
window.MathJax.typeset();
|
||||||
}, 100); // 延迟防止 Vue 还未完全渲染
|
}, 100); // 延迟防止 Vue 还未完全渲染
|
||||||
} else {
|
} else {
|
||||||
console.warn('MathJax 未正确加载');
|
console.warn('MathJax 未正确加载');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
import VXETable from 'vxe-table'
|
import VXETable from 'vxe-table'
|
||||||
import 'vxe-table/lib/style.css'
|
import 'vxe-table/lib/style.css'
|
||||||
|
|
||||||
@@ -47,28 +47,71 @@ import 'quill/dist/quill.bubble.css'
|
|||||||
// 注册富文本编辑器组件为全局组件
|
// 注册富文本编辑器组件为全局组件
|
||||||
Vue.use(VueQuillEditor)
|
Vue.use(VueQuillEditor)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async function loadJournalType() {
|
||||||
|
const localData = localStorage.getItem('journalType'); // 尝试从 localStorage 获取数据
|
||||||
|
// 如果 localStorage 中没有数据,则调用 API 获取并存储
|
||||||
|
if (!localData) {
|
||||||
|
try {
|
||||||
|
await api
|
||||||
|
.post('api/Articletype/getArticleType', {})
|
||||||
|
.then((res) => {
|
||||||
|
console.log('res at line 61:', res)
|
||||||
|
if (res.status == 1) {
|
||||||
|
localStorage.setItem('journalTypeData', JSON.stringify(res.data.base)); // 将数据存储到 localStorage
|
||||||
|
localStorage.setItem('journalTypeDataAll', JSON.stringify([...res.data.base, ...res.data.supplement])); // 将数据存储到 localStorage
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
await api
|
||||||
|
.post('api/Articletype/getMedicalType', {})
|
||||||
|
.then((res) => {
|
||||||
|
console.log('res at line 61:', res)
|
||||||
|
if (res.status == 1) {
|
||||||
|
localStorage.setItem('opMedicalListData', JSON.stringify(res.data)); // 将数据存储到 localStorage
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to fetch journal types:', error);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('Journal types loaded from localStorage:', JSON.parse(localData));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 启动应用时调用一次函数来加载 journalType 数据
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 时间过滤器
|
// 时间过滤器
|
||||||
// 定义时间过滤器(不含时分秒)
|
// 定义时间过滤器(不含时分秒)
|
||||||
Vue.filter('formatDate', function (originVal) {
|
Vue.filter('formatDate', function (originVal) {
|
||||||
const dt = new Date(originVal * 1000)
|
const dt = new Date(originVal * 1000)
|
||||||
const y = dt.getFullYear()
|
const y = dt.getFullYear()
|
||||||
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
|
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
|
||||||
const d = (dt.getDate() + '').padStart(2, '0')
|
const d = (dt.getDate() + '').padStart(2, '0')
|
||||||
const hh = (dt.getHours() + '').padStart(2, '0')
|
const hh = (dt.getHours() + '').padStart(2, '0')
|
||||||
const mm = (dt.getMinutes() + '').padStart(2, '0')
|
const mm = (dt.getMinutes() + '').padStart(2, '0')
|
||||||
const ss = (dt.getSeconds() + '').padStart(2, '0')
|
const ss = (dt.getSeconds() + '').padStart(2, '0')
|
||||||
return `${y}-${m}-${d}`
|
return `${y}-${m}-${d}`
|
||||||
})
|
})
|
||||||
// 含时分秒
|
// 含时分秒
|
||||||
Vue.filter('formatDatehms', function (originVal) {
|
Vue.filter('formatDatehms', function (originVal) {
|
||||||
const dt = new Date(originVal * 1000)
|
const dt = new Date(originVal * 1000)
|
||||||
const y = dt.getFullYear()
|
const y = dt.getFullYear()
|
||||||
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
|
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
|
||||||
const d = (dt.getDate() + '').padStart(2, '0')
|
const d = (dt.getDate() + '').padStart(2, '0')
|
||||||
const hh = (dt.getHours() + '').padStart(2, '0')
|
const hh = (dt.getHours() + '').padStart(2, '0')
|
||||||
const mm = (dt.getMinutes() + '').padStart(2, '0')
|
const mm = (dt.getMinutes() + '').padStart(2, '0')
|
||||||
const ss = (dt.getSeconds() + '').padStart(2, '0')
|
const ss = (dt.getSeconds() + '').padStart(2, '0')
|
||||||
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
|
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
|
||||||
})
|
})
|
||||||
// 引入wps文档编辑
|
// 引入wps文档编辑
|
||||||
import mammoth from "mammoth";
|
import mammoth from "mammoth";
|
||||||
@@ -78,7 +121,7 @@ Vue.prototype.$commonJS = commonJS
|
|||||||
Vue.prototype.Common = Common;
|
Vue.prototype.Common = Common;
|
||||||
// import { getJournalTypeName } from '@/common/js/commonJS.js';
|
// import { getJournalTypeName } from '@/common/js/commonJS.js';
|
||||||
|
|
||||||
Vue.filter('jtName', function(value) {
|
Vue.filter('jtName', function (value) {
|
||||||
return commonJS.getJournalTypeName(value);
|
return commonJS.getJournalTypeName(value);
|
||||||
});
|
});
|
||||||
// 使用 ES Module
|
// 使用 ES Module
|
||||||
@@ -125,50 +168,53 @@ import commonDragWord from '@/components/page/components/table/dragWord.vue'
|
|||||||
Vue.component('common-drag-word', commonDragWord);
|
Vue.component('common-drag-word', commonDragWord);
|
||||||
Vue.use(VueI18n);
|
Vue.use(VueI18n);
|
||||||
Vue.use(ElementUI, {
|
Vue.use(ElementUI, {
|
||||||
size: 'small',
|
size: 'small',
|
||||||
locale
|
locale
|
||||||
});
|
});
|
||||||
const i18n = new VueI18n({
|
const i18n = new VueI18n({
|
||||||
locale: localStorage.getItem('langs') || 'en',
|
locale: localStorage.getItem('langs') || 'en',
|
||||||
messages
|
messages
|
||||||
});
|
});
|
||||||
//使用钩子函数对路由进行权限跳转
|
//使用钩子函数对路由进行权限跳转
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
document.title = `${to.meta.title} | Traditional Medicine Research`;
|
loadJournalType();
|
||||||
const role = localStorage.getItem('U_name');
|
document.title = `${to.meta.title} | Traditional Medicine Research`;
|
||||||
const userrole = localStorage.getItem('U_status');
|
const role = localStorage.getItem('U_name');
|
||||||
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) {
|
const userrole = localStorage.getItem('U_status');
|
||||||
next('/login');
|
|
||||||
// } else if (to.meta.permission) {
|
|
||||||
// // 如果是管理员权限则可进入,这里只是简单的模拟管理员权限而已
|
|
||||||
// // role === 'admin' ? next() : next('/403');
|
|
||||||
// if(userrole == to.meta.permission){
|
|
||||||
// next();
|
|
||||||
// }else{
|
|
||||||
// next('/403');
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
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 {
|
} else {
|
||||||
//审稿人导航
|
next();
|
||||||
// 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({
|
new Vue({
|
||||||
router,
|
router,
|
||||||
i18n,
|
i18n,
|
||||||
render: h => h(App),
|
render: h => h(App),
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$renderMath(); // 页面加载后自动渲染
|
this.$renderMath(); // 页面加载后自动渲染
|
||||||
}
|
}
|
||||||
}).$mount('#app');
|
}).$mount('#app');
|
||||||
|
|||||||
Reference in New Issue
Block a user