审稿页面显示
This commit is contained in:
@@ -19,8 +19,8 @@ const service = axios.create({
|
||||
// baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换
|
||||
// baseURL: 'http://www.tougao.com/', //测试本地 记得切换
|
||||
// baseURL: 'http://192.168.110.110/tougao/public/index.php/',
|
||||
baseURL: '/api', //本地
|
||||
// baseURL: '/', //正式
|
||||
// baseURL: '/api', //本地
|
||||
baseURL: '/', //正式
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -86,6 +86,7 @@ export default {
|
||||
props: ['home'],
|
||||
data() {
|
||||
return {
|
||||
localUsername: localStorage.getItem('U_name') || 'unknown user',
|
||||
isProofreading: false,
|
||||
collapse: false,
|
||||
fullscreen: false,
|
||||
@@ -131,9 +132,10 @@ export default {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
username() {
|
||||
let username = localStorage.getItem('U_name');
|
||||
return username ? username : this.name;
|
||||
|
||||
return this.localUsername ? this.localUsername : this.name;
|
||||
},
|
||||
onRoutes() {
|
||||
0;
|
||||
@@ -153,6 +155,11 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateUsername() {
|
||||
|
||||
this.localUsername = localStorage.getItem('U_name');
|
||||
|
||||
},
|
||||
goHome() {
|
||||
this.$router.push('/');
|
||||
},
|
||||
@@ -272,10 +279,19 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (this.$bus) { // 检查 $bus 是否存在,避免未定义错误
|
||||
this.$bus.$on('user-name-updated', this.updateUsername);
|
||||
}
|
||||
if (document.body.clientWidth < 1000) {
|
||||
this.collapseChage();
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
// 步骤 C2: 销毁前移除监听器
|
||||
if (this.$bus) {
|
||||
this.$bus.$off('user-name-updated', this.updateUsername);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
$route: {
|
||||
handler: function (route) {
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
//记得切换
|
||||
|
||||
//正式
|
||||
// const mediaUrl = '/public/';
|
||||
// const baseUrl = '/';
|
||||
const mediaUrl = '/public/';
|
||||
const baseUrl = '/';
|
||||
|
||||
// const mediaUrl = 'https://submission.tmrjournals.com/public/';
|
||||
// // const mediaUrl = 'http://zmzm.tougao.dev.com/public/';
|
||||
// const baseUrl = '/api'
|
||||
|
||||
const mediaUrl = 'http://tougaotest.tmrjournals.com/public/';
|
||||
// const mediaUrl = 'http://zmzm.tougao.dev.com/public/';
|
||||
const baseUrl = '/api';
|
||||
// const mediaUrl = 'http://tougaotest.tmrjournals.com/public/';
|
||||
// // const mediaUrl = 'http://zmzm.tougao.dev.com/public/';
|
||||
// const baseUrl = '/api';
|
||||
|
||||
//本地(正式环境 )
|
||||
|
||||
|
||||
@@ -1875,11 +1875,12 @@ export default {
|
||||
},
|
||||
handleAvatarError(res, file) {},
|
||||
beforeAvatarUpload(file) {
|
||||
// const isLt2M = file.size / 1024 / 1024 < 10;
|
||||
// if (!isLt2M) {
|
||||
// this.$message.error('Picture size cannot exceed 10M!');
|
||||
// }
|
||||
// return isLt2M;
|
||||
const isLt2M = file.size / 1024 / 1024 < 20;
|
||||
if (!isLt2M) {
|
||||
this.$message.error('Picture size cannot exceed 20M!');
|
||||
return false;
|
||||
}
|
||||
|
||||
const isValidFormat = ['image/jpeg', 'image/png', 'image/tiff'].includes(file.type);
|
||||
if (!isValidFormat) {
|
||||
this.$message.error(this.$t('commonTable.uploadImageInfo'));
|
||||
|
||||
@@ -124,7 +124,7 @@ export default {
|
||||
// formatter函数动态修改tooltip样式
|
||||
formatter: function (params) {
|
||||
var that = this;
|
||||
console.log('params at line 430:', params);
|
||||
|
||||
if (params) {
|
||||
var htmlStr = '';
|
||||
// htmlStr += params[0].name.replace(/\-/g, '/') + '<br/>'; //x轴的名称
|
||||
@@ -324,7 +324,7 @@ export default {
|
||||
var otherInfo = optionJournalData.map((e) => {
|
||||
for (let i in e.value) {
|
||||
if (i == key) {
|
||||
console.log('e at line 299:', e.value[i]);
|
||||
|
||||
return {
|
||||
key: e.key,
|
||||
value: e.value[i].split('/')[0]
|
||||
@@ -386,7 +386,7 @@ export default {
|
||||
var url = '';
|
||||
if (type == 'month') {
|
||||
for (let i in this.monthData) {
|
||||
console.log('i at line 386:', i);
|
||||
|
||||
timeData.push(i);
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ export default {
|
||||
});
|
||||
} else if (type == 'year') {
|
||||
for (let i in this.yearData) {
|
||||
console.log('i at line 386:', i);
|
||||
|
||||
timeData.push(i);
|
||||
}
|
||||
tableData = this.JournalYearData.map((e) => {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
{{ item.name }}
|
||||
</h5>
|
||||
<p v-if="index == 0">
|
||||
|
||||
<span style="color: #f56c6c; font-weight: 700" v-if="feeStatus == 0">
|
||||
<i class="el-icon-warning" style="margin-right: 10px"></i>Manuscript unpaid
|
||||
</span>
|
||||
@@ -89,6 +90,7 @@
|
||||
|
||||
<el-table-column prop="" :label="$t('pendingPayment.Paymentstatus')">
|
||||
<template slot-scope="scope">
|
||||
|
||||
<span v-if="feeStatus == 0" style="color: #f56c6c"><b>Manuscript unpaid</b></span>
|
||||
<span v-if="feeStatus == 1" style="color: #67c23a"><b>Paid already</b></span>
|
||||
<span v-if="feeStatus == 2" style="color: #67c23a"><b>No payment required</b></span>
|
||||
@@ -731,9 +733,11 @@ export default {
|
||||
paystation_currency: res.data.order && res.data.order.paystation ? res.data.order.paystation.currency : ''
|
||||
};
|
||||
|
||||
if (this.article_pay_info.is_buy == 1) {
|
||||
if (this.article_pay_info.is_buy == 1) {
|
||||
if (Number(this.article_pay_info.fee) == 0) {
|
||||
|
||||
this.feeStatus = 2;
|
||||
|
||||
} else {
|
||||
this.feeStatus = 1;
|
||||
}
|
||||
@@ -741,8 +745,8 @@ export default {
|
||||
this.feeStatus = 0;
|
||||
}
|
||||
this.tableData = [{ ...this.article_pay_info }];
|
||||
this.feeStatus = res.data.state;
|
||||
this.isShowCommit = res.data.state == 1 ? true : false;
|
||||
|
||||
this.isShowCommit = this.article_pay_info.is_buy == 1 ? true : false;
|
||||
console.log(this.isShowCommit);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -128,7 +128,7 @@ export default {
|
||||
// formatter函数动态修改tooltip样式
|
||||
formatter: function (params) {
|
||||
var that = this;
|
||||
console.log('params at line 430:', params);
|
||||
|
||||
if (params) {
|
||||
var htmlStr = '';
|
||||
// htmlStr += params[0].name.replace(/\-/g, '/') + '<br/>'; //x轴的名称
|
||||
@@ -328,7 +328,7 @@ export default {
|
||||
var otherInfo = optionJournalData.map((e) => {
|
||||
for (let i in e.value) {
|
||||
if (i == key) {
|
||||
console.log('e at line 299:', e.value[i]);
|
||||
|
||||
return {
|
||||
key: e.key,
|
||||
value: e.value[i].split('/')[0]
|
||||
@@ -390,7 +390,7 @@ export default {
|
||||
var url = '';
|
||||
if (type == 'month') {
|
||||
for (let i in this.monthData) {
|
||||
console.log('i at line 386:', i);
|
||||
|
||||
timeData.push(i);
|
||||
}
|
||||
|
||||
@@ -400,7 +400,7 @@ export default {
|
||||
});
|
||||
} else if (type == 'year') {
|
||||
for (let i in this.yearData) {
|
||||
console.log('i at line 386:', i);
|
||||
|
||||
timeData.push(i);
|
||||
}
|
||||
tableData = this.JournalYearData.map((e) => {
|
||||
|
||||
@@ -154,7 +154,14 @@
|
||||
<el-input type="textarea" rows="2" v-model="form.approval_content"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Abstract :" prop="abstrart">
|
||||
<el-input type="textarea" rows="6" v-model="form.abstrart"></el-input>
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="form.abstrart"
|
||||
:autosize="{ minRows: 1, maxRows: 100 }"
|
||||
class="full-show-no-scroll"
|
||||
|
||||
placeholder=""
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- 话题 -->
|
||||
<!-- <el-form-item label="Topics :" prop="topics">
|
||||
@@ -166,29 +173,44 @@
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="Key words :">
|
||||
<div v-if="keywordsList&&keywordsList.length > 0">
|
||||
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange" style="color: #006699;">Select All</el-checkbox>
|
||||
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
|
||||
<div v-for="(item, index) in keywordsList" :key="index" style="margin-right:16px;display: inline-block;">
|
||||
<el-checkbox style="margin-right: 4px;" :label="index + 1" v-model="item.checked">{{item.keyword}}</el-checkbox>
|
||||
<el-input
|
||||
:name="index + 1"
|
||||
v-model="item.ke"
|
||||
clearable
|
||||
style="width: 150px; margin-right: 15px; margin-bottom: 3px"
|
||||
<div v-if="keywordsList && keywordsList.length > 0">
|
||||
<el-checkbox
|
||||
:indeterminate="isIndeterminate"
|
||||
v-model="checkAll"
|
||||
@change="handleCheckAllChange"
|
||||
style="color: #006699"
|
||||
>Select All</el-checkbox
|
||||
>
|
||||
</el-input>
|
||||
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
|
||||
<div
|
||||
v-for="(item, index) in keywordsList"
|
||||
:key="index"
|
||||
style="margin-right: 16px; display: inline-block"
|
||||
>
|
||||
<el-checkbox style="margin-right: 4px" :label="index + 1" v-model="item.checked">{{
|
||||
item.keyword
|
||||
}}</el-checkbox>
|
||||
<el-input
|
||||
:name="index + 1"
|
||||
v-model="item.ke"
|
||||
clearable
|
||||
style="width: 150px; margin-right: 15px; margin-bottom: 3px"
|
||||
>
|
||||
</el-input>
|
||||
</div>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<el-button type="text" @click="addfund">
|
||||
<i class="el-icon-circle-plus-outline">Add</i>
|
||||
</el-button>
|
||||
<el-button v-if="checkedCities.length > 0" type="text" @click="deletefund" style="color: #f56c6c;margin-left: 20px;">
|
||||
<i class="el-icon-remove-outline" style="color: #f56c6c;">Delete</i>
|
||||
<el-button
|
||||
v-if="checkedCities.length > 0"
|
||||
type="text"
|
||||
@click="deletefund"
|
||||
style="color: #f56c6c; margin-left: 20px"
|
||||
>
|
||||
<i class="el-icon-remove-outline" style="color: #f56c6c">Delete</i>
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item label="Fund :">
|
||||
@@ -820,9 +842,13 @@
|
||||
<font style="color: #006699">3.Value:</font> This manuscript belongs to the advanced topic and can attract wide
|
||||
attention.
|
||||
<br />
|
||||
<span style="margin-top:6px"> please download the manuscript template <font @click="dowloadFileTemplate()" style="color: #006699;margin-left: 2px;cursor: pointer;"> <i class="el-icon-download" style="font-weight: bold"></i> Microsoft Word template</font>.
|
||||
</span>
|
||||
</p>
|
||||
<span style="margin-top: 6px">
|
||||
please download the manuscript template
|
||||
<font @click="dowloadFileTemplate()" style="color: #006699; margin-left: 2px; cursor: pointer">
|
||||
<i class="el-icon-download" style="font-weight: bold"></i> Microsoft Word template</font
|
||||
>.
|
||||
</span>
|
||||
</p>
|
||||
<common-word-html
|
||||
:articleId="stagingID"
|
||||
imgHeight="120px"
|
||||
@@ -1038,7 +1064,6 @@ export default {
|
||||
ProgressBar
|
||||
},
|
||||
data() {
|
||||
|
||||
// 自定义校验:禁止QQ邮箱
|
||||
const validateNotQQEmail = (rule, value, callback) => {
|
||||
// 通用邮箱格式正则(基础校验,匹配大多数标准邮箱格式)
|
||||
@@ -1602,17 +1627,16 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
handleCheckAllChange(val) {
|
||||
this.checkedCities = val
|
||||
? this.keywordsList.map((_, index) => index + 1) // 遍历数组,取 index+1 作为选中值
|
||||
: [];
|
||||
this.isIndeterminate = false;
|
||||
this.checkedCities = val
|
||||
? this.keywordsList.map((_, index) => index + 1) // 遍历数组,取 index+1 作为选中值
|
||||
: [];
|
||||
this.isIndeterminate = false;
|
||||
},
|
||||
handleCheckedCitiesChange(){
|
||||
|
||||
console.log('this.checkedCities at line 1594:', this.checkedCities)
|
||||
handleCheckedCitiesChange() {
|
||||
console.log('this.checkedCities at line 1594:', this.checkedCities);
|
||||
},
|
||||
handleDelete(index){
|
||||
this.keywordsList.splice(index, 1);
|
||||
handleDelete(index) {
|
||||
this.keywordsList.splice(index, 1);
|
||||
},
|
||||
closeAuthorDialog() {
|
||||
this.getAuthorList();
|
||||
@@ -1856,7 +1880,7 @@ this.keywordsList.splice(index, 1);
|
||||
this.form.journal = '';
|
||||
this.reviewerof.journal = 1;
|
||||
|
||||
console.log('this.form at line 1386:', this.form);
|
||||
|
||||
if (localStorage.getItem('ms_journal_alias')) {
|
||||
localStorage.removeItem('ms_journal_alias');
|
||||
}
|
||||
@@ -1960,22 +1984,21 @@ this.keywordsList.splice(index, 1);
|
||||
deletefund() {
|
||||
if (!this.checkedCities.length) {
|
||||
this.$message.error('please select the key word to delete');
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 将选中的序号(index+1)转成原始索引(index),并存入集合(提高查询效率)
|
||||
const selectedIndexes = new Set(
|
||||
this.checkedCities.map(seq => seq - 1) // 序号 - 1 = 原始索引
|
||||
);
|
||||
// 2. 将选中的序号(index+1)转成原始索引(index),并存入集合(提高查询效率)
|
||||
const selectedIndexes = new Set(
|
||||
this.checkedCities.map((seq) => seq - 1) // 序号 - 1 = 原始索引
|
||||
);
|
||||
|
||||
// 3. 过滤 keywordsList:保留索引不在选中集合中的项
|
||||
this.keywordsList = this.keywordsList.filter((_, index) =>
|
||||
!selectedIndexes.has(index)
|
||||
);
|
||||
this.checkAll = false;
|
||||
// 4. 清空选中状态和半选状态(删除后无选中项)
|
||||
this.checkedCities = [];
|
||||
this.isIndeterminate = false; },
|
||||
// 3. 过滤 keywordsList:保留索引不在选中集合中的项
|
||||
this.keywordsList = this.keywordsList.filter((_, index) => !selectedIndexes.has(index));
|
||||
this.checkAll = false;
|
||||
// 4. 清空选中状态和半选状态(删除后无选中项)
|
||||
this.checkedCities = [];
|
||||
this.isIndeterminate = false;
|
||||
},
|
||||
//初始化期刊选项
|
||||
initSelect() {
|
||||
this.items = this.$store.state.journalList;
|
||||
@@ -2492,21 +2515,20 @@ this.checkAll = false;
|
||||
onDeleteTuijian(item, index) {
|
||||
this.tuiJianForm.splice(index, 1);
|
||||
},
|
||||
dowloadFileTemplate(){
|
||||
var filePath = 'https://submission.tmrjournals.com/public/ArticleTemplate/manuscirpt/ManuscirptWordTemplate.docx';
|
||||
dowloadFileTemplate() {
|
||||
var filePath = 'https://submission.tmrjournals.com/public/ArticleTemplate/manuscirpt/ManuscirptWordTemplate.docx';
|
||||
|
||||
// 获取heads中的filename文件名
|
||||
let downloadElement = document.createElement('a');
|
||||
// 创建下载的链接
|
||||
downloadElement.href = filePath; // 下载后文件名
|
||||
|
||||
// 获取heads中的filename文件名
|
||||
let downloadElement = document.createElement('a');
|
||||
// 创建下载的链接
|
||||
downloadElement.href = filePath; // 下载后文件名
|
||||
|
||||
downloadElement.target = '_blank';
|
||||
document.body.appendChild(downloadElement);
|
||||
// 点击下载
|
||||
downloadElement.click();
|
||||
// 下载完成移除元素
|
||||
document.body.removeChild(downloadElement);
|
||||
downloadElement.target = '_blank';
|
||||
document.body.appendChild(downloadElement);
|
||||
// 点击下载
|
||||
downloadElement.click();
|
||||
// 下载完成移除元素
|
||||
document.body.removeChild(downloadElement);
|
||||
},
|
||||
// 下载文件
|
||||
dowloadFile(file) {
|
||||
@@ -4016,6 +4038,30 @@ document.body.removeChild(downloadElement);
|
||||
margin-left: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
/* 穿透Element UI的样式,强制覆盖所有限制 */
|
||||
.full-show-no-scroll::v-deep .el-textarea {
|
||||
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.full-show-no-scroll::v-deep .el-textarea__inner {
|
||||
white-space: normal !important; /* 强制换行 */
|
||||
word-wrap: break-word !important; /* 长文本/长单词换行 */
|
||||
overflow: visible !important; /* 溢出内容显示,不隐藏 */
|
||||
|
||||
max-height: none !important; /* 取消最大高度限制 */
|
||||
resize: none !important; /* 禁止手动调整大小 */
|
||||
padding: 12px; /* 可选:调整内边距,避免内容贴边 */
|
||||
}
|
||||
|
||||
/* 隐藏滚动条(即使偶尔出现也看不见) */
|
||||
.full-show-no-scroll::v-deep ::-webkit-scrollbar {
|
||||
display: none !important;
|
||||
}
|
||||
::v-deep .el-textarea__inner {
|
||||
line-height: 1.5 !important;
|
||||
font-family: 'Helvetica Neue For Number', 'Elsevier Gulliver', Georgia, serif !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
|
||||
@@ -1620,7 +1620,7 @@ export default {
|
||||
this.form.journal = '';
|
||||
this.reviewerof.journal = 1;
|
||||
|
||||
console.log('this.form at line 1386:', this.form);
|
||||
|
||||
if (localStorage.getItem('ms_journal_alias')) {
|
||||
localStorage.removeItem('ms_journal_alias');
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1088,7 +1088,7 @@ export default {
|
||||
this.detailDate.articlezip = '';
|
||||
},
|
||||
mystate(mystate) {
|
||||
console.log('mystate at line 1052:', mystate);
|
||||
|
||||
let str = '';
|
||||
switch (mystate) {
|
||||
case 1:
|
||||
|
||||
@@ -1997,7 +1997,7 @@ export default {
|
||||
},
|
||||
// 获取数据
|
||||
async getdate(options) {
|
||||
console.log('options at line 1917:', options);
|
||||
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
|
||||
@@ -386,7 +386,7 @@ export default {
|
||||
this.detailDate.articlezip = '';
|
||||
},
|
||||
mystate(mystate) {
|
||||
console.log('mystate at line 1052:', mystate);
|
||||
|
||||
let str = '';
|
||||
switch (mystate) {
|
||||
case 1:
|
||||
|
||||
@@ -3723,7 +3723,7 @@ return false
|
||||
getContent1(type, content) {
|
||||
console.log('content at line 2986:', content);
|
||||
content = this.$commonJS.transformHtmlString(content);
|
||||
console.log('content at line 2997:', content);
|
||||
|
||||
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = content; // 将 HTML 字符串加载到 div 中
|
||||
|
||||
@@ -469,7 +469,7 @@ export default {
|
||||
// formatter函数动态修改tooltip样式
|
||||
formatter: function (params) {
|
||||
var that = this;
|
||||
console.log('params at line 430:', params);
|
||||
|
||||
if (params) {
|
||||
var htmlStr = '';
|
||||
// htmlStr += params[0].name.replace(/\-/g, '/') + '<br/>'; //x轴的名称
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
element-loading-spinner="el-icon-loading"
|
||||
element-loading-background="rgba(0, 0, 0, 0.8)"
|
||||
>
|
||||
<el-row :gutter="20" style="height: 100%;">
|
||||
<el-col :span="10" style="height: 100%;">
|
||||
<el-row :gutter="20" style="height: 100%;" v-if="txt_mess&&txt_mess.accept_sn">
|
||||
<el-col :span="10" style="height: 100%;" v-if="this.add_apply == 0">
|
||||
<iframe ref="mainiframe" :src="pdfUrl" class="lookpdf" frameborder="0"></iframe>
|
||||
</el-col>
|
||||
<el-col :span="14" style="height: 100%; overflow-y: scroll">
|
||||
<el-col :span="this.add_apply == 0?14:24" style="height: 100%; overflow-y: scroll" :style="{'padding': this.add_apply == 1?'0 20px':'0'}">
|
||||
<!-- <el-col :span="24"> -->
|
||||
<el-card class="box-card">
|
||||
<div class="tet_list" :model="txt_mess">
|
||||
<div class="tet_list" :model="txt_mess" >
|
||||
<h4>{{ txt_mess.article_title }}</h4>
|
||||
<h5>
|
||||
<a :href="txt_mess.website" target="_blank" class="titlink">{{ txt_mess.title }}</a>
|
||||
@@ -24,7 +24,7 @@
|
||||
</h5>
|
||||
<p style="display: inline-block; margin: 0 35px"><b>Type :</b> {{ txt_mess.atype }}</p>
|
||||
<p style="display: inline-block"><b>Submitted time :</b> {{ txt_mess.ctime }}</p>
|
||||
<div>
|
||||
<div v-if="this.add_apply == 0">
|
||||
<p><b>Abstract :</b> <br />{{ txt_mess.abstrart }}</p>
|
||||
<div class="file_sty" v-for="item in fileList" style="margin-top: 15px">
|
||||
<img src="../../assets/img/icon_0.png" alt="" class="icon_img" />
|
||||
@@ -93,259 +93,7 @@ If you're still having trouble with Chrome, you could use other browsers to comp
|
||||
<el-card class="box-card" v-if="this.add_apply == 0">
|
||||
<!-- 审稿人表单修改 -->
|
||||
<common-review-article @refresh="getData" type="questionform" :form="questionform" :txt_mess="txt_mess" :btn_submit="btn_submit" :articleId="articleId" :journal_id="journal_id"></common-review-article>
|
||||
<!-- <el-form :model="questionform" :rules="rules" ref="question" label-width="300px" label-position="top">
|
||||
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="qu6">
|
||||
<span slot="label">
|
||||
1.Does the manuscript fall within the aim and scope of the journal?
|
||||
<a :href="txt_mess.aim_web" target="_blank" class="jouLink">( Aims & Scope ) </a>
|
||||
</span>
|
||||
<el-radio-group v-model="questionform.qu6">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="2.Originality of the topic">
|
||||
<el-radio-group v-model="questionform.qu1">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="3.Importance in its Field">
|
||||
<el-radio-group v-model="questionform.qu3">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="4.English language">
|
||||
<el-radio-group v-model="questionform.qu8">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="5.Readily Understandable">
|
||||
<el-radio-group v-model="questionform.qu5">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu9">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="1" style="margin-top: -10px">
|
||||
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.qu9contents"
|
||||
:rows="4"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu10">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="2" style="margin-top: -10px">
|
||||
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.qu10contents"
|
||||
:rows="4"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="8.Are the approach/ methods properly described?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu11">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="3" style="margin-top: -10px">
|
||||
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.qu11contents"
|
||||
:rows="4"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="9.Are the conclusions and interpretations sound?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu12">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="4" style="margin-top: -10px">
|
||||
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.qu12contents"
|
||||
:rows="4"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="10.Are the references properly cited?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="questionform.qu13">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="5" style="margin-top: -10px">
|
||||
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.qu13contents"
|
||||
:rows="4"
|
||||
></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="Overall the Paper is Rated" prop="rated">
|
||||
( <span style="color: #e41411">←←←←← Bad ←←← Poor</span>
|
||||
<span style="width: 10px; display: inline-block"></span>
|
||||
<span style="color: #369916">Accept → Superior → Excellent</span>)
|
||||
<br />
|
||||
<el-radio-group v-model="questionform.rated" size="small">
|
||||
<el-radio-button label="1"></el-radio-button>
|
||||
<el-radio-button label="2"></el-radio-button>
|
||||
<el-radio-button label="3"></el-radio-button>
|
||||
<el-radio-button label="4"></el-radio-button>
|
||||
<el-radio-button label="5"></el-radio-button>
|
||||
<el-radio-button label="6"></el-radio-button>
|
||||
<el-radio-button label="7"></el-radio-button>
|
||||
<el-radio-button label="8"></el-radio-button>
|
||||
<el-radio-button label="9"></el-radio-button>
|
||||
<el-radio-button label="10"></el-radio-button>
|
||||
</el-radio-group>
|
||||
<span style="margin-left: 20px">Your score : {{ questionform.rated }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
|
||||
<el-radio :label="1">Minor revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Major revision</el-radio>
|
||||
<br />
|
||||
|
||||
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
|
||||
<div v-else>
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label="Comments for the Authors"
|
||||
v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'"
|
||||
>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.comment"
|
||||
:rows="8"
|
||||
></el-input>
|
||||
</el-form-item> <el-form-item label="" v-if="articleId">
|
||||
<common-word-html :articleId="articleId" style="box-sizing: border-box"
|
||||
></common-word-html>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="Comments for the Authors"
|
||||
prop="comment"
|
||||
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'"
|
||||
>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.comment"
|
||||
:rows="8"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="Confidential Comments to the Editor">
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="please input content"
|
||||
v-model="questionform.confident"
|
||||
:rows="8"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="Please choose disclose your name or remain anonymous">
|
||||
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
|
||||
<el-radio :label="0">Disclose name</el-radio>
|
||||
<br />
|
||||
<el-radio :label="1">Remain anonymous</el-radio>
|
||||
</el-radio-group>
|
||||
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
|
||||
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However,
|
||||
if you prefer to remain anonymous, we will still express our gratitude by thanking you as an
|
||||
anonymous reviewer.
|
||||
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous
|
||||
reviewers for their invaluable contributions to the peer review process of this paper.
|
||||
</p>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="this.btn_submit == 0">
|
||||
<el-button type="primary" @click="questionSubmit">submit</el-button>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-form> -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -411,7 +159,7 @@ export default {
|
||||
is_anonymous: '',
|
||||
type: '',
|
||||
},
|
||||
add_apply: 0,
|
||||
add_apply: null,
|
||||
btn_submit: 0,
|
||||
pdfUrl: '',
|
||||
journal_id: null,
|
||||
@@ -449,7 +197,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
if (this.Direct_log == null) {
|
||||
this.getData();
|
||||
this.CheckReviewerPermissions();
|
||||
} else {
|
||||
this.$api
|
||||
.post('api/Chief/autoLoginForChief', {
|
||||
@@ -461,17 +209,9 @@ export default {
|
||||
localStorage.setItem('U_name', res.data.user.account);
|
||||
localStorage.setItem('U_id', res.data.user.user_id);
|
||||
localStorage.setItem('U_relname', res.data.user.realname);
|
||||
this.$bus.$emit('user-name-updated');
|
||||
|
||||
this.$api
|
||||
.post('api/Reviewer/agreeReviewerArticle', {
|
||||
art_rev_id: this.Art_id
|
||||
})
|
||||
.then((res) => {
|
||||
this.getData();
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
this.CheckReviewerPermissions()
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
@@ -482,7 +222,43 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
//审稿人权限判断
|
||||
CheckReviewerPermissions() {
|
||||
let params = {
|
||||
art_rev_id: this.Art_id,
|
||||
account: localStorage.getItem('U_name'),
|
||||
};
|
||||
|
||||
if (this.Direct_log) {
|
||||
params.act = this.Direct_log;
|
||||
}
|
||||
var that = this;
|
||||
this.$api
|
||||
.post('api/Workbench/getReviewerAuth', params)
|
||||
.then((res) => {
|
||||
//是否有审稿权限1是2否
|
||||
if(res.data.is_review_auth==1){
|
||||
that.add_apply = 0;
|
||||
that.getData()
|
||||
}else{
|
||||
|
||||
this.txt_mess={...res.data.article,title:res.data.article.journal_name,ctime:res.data.review.ctime,atype:res.data.article.type_name};
|
||||
this.add_apply = 1;
|
||||
}
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
getData() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
// 获取文章信息
|
||||
this.$api
|
||||
.post('api/Reviewer/getartrevdate', {
|
||||
@@ -500,19 +276,15 @@ export default {
|
||||
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
res.ctime = Y + M + D;
|
||||
|
||||
this.txt_mess = res;
|
||||
this.journal_id = res.journal_id;
|
||||
console.log('journal_id', this.journal_id);
|
||||
|
||||
// 文章状态
|
||||
if (res.astate == 2) {
|
||||
this.add_apply = 0;
|
||||
} else {
|
||||
this.add_apply = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
loading.close();
|
||||
})
|
||||
.catch((err) => {
|
||||
loading.close();
|
||||
this.$message.error(err);
|
||||
});
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import Common from './components/common/common'
|
||||
import store from './store' // 引入 store
|
||||
|
||||
|
||||
Vue.prototype.$bus = new Vue();
|
||||
Vue.prototype.$validateString = function (str) {
|
||||
return /^[a-zA-Z\s\u00C0-\u00FF\u0100-\u017F-]+$/.test(str);
|
||||
}
|
||||
@@ -92,6 +93,7 @@ async function loadJournalType() {
|
||||
async function loadJournalList() {
|
||||
try {
|
||||
const localData = store.state.journalList;
|
||||
|
||||
if (localData && Array.isArray(localData) && localData.length > 0) {
|
||||
return localData;
|
||||
}
|
||||
|
||||
@@ -354,7 +354,8 @@ export default new Router({
|
||||
path: '/success',
|
||||
component: () => import('../components/page/components/pendingPayment/success.vue'),
|
||||
meta: {
|
||||
title: 'Success'
|
||||
title: 'Success',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -368,7 +369,8 @@ export default new Router({
|
||||
path: '/articleReviewer',
|
||||
component: () => import('../components/page/articleReviewer.vue'),
|
||||
meta: {
|
||||
title: 'Article reviewer'
|
||||
title: 'Article reviewer',
|
||||
hideJournal: true
|
||||
},
|
||||
hidden: true
|
||||
},
|
||||
@@ -376,7 +378,8 @@ export default new Router({
|
||||
path: '/articleEditorialBoard',
|
||||
component: () => import('../components/page/articleEditorialBoard.vue'),
|
||||
meta: {
|
||||
title: 'Article Editorial Board'
|
||||
title: 'Article Editorial Board',
|
||||
hideJournal: true
|
||||
},
|
||||
hidden: true
|
||||
},
|
||||
@@ -400,7 +403,8 @@ export default new Router({
|
||||
path: '/articleReviewerAdd',
|
||||
component: () => import('../components/page/articleReviewerAdd.vue'),
|
||||
meta: {
|
||||
title: 'Article reviewer'
|
||||
title: 'Article reviewer',
|
||||
hideJournal: true
|
||||
},
|
||||
hidden: true
|
||||
},
|
||||
@@ -676,6 +680,7 @@ export default new Router({
|
||||
component: () => import('../components/page/per_history'),
|
||||
meta: {
|
||||
title: 'Review History',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -705,14 +710,16 @@ export default new Router({
|
||||
component: () => import('../components/page/per_text'),
|
||||
meta: {
|
||||
title: 'Reviewer article details',
|
||||
hideSidebar: true
|
||||
hideSidebar: true,
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/edit_per_text', //审稿人文章详情
|
||||
component: () => import('../components/page/edit_per_text'),
|
||||
meta: {
|
||||
title: 'Final decision article details'
|
||||
title: 'Final decision article details',
|
||||
hideJournal: true
|
||||
|
||||
}
|
||||
},
|
||||
@@ -720,42 +727,48 @@ export default new Router({
|
||||
path: '/per_text_yq', //审稿人文章详情-邀请
|
||||
component: () => import('../components/page/per_text_yq'),
|
||||
meta: {
|
||||
title: 'Reviewer article details'
|
||||
title: 'Reviewer article details',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/edit_per_text_yq', //审稿人文章详情-邀请
|
||||
component: () => import('../components/page/edit_per_text_yq'),
|
||||
meta: {
|
||||
title: 'Final decision article details'
|
||||
title: 'Final decision article details',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/per_text_success', //审稿人文章-审稿成功页
|
||||
component: () => import('../components/page/per_text_success'),
|
||||
meta: {
|
||||
title: 'Review completed'
|
||||
title: 'Review completed',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/edit_per_text_success', //审稿人文章-审稿成功页
|
||||
component: () => import('../components/page/edit_per_text_success'),
|
||||
meta: {
|
||||
title: 'Review completed'
|
||||
title: 'Review completed',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/per_text_repeat', //审稿人文章-重复审稿提示
|
||||
component: () => import('../components/page/per_text_repeat'),
|
||||
meta: {
|
||||
title: 'Review repeat'
|
||||
title: 'Review repeat',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/per_text_fail',
|
||||
component: () => import('../components/page/per_text_fail.vue'),
|
||||
meta: {
|
||||
title: 'Review fail'
|
||||
title: 'Review fail',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -769,7 +782,8 @@ export default new Router({
|
||||
path: '/edithistory', //编委历史列表
|
||||
component: () => import('../components/page/edit_history'),
|
||||
meta: {
|
||||
title: 'Accepted manuscript'
|
||||
title: 'Accepted manuscript',
|
||||
hideJournal: true
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -76,8 +76,8 @@ module.exports = {
|
||||
// target: 'http://192.168.110.110/tougao/public/index.php/',
|
||||
// target: 'http://api.tmrjournals.com/public/index.php/',//正式
|
||||
// target: 'http://zmzm.tougao.dev.com/',//晓玲
|
||||
// target: 'https://submission.tmrjournals.com/',//正式
|
||||
target: 'http://tougaotest.tmrjournals.com/public/index.php/',//测试环境
|
||||
target: 'https://submission.tmrjournals.com/',//正式
|
||||
// target: 'http://tougaotest.tmrjournals.com/public/index.php/',//测试环境
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/api': ''
|
||||
|
||||
Reference in New Issue
Block a user