Compare commits
50 Commits
xu-review
...
xie-accept
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
089cc4290a | ||
|
|
5732216436 | ||
|
|
1b5993cb90 | ||
|
|
1d0675716d | ||
|
|
2f77ea87d4 | ||
|
|
1f7e3c484b | ||
|
|
85cc743ba0 | ||
|
|
c509b53180 | ||
|
|
1be18db3ea | ||
|
|
d0741468cd | ||
|
|
0660931ba9 | ||
|
|
2bfb4e237d | ||
|
|
e53bbd0c3f | ||
|
|
9cd6916feb | ||
|
|
aad8481719 | ||
|
|
d6decc78bd | ||
|
|
607c377e89 | ||
|
|
f6db714b46 | ||
|
|
b230e61de9 | ||
|
|
cf880b0864 | ||
|
|
fbfbd8b6f6 | ||
|
|
20c809387d | ||
|
|
a2e7328caf | ||
|
|
c0bbe5a671 | ||
|
|
a870a091ce | ||
|
|
f60e0f4b8a | ||
|
|
8a91600612 | ||
|
|
0161fcc4fb | ||
|
|
a0d93c47a8 | ||
|
|
6da4d6f79d | ||
|
|
531726439b | ||
|
|
6a924b067e | ||
|
|
2448358bb9 | ||
|
|
d3593e6eb2 | ||
|
|
75a08bbe70 | ||
|
|
155185d668 | ||
|
|
e8f4d19eea | ||
|
|
b4eef8558b | ||
|
|
3ed242a6b2 | ||
|
|
2751b840a2 | ||
|
|
fdeaeb57d2 | ||
|
|
6571b8c42f | ||
|
|
fa8a3caf9a | ||
|
|
849f06891f | ||
|
|
15d3e7e0d3 | ||
|
|
45d06d5960 | ||
|
|
de67e6e742 | ||
|
|
bb544d5684 | ||
|
|
55327d3b77 | ||
|
|
184c4af1ca |
134
src/api/index.js
134
src/api/index.js
@@ -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
BIN
src/assets/img/noneData.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.9 KiB |
137
src/components/page/Complete_profile.vue
Normal file
137
src/components/page/Complete_profile.vue
Normal 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" > 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>
|
||||||
2780
src/components/page/PreIngestedEditor.vue
Normal file
2780
src/components/page/PreIngestedEditor.vue
Normal file
File diff suppressed because it is too large
Load Diff
944
src/components/page/ReferenceEditor.vue
Normal file
944
src/components/page/ReferenceEditor.vue
Normal 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
|
||||||
|
<!-- <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 <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 reference’s 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 doesn’t 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:Publisher’s 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> 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>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="container">
|
<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)">
|
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 type="index" label="No." width="55" align="center"></el-table-column>
|
||||||
<el-table-column width="180" label="Manuscript ID" align="center">
|
<el-table-column width="180" label="Manuscript ID" align="center">
|
||||||
@@ -24,22 +24,15 @@
|
|||||||
</el-badge>
|
</el-badge>
|
||||||
</p>
|
</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Type" align="center" width="300">
|
<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">
|
<template slot-scope="scope">
|
||||||
<!-- {{scope.row.type}} -->
|
<b>{{scope.row.user.realname}}</b><br/>
|
||||||
<el-select v-model="scope.row.type" disabled style="width: 100%;">
|
{{scope.row.user.email}}<br/>
|
||||||
<el-option v-for="item in journal_type" :key="item.value" :label="item.name"
|
{{scope.row.user.phone}}
|
||||||
: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> --->
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="Remarks" align="center">
|
<el-table-column label="Remarks" align="center">
|
||||||
@@ -100,7 +93,8 @@
|
|||||||
content: ''
|
content: ''
|
||||||
},
|
},
|
||||||
journal_type:[],
|
journal_type:[],
|
||||||
ss:''
|
ss:'',
|
||||||
|
loading:false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -120,10 +114,12 @@
|
|||||||
// 获取数据
|
// 获取数据
|
||||||
getData() {
|
getData() {
|
||||||
// 被拒稿件列表
|
// 被拒稿件列表
|
||||||
|
this.loading = true
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Article/getRejectArticles', this.query)
|
.post('api/Article/getRejectArticles', this.query)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.data.count > 0) {
|
if (res.data.count > 0) {
|
||||||
|
this.loading = false
|
||||||
this.tableData = res.data.articles
|
this.tableData = res.data.articles
|
||||||
this.Total = res.data.count
|
this.Total = res.data.count
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -326,7 +326,7 @@
|
|||||||
Only Word and compressed files can be uploaded (file format: .docx).
|
Only Word and compressed files can be uploaded (file format: .docx).
|
||||||
</div>
|
</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</a>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Supplementary Material :" label-width="200px">
|
<el-form-item label="Supplementary Material :" label-width="200px">
|
||||||
<el-upload class="upload-demo up_newstyle" :action="upload_supplementary" accept=".zip"
|
<el-upload class="upload-demo up_newstyle" :action="upload_supplementary" accept=".zip"
|
||||||
@@ -487,8 +487,8 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="Major :" prop="major_all">
|
<el-form-item label="Major :" prop="major_all">
|
||||||
<el-cascader :options="jl_major" v-model="item.major_all" :props="defaultParams"
|
<el-cascader :options="step4MajorList" v-model="item.major_all" :props="default4Params"
|
||||||
placeholder="Please select major" style="width: 270px;" clearable></el-cascader>
|
placeholder="Please select major" style="width: 270px;" clearable ></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-button :disabled="tuiJianForm.length==1" @click="onDeleteTuijian(item, index)"
|
<el-button :disabled="tuiJianForm.length==1" @click="onDeleteTuijian(item, index)"
|
||||||
type="danger" icon="el-icon-delete" class="shanchu_tj"></el-button>
|
type="danger" icon="el-icon-delete" class="shanchu_tj"></el-button>
|
||||||
@@ -665,7 +665,7 @@
|
|||||||
manuscirpt: '',
|
manuscirpt: '',
|
||||||
supplementary: '',
|
supplementary: '',
|
||||||
code: '',
|
code: '',
|
||||||
topics:null
|
// topics:null
|
||||||
},
|
},
|
||||||
journal_type: [{
|
journal_type: [{
|
||||||
name: 'ARTICLE',
|
name: 'ARTICLE',
|
||||||
@@ -874,12 +874,18 @@
|
|||||||
companyList: [],
|
companyList: [],
|
||||||
countrys: [],
|
countrys: [],
|
||||||
majorList: [],
|
majorList: [],
|
||||||
|
step4MajorList:[], // 第四步的major数据
|
||||||
jl_major: [],
|
jl_major: [],
|
||||||
defaultParams: {
|
defaultParams: {
|
||||||
label: 'title',
|
label: 'title',
|
||||||
value: 'major_id',
|
value: 'major_id',
|
||||||
children: 'children'
|
children: 'children'
|
||||||
},
|
},
|
||||||
|
default4Params:{
|
||||||
|
label: 'major_title',
|
||||||
|
value: 'major_id',
|
||||||
|
children: 'children'
|
||||||
|
},
|
||||||
mj_jour: [],
|
mj_jour: [],
|
||||||
jour_name: '',
|
jour_name: '',
|
||||||
topicsList:null, // 话题列表
|
topicsList:null, // 话题列表
|
||||||
@@ -907,7 +913,7 @@
|
|||||||
this.Temporary()
|
this.Temporary()
|
||||||
} else {
|
} else {
|
||||||
this.initMajor();
|
this.initMajor();
|
||||||
this.getTopics()
|
// this.getTopics() 获取话题列表
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -1023,14 +1029,15 @@
|
|||||||
this.$refs.tuiJianForm[i].validate(vali => {
|
this.$refs.tuiJianForm[i].validate(vali => {
|
||||||
if (vali) {
|
if (vali) {
|
||||||
tuijian_yanzheng += 0
|
tuijian_yanzheng += 0
|
||||||
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[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[this.tuiJianForm[i].major_all.length - 1]
|
||||||
|
//this.tuiJianForm[i].cmajor = this.tuiJianForm[i].major_all[1]
|
||||||
} else {
|
} else {
|
||||||
tuijian_yanzheng += 1
|
tuijian_yanzheng += 1
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.form.reviewers = this.tuiJianForm
|
this.form.reviewers = this.tuiJianForm
|
||||||
} else {
|
} else {
|
||||||
this.form.reviewers = []
|
this.form.reviewers = []
|
||||||
}
|
}
|
||||||
@@ -1185,17 +1192,17 @@
|
|||||||
'value': res.data.companys[i].title
|
'value': res.data.companys[i].title
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.$api
|
this.$api
|
||||||
.post('/api/Reviewer/getMajorForReviewer', {
|
.post('/api/Reviewer/getMajorForReviewer', {
|
||||||
username: localStorage.getItem('U_name'),
|
username: localStorage.getItem('U_name'),
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.data.major != 0) {
|
if (res.data.major != 0) {
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/User/getMajorList')
|
.post('api/User/getMajorList')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
this.majorList = res.data;
|
this.majorList = res.data;
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1211,6 +1218,14 @@
|
|||||||
|
|
||||||
this.checkReviewer()
|
this.checkReviewer()
|
||||||
|
|
||||||
|
this.$api
|
||||||
|
.post('api/Major/getMajorList')
|
||||||
|
.then(res => {
|
||||||
|
console.log(res,99)
|
||||||
|
this.step4MajorList = res.data.majors;
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 机构模糊搜索
|
// 机构模糊搜索
|
||||||
@@ -1634,7 +1649,7 @@
|
|||||||
this.form.istransfer = false
|
this.form.istransfer = false
|
||||||
this.form.becomeRev = false
|
this.form.becomeRev = false
|
||||||
this.initMajor();
|
this.initMajor();
|
||||||
this.getTopics()
|
// this.getTopics()
|
||||||
},
|
},
|
||||||
|
|
||||||
// 点击tab变化
|
// 点击tab变化
|
||||||
@@ -1693,7 +1708,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
showFiles() {
|
showFiles() {
|
||||||
// 文件显示出来
|
// 文件显示出来
|
||||||
this.fileL_coverLetter = [];
|
this.fileL_coverLetter = [];
|
||||||
@@ -1951,7 +1966,7 @@
|
|||||||
this.form.approval = res.data.base.approval
|
this.form.approval = res.data.base.approval
|
||||||
this.form.abstrart = res.data.base.abstrart
|
this.form.abstrart = res.data.base.abstrart
|
||||||
this.form.fund = res.data.base.fund
|
this.form.fund = res.data.base.fund
|
||||||
this.form.topics = res.data.base.topics
|
// this.form.topics = res.data.base.topics
|
||||||
// 领域
|
// 领域
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Major/getMajorForAddArticle', {
|
.post('api/Major/getMajorForAddArticle', {
|
||||||
@@ -2055,7 +2070,7 @@
|
|||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
this.topicsList = res.data.topics
|
this.topicsList = res.data.topics
|
||||||
console.log(res.data.topics,'话题')
|
// console.log(res.data.topics,'话题')
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.msg);
|
this.$message.error(res.msg);
|
||||||
}
|
}
|
||||||
@@ -2063,7 +2078,7 @@
|
|||||||
},
|
},
|
||||||
// 选中值变化
|
// 选中值变化
|
||||||
topicsChange(e){
|
topicsChange(e){
|
||||||
console.log(this.form.topics,'选中的话题id')
|
// console.log(this.form.topics,'选中的话题id')
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div >
|
||||||
<div class="crumbs">
|
<div class="crumbs">
|
||||||
<el-breadcrumb separator="/">
|
<el-breadcrumb separator="/">
|
||||||
<el-breadcrumb-item>
|
<el-breadcrumb-item>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
<font style="color: #666b7a;">Journal : </font>
|
<font style="color: #666b7a;">Journal : </font>
|
||||||
<b style="font-weight: normal;">{{item.journalname}}</b>
|
<b style="font-weight: normal;">{{item.journalname}}</b>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p v-if="item.state != 6">
|
||||||
<font style="color: #666b7a;">
|
<font style="color: #666b7a;">
|
||||||
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
|
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
|
||||||
Update Time :
|
Update Time :
|
||||||
@@ -92,6 +92,14 @@
|
|||||||
<span @click="esy_deta(item.article_id)">
|
<span @click="esy_deta(item.article_id)">
|
||||||
<i class="el-icon-paperclip"></i>My Manuscript
|
<i class="el-icon-paperclip"></i>My Manuscript
|
||||||
</span>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -435,7 +443,16 @@
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
},
|
},
|
||||||
|
// 显示预收录页面
|
||||||
|
goPre_ingested(id){
|
||||||
|
this.$router.push({
|
||||||
|
path: 'PreIngested',
|
||||||
|
query: {
|
||||||
|
id: id
|
||||||
|
// id: 3070
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
// 点击稿件进程
|
// 点击稿件进程
|
||||||
esy_mtps(e) {
|
esy_mtps(e) {
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
@@ -720,6 +737,9 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<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 {
|
.container {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -968,6 +968,10 @@
|
|||||||
label: 'MINI REVIEW',
|
label: 'MINI REVIEW',
|
||||||
value: 'Mini Review'
|
value: 'Mini Review'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'RETRACTION NOTE',
|
||||||
|
value: 'Retraction Note'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: '内经难经',
|
label: '内经难经',
|
||||||
value: '内经难经'
|
value: '内经难经'
|
||||||
|
|||||||
@@ -192,7 +192,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- Html排版 -->
|
<!-- 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">
|
<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;"
|
<h3 style="font-size: 16px;margin-bottom: 25px;line-height: 22px;letter-spacing: -0.5px;word-break: break-word;"
|
||||||
v-html="UpHtpFIle.title"></h3>
|
v-html="UpHtpFIle.title"></h3>
|
||||||
@@ -223,31 +223,103 @@
|
|||||||
can be uploaded(.pdf)</div>
|
can be uploaded(.pdf)</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div style="border-top: 2px dashed #0066994d;margin: 20px 0 0 0;padding: 20px 0 0 0;">
|
<p style="border-top: 2px dashed #0066994d;margin: 20px 0 0 0;padding: 20px 0 0 0;"> </p>
|
||||||
<font style="font-size: 16px;">Html Layout :</font>
|
<el-collapse v-model="collapseActiveNames">
|
||||||
<span style="margin-left: 15px;color: #666;" v-if="UpHtpFIle.mains==''">No Layout</span>
|
<el-collapse-item name="html">
|
||||||
<span style="margin-left: 15px;color: #0b4b6a;" v-if="UpHtpFIle.mains!=''">Typesetting
|
<template slot="title">
|
||||||
completed</span>
|
Html Layout :
|
||||||
<el-button type="primary" icon="el-icon-document-copy" @click="htmlLayout()"
|
<span style="margin-left: 15px;color: #666;" v-if="UpHtpFIle.mains==''">No Layout</span>
|
||||||
style="margin-left: 20px;">
|
<span style="margin-left: 15px;color: #0b4b6a;" v-if="UpHtpFIle.mains!=''">Typesetting completed</span>
|
||||||
<font v-if="UpHtpFIle.mains==''">Creat Html Proofread</font>
|
<!-- <el-button v-if="UpHtpFIle.mains==''" type="text" plain icon="el-icon-document-copy" @click="showCreateHtmlItem()"
|
||||||
<font v-if="UpHtpFIle.mains!=''">Edit Html Proofread</font>
|
style="margin-left: 20px;">
|
||||||
</el-button>
|
<font >Create Html Proofread</font>
|
||||||
<div class="titHtml" v-if="UpHtpFIle.mains!=''">
|
</el-button> -->
|
||||||
<div v-for="(item,index) in UpHtpFIle.mains">
|
<el-button v-if="UpHtpFIle.mains!=''" type="primary" plain icon="el-icon-document-copy" @click="htmlLayout()"
|
||||||
<p v-html="item.content" v-if="item.width==0"></p>
|
style="margin-left: 20px;">
|
||||||
<p v-if="item.width!=0" class="MaxPicture">
|
<font >Edit Html Proofread</font>
|
||||||
<img :src="baseUrl+'public/mainimg/'+item.content" :style="'width:'+item.width+'px'">
|
</el-button>
|
||||||
<font :style="'width:'+item.width+'px'">{{item.note}}
|
</template>
|
||||||
</font>
|
<div>
|
||||||
</p>
|
<!-- 生成选项 -->
|
||||||
</div>
|
<div v-if="UpHtpFIle.mains==''">
|
||||||
</div>
|
<el-radio v-model="createType" label="1">使用稿件最终版生成html</el-radio>
|
||||||
|
<el-radio v-model="createType" label="2">重新上传word文件生成html</el-radio>
|
||||||
</div>
|
<!-- 方式是重新上传,且没有上传文件时,按钮不可用 -->
|
||||||
|
<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>
|
</div>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="HtmlVisible = false" plain>Cancel</el-button>
|
<el-button @click="CancelHtml" plain>Cancel</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
@@ -258,9 +330,15 @@
|
|||||||
import {
|
import {
|
||||||
Loading
|
Loading
|
||||||
} from 'element-ui';
|
} from 'element-ui';
|
||||||
|
import { watch } from 'vue';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
articleId:null,
|
||||||
|
createType:'1', // html生成方式
|
||||||
|
collapseActiveNames:['html'], // 手风琴绑定值
|
||||||
|
// oldFile:false, // 是否用新文件生成
|
||||||
|
fileL_manuscirpt: [],
|
||||||
baseUrl: this.Common.baseUrl,
|
baseUrl: this.Common.baseUrl,
|
||||||
mediaUrl: this.Common.mediaUrl,
|
mediaUrl: this.Common.mediaUrl,
|
||||||
username: localStorage.getItem('U_name'),
|
username: localStorage.getItem('U_name'),
|
||||||
@@ -291,6 +369,7 @@
|
|||||||
article_id: '',
|
article_id: '',
|
||||||
htmlfile: '',
|
htmlfile: '',
|
||||||
mains: [],
|
mains: [],
|
||||||
|
refers:[], //引用参数
|
||||||
},
|
},
|
||||||
UpLoadFile: {
|
UpLoadFile: {
|
||||||
article_id: '',
|
article_id: '',
|
||||||
@@ -309,12 +388,24 @@
|
|||||||
chooseData: [],
|
chooseData: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
steps_jour: 0,
|
steps_jour: 0,
|
||||||
|
form:{
|
||||||
|
manuscirpt: '',
|
||||||
|
},
|
||||||
|
fileData:'' // 上传后返回的文件url
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getJourDate();
|
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() {
|
getDate() {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
@@ -335,7 +426,66 @@
|
|||||||
loading.close();
|
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() {
|
getJourDate() {
|
||||||
this.$api
|
this.$api
|
||||||
@@ -639,8 +789,10 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
// 文章html弹出层
|
// 文章html弹出层
|
||||||
htmlContet(e) {
|
htmlContet(e) {
|
||||||
|
this.articleId = e.article_id
|
||||||
this.UpHtpFIle.article_id = e.article_id
|
this.UpHtpFIle.article_id = e.article_id
|
||||||
|
this.UpHtpFIle.refers = e.refers
|
||||||
this.UpHtpFIle.doi = e.doi
|
this.UpHtpFIle.doi = e.doi
|
||||||
this.UpHtpFIle.htmlfile = e.file_html
|
this.UpHtpFIle.htmlfile = e.file_html
|
||||||
this.UpHtpFIle.title = e.title
|
this.UpHtpFIle.title = e.title
|
||||||
@@ -648,7 +800,26 @@
|
|||||||
this.UpLoadFile.article_id = e.article_id
|
this.UpLoadFile.article_id = e.article_id
|
||||||
this.HtmlVisible = true
|
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
|
// 修改文章html
|
||||||
htmlLayout() {
|
htmlLayout() {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
@@ -659,7 +830,8 @@
|
|||||||
});
|
});
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Production/getProductionMainsByDoi', {
|
.post('api/Production/getProductionMainsByDoi', {
|
||||||
doi: this.UpHtpFIle.doi
|
doi: this.UpHtpFIle.doi,
|
||||||
|
file: this.fileData
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
@@ -741,11 +913,39 @@
|
|||||||
this.$message.error('The maximum number of uploaded files has been exceeded');
|
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>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<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 {
|
.handle-box {
|
||||||
margin-bottom: 18px;
|
margin-bottom: 18px;
|
||||||
}
|
}
|
||||||
@@ -909,31 +1109,33 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/deep/.htmlfile .upload-demo .el-upload-list {
|
/deep/.htmlfile .upload-demo .el-upload-list {
|
||||||
margin-top: 4px;
|
margin-top: -4px;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
float: left;
|
float: left;
|
||||||
width: 35px;
|
width: 500px;
|
||||||
display: none;
|
/* 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;
|
width: 30px !important;
|
||||||
}
|
} */
|
||||||
|
|
||||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item:hover {
|
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item:hover {
|
||||||
cursor: pointer;
|
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;
|
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;
|
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;
|
display: none;
|
||||||
}
|
} */
|
||||||
|
/deep/ .table99 th{background: #e4e7ed !important; color: #777 !important;}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -83,6 +83,9 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</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-form-item label="Scheduled Tasks :" prop="frequency">
|
||||||
<el-radio-group v-model="EmailData.frequency">
|
<el-radio-group v-model="EmailData.frequency">
|
||||||
<el-radio label="day" style="display: block;margin: 10px 0 0 0;">
|
<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>
|
<span style="margin: 0 0 0 5px;">(explanatory note: 1st - 5th)</span>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div class="d_rol">
|
<div class="d_rol">
|
||||||
<h3>
|
<h3>
|
||||||
@@ -299,6 +302,7 @@
|
|||||||
substance_bom: '',
|
substance_bom: '',
|
||||||
substanceOld: '',
|
substanceOld: '',
|
||||||
frequency: 'day',
|
frequency: 'day',
|
||||||
|
beginPage:1 // 开始页数
|
||||||
},
|
},
|
||||||
keyValue: 0,
|
keyValue: 0,
|
||||||
userListNum: 0,
|
userListNum: 0,
|
||||||
@@ -864,8 +868,6 @@
|
|||||||
// artHtml)
|
// artHtml)
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.$api
|
this.$api
|
||||||
.post('api/Promotion/addPromotion', this.EmailData)
|
.post('api/Promotion/addPromotion', this.EmailData)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
|
|||||||
1392
src/components/page/editPublicRefRdit.vue
Normal file
1392
src/components/page/editPublicRefRdit.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,7 @@
|
|||||||
</el-breadcrumb-item>
|
</el-breadcrumb-item>
|
||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="form-box">
|
<div class="form-box">
|
||||||
<el-form ref="editorform" :model="form" :rules="rules" label-width="200px">
|
<el-form ref="editorform" :model="form" :rules="rules" label-width="200px">
|
||||||
|
|||||||
@@ -77,11 +77,14 @@
|
|||||||
<el-table-column prop="company" label="Affiliation"></el-table-column>
|
<el-table-column prop="company" label="Affiliation"></el-table-column>
|
||||||
<el-table-column prop="field" label="Field"></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 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">
|
<template slot-scope="scope">
|
||||||
<el-button plain type="primary" icon="el-icon-edit" @click="handleEdit(scope.row)">
|
<el-button plain type="primary" icon="el-icon-edit" @click="handleEdit(scope.row)">
|
||||||
Edit
|
Edit
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button plain type="danger" icon="el-icon-edit" @click="handleDelete(scope.row)">
|
||||||
|
Delete
|
||||||
|
</el-button>
|
||||||
<!-- <div style="margin-top: 12px;">
|
<!-- <div style="margin-top: 12px;">
|
||||||
<el-button plain type="warning" @click="handleSend(scope.row)">
|
<el-button plain type="warning" @click="handleSend(scope.row)">
|
||||||
PROMOTION
|
PROMOTION
|
||||||
@@ -545,6 +548,29 @@
|
|||||||
this.initMajor()
|
this.initMajor()
|
||||||
},
|
},
|
||||||
methods: {
|
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() {
|
getCountry() {
|
||||||
this.$api
|
this.$api
|
||||||
|
|||||||
152
src/components/page/publishRefernceEditor.vue
Normal file
152
src/components/page/publishRefernceEditor.vue
Normal 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>
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
talkMsgs: {
|
talkMsgs: {
|
||||||
@@ -85,10 +85,15 @@
|
|||||||
.post('api/Article/pushArticleDialog', this.msgform)
|
.post('api/Article/pushArticleDialog', this.msgform)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.$message.success('Sent successfully');
|
// this.$message.success('Sent successfully');
|
||||||
this.$router.go(0);
|
this.$emit('talksave',true) // 传递成功信号
|
||||||
|
// setTimeout(()=>{
|
||||||
|
// this.$router.go(0);
|
||||||
|
// },1000)
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="login-wrap">
|
<div class="login-wrap">
|
||||||
<p class="yuju">
|
<!-- <p class="yuju">
|
||||||
You are almost done.
|
You are almost done.
|
||||||
<br>
|
<br>
|
||||||
Please click on the link sent to your email inbox to complete your registration.
|
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>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -20,7 +25,11 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
tologin(){
|
||||||
|
this.$router.push({
|
||||||
|
path:'/login'
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@@ -44,4 +53,5 @@
|
|||||||
padding: 20px;
|
padding: 20px;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
.yuju>a{color: #66b1ff; cursor: pointer;}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -788,7 +788,7 @@ export default new Router({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/partyListPot', //用户列表-待开发
|
path: '/partyListPot', //用户列表-待开发(灰库)
|
||||||
component: () => import('../components/page/partyListPot'),
|
component: () => import('../components/page/partyListPot'),
|
||||||
meta: {
|
meta: {
|
||||||
title: 'Potential Users'
|
title: 'Potential Users'
|
||||||
@@ -885,6 +885,38 @@ export default new Router({
|
|||||||
title: 'Rejected Manuscripts'
|
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',
|
path: '/404',
|
||||||
component: () => import( /* webpackChunkName: "404" */
|
component: () => import( /* webpackChunkName: "404" */
|
||||||
|
|||||||
@@ -4,23 +4,23 @@ module.exports = {
|
|||||||
assetsDir: 'static',
|
assetsDir: 'static',
|
||||||
productionSourceMap: false,
|
productionSourceMap: false,
|
||||||
devServer: {
|
devServer: {
|
||||||
public: 'http://192.168.110.159:8080/', // 你自己本地的ip地址:端口号
|
// public: 'http://192.168.110.159:8080/', // 你自己本地的ip地址:端口号
|
||||||
// port: '8080',
|
port: '8080',
|
||||||
// open: true,
|
open: true,
|
||||||
// overlay: {
|
overlay: {
|
||||||
// warnings: false,
|
warnings: false,
|
||||||
// errors: true
|
errors: true
|
||||||
// },
|
},
|
||||||
// proxy: {
|
proxy: {
|
||||||
// '/api': {
|
'/api': {
|
||||||
// // target: 'https://www.tmrjournals.cn',
|
// target: 'https://www.tmrjournals.cn',
|
||||||
// target: 'https://submission.tmrjournals.com/',
|
target: 'https://submission.tmrjournals.com/',
|
||||||
// changeOrigin: true,
|
changeOrigin: true,
|
||||||
// pathRewrite: {
|
pathRewrite: {
|
||||||
// '^/api': ''
|
'^/api': ''
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// devServer: {
|
// devServer: {
|
||||||
|
|||||||
Reference in New Issue
Block a user