50 Commits

Author SHA1 Message Date
@fawn-nine
089cc4290a 更改状态展示 2023-07-12 13:57:49 +08:00
@fawn-nine
5732216436 7-10 2023-07-10 15:38:39 +08:00
@fawn-nine
1b5993cb90 . 2023-07-10 15:08:47 +08:00
@fawn-nine
1d0675716d . 2023-07-10 13:39:53 +08:00
@fawn-nine
2f77ea87d4 微调 2023-07-10 13:22:49 +08:00
@fawn-nine
1f7e3c484b 12:22 2023-07-07 12:22:08 +08:00
@fawn-nine
85cc743ba0 后台引用编辑前 2023-07-07 10:22:27 +08:00
@fawn-nine
c509b53180 . 2023-07-04 15:09:51 +08:00
@fawn-nine
1be18db3ea 登陆验证 2023-06-30 17:54:50 +08:00
@fawn-nine
d0741468cd . 2023-06-30 17:17:04 +08:00
@fawn-nine
0660931ba9 . 2023-06-30 17:08:07 +08:00
@fawn-nine
2bfb4e237d 翻译 2023-06-30 17:03:52 +08:00
@fawn-nine
e53bbd0c3f 微调 2023-06-30 16:34:59 +08:00
@fawn-nine
9cd6916feb 微调 2023-06-30 16:09:55 +08:00
@fawn-nine
aad8481719 微调 2023-06-30 16:05:19 +08:00
@fawn-nine
d6decc78bd . 2023-06-30 13:46:56 +08:00
@fawn-nine
607c377e89 微调 2023-06-30 13:29:51 +08:00
@fawn-nine
f6db714b46 预接收 2023-06-30 11:35:04 +08:00
@fawn-nine
b230e61de9 18:02 2023-06-29 18:02:21 +08:00
@fawn-nine
cf880b0864 15:39 2023-06-28 15:39:53 +08:00
@fawn-nine
fbfbd8b6f6 17:04 2023-06-27 17:04:55 +08:00
@fawn-nine
20c809387d 15:08 2023-06-27 15:10:56 +08:00
@fawn-nine
a2e7328caf Merge branch 'master' into xie-accept 2023-06-27 13:05:13 +08:00
@fawn-nine
c0bbe5a671 0627 2023-06-27 11:36:40 +08:00
@fawn-nine
a870a091ce : 2023-06-26 17:46:05 +08:00
@fawn-nine
f60e0f4b8a 回库删除用户 2023-06-26 17:36:25 +08:00
@fawn-nine
8a91600612 step 4 major数据变更 2023-06-26 15:13:13 +08:00
@fawn-nine
0161fcc4fb 编辑工作台微调 2023-06-26 13:31:08 +08:00
@fawn-nine
a0d93c47a8 编辑工作台微调 2023-06-26 10:31:44 +08:00
@fawn-nine
6da4d6f79d 微调 2023-06-25 14:52:44 +08:00
@fawn-nine
531726439b 引用页面调整 2023-06-25 14:19:50 +08:00
徐哼唧L
6a924b067e 编辑工作台 2023-06-21 16:20:33 +08:00
徐哼唧L
2448358bb9 编辑工作台 2023-06-21 16:07:52 +08:00
徐哼唧L
d3593e6eb2 编辑工作台 2023-06-21 16:06:58 +08:00
徐哼唧L
75a08bbe70 编辑工作台 2023-06-21 14:08:51 +08:00
徐哼唧L
155185d668 编辑工作台 2023-06-21 13:03:40 +08:00
徐哼唧L
e8f4d19eea 编辑工作台列表 2023-06-15 18:06:58 +08:00
徐哼唧L
b4eef8558b 编辑工作台列表 2023-06-15 17:32:43 +08:00
徐哼唧L
3ed242a6b2 编辑工作台列表 2023-06-15 17:30:41 +08:00
@fawn-nine
2751b840a2 接口对接 2023-06-14 17:31:15 +08:00
@fawn-nine
fdeaeb57d2 完成右侧按钮基本功能 2023-06-13 18:02:20 +08:00
wangjinlei
6571b8c42f wjltest 2023-06-13 11:49:05 +08:00
@fawn-nine
fa8a3caf9a 0612 2023-06-12 18:07:36 +08:00
wangjinlei
849f06891f update .gitignore 2023-06-12 11:32:45 +08:00
@fawn-nine
15d3e7e0d3 显示电话 2023-06-12 11:28:16 +08:00
@fawn-nine
45d06d5960 . 2023-06-12 11:18:53 +08:00
@fawn-nine
de67e6e742 同步被拒稿件列表 2023-06-09 17:49:36 +08:00
@fawn-nine
bb544d5684 0609 2023-06-09 17:38:46 +08:00
@fawn-nine
55327d3b77 0609 2023-06-09 17:04:01 +08:00
@fawn-nine
184c4af1ca 预接收 2023-06-09 16:53:09 +08:00
26 changed files with 7205 additions and 3536 deletions

View File

@@ -1,134 +0,0 @@
// 引入axios
import axios from 'axios'
// 引入qs库转换参数格式
import qs from 'qs'
// axios全局配置
axios.defaults.timeout = 10000; // 超时时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; // 配置请求头
// axios.defaults.baseURL = '/'
// axios.defaults.baseURL = 'http://testtougao.tmrjournals.com/public/index.php/'
// axios.defaults.baseURL = 'http://www.tougao.com/'
//
const service = axios.create({
// baseURL: 'http://testtougao.tmrjournals.com/public/index.php/',
baseURL: 'http://www.tougao.com/',
// baseURL: '/',
});
const service_new = axios.create({
baseURL: 'http://journal.com/',
// baseURL: '/',
});
// 添加响应拦截器,统一处理服务器响应和异常
axios.interceptors.response.use(
(response) => {
// 请求正常则返回0
return Promise.resolve(response)
},
(error) => {
// 请求错误进行的处理可以写在这里
if (err && err.response) {
switch (err.response.status) {
case 400:
err.message = '错误请求'
break;
case 401:
err.message = '未授权,请重新登录';
break;
case 403:
err.message = '拒绝访问';
break;
case 404:
err.message = '请求错误,未找到该资源';
break;
case 405:
err.message = '请求方法未允许';
break;
case 408:
err.message = '请求超时';
break;
case 500:
err.message = '服务器端出错';
break;
case 501:
err.message = '网络未实现';
break;
case 502:
err.message = '网络错误';
break;
case 503:
err.message = '服务不可用';
break;
case 504:
err.message = '网络超时';
break;
case 505:
err.message = 'http版本不支持该请求';
break;
default:
err.message = `连接错误${err.response.status}`
}
}
return Promise.reject(error)
}
)
export default {
/**
* post方法对应post请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
post(url, params) {
return new Promise((resolve, reject) => {
service.post(url, qs.stringify(params))
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err)
})
})
},
/**
* post方法对应post请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
postNew(url, params) {
return new Promise((resolve, reject) => {
service_new.post(url, qs.stringify(params))
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err)
})
})
},
/**
* get方法对应get请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
get(url, params) {
return new Promise((resolve, reject) => {
axios.get(url, qs.stringify(params))
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err)
})
})
},
}

BIN
src/assets/img/noneData.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -138,26 +138,26 @@
<el-menu-item index="RejectedArticles">
{{$t('sidebar.ReArticles')}}
</el-menu-item>
<el-menu-item>
<a href="http://master.tmrjournals.com" target="_blank" class="linkBar">
Management System
</a>
</el-menu-item>
<el-menu-item>
<a href="https://mail.mxhichina.com/alimail" target="_blank" class="linkBar">
Official mailbox
</a>
</el-menu-item>
<el-menu-item>
<a href="https://www.grammarly.com" target="_blank" class="linkBar">
www.grammarly.com
</a>
</el-menu-item>
<el-menu-item>
<a href="https://quillbot.com" target="_blank" class="linkBar">
quillbot.com
</a>
</el-menu-item>
<!-- <el-menu-item index="1" key="1"> -->
<a href="http://master.tmrjournals.com" target="_blank" class="linkBar">
Management System
</a>
<!-- </el-menu-item> -->
<!-- <el-menu-item index="2" key="2"> -->
<a href="https://mail.mxhichina.com/alimail" target="_blank" class="linkBar">
Official mailbox
</a>
<!-- </el-menu-item> -->
<!-- <el-menu-item index="3" key="3"> -->
<a href="https://www.grammarly.com" target="_blank" class="linkBar">
www.grammarly.com
</a>
<!-- </el-menu-item> -->
<!-- <el-menu-item index="4" key="4"> -->
<a href="https://quillbot.com" target="_blank" class="linkBar">
quillbot.com
</a>
<!-- </el-menu-item> -->
</el-submenu>
</template>
</el-menu>
@@ -556,5 +556,11 @@
color: #fff;
display: block;
line-height: 50px;
padding: 0 0 0 40px;
font-size: 14px;
}
.linkBar:hover {
background: #00527a;
}
</style>

View File

@@ -0,0 +1,137 @@
<template>
<div class="container" >
<el-row :gutter="20" >
<el-alert v-if="alertShow"
:title="'Dear '+ user_name + ' Congratulations! , The information will be hidden after ' + hideSec + ' seconds'"
type="success"
show-icon>
</el-alert>
<el-col class="mt20">
<p>Congratulations! Your manuscript has entered into <b>Pre-accept</b> status. Now please check and complete the necessary information of your manuscript for final publication.</p>
</el-col>
</el-row>
<!-- 内容 -->
<el-row :gutter="20" class="content_box mt20">
<!-- 文章引用 -->
<el-col :class="['item', 'borderBottom', Ainfo.refer_state.state? 'passborder' : 'notPassborder']">
<h5 :class="['statusTop', Ainfo.refer_state.state? 'passStatus' : 'notPassStatus']">
<span v-if="Ainfo.refer_state.state" class="el-icon-check pass status"> Complete</span>
<span v-else class="el-icon-pie-chart notPass status"> Pending</span>
</h5>
<div class="con">
<h4>References </h4>
<p class="mt20">A total of <i class="tip">{{Ainfo.refer_state.num}}</i> references in this manuscript is identified.</p>
<!-- <p class="mt10"><img src="../../assets/img/icon_9.png" alt="" class="icon_img"> <el-link @click="goAddReferences(thisArtcleId)" type="primary" >&nbsp; &nbsp;Click here to edit</el-link> </p> -->
<p class="mt10"><el-button @click="goAddReferences(thisArtcleId)" icon="el-icon-edit" type="text">Edit</el-button></p>
</div>
</el-col>
</el-row>
<!-- 答疑 -->
<div class="mt20 helpcontent">
<div class="flexbox">
<span class="el-icon-info help"></span>
<div>
<h4>Any questions/Help</h4>
<p class="mt20">If you experience any problems, please contact us by publisher@tmrjournals.com</p>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
user_name: localStorage.getItem('U_relname'),
thisArtcleId: this.$route.query.id,
alertShow:true,
dingshi:null,
hideSec:5,
// 引用表单数据
ReferenceList:[],
Ainfo:{
refer_state:{
state:null,
num: null
}
}
}
},
created() {
this.getInfoStatu()
this.hideAlert()
},
methods:{
// 跳转到引用编辑页面
goAddReferences(id){
this.$router.push({
path: 'ReferenceEditor',
query: {
id: id
}
});
},
// 隐藏alert
hideAlert(){
this.dingshi = setInterval(()=>{
this.hideSec -= 1
// console.log(this.hideSec)
if(this.hideSec == 0){
this.alertShow = false
clearInterval(this.dingshi)
}
},1000)
},
// 获取资料状态
getInfoStatu(){
this.$api
.post('/api/Article/getPreacceptStatus', {
'article_id': this.$route.query.id
})
.then(res => {
if(res.code == 0){
// console.log(res, 'res')
this.Ainfo = {
refer_state:{
state: res.data.refer_state.state,
num:res.data.refer_state.num
}
}
}
})
.catch(err => {
console.log(err);
});
}
}
}
</script>
<style scoped>
.tip{background: #e6effb; padding: 4px; font-style: normal; border-radius:10px ;}
.passborder{border:1px solid #f0f9eb;}
.notPassborder{border:1px solid #fdf6ec;}
.con{padding: 20px;}
.statusTop{height:30px;}
.borderBottom{ border-bottom:1px solid #f1f1f1; margin-bottom: 20px; }
.help{font-size: 22px; margin-right: 10px;}
.el-alert__title{font-size: 26px;}
.mt20{margin-top: 20px;}
/* .content_box{padding:15px 10px; border:3px dashed #eff6ff; } */
.content_box .item{padding: 0 !important; border-radius: 20px 20px 0 0; overflow: hidden;}
.passStatus{ background: #f0f9eb;}
.notPassStatus{background: #fdf6ec;}
.content_box .item .status{ font-size: 16px; padding:0 10px; line-height: 30px; }
.content_box .item .status.pass{ color: #67c23a;}
.content_box .item .status.notPass{ color: #e6a23c;}
.flexbox{display: flex;}
p{color: #333;}
.mt10{margin-top: 10px;}
.more{font-weight: bold;}
.helpcontent{color: #888; margin-top: 150px; padding-top: 30px; border-top: 2px solid #f1f1f1;}
.helpcontent p{color: inherit; font-size: 12px;}
</style>

View File

@@ -9,8 +9,8 @@
<el-upload class="avatar-uploader" ref="upIconIMg"
:action="baseUrl+'api/Ucenter/up_userIcon_file'" :show-file-list="false" name="icon"
:on-success="handleAvatarSuccess2" :on-error="handleAvatarError2"
:before-upload="beforeAvatarUpload2" accept=".png,.jpg" style="display: none;">
<img v-if="pictureUrl" :src="pictureUrl" class="avatar">
:before-upload="beforeAvatarUpload2" style="display: none;">
<img v-if="pictureUrl" :src="pictureUrl" class="avatar" accept=".png,.jpg">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<div class="ptmark">Upload avatar</div>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,944 @@
<template>
<div v-loading.fullscreen.lock="holeLoading">
<div class="container" v-loading="importIoading" element-loading-text="In the process of importing, please wait">
<div v-if="tableData.length == 0">
<!-- 没有引用时 -->
<!-- <div class="noneData">
<img src="../../assets/img/noneData.png" alt="" class="icon_img">
<p class="nodatatext">TMR did not identify an available article citation in your latest uploaded document</p>
</div> -->
<el-row :gutter="20">
<!-- 教程 -->
<el-col >
<div class=" whoDo mt20">
<div>
<h2>What should I do
<el-tooltip class="item" effect="light" content="click for more help" placement="right">
<span class="el-icon-warning-outline help" @click="showHelp"></span>
</el-tooltip>
</h2>
<p class="mt10 c666">you can add a citation in the following way.</p>
<ul>
<!-- 文件上传的形式 -->
<li>
<div class="mt20">
<h4>Add in bulk by uploading excel files &nbsp;&nbsp;
<!-- <el-button class="inlinebutton" type="primary" plain size="mini" @click="showUpload">Add</el-button> -->
</h4>
<p class="mt10 c666">Before uploading the file, you need to download the template file,
<a href="https://submission.tmrjournals.com/public/system/refer.xlsx" download="refer" target="_blank" class="downloadbtn" >click download</a>
,to add your references to the template file, and upload it.
</p>
<div v-if="uploadVisible">
<div class="uploadBox">
<el-upload ref="uploadFile" class="upload-demo up_newstyle mt10" :action="upload_manuscirpt"
accept=".xlsx" name="referFile" :before-upload="beforeupload_manuscirpt"
:on-error="uperr_coverLetter" :on-success="upSuccess_manuscirpt" :limit="1"
:on-exceed="alertlimit"
:on-remove="removefilemanuscirpt"
:file-list="fileL_manuscirpt"
>
<div class="el-upload__text" @click="clearUploadedFile">
<em>Upload</em>
</div>
</el-upload>
</div>
</div>
</div>
</li>
<!-- 文本域 -->
<!-- <li>
<div class="mt20">
<h4>Add in bulk by text field &nbsp;&nbsp;&nbsp;<el-button @click="addText" class="inlinebutton" type="primary" plain size="mini">Add</el-button></h4>
<div v-if="textareaVisible">
<el-input class="textarea mt10"
type="textarea"
:rows="3"
placeholder="Put your reference entry here"
v-model="textarea">
</el-input>
<el-button class="mt10" icon="el-icon-check" type="primary" size="mini" @click="importText()">Import</el-button>
</div>
</div>
</li> -->
</ul>
</div>
</div>
</el-col>
</el-row>
</div>
<!-- 有引用数据-->
<div v-else>
<div class="topInfo">
<h3>Dear {{user_name}}</h3>
<p class="mt10">Please check and modify the references information on this page with the following instructions:</p>
<ul class="mt20">
<li>
<p>- Please modify the reference in the
<span class="status warn float" ><i class="el-icon-warning-outline"></i></span>
status, moving the reference information from <span class="status warn float" ><i class="el-icon-warning-outline"></i></span>
status to <span class="status ok float" ><i class="el-icon-circle-check"></i></span> status.</p>
</li>
<li>
<p>- If you find the number of reference is disorder for technical reason, please click the
<el-button type="warning" size="mini" plain></el-button>
and
<el-button type="warning" size="mini" plain></el-button> behind each piece of information to adjust the order of the data.</p>
</li>
<li>
<p>- Please click <el-button type="success" size="mini" plain>Add</el-button> to add another line of reference information after this row. </p>
</li>
<li>
<p>- If you want to discard all references and import a new batch of reference information, please click <el-button type="text" @click="removeAll">Delete and re-import</el-button>.</p>
</li>
<li>
<p>- Please do not forget to recheck all references in the <span class="status ok float" ><i class="el-icon-circle-check"></i></span> status,especially abbreviated journal title.</p>
</li>
</ul>
</div>
<div class="refenceCentent mt20">
<el-table :data="tableData" ref="multipleTable"
empty-text="New messages (0)" :show-header="false" :stripe="false" :highlight-current-row="false">
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
<el-table-column label="state" width="55" align="center">
<template slot-scope="scope">
<span class="status ok" v-if="scope.row.refer_doi != '' && scope.row.author != ''" >
<i class="el-icon-circle-check"></i>
</span>
<span class="status warn" v-else >
<i class="el-icon-warning-outline"></i>
</span>
</template>
</el-table-column>
<el-table-column label="Title" align="left">
<template slot-scope="scope">
<!-- journal 形式 -->
<div style="text-align: left;" v-if="scope.row.refer_type == 'journal'">
<p>{{scope.row.author}},{{scope.row.title}}, <em>{{scope.row.joura}}</em> ,{{scope.row.dateno}}<br/></p>
<a class="doiLink" :href="scope.row.doilink" target="_blank">{{scope.row.doilink}}</a>
</div>
<!-- book 形式 -->
<div style="text-align: left;" v-if="scope.row.refer_type == 'book'">
<p>{{scope.row.author}},{{scope.row.title}},{{scope.row.dateno}}<br/></p>
<a class="doiLink" :href="scope.row.isbn" target="_blank">{{scope.row.isbn}}</a>
</div>
<!-- other 形式 -->
<p class="wrongLine" style="text-align: left;" v-if="scope.row.refer_type == 'other'">
{{scope.row.refer_frag}}
</p>
</template>
</el-table-column>
<el-table-column align="center" width="360">
<div slot-scope="scope">
<el-button style="margin-left:10px;" @click="change(scope.row,'Edit')" plain type="primary" size="mini" icon="el-icon-edit">edit</el-button>
<el-tooltip popper-class="tps" class="item" effect="light" content="Add one under this line" placement="top">
<el-button @click="addLine(scope.row, 'Add')" type="success" size="mini" plain>Add</el-button>
</el-tooltip>
<el-button type="warning" size="mini" plain :disabled="scope.$index != 0 ? false : true" @click="changeOrder(scope.row,'up')"></el-button>
<el-button type="warning" size="mini" plain :disabled="scope.$index == tableData.length-1 ? true : false" @click="changeOrder(scope.row,'down')"></el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" style="float: right;" plain @click="deleteLine(scope.row)">delete</el-button>
</div>
</el-table-column>
</el-table>
</div>
</div>
</div>
<!-- 修改引用 -->
<el-dialog v-loading="addLoading" :title= "dialogTitle + ' References'" :visible.sync="editboxVisible" width="800px" @close="cancelSave">
<p class="yinyongPre c888">Now you are starting to add or modify this reference. If this reference has a DOI, you can directly copy it into the DOI input box and submit it. If this reference doesnt have the DOI, please turn on the No DOI button, and write all details of this reference according to the hints.</p>
<el-form :model="refenceForm" :rules="refenceFormrules" ref="refenceForm" label-width="150px" class="editForm mt10">
<!-- 内容开关 -->
<el-form-item label="Source:" >
<el-select v-model="SourceType" placeholder="please pick">
<el-option
v-for="item in sourceOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<!-- Journal -->
<div v-show="SourceType == 'journal'" >
<el-form-item label="Doi:" prop="doi" >
<el-input v-model="refenceForm.doi" >
<el-button @click="gotoFormate" slot="append" >Formate</el-button>
</el-input>
<p class="zhushi">You can click the 'Formate' on the right to automatically identify and quickly fill in all the current fields</p>
</el-form-item>
</div>
<el-form-item >
<div class="line"></div>
</el-form-item>
<!-- 中间部分 -->
<div v-show="SourceType !='other'">
<el-form-item label="Author(s):" required prop="author" >
<el-input v-model="refenceForm.author" placeholder="Patel NM, Stottlemyer BA, Gray MP, Boyce RD, Kane Gill SL"></el-input>
<p class="zhushi">Six or less authors are required to list all authors while more than six authors are required to list three of them with et al.</p>
</el-form-item>
<el-form-item :label="SourceType == 'journal' ? 'Title:' : 'Book'" required prop="title" >
<el-input v-if="SourceType == 'journal'" v-model="refenceForm.title" placeholder="eg: The role of autophagy in the treatment of osteoporosis by Chinese medicines (natural)"></el-input>
<el-input v-if="SourceType == 'book'" v-model="refenceForm.title" placeholder="eg: Traditional Medicine Research"></el-input>
<p v-if="SourceType == 'book'" class="zhushi">Full Name of Book.</p>
</el-form-item>
<el-form-item label="Publication Details:" required prop="dateno" >
<div v-if="SourceType == 'journal'">
<el-input v-model="refenceForm.dateno" placeholder="eg: 2023;8(9):49-62"></el-input>
<p class="zhushi">Year;Volume(issue):Inclusive page numbers.</p>
</div>
<div v-if="SourceType == 'book'">
<el-input v-model="refenceForm.dateno" placeholder="eg: New York, NY:McGraw-Hill;2011"></el-input>
<p class="zhushi">City, State (or Country if not in the US) of publisher:Publishers name;copyright year.</p>
</div>
</el-form-item>
</div>
<div v-show="SourceType == 'journal'">
<el-form-item label="Journal:" required prop="joura" >
<el-input v-model="refenceForm.joura" placeholder="eg: Tradit Med Res"></el-input>
<p class="zhushi">Abbreviated Journal Title.</p>
</el-form-item>
<el-form-item label="DOI/URL:" required prop="doilink" >
<el-input v-model="refenceForm.doilink" placeholder="eg: 10.1002/cncr.30667"></el-input>
</el-form-item>
</div>
<!-- Book -->
<div v-show="SourceType =='book'">
<el-form-item label="ISBN:" required prop="isbn" >
<el-input v-model="refenceForm.isbn" ></el-input>
</el-form-item>
</div>
<!-- others -->
<div v-show="SourceType =='other'">
<el-form-item label="Content:" required prop="content" >
<el-input type="textarea" rows="5" v-model="refenceForm.content" placeholder="please refer to the AMA manual of style (10th ed.)"></el-input>
</el-form-item>
</div>
</el-form>
<!-- <el-form :model="refenceLinkForm" :rules="refenceLinkFormrules" ref="refenceLinkForm" label-width="80px" class="editForm mt10">
<el-form-item label="Author(s):" required prop="author" >
<el-input v-model="refenceLinkForm.author" placeholder=""></el-input>
</el-form-item>
<span>Six or less authors are required to list all authors while more than six authors are required to list three of them with et al</span>
<el-form-item label="title:" required prop="title" >
<el-input v-model="refenceLinkForm.title" placeholder="eg: Tradit Med Res"></el-input>
</el-form-item>
<el-form-item label="Source:" required prop="joura" >
<el-input v-model="refenceLinkForm.joura" placeholder="eg:Healthcare (Basel)."></el-input>
</el-form-item>
<el-form-item label="Publication Details:" required prop="dateno" >
<el-input v-model="refenceLinkForm.dateno" placeholder="eg: 2023;8(9):49-62"></el-input>
</el-form-item>
<span>Year;Volume(issue):Inclusive page numbers.</span>
<el-form-item label="doilink:" required prop="doilink" >
<el-input v-model="refenceLinkForm.doilink" placeholder="eg:https://doi.org/10.1002/cncr.30667"></el-input>
</el-form-item>
</el-form> -->
<span slot="footer" class="dialog-footer">
<el-button @click="cancelSave">Cancel</el-button>
<el-button type="primary" @click="saveChange" v-if="dialogTitle == 'Edit'">Save</el-button>
<el-button type="primary" @click="saveAdd" v-else>Save</el-button>
</span>
</el-dialog>
<!-- 帮助信息 -->
<el-dialog title="Any questions or Help" :visible.sync="helpVisible" width="500px">
<div>
<p class="mt20" style="line-height: 28px;">If you experience any problems, <br/>
please contact us by publisher@tmrjournals.com</p>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="helpVisible = false" type="primary">OK</el-button>
</span>
</el-dialog>
<!-- 临时引用信息 -->
<el-dialog title="Reference List" :visible.sync="linVisible" width="800px">
<div class="refenceCentent mt20" v-if="Tempredable.length > 0">
<el-table :data="Tempredable" ref="tempredableTable" max-height="400px"
empty-text="New messages (0)" :show-header="false" :stripe="false" :highlight-current-row="false">
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
<el-table-column label="Title" align="left">
<template slot-scope="scope">
<p style="text-align: left;">
<!-- <el-badge is-dot :hidden="scope.row.author_act==1?false:true" class="item"> -->
{{scope.row.content}}<br/><el-link type="primary">{{scope.row.doi}}</el-link>
<!-- </el-badge> -->
</p>
</template>
</el-table-column>
</el-table>
<div class="shuoming mt20">
<p class="c888"><i class="el-icon-message-solid"></i>&nbsp;&nbsp;The above is the citation data identified according to your uploaded file, you can choose to import, or discard this data and upload again.</p>
</div>
</div>
<span slot="footer" class="dialog-footer" >
<el-button @click="abandon">Abandon and Reimport</el-button>
<el-button type="primary" @click="importText">Import</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data(){
return{
user_name: localStorage.getItem('U_relname'),
holeLoading : false, // 进入页面的loading
importIoading: false,
baseUrl: this.Common.baseUrl,
addLoading:false,
SourceType:'journal',
sourceOptions:[
{
value: 'journal',
label: 'journal'
},
{
value: 'book',
label: 'book'
},
{
value: 'other',
label: 'other'
},
],
// 引用数据列表
tableData:[
],
// 临时引用列表
Tempredable:[
],
editboxVisible:false,
helpVisible:false,
uploadVisible:true,
linVisible:false,
textarea:'',
textareaVisible:false,
fileL_manuscirpt: [],
form: {
referFile: '',
},
// 引用表单
refenceForm:{
doi:'',
article_id:null,
p_refer_id:null, // 当前行一行的引用序号
pre_p_refer_id:null, // 上一行
refer_type:'', // 类型
joura:'',
author:'',
doilink:'',
dateno:'',
isbn:'',
content:'',
title:''
},
refenceFormrules:{
// doi:[
// { required: false, message: 'The Doi cannot be empty', trigger: 'blur' },
// ],
joura:[
{ required: true, message: 'The Journal cannot be empty', trigger: 'blur' },
],
author:[
{ required: true, message: 'The Author(s) cannot be empty', trigger: 'blur' },
],
title:[
{ required: true, message: 'Please fill in this field', trigger: 'blur' },
],
doilink:[
{ required: true, message: 'The doi/url cannot be empty', trigger: 'blur' },
],
dateno:[
{ required: true, message: 'The Publication Details cannot be empty', trigger: 'blur' },
],
isbn:[
{ required: true, message: 'The ISBN cannot be empty', trigger: 'blur' },
],
content:[
{ required: true, message: 'The Content cannot be empty', trigger: 'blur' },
],
},
// 引用表单
// refenceLinkForm:{
// author:'',
// title:'',
// joura:'',
// dateno:'',
// doilink:'',
// pre_p_refer_id:null, // 当前行一行的引用序号,
// article_id: null,
// p_refer_id: null,
// },
// refenceLinkFormrules:{
// author:[
// { required: true, message: 'The author cannot be empty', trigger: 'blur' },
// ],
// title:[
// { required: true, message: 'The title cannot be empty', trigger: 'blur' },
// ],
// dateno:[
// { required: true, message: 'The dateno cannot be empty', trigger: 'blur' },
// ],
// doilink:[
// { required: true, message: 'The doilink cannot be empty', trigger: 'blur' },
// ]
// },
dialogTitle:''
}
},
created(){
this.openFullScreen1()
this.getRefData()
this.holeLoading = true
},
methods:{
// 格式化
gotoFormate(){
// this.$refs['refenceForm'].validateField('doi', (callback)=>{
if(this.refenceForm.doi != ''){
this.holeLoading = true
this.$api
.post('/api/Preaccept/searchDoi',{'doi': this.refenceForm.doi})
.then(res => {
this.holeLoading = false
// console.log(res)
if(res.code == 0 ){
this.$nextTick(()=>{
this.refenceForm.author = res.data.formate.author
this.refenceForm.title = res.data.formate.title
this.refenceForm.joura = res.data.formate.joura
this.refenceForm.dateno = res.data.formate.dateno
this.refenceForm.doilink = res.data.formate.doilink
})
}else{
this.$message.error(res.msg)
}
}).catch((e)=>{
this.$message.error(e.msg)
this.holeLoading = false
})
}else{
this.$message.error('The Doi cannot be empty!')
}
// })
},
// 全页面加载动画
openFullScreen1() {
this.holeLoading = true;
},
// 获取引用文献信息
getRefData(){
this.$api
.post('api/Preaccept/getArticleReferences',{'article_id': this.$route.query.id})
.then(res => {
console.log(res)
if(res.code == 0 && res.data.refers.length > 0){
this.tableData = res.data.refers
}
this.holeLoading = false
})
.catch(err => {
console.log(err);
});
},
// 放弃导入数据
abandon(){
this.form.referFile = '';
this.fileL_manuscirpt = [];
this.linVisible = false;
this.Tempredable = []
},
// 显示帮助信息
showHelp(){
this.helpVisible = true
},
// 导入文本域
importText(){
this.linVisible = false
this.importIoading = true
//console.log(this.form.referFile,'referFile')
this.$api
.post('api/Preaccept/addRefersByExcel', {
'article_id' :this.$route.query.id,
'referFile' : this.form.referFile
})
.then(res => {
if (res.code == 0) {
this.$message.success('Import succeeded')
this.linVisible = false
this.Tempredable = []
this.importIoading = false
// 有可以可用的文献数据,刷新当前页面
// location.reload() // 刷新本页面
this.getRefData()
}
})
.catch(err => {
console.log(err);
});
},
// 文本域添加
addText(){
this.textareaVisible = true
this.uploadVisible = false
},
showUpload(){
this.textareaVisible = false
this.uploadVisible = true
},
// 显示修改引用
change(row, optitle){
this.dialogTitle = optitle
this.editboxVisible = true
// console.log(this.refenceForm.content,55555)
this.$nextTick(() => {
console.log(row,'row')
this.refenceForm.doi = row.refer_doi
this.refenceForm.p_refer_id = row.p_refer_id
this.SourceType = row.refer_type
this.refenceForm.author = row.author
this.refenceForm.title = row.title
this.refenceForm.joura = row.joura
this.refenceForm.dateno = row.dateno
this.refenceForm.doilink = row.doilink
this.refenceForm.content = row.refer_frag
this.refenceForm.joura = row.joura
this.refenceForm.isbn = row.isbn
})
},
// 取消保存
cancelSave(){
this.editboxVisible = false
// refenceForm
this.$refs['refenceForm'].clearValidate();
this.$refs['refenceForm'].resetFields();
this.refenceForm.doi = ''
this.dialogTitle = ''
},
// 编辑引用
saveChange(){
var journalValid = false
var bookValid = false
var otherValid = false
if(this.SourceType == 'journal') {
// Journal形式
// var doi = ''
var author = ''
var title = ''
var dateno = ''
var joura = ''
var doilink = ''
// this.$refs['refenceForm'].validateField('doi',(callback)=>{
// doi = callback
// })
this.$refs['refenceForm'].validateField('author',(callback)=>{
author = callback
})
this.$refs['refenceForm'].validateField('title',(callback)=>{
title = callback
})
this.$refs['refenceForm'].validateField('dateno',(callback)=>{
dateno = callback
})
this.$refs['refenceForm'].validateField('joura',(callback)=>{
joura = callback
})
this.$refs['refenceForm'].validateField('doilink',(callback)=>{
doilink = callback
})
author == '' && title == '' && dateno == '' && joura == '' && doilink == '' ? journalValid = true :''
}else if(this.SourceType == 'book'){
// book 形式
var author = ''
var title = ''
var dateno = ''
var isbn = ''
this.$refs['refenceForm'].validateField('author',(callback)=>{
author = callback
})
this.$refs['refenceForm'].validateField('title',(callback)=>{
title = callback
})
this.$refs['refenceForm'].validateField('dateno',(callback)=>{
dateno = callback
})
this.$refs['refenceForm'].validateField('isbn',(callback)=>{
isbn = callback
})
author == '' && title == '' && dateno == '' && isbn == '' ? bookValid = true : ''
}else if(this.SourceType == 'other'){
// others 形式
var content = ''
this.$refs['refenceForm'].validateField('content',(callback)=>{
content = callback
})
content == '' ? otherValid = true : ''
}
// console.log(otherValid,99)
if(journalValid || bookValid || otherValid){ // 有任意一个模式符合验证规则就提交
this.editRefSave()
}
},
// 提交引用修改
editRefSave(){
this.refenceForm.refer_type = this.SourceType
this.addLoading = true
console.log(this.refenceForm)
this.$api
.post('api/Preaccept/editRefer', this.refenceForm)
.then(res => {
if (res.code == 0) {
this.addLoading = false
this.$message.success('successed')
this.getRefData()
this.cancelSave()
}else if(res.code == 1){
this.addLoading = false
this.$message.error(res.msg)
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
},
// 保存新增
saveAdd(){
var journalValid = false
var bookValid = false
var otherValid = false
if(this.SourceType == 'journal') {
// Journal形式
// var doi = ''
var author = ''
var title = ''
var dateno = ''
var joura = ''
var doilink = ''
// this.$refs['refenceForm'].validateField('doi',(callback)=>{
// doi = callback
// })
this.$refs['refenceForm'].validateField('author',(callback)=>{
author = callback
})
this.$refs['refenceForm'].validateField('title',(callback)=>{
title = callback
})
this.$refs['refenceForm'].validateField('dateno',(callback)=>{
dateno = callback
})
this.$refs['refenceForm'].validateField('joura',(callback)=>{
joura = callback
})
this.$refs['refenceForm'].validateField('doilink',(callback)=>{
doilink = callback
})
author == '' && title == '' && dateno == '' && joura == '' && doilink == '' ? journalValid = true :''
}else if(this.SourceType == 'book'){
// book 形式
var author = ''
var title = ''
var dateno = ''
var isbn = ''
this.$refs['refenceForm'].validateField('author',(callback)=>{
author = callback
})
this.$refs['refenceForm'].validateField('title',(callback)=>{
title = callback
})
this.$refs['refenceForm'].validateField('dateno',(callback)=>{
dateno = callback
})
this.$refs['refenceForm'].validateField('isbn',(callback)=>{
isbn = callback
})
author == '' && title == '' && dateno == '' && isbn == '' ? bookValid = true : ''
}else if(this.SourceType == 'other'){
// others 形式
var content = ''
this.$refs['refenceForm'].validateField('content',(callback)=>{
content = callback
})
content == '' ? otherValid = true : ''
}
// console.log(otherValid,99)
if(journalValid || bookValid || otherValid){ // 有任意一个模式符合验证规则就提交
this.refenceForm.refer_type = this.SourceType
// console.log(this.refenceForm,99)
this.addLoading = true
this.$api
.post('api/Preaccept/addRefer', this.refenceForm)
.then(res => {
if (res.code == 0) {
this.addLoading = false
this.$message.success('successed')
this.getRefData()
this.cancelSave()
}else if(res.code == 1){
// doi 错误
this.addLoading = false
this.$message.error(res.msg)
// this.getRefData()
// this.cancelSave()
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}else{
return false
}
},
beforeupload_manuscirpt(file) {
let flieArr = file.name.split(".")
let fileSuffix = flieArr[flieArr.length - 1];
console.log(fileSuffix)
// return false
if (fileSuffix != 'xlsx') {
this.$message.error('Only excel and compressed files can be uploaded(.xlsx)');
return false;
}
// const ismau =
// file.type === 'application/msword' ||
// file.type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ||
// file.type === 'application/x-zip-compressed' ||
// file.name.split('.')[1] === 'rar';
// if (!ismau) {
// this.$message.error('Only word and compressed files(.doc,.docx,.rar,.zip)');
// }
// return ismau;
},
uperr_coverLetter(err) {
this.$message.error('Upload error');
},
upSuccess_manuscirpt(res, file) {
if (res.code == 0) {
this.form.referFile = res.upurl;
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = "referFile";
this.fileL_manuscirpt[0].url = res.upurl;
if(res.refers.length > 0){
this.Tempredable = res.refers
this.linVisible = true
}
} else {
this.$message.error('service error: ' + res.msg);
}
},
//超出传送文件个数限制
alertlimit() {
this.$message.error('The maximum number of uploaded files has been exceeded');
},
removefilemanuscirpt(file, fileList) {
this.form.referFile = '';
this.fileL_manuscirpt = [];
this.$message.success('Deletion succeeded!');
// this.$api
// .post('api/Article/delArticleFile', {
// file_id: this.form.manuscirptId
// })
// .then((res) => {
// if (res.code == 0) {
// this.$message.success('Deletion succeeded!');
// } else {
// this.$message.error(res.msg);
// }
// });
},
clearUploadedFile() {
this.$refs['uploadFile'].clearFiles();
},
// 清空引用文献
removeAll(){
this.$confirm('Are you sure you want to empty the reference?', 'Tips', {
confirmButtonText: 'Sure',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(()=>{
this.$api
.post('api/Preaccept/discardRefers', {
'article_id': this.$route.query.id
})
.then(res => {
if (res.code == 0) {
this.$message.success('success')
location.reload() // 刷新本页面
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}).catch(()=>{})
},
// 添加一行
addLine(row, optitle){
// console.log(row)
this.dialogTitle = optitle
// this.$refs['refenceForm'].clearValidate()
this.editboxVisible = true
this.refenceForm.pre_p_refer_id = row.p_refer_id
this.refenceForm.article_id = this.$route.query.id
// this.refenceLinkForm.pre_p_refer_id = row.p_refer_id
//this.refenceLinkForm.article_id = this.$route.query.id
this.$nextTick(()=>{
this.$refs['refenceForm'].clearValidate(['doi']);
})
},
// 删除一行
deleteLine(row){
this.$confirm('Are you sure you want to remove this reference?', 'Tips', {
confirmButtonText: 'Sure',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(() => {
this.$api
.post('api/Preaccept/delRefer', {
'p_refer_id': row.p_refer_id
})
.then(res => {
if (res.code == 0) {
this.$message.success('remove successed!')
this.getRefData()
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}).catch(() => {
// this.$message({
// type: 'info',
// message: '已取消删除'
// });
});
},
// 调整顺序
changeOrder(row, opName){
let optitle = ''
opName == 'up' ? optitle = 'Move up this line?' : optitle = 'Move down this line?'
// this.$confirm(optitle, 'Tips', {
// confirmButtonText: 'Sure',
// cancelButtonText: 'Cancel',
// type: 'warning'
// }).then(() => {
this.$api
.post('api/Preaccept/sortRefer', {
'p_refer_id': row.p_refer_id,
'act': opName
})
.then(res => {
if (res.code == 0) {
// this.$message.success('successed!')
this.getRefData()
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
// this.$message({
// type: 'success',
// message: 'remove successed!'
// });
// }).catch(()=>{});
}
},
computed: {
upload_manuscirpt: function() {
// return this.baseUrl + 'api/Article/up_file/type/manuscirpt';
return this.baseUrl + 'api/Preaccept/up_refer_file';
},
},
watch: {
SourceType : {
handler(newVal, oldVal) {
this.$nextTick(()=>{
// console.log('清空验证信息')
// this.$refs['refenceLinkForm'].clearValidate()
this.$refs['refenceForm'].clearValidate()
// this.$refs['refenceForm'].resetFields() // 表单重置
})
},
// immediate: true,
deep: true // 可以深度检测到 person 对象的属性值的变化
}
}
}
</script>
<style scoped>
.line{border: 1px dashed #ebebeb; margin: 15px 0;}
.tip{background: #e6effb; padding: 2px; font-style: normal; border-radius:10px ;}
.wrongLine{ color: #f15f44;}
.doiLink{color: #409EFF;}
.editForm{background-color:#f9f9f9; padding: 20px 0; padding-right: 20px;}
.yinyongPre{line-height: 28px; margin-bottom: 20px;}
.shuoming{font-size: 14px; line-height: 26px; }
.shuoming i{color: #F5BF6D;}
.status{ display: block; width: 40px; height: 40px; border-radius: 40px; font-size: 22px; line-height: 40px; color: #fff; text-align: center;}
.status.ok{background: #a7e389;}
.status.warn{background: #ffd192;}
.status.float{display: inline-block;}
.topInfo{padding: 20px; }
.topInfo ul{padding-left: 30px;}
.topInfo ul li{margin-top: 10px;}
.downloadbtn{font-weight: bold; color: #409EFF !important;}
.uploadBox{width: 400px;}
.el-upload__text{width: 80px; height: 80px; text-align: center; line-height: 80px;}
.help{font-size: 18px; color: #F5BF6D; cursor: pointer;}
.el-alert__title{font-size: 26px;}
.mt20{margin-top: 20px;}
.content_box{padding:15px 10px; border:3px dashed #eff6ff; }
.flexbox{display: flex;}
p{color: #333; font-size: 14px;}
.mt10{margin-top: 10px;}
.more{font-weight: bold;}
.noneData{ margin:30px 0; padding: 20px; border:3px dashed #F8F8F8; }
.noneData img{display: block; margin: 10px auto; opacity: .5; width: 100px;}
.nodatatext{color: #666; text-align: center;}
.zhushi{color: #999; font-size: 12px;}
.whoDo{background: #EEF7F9; padding: 30px;}
.whoDo ul{padding-left: 20px;}
.helpcontent{color: #888; margin-top: 150px;}
.helpcontent p{color: inherit; font-size: 12px;}
.c666{color: #666;}
.c888{color: #888;}
/deep/ .el-table tr:nth-child(2n){
background: #fff;
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<div>
<div class="container">
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
<el-table :data="tableData" border stripe class="table" ref="multipleTable" v-loading="loading"
header-cell-class-name="table-header" empty-text="New messages (0)">
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
<el-table-column width="180" label="Manuscript ID" align="center">
@@ -24,22 +24,15 @@
</el-badge>
</p>
</template>
</el-table-column>
<el-table-column label="Type" align="center" width="300">
</el-table-column>
<el-table-column label="scoring" align="center" prop="scoring" width="90">
</el-table-column>
<el-table-column label="author" align="center" width="300">
<template slot-scope="scope">
<!-- {{scope.row.type}} -->
<el-select v-model="scope.row.type" disabled style="width: 100%;">
<el-option v-for="item in journal_type" :key="item.value" :label="item.name"
:value="item.value"></el-option>
</el-select>
<!--- <div style="text-align: center;margin-bottom: 10px;" v-if="scope.row.emailh==1">
<el-button size="mini" type="primary" plain icon="el-icon-chat-dot-square"
@click="linkEmailist(scope.row)">History</el-button>
</div>
<div style="text-align: center;">
<el-button size="mini" type="primary" plain icon="el-icon-message"
@click="linkEmail(scope.row)">Email</el-button>
</div> --->
<b>{{scope.row.user.realname}}</b><br/>
{{scope.row.user.email}}<br/>
{{scope.row.user.phone}}
</template>
</el-table-column>
<el-table-column label="Remarks" align="center">
@@ -100,7 +93,8 @@
content: ''
},
journal_type:[],
ss:''
ss:'',
loading:false
};
},
components: {
@@ -120,10 +114,12 @@
// 获取数据
getData() {
// 被拒稿件列表
this.loading = true
this.$api
.post('api/Article/getRejectArticles', this.query)
.then(res => {
if (res.data.count > 0) {
this.loading = false
this.tableData = res.data.articles
this.Total = res.data.count
}

View File

@@ -326,6 +326,7 @@
Only Word and compressed files can be uploaded (file format: .docx).
</div>
</el-upload>
</el-form-item>
<el-form-item label="Supplementary Material :" label-width="200px">
<el-upload class="upload-demo up_newstyle" :action="upload_supplementary" accept=".zip"
@@ -486,8 +487,8 @@
</el-select>
</el-form-item>
<el-form-item label="Major :" prop="major_all">
<el-cascader :options="jl_major" v-model="item.major_all" :props="defaultParams"
placeholder="Please select major" style="width: 270px;" clearable></el-cascader>
<el-cascader :options="step4MajorList" v-model="item.major_all" :props="default4Params"
placeholder="Please select major" style="width: 270px;" clearable ></el-cascader>
</el-form-item>
<el-button :disabled="tuiJianForm.length==1" @click="onDeleteTuijian(item, index)"
type="danger" icon="el-icon-delete" class="shanchu_tj"></el-button>
@@ -664,7 +665,7 @@
manuscirpt: '',
supplementary: '',
code: '',
topics:null
// topics:null
},
journal_type: [{
name: 'ARTICLE',
@@ -873,12 +874,18 @@
companyList: [],
countrys: [],
majorList: [],
step4MajorList:[], // 第四步的major数据
jl_major: [],
defaultParams: {
label: 'title',
value: 'major_id',
children: 'children'
},
default4Params:{
label: 'major_title',
value: 'major_id',
children: 'children'
},
mj_jour: [],
jour_name: '',
topicsList:null, // 话题列表
@@ -906,7 +913,7 @@
this.Temporary()
} else {
this.initMajor();
this.getTopics()
// this.getTopics() 获取话题列表
}
},
computed: {
@@ -1022,14 +1029,15 @@
this.$refs.tuiJianForm[i].validate(vali => {
if (vali) {
tuijian_yanzheng += 0
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[0]
this.tuiJianForm[i].cmajor = this.tuiJianForm[i].major_all[1]
//this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[0]
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[this.tuiJianForm[i].major_all.length - 1]
//this.tuiJianForm[i].cmajor = this.tuiJianForm[i].major_all[1]
} else {
tuijian_yanzheng += 1
}
})
}
this.form.reviewers = this.tuiJianForm
this.form.reviewers = this.tuiJianForm
} else {
this.form.reviewers = []
}
@@ -1184,17 +1192,17 @@
'value': res.data.companys[i].title
})
}
});
});
this.$api
.post('/api/Reviewer/getMajorForReviewer', {
username: localStorage.getItem('U_name'),
}).then(res => {
}).then(res => {
if (res.data.major != 0) {
this.$api
.post('api/User/getMajorList')
.then(res => {
this.majorList = res.data;
})
}
})
@@ -1210,6 +1218,14 @@
this.checkReviewer()
this.$api
.post('api/Major/getMajorList')
.then(res => {
console.log(res,99)
this.step4MajorList = res.data.majors;
})
},
// 机构模糊搜索
@@ -1633,7 +1649,7 @@
this.form.istransfer = false
this.form.becomeRev = false
this.initMajor();
this.getTopics()
// this.getTopics()
},
// 点击tab变化
@@ -1692,7 +1708,7 @@
}
}
},
showFiles() {
// 文件显示出来
this.fileL_coverLetter = [];
@@ -1950,7 +1966,7 @@
this.form.approval = res.data.base.approval
this.form.abstrart = res.data.base.abstrart
this.form.fund = res.data.base.fund
this.form.topics = res.data.base.topics
// this.form.topics = res.data.base.topics
// 领域
this.$api
.post('api/Major/getMajorForAddArticle', {
@@ -2054,7 +2070,7 @@
.then((res) => {
if (res.code == 0) {
this.topicsList = res.data.topics
console.log(res.data.topics,'话题')
// console.log(res.data.topics,'话题')
} else {
this.$message.error(res.msg);
}
@@ -2062,7 +2078,7 @@
},
// 选中值变化
topicsChange(e){
console.log(this.form.topics,'选中的话题id')
// console.log(this.form.topics,'选中的话题id')
}
}

View File

@@ -1,5 +1,5 @@
<template>
<div>
<div >
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
@@ -68,7 +68,7 @@
<font style="color: #666b7a;">Journal : </font>
<b style="font-weight: normal;">{{item.journalname}}</b>
</p>
<p>
<p v-if="item.state != 6">
<font style="color: #666b7a;">
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
Update Time :
@@ -92,6 +92,14 @@
<span @click="esy_deta(item.article_id)">
<i class="el-icon-paperclip"></i>My Manuscript
</span>
<span v-if="item.state == 6" style="text-decoration: none;">
<font> | </font>
<span @click="goPre_ingested(item.article_id)" class="preButton">
<!-- <el-badge is-dot class="item" > -->
<i class="el-icon-edit"></i>Enter Pre-accept Process
<!-- </el-badge> -->
</span>
</span>
</div>
</div>
@@ -127,7 +135,9 @@
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b style="color: #5fab3b;">Confirm the Proof</b>
</router-link>
</div>
</div>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
@@ -289,66 +299,45 @@
</el-dialog>
<!-- 审稿人列表 -->
<el-dialog title="Comments from reviewers" :visible.sync="comentVisible" :close-on-click-modal="false"
width="800px">
<el-tabs tab-position="left">
<el-tab-pane label="Reviewer 1">
<div style="padding: 0 10px;">
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index"
class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate1(item.ctime)}}
</font>
</template>
<div class="art_author_coment">
<p v-if="item.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item.qu9_contents}}</pre>
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item.qu10_contents}}</pre>
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item.qu11_contents}}</pre>
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item.qu12_contents}}</pre>
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item.qu13_contents}}</pre>
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item.comments}}</pre>
</p>
<p style="text-align: right;">
<el-input type="textarea" rows="3" v-model="item.plycontent" @input="onInput()"
placeholder="Please enter..." resize="none" style="margin-bottom: 10px;">
</el-input>
<el-button size="mini" type="warning" icon="el-icon-chat-line-square"
@click="replayMessage(item)">
Reply to Reviewer
</el-button>
</p>
</div>
</el-collapse-item>
</el-collapse>
<el-dialog title="Comments from reviewers" :visible.sync="comentVisible" width="800px">
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate1(item.ctime)}}
</font>
</template>
<div class="art_author_coment">
<p v-if="item.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item.qu9_contents}}</pre>
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item.qu10_contents}}</pre>
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item.qu11_contents}}</pre>
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item.qu12_contents}}</pre>
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item.qu13_contents}}</pre>
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item.comments}}</pre>
</p>
</div>
</el-tab-pane>
<el-tab-pane label="Reviewer 2">Reviewer 2</el-tab-pane>
</el-tabs>
</el-collapse-item>
</el-collapse>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
</el-dialog>
@@ -383,9 +372,6 @@
supplementaryFileList: [],
comentDeploy: [],
activeComment: [],
replyMes: {
content: ''
},
authorList_name: '',
editVisible: false,
artextVisible: false,
@@ -457,7 +443,16 @@
// }
},
// 显示预收录页面
goPre_ingested(id){
this.$router.push({
path: 'PreIngested',
query: {
id: id
// id: 3070
}
});
},
// 点击稿件进程
esy_mtps(e) {
this.$router.push({
@@ -478,9 +473,10 @@
.then(res => {
// 弹出框
this.comentDeploy = res.suggest
for (var i = 0; i < this.comentDeploy.length; i++) {
this.comentDeploy[i].plycontent = ''
}
// this.activeComment = []
// for (var i = 0; i < res.suggest.length; i++) {
// this.activeComment.push(i)
// }
this.comentVisible = true
})
.catch(err => {
@@ -488,28 +484,6 @@
});
},
// 回复审稿人
replayMessage(e) {
if (e.plycontent == '') {
this.$message.error('Please fill in the reply content!');
return
}
// 二次确认
this.$confirm('Can only reply to the reviewer once, please confirm the content.', 'Tip', {
type: 'warning'
})
.then(() => {
})
.catch(() => {});
},
// 输入框输入
onInput() {
this.$forceUpdate();
},
// 点击稿件内容文件
esy_deta(e) {
this.$api
@@ -763,6 +737,9 @@
</script>
<style scoped>
.preButton{ display: inline-block; position: relative; }
/* .preButton:after{content: ''; display: block; width: 6px; height: 6px; background: #ff0000; position: absolute; right: 0; top: -5px; border-radius: 6px;} */
.preButton:hover{text-decoration:underline !important;}
.container {
color: #333;
}

File diff suppressed because it is too large Load Diff

View File

@@ -968,6 +968,10 @@
label: 'MINI REVIEW',
value: 'Mini Review'
},
{
label: 'RETRACTION NOTE',
value: 'Retraction Note'
},
{
label: '内经难经',
value: '内经难经'

View File

@@ -192,7 +192,7 @@
<!-- Html排版 -->
<el-dialog title="HTML layout" :visible.sync="HtmlVisible" width="900px" :close-on-click-modal="false">
<el-dialog title="HTML layout" :visible.sync="HtmlVisible" width="900px" :close-on-click-modal="false" @close="CancelHtml">
<div style="margin: 0 0 0 10px;" class="htmlfile">
<h3 style="font-size: 16px;margin-bottom: 25px;line-height: 22px;letter-spacing: -0.5px;word-break: break-word;"
v-html="UpHtpFIle.title"></h3>
@@ -223,31 +223,103 @@
can be uploaded(.pdf)</div>
</el-upload>
</div> -->
<div style="border-top: 2px dashed #0066994d;margin: 20px 0 0 0;padding: 20px 0 0 0;">
<font style="font-size: 16px;">Html Layout :</font>
<span style="margin-left: 15px;color: #666;" v-if="UpHtpFIle.mains==''">No Layout</span>
<span style="margin-left: 15px;color: #0b4b6a;" v-if="UpHtpFIle.mains!=''">Typesetting
completed</span>
<el-button type="primary" icon="el-icon-document-copy" @click="htmlLayout()"
style="margin-left: 20px;">
<font v-if="UpHtpFIle.mains==''">Creat Html Proofread</font>
<font v-if="UpHtpFIle.mains!=''">Edit Html Proofread</font>
</el-button>
<div class="titHtml" v-if="UpHtpFIle.mains!=''">
<div v-for="(item,index) in UpHtpFIle.mains">
<p v-html="item.content" v-if="item.width==0"></p>
<p v-if="item.width!=0" class="MaxPicture">
<img :src="baseUrl+'public/mainimg/'+item.content" :style="'width:'+item.width+'px'">
<font :style="'width:'+item.width+'px'">{{item.note}}
</font>
</p>
</div>
</div>
</div>
<p style="border-top: 2px dashed #0066994d;margin: 20px 0 0 0;padding: 20px 0 0 0;"> </p>
<el-collapse v-model="collapseActiveNames">
<el-collapse-item name="html">
<template slot="title">
Html Layout :
<span style="margin-left: 15px;color: #666;" v-if="UpHtpFIle.mains==''">No Layout</span>
<span style="margin-left: 15px;color: #0b4b6a;" v-if="UpHtpFIle.mains!=''">Typesetting completed</span>
<!-- <el-button v-if="UpHtpFIle.mains==''" type="text" plain icon="el-icon-document-copy" @click="showCreateHtmlItem()"
style="margin-left: 20px;">
<font >Create Html Proofread</font>
</el-button> -->
<el-button v-if="UpHtpFIle.mains!=''" type="primary" plain icon="el-icon-document-copy" @click="htmlLayout()"
style="margin-left: 20px;">
<font >Edit Html Proofread</font>
</el-button>
</template>
<div>
<!-- 生成选项 -->
<div v-if="UpHtpFIle.mains==''">
<el-radio v-model="createType" label="1">使用稿件最终版生成html</el-radio>
<el-radio v-model="createType" label="2">重新上传word文件生成html</el-radio>
<!-- 方式是重新上传且没有上传文件时按钮不可用 -->
<el-button type="primary" @click="htmlLayout" class="import" v-if="createType=='2' && fileL_manuscirpt != '' || createType=='1'">Create Html Proofread</el-button>
<!-- 文件上传 -->
<div style="margin: 20px 0 0 0" v-if="createType == '2'">
<el-upload ref="uploadFile" class="upload-demo up_newstyle" :action="upload_manuscirpt"
accept=".docx" name="completedManuscirpt" :before-upload="beforeupload_manuscirpt"
:on-error="uperr_coverLetter" :on-success="upSuccess_manuscirpt" :limit="1"
:on-exceed="alertlimit" :on-remove="removefilemanuscirpt" :file-list="fileL_manuscirpt"
>
<div class="el-upload__text" @click="clearUploadedFile">
<em>Upload File</em>
</div>
<!-- <div class="el-upload__tip" slot="tip">
Only Word and compressed files can be uploaded (file format: .docx).
</div> -->
</el-upload>
</div>
<!-- end -->
</div>
<!-- end -->
<div class="titHtml" v-if="UpHtpFIle.mains!=''">
<div v-for="(item,index) in UpHtpFIle.mains">
<p v-html="item.content" v-if="item.width==0"></p>
<p v-if="item.width!=0" class="MaxPicture">
<img :src="baseUrl+'public/mainimg/'+item.content" :style="'width:'+item.width+'px'">
<font :style="'width:'+item.width+'px'">{{item.note}}
</font>
</p>
</div>
</div></div>
</el-collapse-item>
<el-collapse-item name="references">
<template slot="title">
References :
<span style="margin-left: 15px;color: #666;" v-if="UpHtpFIle.refers==''">Have no refernces</span>
<span style="margin-left: 15px;color: #0b4b6a;" v-if="UpHtpFIle.refers!=''">There are {{UpHtpFIle.refers.length}} pieces of data in total.</span>
<el-button type="primary" plain icon="el-icon-document-copy" @click="goEditRefernces"
style="margin-left: 20px;">
<font >Edit References</font>
</el-button>
</template>
<div>
<el-table class="table99" v-if="UpHtpFIle.refers!=''" height="400px" :header-cell-style="{background:'#eef1f6',color:'#606266'}"
:data="UpHtpFIle.refers"
stripe
style="width: 100%">
<el-table-column
type="index" align="center"
width="50">
</el-table-column>
<el-table-column
label="CONTENT" align="center"
>
<template slot-scope="scope">
<div style="text-align: left;" v-if="scope.row.refer_type == 'journal'">
<p>{{scope.row.author}},{{scope.row.title}}, <em>{{scope.row.joura}}</em> ,{{scope.row.dateno}}<br/></p>
<a class="doiLink" :href="scope.row.doilink" target="_blank">{{scope.row.doilink}}</a>
</div>
<div style="text-align: left;" v-if="scope.row.refer_type == 'book'">
<p>{{scope.row.author}},{{scope.row.title}},{{scope.row.dateno}}<br/></p>
<a class="doiLink" :href="scope.row.isbn" target="_blank">{{scope.row.isbn}}</a>
</div>
<p class="wrongLine" style="text-align: left;" v-if="scope.row.refer_type == 'other'">
{{scope.row.refer_frag}}
</p>
</template>
</el-table-column>
</el-table>
</div>
</el-collapse-item>
</el-collapse>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="HtmlVisible = false" plain>Cancel</el-button>
<el-button @click="CancelHtml" plain>Cancel</el-button>
</span>
</el-dialog>
@@ -258,9 +330,15 @@
import {
Loading
} from 'element-ui';
import { watch } from 'vue';
export default {
data() {
return {
articleId:null,
createType:'1', // html生成方式
collapseActiveNames:['html'], // 手风琴绑定值
// oldFile:false, // 是否用新文件生成
fileL_manuscirpt: [],
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
username: localStorage.getItem('U_name'),
@@ -291,6 +369,7 @@
article_id: '',
htmlfile: '',
mains: [],
refers:[], //引用参数
},
UpLoadFile: {
article_id: '',
@@ -309,12 +388,24 @@
chooseData: [],
loading: false,
steps_jour: 0,
form:{
manuscirpt: '',
},
fileData:'' // 上传后返回的文件url
};
},
created() {
this.getJourDate();
},
methods: {
computed: {
upload_coverLetter: function() {
return this.baseUrl + 'api/Article/up_file/type/coverLetter';
},
upload_manuscirpt: function() {
return this.baseUrl + 'api/Production/up_last_artFile';
},
},
methods: {
// 获取列表
getDate() {
const loading = this.$loading({
@@ -335,7 +426,66 @@
loading.close();
});
},
// 跳转到引用编辑页面
goEditRefernces(){
// let pid = null
this.HtmlVisible = false
//this.UpHtpFIle.refers.length > 0 ? pid = this.UpHtpFIle.refers[0].p_article_id :
this.$router.push({
name: 'publishRefernceEditor',
query: {
id: this.articleId,
pid: this.UpHtpFIle.refers[0].p_article_id
}
})
},
CancelHtml(){
this.HtmlVisible = false
this.form.manuscirpt = ''
this.fileData = ''
this.fileL_manuscirpt = []
this.createType = '1' // html生成方式
this.collapseActiveNames = ['html']
},
showCreateHtmlItem(){
this.collapseActiveNames[0] = 'html'
//console.log(this.collapseActiveNames)
},
beforeupload_manuscirpt(file) {
let flieArr = file.name.split(".")
let fileSuffix = flieArr[flieArr.length - 1];
if (fileSuffix != 'docx') {
this.$message.error('Only word and compressed files can be uploaded(.docx)');
return false;
}
},
upSuccess_manuscirpt(res, file) {
if (res.code == 0) {
this.fileData = res.upurl
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
this.fileL_manuscirpt = [{}];
this.fileL_manuscirpt[0].name = "Manuscirpt File";
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
} else {
this.$message.error('service error: ' + res.msg);
}
},
//超出传送文件个数限制
alertlimit() {
this.$message.error('The maximum number of uploaded files has been exceeded');
},
removefilemanuscirpt(file, fileList) {
this.form.manuscirpt = '';
this.fileL_manuscirpt = [];
},
clearUploadedFile() {
this.$refs['uploadFile'].clearFiles();
},
uperr_coverLetter(err) {
this.$message.error('Upload error');
},
//初始化期刊分期
getJourDate() {
this.$api
@@ -639,8 +789,10 @@
},
// 文章html弹出层
htmlContet(e) {
htmlContet(e) {
this.articleId = e.article_id
this.UpHtpFIle.article_id = e.article_id
this.UpHtpFIle.refers = e.refers
this.UpHtpFIle.doi = e.doi
this.UpHtpFIle.htmlfile = e.file_html
this.UpHtpFIle.title = e.title
@@ -648,7 +800,26 @@
this.UpLoadFile.article_id = e.article_id
this.HtmlVisible = true
},
// 生成html
// CreateHtml(){
// const loading = this.$loading({
// lock: true,
// text: 'Loading...',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)'
// });
// this.$api
// .post('api/Production/getProductionMainsByDoi', {
// doi: this.UpHtpFIle.doi,
// })
// .then(res => {
// if (res.code == 0) {
// loading.close()
// this.htmlLayout()
// }
// })
// },
// 修改文章html
htmlLayout() {
const loading = this.$loading({
@@ -659,7 +830,8 @@
});
this.$api
.post('api/Production/getProductionMainsByDoi', {
doi: this.UpHtpFIle.doi
doi: this.UpHtpFIle.doi,
file: this.fileData
})
.then(res => {
if (res.code == 0) {
@@ -741,11 +913,39 @@
this.$message.error('The maximum number of uploaded files has been exceeded');
},
}
},
// watch:{
// collapseActiveNames : {
// handler(newVal, oldVal) {
// this.$nextTick(()=>{
// this.oldFile = newVal.find((item)=>{item.name===''});
// })
// },
// // immediate: true,
// deep: true // 可以深度检测到 person 对象的属性值的变化
// }
// }
};
</script>
<style scoped>
.doiLink{color: #409EFF;}
.up_newstyle {
margin-left: 10px;
}
/deep/ .el-upload--text {
background-color: #ecf5ff;
border: 1px solid #b3d8ff !important;
padding: 0 7px;
/* margin-left: 10px; */
}
.up_newstyle .el-upload__text em {
color: #409EFF !important;
font-size: 12px;
}
.handle-box {
margin-bottom: 18px;
}
@@ -909,31 +1109,33 @@
}
/deep/.htmlfile .upload-demo .el-upload-list {
margin-top: 4px;
margin-top: -4px;
margin-left: 20px;
float: left;
width: 35px;
display: none;
width: 500px;
/* display: none; */
}
/* /deep/ .import.is-disabled{background: #ecf5ff !important; color: #8cc5ff !important; border-color: #d9ecff !important;} */
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item {
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item {
width: 30px !important;
}
} */
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item:hover {
cursor: pointer;
}
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-name {
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-name {
width: 30px;
}
} */
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
display: none;
}
} */
/deep/.htmlfile .upload-demo .el-upload-list__item:hover .el-icon-close {
/* /deep/.htmlfile .upload-demo .el-upload-list__item:hover .el-icon-close {
display: none;
}
} */
/deep/ .table99 th{background: #e4e7ed !important; color: #777 !important;}
</style>

View File

@@ -1,908 +0,0 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-lx-cascades"></i> Manuscript list
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container_state">
<div class="handle-box" style="margin: 20px 0;">
<el-select v-model="query.journal" @change="getdate" placeholder="Please select journal"
style="width: 180px;">
<el-option :key="0" label="All journals" :value="0"></el-option>
<el-option v-for="item in items" :key="item.journal_id" :label="item.title"
:value="item.journal_id"></el-option>
</el-select>
<el-select v-model="query.state" @change="getdate" placeholder="Please select status"
style="margin-left:10px;width: 110px;">
<el-option :key="0" label="All status" :value="0"></el-option>
<el-option :key="1" :label="$t('artstate.state1')" :value="1"></el-option>
<el-option :key="2" :label="$t('artstate.state2')" :value="2"></el-option>
<el-option :key="3" :label="$t('artstate.state3')" :value="3"></el-option>
<el-option :key="4" :label="$t('artstate.state4')" :value="4"></el-option>
<el-option :key="5" :label="$t('artstate.state5')" :value="5"></el-option>
</el-select>
<el-input v-model="query.name" placeholder="Title" style="margin:0 10px;width: 190px;"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
<el-button type="primary" icon="el-icon-edit-outline" @click="addArticle"
style="float: right;width: 190px;">New
Submission</el-button>
</div>
<!-- <el-table :data="tableData" border ref="multipleTable">
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
<el-table-column label="Title" align="center">
<template slot-scope="scope">
<el-badge is-dot :hidden="scope.row.editor_act==1?false:true" class="item">
{{scope.row.title}}
</el-badge>
</template>
</el-table-column>
<el-table-column prop="journalname" label="Journal" align="center"></el-table-column>
<el-table-column prop="accept_sn" label="Manuscript ID" align="center"></el-table-column>
<el-table-column prop="state" label="Status" :formatter="stateFormat" align="center" width="100"></el-table-column>
<el-table-column label="" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" plain icon="el-icon-tickets" @click="showdetail(scope.row)">detail</el-button>
</template>
</el-table-column>
</el-table> -->
<div shadow="never" v-for="item in tableData" class="mangu_list" :style="item.state,'1' | stateChange">
<div style="padding: 20px 20px 20px 20px;position: relative;" :style="item.state,'2' | stateChange">
<p class="man_title" @click="esy_mtps(item.article_id)">
<el-badge is-dot :hidden="item.editor_act==1?false:true">
{{item.title}}
</el-badge>
</p>
<p style="margin-bottom: 8px;">
<font style="color: #666b7a;">ID : </font>
{{item.accept_sn}}
<font style="color: #666b7a;margin-left: 50px;">Type : </font>
{{item.type | ellipsis}}
</p>
<p class="man_con">
<!-- <span>{{item.type | ellipsis}}</span> -->
<font style="color: #666b7a;">Journal : </font>
<b style="font-weight: normal;">{{item.journalname}}</b>
</p>
<p>
<font style="color: #666b7a;">
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
Update Time :
</font>
<b style="font-weight: normal;margin: 0 0 0 5px;">{{item.ctime}}</b>
</p>
<div class="man_state" :style="item.state,'3' | stateChange">
<b :style="item.state,'4' | stateChange">
{{item.state,'tst' | stateChange}}
</b>
</div>
<div class="man_btn">
<span @click="esy_mtps(item.article_id)">
<i class="el-icon-collection"></i>Manuscript Tracking
</span>
<font> | </font>
<span @click="esy_review(item.article_id)">
<i class="el-icon-document-copy"></i>Reviewer Comments
</span>
<font> | </font>
<span @click="esy_deta(item.article_id)">
<i class="el-icon-paperclip"></i>My Manuscript
</span>
</div>
</div>
<div class="man_progess" v-if="item.state==4" :style="item.state,'2' | stateChange">
<font style="color: #666b7a;">
Current Status :
</font>
<b style="margin: 0 0 0 5px;color: #5a90e1;">{{item.state,'tst' | stateChange}} </b>
<router-link :to="{path:'/articleProcessRevision',query:{id:item.article_id}}" style="color: #333;">
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b>Upload Major Revision</b>
</router-link>
</div>
<div class="man_progess" v-if="item.state==3&&item.transinfo!=null"
:style="item.state,'2' | stateChange">
<font style="color: #666b7a;">
Current Status :
</font>
<b style="margin: 0 0 0 5px;color: #333;">{{item.state,'tst' | stateChange}} </b>
<router-link :to="{path:'/articleProcessSwitch',query:{id:item.article_id}}" style="color: #333;">
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b style="color:#333">Transfer Manuscript</b>
</router-link>
</div>
<div class="man_progess" v-if="item.state==7" :style="item.state,'7' | stateChange">
<font style="color: #666b7a;">
Current Status :
</font>
<b style="margin: 0 0 0 5px;color: #5fab3b;">{{item.state,'tst' | stateChange}} </b>
<router-link :to="{path:'/articleProcessConfirm',query:{id:item.article_id}}" style="color: #333;">
<span style="margin: 0 4px 0 5px;">Click here to :</span>
<b style="color: #5fab3b;">Confirm the Proof</b>
</router-link>
</div>
</div>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
</div>
</div>
<!-- 文章内容 -->
<el-dialog title="Manuscript Basic Information" :visible.sync="artextVisible" width="800px">
<div class="art_state_message">
<p>
<font>Title :</font><b>{{artextForm.title}}</b>
</p>
<p>
<font>ID : </font><b>{{artextForm.accept_sn}}</b>
</p>
<p>
<font>Type :</font><b>{{artextForm.type | ellipsis}}</b>
</p>
<p v-show="artextForm.type=='A'">
<font>Ethical Approval :</font><b>{{artextForm.approval?'Yes':'No'}}</b>
</p>
<p v-if="artextForm.special_num > 0">
<font>Special Issues :</font><b>{{ artextForm.special_title }}</b>
</p>
<p>
<font>Journal :</font><b>{{artextForm | journal_me}}</b>
</p>
<p>
<font>Major :</font><b>{{artextForm.major}}</b>
</p>
<el-collapse v-model="activeNames" class="auth_colla auth_colla_new">
<el-collapse-item :title="authorList_name" name="1">
<div v-for="(item, index) in artextForm.authors" class="auth_mess">
<h4 style="font-weight: bolder;">
<img src="../../assets/img/state_one.png" v-if="item.isSuper"
style="width: 15px;margin: 0 2px 0 0;vertical-align: text-bottom;">
{{item.firstname}} {{item.lastname}} {{item.isSuper?'#':''}}{{item.isReport?'*':''}}
</h4>
<div>
<p v-if="item.email">
<img src="../../assets/img/state_email.png" v-if="item.isReport"
style="width: 14px;margin: 0 8px 0 0;vertical-align: text-bottom;">
<font>Email : </font>{{item.email}}
</p>
<p v-if="item.orcid">
<font>ORCID iD : </font>{{item.orcid}}
</p>
<p>
<font>First Author : </font>
<b v-if="item.isSuper">Yes</b>
<b v-if="!item.isSuper">No</b>
</p>
<p>
<font>Corresponding Author :</font>
<b v-if="item.isReport">Yes</b>
<b v-if="!item.isReport">No</b>
</p>
<p v-if="item.address">
<font>Address : </font>{{item.address}}
</p>
<p v-if="item.company">
<font>Affiliation : </font>{{item.company}}
</p>
<p v-if="item.department">
<font>Department : </font>{{item.department}}
</p>
<p v-if="item.title">
<font>Title : </font>{{item.title}}
</p>
<p v-if="item.country">
<font>Country : </font>{{item.country}}
</p>
</div>
</div>
</el-collapse-item>
</el-collapse>
<el-collapse class="auth_colla auth_colla_new" style="margin-top: -15px;border-top: 0;">
<el-collapse-item>
<template slot="title">
Abstract
<font v-if="artextForm.keywords" style="margin-left: 3px;">, Keywords</font>
<font v-if="artextForm.fund" style="margin-left: 3px;">, Fund</font>
</template>
<p>
<font>Abstract :</font><b>{{artextForm.abstrart}}</b>
</p>
<p v-if="artextForm.keywords">
<font>Keywords :</font><b>{{artextForm.keywords}}</b>
</p>
<p v-if="artextForm.fund">
<font>Fund :</font><b>{{artextForm.fund}}</b>
</p>
</el-collapse-item>
</el-collapse>
</div>
<div class="art_file" style="margin-top: 0;border-top-color:#fff;padding-top: 0;">
<h4 v-if="coverLetterFileList">Cover letter : </h4>
<p v-if="coverLetterFileList">
<a v-for="item in coverLetterFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="coverLetterFileList">
<h4 v-if="picturesAndTablesFileList">Figures : </h4>
<p v-if="picturesAndTablesFileList">
<a v-for="item in picturesAndTablesFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="picturesAndTablesFileList">
<h4 v-if="totalpageFileList">Title page : </h4>
<p v-if="totalpageFileList">
<a v-for="item in totalpageFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="totalpageFileList">
<h4 v-if="supplementaryFileList">Supplementary Material : </h4>
<p v-if="supplementaryFileList">
<a v-for="item in supplementaryFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both" v-if="supplementaryFileList">
<h4>Manuscirpt : </h4>
<p>
<a v-for="item in manuscirptFileList" :href="mediaUrl + item.file_url">
<img src="../../assets/img/icon_0.png">
<span>
<font>Uploader : </font>{{item.username}}
<i><i class="el-icon-time"></i>{{formatDate(item.ctime)}}</i>
</span>
<i class="el-icon-download download"></i>
</a>
</p>
<br clear="both">
</div>
</el-dialog>
<!-- 审稿人列表 -->
<el-dialog title="Comments from reviewers" :visible.sync="comentVisible" width="800px">
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate1(item.ctime)}}
</font>
</template>
<div class="art_author_coment">
<p v-if="item.qu9_contents!=''">
<font>Does the title represent manuscript's contents?</font>
<pre>{{item.qu9_contents}}</pre>
</p>
<p v-if="item.qu10_contents!=''">
<font>Is the Abstract accurate and concise?</font>
<pre>{{item.qu10_contents}}</pre>
</p>
<p v-if="item.qu11_contents!=''">
<font>Are the approach/ methods properly described?</font>
<pre>{{item.qu11_contents}}</pre>
</p>
<p v-if="item.qu12_contents!=''">
<font>Are the conclusions and interpretations sound?</font>
<pre>{{item.qu12_contents}}</pre>
</p>
<p v-if="item.qu13_contents!=''">
<font>Are the references properly cited?</font>
<pre>{{item.qu13_contents}}</pre>
</p>
<p v-if="item.comments!=''">
<font>Comments for the Authors</font>
<pre>{{item.comments}}</pre>
</p>
</div>
</el-collapse-item>
</el-collapse>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
items: '',
query: {
username: localStorage.getItem('U_name'),
// journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
journal: 0,
name: '',
state: 0,
pageIndex: 1,
pageSize: 10
},
tableData: [],
multipleSelection: [],
delList: [],
activeNames: [],
artextForm: {},
coverLetterFileList: [],
picturesAndTablesFileList: [],
totalpageFileList: [],
manuscirptFileList: [],
supplementaryFileList: [],
comentDeploy: [],
activeComment: [],
authorList_name: '',
editVisible: false,
artextVisible: false,
comentVisible: false,
Total: 0
};
},
created() {
this.initselect();
this.getdate();
},
methods: {
//初始化期刊选项
initselect() {
this.$api
.post('api/Article/getJournal')
.then(res => {
this.items = res;
})
.catch(err => {
console.log(err);
});
},
// 获取文章列表数据
getdate() {
this.$api
.post('api/Article/getArticle', this.query)
.then(res => {
this.Total = res.total;
for (let i = 0; i < res.data.length; i++) {
let date = new Date(parseInt(res.data[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data[i].ctime = Y + M + D;
}
this.tableData = res.data;
})
.catch(err => {
console.log(err);
});
},
// 触发搜索按钮
handleSearch() {
this.$set(this.query, 'pageIndex', 1);
this.getdate();
},
//跳转到增加稿件页面
addArticle() {
this.$router.push('/articleAdd');
},
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getdate();
},
showdetail(row) {
// if(row.state==4){
// this.$router.push({path:'articleRevise',query:{id:row.article_id}});
// }else{
this.$router.push({
path: 'articleDetail',
query: {
id: row.article_id
}
});
// }
},
// 点击稿件进程
esy_mtps(e) {
this.$router.push({
path: 'articleProcess',
query: {
id: e
}
});
},
// 点击稿件审稿意见
esy_review(e) {
// 审稿人意见
this.$api
.post('api/Article/getArticleDetail', {
articleId: e,
human: 'author'
})
.then(res => {
// 弹出框
this.comentDeploy = res.suggest
// this.activeComment = []
// for (var i = 0; i < res.suggest.length; i++) {
// this.activeComment.push(i)
// }
this.comentVisible = true
})
.catch(err => {
console.log(err);
});
},
// 点击稿件内容文件
esy_deta(e) {
this.$api
.post('api/Article/getArticleDetail', {
articleId: e,
human: 'author'
})
.then(res => {
this.artextForm = res.article
this.artextForm.major = res.major;
this.artextForm.authors = []
let alist = res.authors;
let alist_name = [];
for (let i in alist) {
this.artextForm.authors.push({
art_aut_id: alist[i].art_aut_id,
firstname: alist[i].firstname,
lastname: alist[i].lastname,
orcid: alist[i].orcid,
company: alist[i].company,
department: alist[i].department,
title: alist[i].author_title,
country: alist[i].country,
email: alist[i].email,
address: alist[i].address,
isSuper: alist[i].is_super == 1 ? true : false,
isReport: alist[i].is_report == 1 ? true : false
});
if (i == alist.length - 1) {
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname)
} else {
alist_name.push(alist[i].firstname + ' ' + alist[i].lastname + ' , ')
}
}
this.authorList_name = "Author : " + alist_name.join("");
// 弹出框
this.artextVisible = true
})
.catch(err => {
console.log(err);
});
this.$api
.post('api/Article/getFilelistByArticleID', {
articleId: e
})
.then(res => {
this.coverLetterFileList = res.coverLetter;
this.picturesAndTablesFileList = res.picturesAndTables;
this.manuscirptFileList = res.manuscirpt;
this.totalpageFileList = res.totalpage;
this.supplementaryFileList = res.supplementary;
})
.catch(err => {
console.log(err);
});
},
formatDate(timestamp) {
var date = new Date(timestamp * 1000); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D + ' ' + h + ':' + m + ':' + s;
},
formatDate1(timestamp) {
var date = new Date(timestamp * 1000); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
return Y + M + D;
},
},
filters: {
// 文章类型
ellipsis(value) {
let frag = '';
switch (value) {
case "A":
frag = 'Article';
break;
case 'B':
frag = 'Review';
break;
case 'C':
frag = 'Case report';
break;
case 'P':
frag = 'Research proposal';
break;
case 'N':
frag = 'News';
break;
case 'T':
frag = 'Comment';
break;
case 'CT':
frag = 'Correction';
break;
case 'HT':
frag = 'Hypothesis';
break;
case 'PF':
frag = 'Preface';
break;
case 'ET':
frag = 'Editorial';
break;
case 'RP':
frag = 'Report';
break;
case 'LR':
frag = 'Letter';
break;
case 'EF':
frag = 'Empirical formula';
break;
case 'EM':
frag = 'Evidence-based medicine';
break;
case 'EC':
frag = 'Expert consensus';
break;
case 'LTE':
frag = 'Letter to editor';
break;
case 'QI':
frag = 'Questionnaire investigation';
break;
case 'PT':
frag = 'Protocol';
break;
case 'CS':
frag = 'Case Series';
break;
case 'RT':
frag = 'Retraction';
break;
case 'MR':
frag = 'Mini Review';
break;
default:
frag = 'Others';
}
return frag;
},
// 稿件状态,颜色
stateChange(value, num) {
let str = '';
let sgr = '';
let skr = '';
let sfr = '';
let slr = '';
switch (value) {
case 0:
str = '#e1b0271F;';
sfr = '#e1b02705;';
sgr = '#e1b0274D;';
skr = '#e1b027;';
slr = 'Received';
break;
case 1:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'With editor';
break;
case 2:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'Under review';
break;
case 3:
str = '#8888881F;';
sfr = '#88888805;';
sgr = '#8888884D;';
skr = '#888888;';
slr = 'Reject';
break;
case 4:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'Revision';
break;
case 5:
str = '#5fab3b1F;';
sfr = '#5fab3b05;';
sgr = '#5fab3b4D;';
skr = '#5fab3b;';
slr = 'Accept';
break;
case 6:
str = '#5a90e11F;';
sfr = '#5a90e105;';
sgr = '#5a90e14D;';
skr = '#5a90e1;';
slr = 'Pre-accept';
break;
case 7:
str = '#5fab3b1F;';
sfr = '#5fab3b05;';
sgr = '#5fab3b4D;';
skr = '#5fab3b;';
slr = 'Proof';
break;
default:
str = '#8888881F;';
sfr = '#88888805;';
sgr = '#8888884D;';
skr = '#888888;';
slr = 'error!!';
}
if (num == '1') {
return 'border-color:' + sgr;
}
if (num == '2') {
return 'background-color:' + sfr;
}
if (num == '3') {
return 'background-color:' + str + ';border-color:' + sgr;
}
if (num == '4') {
return 'color:' + skr;
}
if (num == 'tst') {
return slr;
}
},
journal_me(e) {
var frag = e.journalname;
if (e.special_num > 0) {
frag += "(Special Issues)";
}
return frag;
},
},
computed: {
}
};
</script>
<style scoped>
.container {
color: #333;
}
.handle-box {
margin-bottom: 20px;
}
.handle-select {
width: 120px;
}
.handle-input {
width: 300px;
display: inline-block;
}
.table {
width: 100%;
font-size: 14px;
}
.red {
color: #ff0000;
}
.mr10 {
margin-right: 10px;
}
.table-td-thumb {
display: block;
margin: auto;
width: 40px;
height: 40px;
}
.item {
margin-top: 5px;
}
.el-table .hasChange-row {
background-color: #ffebe8;
}
.mangu_list {
color: #333;
margin: 0 0 20px 0;
font-size: 14px;
/* position: relative; */
border-radius: 5px;
border: 1px solid #EBEEF5;
background-color: #fff;
}
.mangu_list .man_title {
margin: 2px 100px 10px 0;
font-weight: bolder;
letter-spacing: -0.5px;
font-size: 16px;
cursor: pointer;
display: inline-block;
line-height: 18px;
}
.mangu_list .man_title:hover {
text-decoration: underline;
}
.mangu_list .man_con {
margin: 0 0 10px 0;
}
.mangu_list .man_state {
position: absolute;
right: -1px;
top: -1px;
border: 1px solid #fff;
color: #fff;
text-align: center;
padding: 6px 18px;
letter-spacing: -0.5px;
border-top-right-radius: 3px;
/* border-top-left-radius: 3px; */
}
.mangu_list .man_progess {
padding: 15px 20px;
border-top: 1px solid #5a90e126;
}
.mangu_list .man_progess i {
margin: 0 5px 0 0;
}
.mangu_list .man_progess>a>b {
margin-left: 5px;
color: #5a90e1;
text-decoration: underline;
}
.mangu_list .man_progess>a>b:hover {
color: #006699;
}
.mangu_list .man_btn {
/* color: #006699; */
position: absolute;
bottom: 25px;
right: 25px;
font-size: 15px;
}
.mangu_list .man_btn>span {
/* text-decoration: underline; */
}
.mangu_list .man_btn>span:hover {
text-decoration: underline;
cursor: pointer;
color: #06374e;
}
.mangu_list .man_btn i {
margin: 0 8px 0 0;
}
.mangu_list .man_btn font {
margin: 0 18px;
}
.art_state_message {
margin: 0 20px 0 0;
}
.art_process_ {
border: 0;
padding: 0;
}
.art_process_ .art_process_list:first-child {
padding-top: 0;
}
.art_author_list {
margin: 0 0 0 5px;
}
.art_author_list .com_shu {
background-color: #006699;
color: #fff;
display: inline-block;
width: 18px;
height: 18px;
line-height: 18px;
text-align: center;
margin: 0 10px 0 0;
}
.el-collapse {
border-bottom: 0;
}
.art_author_coment {}
.art_author_coment>p {
margin: 10px 0 0 28px;
line-height: 20px;
}
.art_author_coment>p:first-child {
margin-top: 0;
}
.art_author_coment>p>font {
display: block;
margin: 0 0 2px 0;
color: #006699;
font-weight: bold;
letter-spacing: -0.5px;
}
</style>

View File

@@ -6,60 +6,39 @@
</el-breadcrumb>
</div>
<div class="container">
<div style="margin-bottom: 20px;">
{{articleMess.title}}
</div>
<div class="handle-box">
<el-button type="primary" icon="el-icon-plus" @click="openAddRev">Reviewer Bank</el-button>
<el-button type="primary" icon="el-icon-plus" @click="openSuggRev">Reviewers Suggested By Author
({{tableSuggest.length}})</el-button>
<!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="editVisible1 = true">Supplement</el-button> -->
</div>
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
header-cell-class-name="table-header" empty-text="New messages (0)">
<el-table-column type="index" label="No." align="center" width="50"></el-table-column>
<el-table-column label="Base Information" width="320px">
<!-- <el-table-column prop="art_rev_id" label="ID" align="center" width="60"></el-table-column> -->
<el-table-column label="Reviewer" align="center" width="130">
<template slot-scope="scope">
<p class="tab_tie_col">
<span>Realname: </span>
<b style="font-size: 15px;letter-spacing: -0.5px;">
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
{{ scope.row.reviewer }}
</el-badge>
</b>
</p>
<p class="tab_tie_col">
<span>Email: </span>{{scope.row.email}}
</p>
<p class="tab_tie_col">
<span>Country: </span>{{scope.row.country}}
</p>
</template>
</el-table-column>
<el-table-column label="Other Information">
<template slot-scope="scope">
<p class="tab_tie_col" v-if="scope.row.major_str!=''">
<span>Major: </span>{{scope.row.major_str}}
</p>
<p class="tab_tie_col">
<span>Field: </span>{{scope.row.field}}
</p>
<p class="tab_tie_col" v-if="scope.row.company!=''">
<span>Affiliation: </span>{{scope.row.company}}
</p>
<el-badge is-dot :hidden="scope.row.reviewer_act == 1 ? false : true" class="item">
{{ scope.row.reviewer }}
</el-badge>
</template>
</el-table-column>
<el-table-column prop="country" label="Country" align="center" width="100"></el-table-column>
<el-table-column prop="email" label="Email" align="center"></el-table-column>
<el-table-column prop="company" label="Company" align="center"></el-table-column>
<el-table-column prop="major_str" label="Major"></el-table-column>
<el-table-column prop="field" label="Field"></el-table-column>
<el-table-column label="state" align="center" width="95">
<template slot-scope="scope">
{{revstate(scope.row)}}
<font style="color: #aaa;display: block;line-height: 18px;font-size: 13px;margin: 5px 0 0 0;">
{{formatDate(scope.row.ctime)}}
</font>
{{formatDate(scope.row.ctime)}}</font>
</template>
</el-table-column>
<el-table-column label="" width="170" align="center">
<el-table-column label="" width="110" align="center">
<template slot-scope="scope">
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
@click="showdetail(scope.row)">Review comments</el-button>
@click="showdetail(scope.row)">Detail</el-button>
</template>
</el-table-column>
</el-table>
@@ -68,8 +47,6 @@
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
</div>
</div>
<!-- 推荐审稿人弹出层 -->
<el-dialog title="Add Suggest Reviewer" :visible.sync="AddSuggest" width="800px">
<el-table :data="tableSuggest" border stripe class="table" ref="multipleTable"
header-cell-class-name="table-header" empty-text="New messages (0)">
@@ -84,142 +61,259 @@
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="AddSuggest = false">Cancel</el-button>
<el-button type="primary" @click="AddSuggest = false">Cancel</el-button>
</span>
</el-dialog>
<!-- 审稿列表弹出层 -->
<el-dialog :title="this.comentReview+' commtents list'" :visible.sync="detailVisible" width="800px">
<div>
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" class="art_author_list">
<template slot="title">
<b class="com_shu">{{index+1}}</b>
Reviewer Comment - The {{index+1}} time
<font style="margin: 0 0 0 50px;color: #888;">
<i class="el-icon-time" style="margin:0 2px 0 0;"></i>
{{formatDate(item.ctime)}}
</font>
<font style="margin: 0 0 0 50px;">
Status: {{revstate(item)}}
</font>
</template>
<div class="art_author_coment">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<p style="height: 15px;"></p>
<div>
<p>
1. Originality of the topic
<span>{{gradeFour(item.qu1)}}</span>
</p>
</div>
<div>
<p>
2. Importance in its Field
<span>{{gradeFour(item.qu3)}}</span>
</p>
</div>
<div>
<p>
3. Does the manuscript fall within the aim and scope of the journal?
<span>{{gradeFour(item.qu6)}}</span>
</p>
</div>
<div>
<p>
4. English language
<span>{{gradeFour(item.qu8)}}</span>
</p>
</div>
<div>
<p>
5. Readily Understandable
<span>{{gradeFour(item.qu5)}}</span>
</p>
</div>
<div>
<p>
6. Does the title represent manuscript's contents?
<span>{{gradeTwo(item.qu9)}}</span>
</p>
<p class="quescont">{{item.qu9_contents}}</p>
</div>
<div>
<p>
7. Is the Abstract accurate and concise?
<span>{{gradeTwo(item.qu10)}}</span>
</p>
<p class="quescont">{{item.qu10_contents}}</p>
</div>
<div>
<p>
8. Are the approach/ methods properly described?
<span>{{gradeTwo(item.qu11)}}</span>
</p>
<p class="quescont">{{item.qu11_contents}}</p>
</div>
<div>
<p>
9. Are the conclusions and interpretations sound?
<span>{{gradeTwo(item.qu12)}}</span>
</p>
<p class="quescont">{{item.qu12_contents}}</p>
</div>
<div>
<p>
10. Are the references properly cited?
<span>{{gradeTwo(item.qu13)}}</span>
</p>
<p class="quescont">{{item.qu13_contents}}</p>
</div>
<p style="height: 15px;"></p>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<p style="height: 15px;"></p>
<div>
<p>
Overall the Paper is Rated
<span style="font-size: 20px;">{{item.rated}}</span>
</p>
</div>
<div>
<p>
REFEREE'S RECOMMENDATIONS
<span>{{gradeRcond(item.recommend)}}</span>
</p>
</div>
<div>
<p>
OTHER SPECIFIC CRITICISMS
<span>{{gradeCrti(item.other)}}</span>
</p>
</div>
<div>
<p>
Comments for the Authors
</p>
<p class="quescont">{{item.comments}}</p>
</div>
<div>
<p>
Confidential Comments to the Editor
</p>
<p class="quescont">{{item.confidential}}</p>
</div>
<div>
<p>
Disclose name or remain anonymous.
<span>{{gradeName(item.is_anonymous)}}</span>
</p>
</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
<el-dialog title="add reviewer" :closeOnClickModal="false" :visible.sync="editVisible" width="80%"
v-loading="loading" element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<el-form ref="editform" :model="editform" label-width="100px">
<el-form-item label="state">
<el-select v-model="editform.uid" filterable @change="changereviewer()" placeholder="Please select">
<el-option :key="0" label="please select" :value="0"></el-option>
<el-option v-for="item in reviewerList" :key="item.user_id" :label="item.account"
:value="item.user_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Country" v-if="editform.uid != 0">
<span>{{ reviewer_data.country }}</span>
</el-form-item>
<el-form-item label="Company" v-if="editform.uid != 0">
<span>{{ reviewer_data.company }}</span>
</el-form-item>
<el-form-item label="Major" v-if="editform.uid != 0">
<span>{{ reviewer_data.major_title }}</span>
</el-form-item>
<el-form-item label="Field" v-if="editform.uid != 0">
<span>{{ reviewer_data.field }}</span>
</el-form-item>
<el-form-item label="Introduction" v-if="editform.uid != 0">
<span>{{ reviewer_data.introduction }}</span>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="detailVisible = false">Cancel</el-button>
<el-button type="primary" @click="editVisible=false">canel</el-button>
<el-button type="primary" @click="saveEdit">save</el-button>
</span>
</el-dialog>
<el-dialog title="Supplement" :visible.sync="editVisible1" width="40%" v-loading="loading"
element-loading-text="Loading..." element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)">
<el-form :model="questionform" 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="12">
<el-form-item label="1.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="2.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="3.Does the manuscript fall within the aim and scope of the journal?">
<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="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-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<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="12">
<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-col>
</el-row>
<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">
(Poor------------------------Excellent)
<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">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px;">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="Comments for the Authors">
<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>
<el-button type="primary" @click="addArtRev">submit</el-button>
</el-form-item>
</el-collapse>
</el-form>
</el-dialog>
</div>
</template>
@@ -228,26 +322,75 @@
data() {
return {
baseUrl: this.Common.baseUrl,
articleMess: {},
activeComment: [],
comentReview: '',
comentDeploy: [],
questionform: {
uid: 0,
articleId: this.$route.query.id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: ''
},
txt_mess: {},
query: {
articleId: this.$route.query.id,
article_id: this.$route.query.id,
pageIndex: 1,
pageSize: 10
},
editform: {
uid: 0,
articleId: this.$route.query.id
},
reviewer_data: {
introduction: '',
country: '',
company: '',
major_title: '',
field: ''
},
reviewer_data1: {
introduction: '',
country: '',
company: '',
major_title: '',
field: ''
},
editVisible: false,
editVisible1: false,
AddSuggest: false,
detailVisible: false,
tableData: [],
reviewerList: [],
tableSuggest: [],
loading: false,
Total: 0
};
},
created() {
this.getDate();
this.getdate();
this.initreviewerList();
},
computed: {
upload_url: function() {
@@ -256,7 +399,7 @@
},
methods: {
// 获取编辑列表数据
getDate() {
getdate() {
this.$api
.post('api/Article/getReviewerList', this.query)
.then((res) => {
@@ -274,21 +417,16 @@
.catch((err) => {
console.log(err);
});
this.$api
.post('api/Article/getArticleDetail', {
articleId: this.query.articleId,
human: 'editor'
})
.then((res) => {
this.articleMess = res.article;
})
.catch((err) => {
console.log(err);
});
},
// 添加审稿人
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getdate();
},
addReviewer() {
alert('sssss');
},
// 添加跳页面
openAddRev() {
this.$router.push({
path: 'articleReviewerAdd',
@@ -297,15 +435,67 @@
}
});
},
// 弹出添加推荐审稿人
//初始化审查员列表
initreviewerList() {
this.$api
.post('api/Article/getArticleReviewerList', {
articleId: this.query.articleId
})
.then((res) => {
this.reviewerList = res.data;
})
.catch((err) => {
console.log(err);
});
},
//保存添加操作
saveEdit() {
if (this.editform.uid == 0) {
this.$message.error('please select a reviewer');
} else {
this.loading = true;
this.$api
.post('api/Article/addArticleReviewer', this.editform)
.then((res) => {
this.loading = false;
if (res.code == 0) {
this.$message.success('add success');
this.$router.go(0);
} else {
this.$message.error('add error');
}
})
.catch((err) => {
console.log(err);
});
}
},
addArtRev() {
if (this.questionform.uid == 0) {
this.$message.error('Please select a reviewer');
} else if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
this.$message.error('Please choose disclose your name or remain anonymous.');
} else {
this.loading = true;
this.$api.post('api/Article/addArtRev', this.questionform)
.then((res) => {
this.loading = false;
if (res.code == 0) {
this.$message.success('add success');
this.$router.go(0);
} else {
this.$message.error('add error');
}
})
.catch((err) => {
console.log(err);
});
}
},
// 添加推荐审稿人
openSuggRev() {
this.AddSuggest = true
},
// 选择推荐审稿人
selSuggest(e) {
this.loading = true;
this.$api
@@ -318,7 +508,7 @@
if (res.code == 0) {
this.$message.success('Add Success');
this.AddSuggest = false
this.getDate();
this.getdate();
} else {
this.$message.error('Add Error');
}
@@ -328,41 +518,54 @@
console.log(err);
});
},
// 查看审稿人审稿列表
showdetail(row) {
this.comentReview = row.reviewer
if (row.state == 4) {
this.$message.error('Review expired!');
return
}
this.comentDeploy = []
this.$api
.post('api/Reviewer/getQuestion', {
artrevid: row.art_rev_id
})
.then((res) => {
if (res.code == 0) {
this.comentDeploy.push(res.data)
} else {
this.$router.push({
path: 'articleReviewerDetail',
query: {
id: row.art_rev_id
}
})
.catch((err) => {
console.log(err);
});
this.detailVisible = true
// this.$router.push({
// path: 'articleReviewerDetail',
// query: {
// id: row.art_rev_id
// }
// });
}
},
changereviewer() {
if (this.editform.uid !== 0) {
this.$api
.post('api/Article/getReviewerdetail', {
uid: this.editform.uid
})
.then((res) => {
this.reviewer_data.introduction = res.data.introduction;
this.reviewer_data.country = res.data.country;
this.reviewer_data.company = res.data.company;
this.reviewer_data.major_title = res.data.major_title;
this.reviewer_data.field = res.data.field;
})
.catch((err) => {
console.log(err);
});
}
},
changereviewer1() {
if (this.questionform.uid !== 0) {
this.$api
.post('api/Article/getReviewerdetail', {
uid: this.questionform.uid
})
.then((res) => {
this.reviewer_data1.introduction = res.data.introduction;
this.reviewer_data1.country = res.data.country;
this.reviewer_data1.company = res.data.company;
this.reviewer_data1.major_title = res.data.major_title;
this.reviewer_data1.field = res.data.field;
})
.catch((err) => {
console.log(err);
});
}
},
// 审稿建议
revstate(row, column, cellValue, index) {
let frag = '';
if (row.state == 0) {
@@ -393,72 +596,6 @@
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D + ' ' + h + ':' + m + ':' + s;
},
// 等级
gradeTwo(e) {
let drage = '';
if (e) {
drage = 'Yes';
} else {
drage = 'No';
}
return drage;
},
gradeFour(e) {
let drage = '';
if (e == 1) {
drage = 'Excellent';
} else if (e == 2) {
drage = 'Good';
} else if (e == 3) {
drage = 'Fair';
} else if (e == 4) {
drage = 'Poor';
}
return drage;
},
gradeRcond(e) {
let drage = '';
if (e == 1) {
drage = 'Accept with minor revision';
} else if (e == 2) {
drage = 'Accept with major revision';
} else if (e == 3) {
drage = 'Reject in current form, but may be resubmitted';
} else if (e == 4) {
drage = 'Reject, with no resubmission';
}
return drage;
},
gradeCrti(e) {
let drage = '';
if (e == 1) {
drage = 'Imperfect style';
} else if (e == 2) {
drage = 'Too long';
} else if (e == 3) {
drage = 'References incorrectly presented';
} else if (e == 4) {
drage = 'Typographical and Grammatical errors';
}
return drage;
},
gradeName(e) {
let drage = '';
if (e == 0) {
drage = 'Disclose name';
} else if (e == 1) {
drage = 'Remain anonymous';
}
return drage;
},
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getDate();
},
}
};
</script>
@@ -512,71 +649,4 @@
.el-table .red-row {
background: #f05555;
}
.tab_tie_col {
margin-bottom: 5px;
color: #333;
word-wrap: break-word;
word-break: normal;
}
.tab_tie_col>span {
color: #888;
margin: 0 5px 0 0;
font-size: 13px;
}
.art_author_list {
margin: 0 0 0 5px;
}
.art_author_list .com_shu {
background-color: #006699;
color: #fff;
display: inline-block;
width: 18px;
height: 18px;
line-height: 18px;
text-align: center;
margin: 0 10px 0 0;
}
.el-collapse {
border-bottom: 0;
}
.art_author_coment {
margin-top: 20px;
}
.art_author_coment>div {
margin: 10px 0 0 28px;
line-height: 20px;
word-break: break-word;
}
.art_author_coment>div:first-child {
margin-top: 0;
}
.art_author_coment>div>p {
display: block;
margin: 0 0 2px 0;
font-weight: bold;
color: #777;
letter-spacing: -0.5px;
}
.art_author_coment>div>p>span {
color: #006699;
margin-left: 30px;
font-weight: bold;
}
.art_author_coment .quescont {
margin-left: 14px;
color: #006699;
line-height: 22px;
}
</style>

View File

@@ -83,6 +83,9 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="Begin Page Number :" prop="beginPage">
<el-input-number :min="1" :max="Math.ceil(userListNum/EmailData.pagesize)" v-model="EmailData.beginPage" label="Page Number"></el-input-number>
</el-form-item>
<el-form-item label="Scheduled Tasks :" prop="frequency">
<el-radio-group v-model="EmailData.frequency">
<el-radio label="day" style="display: block;margin: 10px 0 0 0;">
@@ -98,7 +101,7 @@
<span style="margin: 0 0 0 5px;">(explanatory note: 1st - 5th)</span>
</el-radio>
</el-radio-group>
</el-form-item>
</el-form-item>
</div>
<div class="d_rol">
<h3>
@@ -299,6 +302,7 @@
substance_bom: '',
substanceOld: '',
frequency: 'day',
beginPage:1 // 开始页数
},
keyValue: 0,
userListNum: 0,
@@ -864,8 +868,6 @@
// artHtml)
// }
this.$api
.post('api/Promotion/addPromotion', this.EmailData)
.then(res => {

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container">
<div class="form-box">
<el-form ref="editorform" :model="form" :rules="rules" label-width="200px">
@@ -28,7 +29,6 @@
<el-form-item>
<el-button type="primary" @click="onSubmit">add</el-button>
</el-form-item>
</el-form>
</div>
</div>

View File

@@ -77,11 +77,14 @@
<el-table-column prop="company" label="Affiliation"></el-table-column>
<el-table-column prop="field" label="Field"></el-table-column>
<el-table-column prop="remark" label="Remark" width="160"></el-table-column>
<el-table-column label="" width="100" align="center">
<el-table-column label="" width="200" align="center">
<template slot-scope="scope">
<el-button plain type="primary" icon="el-icon-edit" @click="handleEdit(scope.row)">
Edit
</el-button>
<el-button plain type="danger" icon="el-icon-edit" @click="handleDelete(scope.row)">
Delete
</el-button>
<!-- <div style="margin-top: 12px;">
<el-button plain type="warning" @click="handleSend(scope.row)">
PROMOTION
@@ -545,6 +548,29 @@
this.initMajor()
},
methods: {
// 删除灰库用户
handleDelete(row){
this.$confirm(`'Do you want to delete the user? Name: '${row.name}'`, 'prompt', {
confirmButtonText: 'Yes',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(() => {
this.$api
.post('api/User/delAshUser',{'ash_id': row.ash_id})
.then(res => {
if(res.code == 0){
this.$message.success('successed!')
this.getDate()
}
})
.catch(err => {
console.log(err);
});
}).catch(() => { });
},
// 获取国家列表
getCountry() {
this.$api

View File

@@ -1,853 +0,0 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-collection"></i>
<router-link :to="{path:'/peerewer'}">
<span class="top_dao"> Reviewer Article</span>
</router-link>
>> Reviewer Article Detail
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container_l" v-loading="loading" element-loading-text="Loading..."
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
<el-row :gutter="20">
<el-col :span="10">
<iframe ref="mainiframe" :src="pdfUrl" class="lookpdf" frameborder="0"></iframe>
</el-col>
<el-col :span="14" style="height: 760px;overflow-y: scroll;">
<!-- <el-col :span="24"> -->
<el-card class="box-card">
<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>
<span style="margin: 0 10px;"> >> </span>
Manuscript ID: {{txt_mess.accept_sn}}
</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>
<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">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">{{item.type_name}}
<span
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download"
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>
</div>
<div class="file_sty" v-for="item in picList">
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">Figures And Tables
<span
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime}}</span>
<i class="el-icon-download"
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
</a><br>
</div>
<p style="margin-top: 5px;color: #999;font-size: 14px;">
<b style="color: #e41411;">Download failed?</b>
<br>If you have upgraded the Google Chrome browser to version 86, released on
October 6,
2020,
you may have
noticed that some file downloads don't work anymore in the browser. You click on the
download
link and nothing
happens.
<br>1. Right now, the easiest option available is to
<b style="color: #e41411;">right-click on the download link and select "save link
as".</b>
The download is executed when you do that.
<br>2. Please try to use a different browser for downloads. For now, a browser like
Firefox,
Internet Explorer,
Brave, Vivaldi, the new Edge, or Opera all allow the download.
</p>
</div>
<!-- <p class="morSou" v-if="!morShow" @click="morShow=true">
<i class="el-icon-bottom"></i>
More article information
</p>
<p class="morSou" v-if="morShow" @click="morShow=false">
<i class="el-icon-top"></i>
More article information
</p> -->
</div>
</el-card>
<div style="font-size: 18px;text-align: center;margin: 0px 0px 25px;">My comments</div>
<div>
<el-card class="box-card conment_list" v-for="(item,index) in conmentList">
<p style="margin: 0 0 15px 0;">
<b>Comment {{index+1}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Reviewer :
<b v-if="item.reviewer.user_id==User_Id">{{item.reviewer.account}}</b>
<b v-if="item.reviewer.user_id!=User_Id">XXXXXXXXXX</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Score :
<b>{{item.question.rated}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Recommendation :
<b v-if="item.question.recommend == 1">Accept with minor revision</b>
<b v-if="item.question.recommend == 2">Accept with major revision</b>
<b v-if="item.question.recommend == 3">Reject in current form, but may be
resubmitted</b>
<b v-if="item.question.recommend == 4">Reject, with no resubmission</b>
</p>
<p style="font-size: 14px;color: #666;margin: 0 0 20px 0;">Reviewed Time :
<b>{{item.ctime}}</b>
</p>
<el-button type="primary" size="mini" @click="ques_visible(item.question)">
Referee's Assessment
</el-button>
</el-card>
</div>
<div style="font-size: 18px;text-align: center;margin: 0px 0px 25px;">All comments</div>
<div>
<el-card class="box-card conment_list" v-for="(item,index) in conmentList">
<p style="margin: 0 0 15px 0;">
<b>Comment {{index+1}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Reviewer :
<b v-if="item.reviewer.user_id==User_Id">{{item.reviewer.account}}</b>
<b v-if="item.reviewer.user_id!=User_Id">XXXXXXXXXX</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Score :
<b>{{item.question.rated}}</b>
</p>
<p style="font-size: 14px;color: #666;margin-bottom: 5px;">Recommendation :
<b v-if="item.question.recommend == 1">Accept with minor revision</b>
<b v-if="item.question.recommend == 2">Accept with major revision</b>
<b v-if="item.question.recommend == 3">Reject in current form, but may be
resubmitted</b>
<b v-if="item.question.recommend == 4">Reject, with no resubmission</b>
</p>
<p style="font-size: 14px;color: #666;margin: 0 0 20px 0;">Reviewed Time :
<b>{{item.ctime}}</b>
</p>
<el-button type="primary" size="mini" @click="ques_visible(item.question)">
Referee's Assessment
</el-button>
</el-card>
</div>
<!-- 审稿意见出框 -->
<el-dialog :visible.sync="questionVisible" width="1000px">
<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">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px;">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</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="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-dialog>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import pdf from 'vue-pdf';
export default {
data() {
return {
loading: false,
Direct_log: this.$route.query.act,
Art_id: this.$route.query.Art_id,
// morShow: false,
txt_mess: {},
fileList: [],
picList: [],
mediaUrl: this.Common.mediaUrl,
User_Id: localStorage.getItem('U_id'),
add_edit: {
article_id: this.$route.query.Art_id,
user_id: localStorage.getItem('U_id'),
content: ''
},
head_line: '',
conmentList: [],
questionform: {
rev_qu_id: '',
art_rev_id: this.$route.query.Art_id,
qu1: '',
qu2: '',
qu3: '',
qu4: '',
qu5: '',
qu6: '',
qu7: '',
qu8: '',
qu9: '',
qu9contents: '',
qu10: '',
qu10contents: '',
qu11: '',
qu11contents: '',
qu12: '',
qu12contents: '',
qu13: '',
qu13contents: '',
qu14: '',
qu14contents: '',
qu15: '',
qu15contents: '',
rated: '',
recommend: '',
other: '',
confident: '',
comment: '',
is_anonymous: ''
},
btn_submit: 0,
questionVisible:false,
pdfUrl: '',
rules: {
qu6: [{
required: true,
message: "please select",
trigger: "blur"
}],
rated: [{
required: true,
message: "please select",
trigger: "blur"
}],
comment: [{
required: true,
message: "please input content",
trigger: "blur"
}],
recommend: [{
required: true,
message: "please select",
trigger: "blur"
}],
}
}
},
created() {
if (this.Direct_log == null) {
this.getData();
} else {
this.$api
.post('api/Chief/autoLoginForChief', {
'code': this.Direct_log
})
.then(res => {
if (res.code == 0) {
localStorage.setItem('U_role', res.data.roles);
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.$api
.post('api/Reviewer/agreeReviewerArticle', {
art_rev_id: this.Art_id
})
.then(res => {
this.getData();
})
.catch(err => {
this.$message.error(err);
});
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
methods: {
getData() {
// 获取文章信息
this.$api
.post('api/Reviewer/getartrevdate', {
'revid': this.Art_id,
'human': 'reviewer'
})
.then(res => {
if (res.state != 0) {
this.btn_submit = 1
}
let date = new Date(parseInt(res.ctime) * 1000);
let Y = date.getFullYear() + '-';
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;
})
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getAFilelistByID ', {
'revid': this.Art_id
})
.then(res => {
for (var i = 0; i < res.data.length; i++) {
let date = new Date(parseInt(res.data[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data[i].ctime = Y + M + D;
}
this.fileList = res.data
// 获取格式
let pdfOut = this.fileList[this.fileList.length - 1].file_url
if (pdfOut.substring(pdfOut.lastIndexOf('.') + 1) == 'docx') {
this.pdfUrl =
'https://view.officeapps.live.com/op/view.aspx?src=https://submission.tmrjournals.com/public/' +
pdfOut
// this.pdfUrl =
// 'https://view.xdocin.com/view?src=https://submission.tmrjournals.com/public/' +
// pdfOut
} else {
this.pdfUrl = 'https://submission.tmrjournals.com/public/' + pdfOut
}
})
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getBFilelistByID', {
'revid': this.Art_id
})
.then(res => {
for (var i = 0; i < res.data.length; i++) {
let date = new Date(parseInt(res.data[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data[i].ctime = Y + M + D;
}
this.picList = res.data
})
.catch(err => {
this.$message.error(err);
});
//初始化问卷
this.$api
.post('api/Reviewer/getQuestion', {
artrevid: this.Art_id
}).then((res) => {
if (res.code == 0) {
this.questionform.rev_qu_id = res.data.rev_qu_id;
this.questionform.qu1 = res.data.qu1;
this.questionform.qu2 = res.data.qu2;
this.questionform.qu3 = res.data.qu3;
this.questionform.qu4 = res.data.qu4;
this.questionform.qu5 = res.data.qu5;
this.questionform.qu6 = res.data.qu6;
this.questionform.qu7 = res.data.qu7;
this.questionform.qu8 = res.data.qu8;
this.questionform.qu9 = res.data.qu9 == 0 ? false : true;
this.questionform.qu9contents = res.data.qu9_contents;
this.questionform.qu10 = res.data.qu10 == 0 ? false : true;
this.questionform.qu10contents = res.data.qu10_contents;
this.questionform.qu11 = res.data.qu11 == 0 ? false : true;
this.questionform.qu11contents = res.data.qu11_contents;
this.questionform.qu12 = res.data.qu12 == 0 ? false : true;
this.questionform.qu12contents = res.data.qu12_contents;
this.questionform.qu13 = res.data.qu13 == 0 ? false : true;
this.questionform.qu13contents = res.data.qu13_contents;
this.questionform.qu14 = res.data.qu14 == 0 ? false : true;
this.questionform.qu14contents = res.data.qu14_contents;
this.questionform.qu15 = res.data.qu15 == 0 ? false : true;
this.questionform.qu15contents = res.data.qu15_contents;
this.questionform.rated = res.data.rated;
this.questionform.recommend = res.data.recommend;
this.questionform.other = res.data.other;
this.questionform.confident = res.data.confidential;
this.questionform.comment = res.data.comments;
this.questionform.is_anonymous = res.data.is_anonymous
}
});
this.$api
.post('api/Reviewer/getAllReviewerObj', {
'article_id': '38'
})
.then(res => {
for (var i = 0; i < res.data.reviews.length; i++) {
let date = new Date(parseInt(res.data.reviews[i].ctime) * 1000);
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() +
1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
res.data.reviews[i].ctime = Y + M + D;
}
this.conmentList = res.data.reviews
})
.catch(err => {
this.$message.error(err);
});
},
questionSubmit() {
if (this.questionform.is_anonymous == "" && this.questionform.is_anonymous != "0") {
this.$message.error('Please choose disclose your name or remain anonymous.');
} else {
// 验证相加的字数
let Char_Cter = this.questionform.qu9contents + ' ' + this.questionform.qu10contents + ' ' +
this.questionform.qu11contents + ' ' + this.questionform.qu12contents + ' ' +
this.questionform.qu13contents + ' ' + this.questionform.comment
if (new RegExp("[\\u4E00-\\u9FFF]+", "g").test(Char_Cter)) {
//中文
let blankCount = 0;
for (let i in Char_Cter.match(/ /g)) {
blankCount++
}
let wenziCount = 0;
for (let j = 0; j < Char_Cter.length; j++) {
if ((Char_Cter.charCodeAt(j) < 0) || (Char_Cter.charCodeAt(j) > 255)) {
wenziCount++
}
}
if (blankCount + wenziCount <= 60) {
this.$message.error(
'We encourage you to enrich your comment further to help improve the peer paper.')
this.$message({
offset: '380',
type: 'error',
message: "We encourage you to enrich your comment further to help improve the peer paper."
})
return false
}
} else {
//英文
let blankCount = 0;
for (let i in Char_Cter.match(/ /g)) {
blankCount++
}
if (blankCount <= 50) {
this.$message.error(
'We encourage you to enrich your comment further to help improve the peer paper.');
this.$message({
offset: '380',
type: 'error',
message: "We encourage you to enrich your comment further to help improve the peer paper."
})
return false
}
}
// 提交接口
this.loading = true
this.$refs.question.validate((valid) => {
if (valid) {
this.$api
.post('api/Reviewer/questionSubmit', this.questionform)
.then((res) => {
if (res.code == 0) {
this.loading = false;
this.$message.success('Success!!');
this.getData();
this.$router.push('/per_text_success');
} else {
this.loading = false;
// this.$message.error('Question submit error!');
this.$message.error(res.msg);
}
});
} else {
this.loading = false;
}
});
}
},
//初始化问卷
ques_visible(e) {
this.questionVisible = true
}
},
mounted() {
},
}
</script>
<style scoped>
.tet_list {
font-size: 20px;
}
.box-card {
margin-bottom: 20px;
line-height: 24px;
}
.upload-txtc .el-upload-list__item .el-icon-upload-success {
display: none !important;
}
.tet_list h5 {
font-size: 15px;
margin: 20px 0 5px 0;
font-weight: normal;
display: inline-block;
}
.tet_list p {
font-family: Calibri;
line-height: 22px;
font-size: 16px;
}
.file_sty {
margin-bottom: 6px;
}
.file_sty a {
color: #606266;
font-size: 14px;
}
.file_sty a:hover {
text-decoration: underline;
}
.red {
color: #ff0000;
}
.el-collapse {
border-top: 0;
border-bottom: 0;
}
.top_dao:hover {
text-decoration: underline;
cursor: pointer;
}
.icon_img {
width: 15px;
height: 15px;
margin-right: 10px;
vertical-align: middle;
}
.trah_c .icon_img {
width: 24px;
height: 24px;
margin: 0 20px;
}
.el-divider {
background-color: #006699;
}
.container_l {
min-width: 1000px;
}
.container_l .box-card {
height: auto;
}
.lookpdf {
height: 760px;
width: 100%;
}
.titlink {
color: #006699;
text-decoration: underline;
cursor: pointer;
}
.morSou {
color: #006699;
text-align: right;
font-weight: bold;
margin: 5px 0 -10px 0;
}
.morSou i {
margin-right: 3px;
font-weight: bold;
}
.morSou:hover {
text-decoration: underline;
cursor: pointer;
}
.jouLink {
color: #006699;
font-weight: bold;
margin: 0 0 0 5px;
}
.jouLink:hover {
text-decoration: underline;
cursor: pointer;
}
.conment_list {
display: inline-block;
text-align: left;
width: 32%;
height: 270px;
margin: 0 0.5% 1%;
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,152 @@
<template>
<div>
<!-- publish 引用编辑页面 -->
<editPublicRefRdit ref="editPublicRefRdit" :chanFerForm = 'chanFerForm' :gridData = 'gridData' :p_article_id='p_article_id' @ChanFerMashUp="ChanFerMashUp" @refrashComp="refrashComp" @changeRefer="changeRefer"></editPublicRefRdit>
</div>
</template>
<script>
import editPublicRefRdit from './editPublicRefRdit' // 公共引用编辑页面
import {
Loading
} from 'element-ui';
export default {
data(){
return{
article_id: this.$route.query.id,
chanFerForm: [],
gridData: '',
p_article_id: this.$route.query.pid,
}
},
created(){
this.getData()
},
methods:{
// 获取p_article_id的值
getArtcleDetails(){
// 获得文章详情
const loading = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.$api
.post('api/Article/getPreacceptArticleDetail', {'article_id': this.article_id})
.then(res => {
loading.close()
this.p_article_id = res.data.production.p_article_id
console.log(this.p_article_id)
// this.chanFerForm = res.data.refers
if(this.p_article_id != null){
this.getData()
//this.getAuthorJG();
//this.getCount();
//this.getWorldPdf();
}
this.$nextTick(()=>{
// 更新引用列表
this.$refs.editPublicRefRdit.init(this.chanFerForm)
})
})
.catch(err => {
//this.$message.error(err);
loading.close()
});
},
getData() {
// this.idform.p_article_id = this.p_article_id;
// this.detailMes.p_article_id = this.p_article_id;
// this.addFomauthor.p_article_id = this.p_article_id;
// this.addFomschool.p_article_id = this.p_article_id;
// this.UpTypeFile.p_article_id = this.p_article_id;
// console.log(this.p_article_id,5555)
const loading = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
// 获取文章信息
// 获取参考文献
this.$api
.post('api/Production/getReferList', {
'p_article_id': this.p_article_id
})
.then(res => {
this.chanFerForm = res.data.refers
for (var i = 0; i < this.chanFerForm.length; i++) {
this.chanFerForm[i].edit_mark = 1
if (this.chanFerForm[i].refer_frag != '') {
this.showB_step = 2
}
}
this.$nextTick(()=>{
// 更新引用列表
this.$refs.editPublicRefRdit.init(this.chanFerForm)
})
loading.close()
})
.catch(err => {
loading.close()
console.log(err);
});
},
// 5----参考文献向上合并
ChanFerMashUp(e) {
console.log(e)
this.$api
.post('api/Production/referHB', e)
.then(res => {
if (res.code == 0) {
this.changeRefer(e)
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
console.log(err);
});
},
// 刷新引用组件
refrashComp(){
this.$refs.editPublicRefRdit.$forceUpdate()
console.log('editPublicRefRdit')
},
// 5----重新获取加载参考文献
changeRefer(val) {
console.log('重新获取参考文献')
this.$api
.post('api/Production/getReferList', {
'p_article_id': this.p_article_id
})
.then(res => {
this.chanFerForm = res.data.refers
for (var i = 0; i < this.chanFerForm.length; i++) {
this.chanFerForm[i].edit_mark = 1
}
console.log(this.chanFerForm)
})
.catch(err => {
console.log(err);
});
},
},
components:{
editPublicRefRdit
}
}
</script>
<style scoped>
</style>

View File

@@ -40,7 +40,7 @@
</template>
<script>
import Vue from 'vue'
import Vue from 'vue'
export default {
props: {
talkMsgs: {
@@ -85,10 +85,15 @@
.post('api/Article/pushArticleDialog', this.msgform)
.then((res) => {
this.loading = false;
this.$message.success('Sent successfully');
this.$router.go(0);
// this.$message.success('Sent successfully');
this.$emit('talksave',true) // 传递成功信号
// setTimeout(()=>{
// this.$router.go(0);
// },1000)
});
},
}
}
</script>

View File

@@ -1,9 +1,14 @@
<template>
<div class="login-wrap">
<p class="yuju">
<!-- <p class="yuju">
You are almost done.
<br>
Please click on the link sent to your email inbox to complete your registration.
<br>
Please click on the link sent to your email inbox to complete your registration.
</p> -->
<p class="yuju">
Congratulations!
<br>
Your account registration has been successfully completed. Please log in by <a @click="tologin" type="text">clicking here</a>.
</p>
</div>
</template>
@@ -20,7 +25,11 @@
},
methods: {
tologin(){
this.$router.push({
path:'/login'
})
}
}
};
</script>
@@ -44,4 +53,5 @@
padding: 20px;
font-size: 20px;
}
.yuju>a{color: #66b1ff; cursor: pointer;}
</style>

View File

@@ -614,13 +614,6 @@ export default new Router({
title: 'Reviewer article details'
}
},
{
path: '/per_text_ls', //审稿人文章详情-总共
component: () => import('../components/page/per_text_ls'),
meta: {
title: 'Reviewer article details'
}
},
{
path: '/per_text_yq', //审稿人文章详情-邀请
component: () => import('../components/page/per_text_yq'),
@@ -795,7 +788,7 @@ export default new Router({
}
},
{
path: '/partyListPot', //用户列表-待开发
path: '/partyListPot', //用户列表-待开发(灰库)
component: () => import('../components/page/partyListPot'),
meta: {
title: 'Potential Users'
@@ -892,6 +885,38 @@ export default new Router({
title: 'Rejected Manuscripts'
}
},
{
path: '/PreIngested', //预收录-完善资料页面
component: () => import('../components/page/Complete_profile'),
meta: {
title: 'Pre-accept'
}
},
{
path: '/ReferenceEditor', //用户端预收录-引用编辑
component: () => import('../components/page/ReferenceEditor'),
meta: {
title: 'Reference Workflow'
}
},
{
name:'PreIngestedEditor',
path: '/PreIngestedEditor', // 编辑端 - 预收录编辑页面
component: () => import('../components/page/PreIngestedEditor'),
meta: {
title: 'PreIngestedEditor'
}
},
{
name:'publishRefernceEditor',
path: '/publishRefernceEditor', // 编辑端 - publish 引用编辑页面
component: () => import('../components/page/publishRefernceEditor'),
meta: {
title: 'Refernce Editor'
}
},
{
path: '/404',
component: () => import( /* webpackChunkName: "404" */

View File

@@ -4,25 +4,23 @@ module.exports = {
assetsDir: 'static',
productionSourceMap: false,
devServer: {
// public: 'http://192.168.110.156:8080/', // 你自己本地的ip地址:端口号
// host:'localhost'
public:'0.0.0.0:8080/',
// public: 'http://192.168.110.159:8080/', // 你自己本地的ip地址:端口号
port: '8080',
// open: true,
// overlay: {
// warnings: false,
// errors: true
// },
// proxy: {
// '/api': {
// // target: 'https://www.tmrjournals.cn',
// target: 'https://submission.tmrjournals.com/',
// changeOrigin: true,
// pathRewrite: {
// '^/api': ''
// }
// }
// }
open: true,
overlay: {
warnings: false,
errors: true
},
proxy: {
'/api': {
// target: 'https://www.tmrjournals.cn',
target: 'https://submission.tmrjournals.com/',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},
// devServer: {