更新
This commit is contained in:
583
src/components/page/Academic_Integrity_Committee.vue
Normal file
583
src/components/page/Academic_Integrity_Committee.vue
Normal file
@@ -0,0 +1,583 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-user"></i> Academic Integrity Committee List
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container" style="min-width: 1000px;">
|
||||
<div>
|
||||
<span style="font-size: 14px;color: #606266;margin: 0 10px 0 0;">Journal : </span>
|
||||
<el-select v-model="query.journal_id" placeholder="Please select a journal" @change="query.pageIndex = 1;getDate()"
|
||||
style="width: 220px;margin-right: 35px;">
|
||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
|
||||
:value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="handle-box" style="margin-bottom: 15px; overflow: hidden; ">
|
||||
<div >
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addHandle" style="float: right;">
|
||||
Add new Academic Integrity Committee</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header">
|
||||
<el-table-column label="Basic Information">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<span>Realname: </span><b style="font-size: 15px;">{{scope.row.realname}}</b>
|
||||
</p>
|
||||
<p class="tab_tie_col">
|
||||
<span>Account: </span>{{scope.row.account}}
|
||||
</p>
|
||||
<p class="tab_tie_col">
|
||||
<span>Email: </span>{{scope.row.email}}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Research Areas" align="center">
|
||||
<template slot-scope="scope">
|
||||
<!-- <p class="tab_tie_col">
|
||||
<span>Affiliation: </span>{{scope.row.company}}
|
||||
</p> -->
|
||||
<p class="tab_tie_col">
|
||||
<!-- <span>Field: </span> -->
|
||||
{{scope.row.research_areas}}
|
||||
</p>
|
||||
<!-- <p class="tab_tie_col">
|
||||
<span>Major: </span>{{scope.row.major_title}}
|
||||
</p> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="H-WOS" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="H-Google" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin: 0 0 10px 0;">
|
||||
<el-button type="primary" plain icon="el-icon-connection" @click="handleDtail(scope.row)">
|
||||
Detail
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="margin: 0 0 10px 0;">
|
||||
<el-button type="success" plain icon="el-icon-edit" @click="editHandle(scope.row)">
|
||||
Edit
|
||||
</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-button type="danger" plain icon="el-icon-delete" @click="reneDelete(scope.row)">Delete
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- <div class="pagination">
|
||||
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
|
||||
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<!-- 添加弹出框 -->
|
||||
<el-dialog title="Add Academic Integrity Committee" :visible.sync="addVisible" width="660px" :close-on-click-modal="false"
|
||||
@close='addVisCancle'>
|
||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="140px" v-if="!dis_able">
|
||||
<el-form-item label="Email / Account :" prop="account" v-if="!dis_able">
|
||||
<el-input v-model="addForm.account" style="width: 300px;"></el-input>
|
||||
<el-button type="warning" @click="saerNa_U()" style="margin-left: 15px;" icon="el-icon-paperclip">
|
||||
Check</el-button>
|
||||
<p style="color: #888;margin-top: 10px;">
|
||||
Note: The new Academic Integrity Committee must be a registered user.
|
||||
<br>Click <a class="zhu_ce" @click="Goto_res()">register</a>.
|
||||
</p>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="150px" v-if="dis_able">
|
||||
<el-form-item label="Account :">
|
||||
{{addForm.account}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Email :">
|
||||
{{addForm.email}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Realname :">
|
||||
{{addForm.realname}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Journal :" prop="journal_id">
|
||||
<el-select v-model="addForm.journal_id" placeholder="Please select a journal" style="width: 270px;">
|
||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
|
||||
:value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Research areas :" >
|
||||
<el-input type="textarea" v-model="addForm.areas" placeholder="Please enter"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="addVisCancle">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveAdd()" v-if="dis_able">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 编辑弹出框 -->
|
||||
<el-dialog title="Edit Academic Integrity Committee" :visible.sync="editvisible" width="600px" @close="editClose()">
|
||||
<el-form ref="addForm1" :model="addForm1" label-width="150px" >
|
||||
<el-form-item label="Research areas :" >
|
||||
<el-input type="textarea" v-model="addForm1.areas" placeholder="Please enter"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="editClose()">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveEdit()">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<!-- 证书弹出框 -->
|
||||
<el-dialog :visible.sync="cerVisible" width="850px">
|
||||
<el-image class="table-td-thumb rev_digol" :src="this.IMG_Url"></el-image>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'youthList',
|
||||
data() {
|
||||
return {
|
||||
YearThis: 0,
|
||||
edit_id: localStorage.getItem('U_id'),
|
||||
query: {
|
||||
journal_id: 0,
|
||||
type: 1,
|
||||
year: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 15,
|
||||
keywords: '',
|
||||
fieldkey: '',
|
||||
order_remark: 0
|
||||
},
|
||||
Total: 0,
|
||||
df_jour: [],
|
||||
df_year: [],
|
||||
list_year: [{
|
||||
title: '1 Year',
|
||||
id: 1
|
||||
}, {
|
||||
title: '2 Years',
|
||||
id: 2
|
||||
}, {
|
||||
title: '3 Years',
|
||||
id: 3
|
||||
}],
|
||||
tableData: [],
|
||||
IMG_Url: '',
|
||||
addVisible: false,
|
||||
reneVisible: false,
|
||||
cerVisible: false,
|
||||
addForm: {
|
||||
account: '',
|
||||
},
|
||||
addForm1:{
|
||||
ctj_id: null,
|
||||
areas:''
|
||||
},
|
||||
editvisible:false,
|
||||
reneForm: {
|
||||
journal_id: 0
|
||||
},
|
||||
remarkMes: {
|
||||
remark: ''
|
||||
},
|
||||
remarkBox: false,
|
||||
dis_able: false,
|
||||
rules: {
|
||||
account: [{
|
||||
required: true,
|
||||
message: 'Please enter email / account',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
journal_id: [{
|
||||
required: true,
|
||||
message: 'Please select journal',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
// year: [{
|
||||
// required: true,
|
||||
// message: 'Please select year',
|
||||
// trigger: 'blur'
|
||||
// }],
|
||||
}
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
var pages = getCurrentPages(); // 获取当前页面栈
|
||||
var currentPage = pages[pages.length - 1]; // 当前页面
|
||||
if (currentPage.data.refreshIfNeeded) {
|
||||
currentPage.data.refreshIfNeeded = false;
|
||||
//这里为要调用的函数,重新获取数据,记得加上this
|
||||
this.getDate();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getSelect();
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 关闭编辑弹窗
|
||||
editClose(){
|
||||
this.editvisible = false
|
||||
this.addForm1.ctj_id = null,
|
||||
this.addForm1.areas = ''
|
||||
},
|
||||
// 显示编辑弹出框
|
||||
editHandle(val){
|
||||
this.editvisible = true
|
||||
this.$nextTick(function() {
|
||||
this.addForm1.ctj_id = val.ctj_id
|
||||
this.addForm1.areas = val.research_areas
|
||||
})
|
||||
},
|
||||
// 提交编辑弹窗
|
||||
saveEdit(){
|
||||
this.$api
|
||||
.post('api/User/editCommittee', {
|
||||
'ctj_id': this.addForm1.ctj_id,
|
||||
'research_areas': this.addForm1.areas
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Edit successfully!')
|
||||
this.editClose()
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
// 获取下拉值
|
||||
getSelect() {
|
||||
this.$api
|
||||
.post('api/Chief/getJournalsByEditor', {
|
||||
'user_id': this.edit_id
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.df_jour = res.data.journals;
|
||||
this.query.journal_id = this.df_jour[0].journal_id
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 获取列表数据
|
||||
getDate() {
|
||||
this.$api
|
||||
.post('api/User/getCommittee', {
|
||||
'journal_id': this.query.journal_id
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.committees;
|
||||
for (var i = 0; i < this.tableData.length; i++) {
|
||||
this.getScoreData(i, this.tableData[i].score)
|
||||
}
|
||||
// this.Total = res.data.count;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 评分
|
||||
getScoreData(i, e) {
|
||||
this.tableData[i].starList = []
|
||||
this.tableData[i].starList_mark = 0
|
||||
if (e < 0.5 && e > 0) {
|
||||
this.tableData[i].starList.push({
|
||||
star: 2
|
||||
})
|
||||
this.tableData[i].starList_mark = 1
|
||||
} else {
|
||||
let zheng = Math.floor(e)
|
||||
let xiao = Number(e) - Math.floor(e)
|
||||
if (xiao >= 0.5) {
|
||||
xiao = 0.5
|
||||
} else {
|
||||
xiao = 0
|
||||
}
|
||||
for (var j = 0; j < zheng; j++) {
|
||||
this.tableData[i].starList.push({
|
||||
star: 1
|
||||
})
|
||||
}
|
||||
if (xiao == 0.5) {
|
||||
this.tableData[i].starList.push({
|
||||
star: 0
|
||||
})
|
||||
}
|
||||
this.tableData[i].starList_mark = Number(zheng) + Number(xiao)
|
||||
}
|
||||
},
|
||||
// 新增
|
||||
addHandle() {
|
||||
this.dis_able = false
|
||||
this.addForm.account = ''
|
||||
this.addVisible = true
|
||||
},
|
||||
|
||||
// 保存添加
|
||||
saveAdd() {
|
||||
this.$refs.add_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.$api
|
||||
.post('api/User/addCommittee',
|
||||
{
|
||||
'user_id': this.addForm.user_id,
|
||||
'journal_id': this.addForm.journal_id,
|
||||
'research_areas': this.addForm.areas
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
|
||||
this.getDate();
|
||||
this.$message.success('Added successfully!');
|
||||
// this.$refs.add_Form.resetFields();
|
||||
this.dis_able = false
|
||||
this.addVisible = false;
|
||||
loading.close();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 添加关闭
|
||||
addVisCancle() {
|
||||
this.addVisible = false
|
||||
this.addForm.journal_id = null
|
||||
this.addForm.research_areas = ''
|
||||
},
|
||||
|
||||
// 查找与他相同的账号
|
||||
saerNa_U() {
|
||||
if (this.addForm.account != undefined && this.addForm.account != '') {
|
||||
this.$api
|
||||
.post('api/User/searchUserByAccountEmail', {
|
||||
'account': this.addForm.account
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data.user == null) {
|
||||
this.dis_able = false
|
||||
this.$message.error('Verify that the account or mailbox does not exist!');
|
||||
} else {
|
||||
this.dis_able = true
|
||||
this.addForm.user_id = res.data.user.user_id
|
||||
this.addForm.account = res.data.user.account
|
||||
this.addForm.realname = res.data.user.realname
|
||||
this.addForm.email = res.data.user.email
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error('Verification account or mailbox cannot be empty!');
|
||||
}
|
||||
},
|
||||
|
||||
// 点击注册
|
||||
Goto_res() {
|
||||
this.$router.push('/register');
|
||||
},
|
||||
|
||||
// 详情
|
||||
handleDtail(e) {
|
||||
let routerJump = this.$router.resolve({
|
||||
path: '/partyRole',
|
||||
query: {
|
||||
id: e.user_id
|
||||
}
|
||||
});
|
||||
window.open(routerJump.href, '_blank');
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 删除
|
||||
reneDelete(e) {
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete?', 'Tip', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/User/delCommittee', {'ctj_id':e.ctj_id})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Deleted successfully');
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
// 证书弹出层
|
||||
cerFicte(e) {
|
||||
this.IMG_Url = this.Common.mediaUrl + 'cert/' + e.icon
|
||||
this.cerVisible = true;
|
||||
},
|
||||
|
||||
|
||||
// 分页导航
|
||||
handlePageChange(val) {
|
||||
this.$set(this.query, 'pageIndex', val);
|
||||
this.getDate();
|
||||
},
|
||||
|
||||
colorIndex(num, time) {
|
||||
if (time != 0) {
|
||||
let date = new Date(parseInt(time * 1000));
|
||||
let Y = date.getFullYear() + '-';
|
||||
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
let H = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
|
||||
let U = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
time = Y + M + D;
|
||||
}
|
||||
let str = '';
|
||||
if (num < 10) {
|
||||
str = '<b style="color:#cb160a">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
} else if (num < 15) {
|
||||
str = '<b style="color:#cbb504">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
} else {
|
||||
str = '<b style="color:#0cbc15">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
}
|
||||
if (time == 0) {
|
||||
str =
|
||||
'<b style="color:#aaa;">0</b><br/><span style="color:#aaa;font-size:14px;margin-left:5px;">(Empty)</span>'
|
||||
}
|
||||
return str;
|
||||
},
|
||||
|
||||
// 时间格式
|
||||
formatDate(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + '-';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
||||
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
||||
return Y + M + D;
|
||||
},
|
||||
|
||||
formatYear(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + ' . ';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
|
||||
return Y + M;
|
||||
},
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
|
||||
.zhu_ce {
|
||||
text-decoration: underline;
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tab_tie_col {
|
||||
margin-bottom: 5px;
|
||||
color: #333;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.tab_tie_col>span {
|
||||
color: #888;
|
||||
margin: 0 5px 0 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.starSty {
|
||||
width: 18px;
|
||||
margin-right: 4px;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.starSty:nth-last-child(1) {
|
||||
margin-right: 0;
|
||||
}
|
||||
</style>
|
||||
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>
|
||||
@@ -143,6 +143,14 @@
|
||||
{{coreTable.country}}
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="coreTable.website!=''">
|
||||
<div class="expTit">
|
||||
Website :
|
||||
</div>
|
||||
<div class="expInde" style="margin-top: 0;">
|
||||
<el-link :href="coreTable.website" target="_blank" type="primary">Personal academic introduction</el-link>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="coreTable.company!=''">
|
||||
<div class="expTit">
|
||||
Affiliation :
|
||||
@@ -206,13 +214,13 @@
|
||||
|
||||
<el-col :span="24" v-if="!this.usercap.includes('editor')">
|
||||
<el-row :gutter="40" style="display: flex;">
|
||||
<el-col :span="12">
|
||||
<el-col :span="15">
|
||||
<!-- 作者信息 -->
|
||||
<div class="chunking" style="margin-top: 55px;">
|
||||
<!-- <el-divider></el-divider> -->
|
||||
<h2 class="infor_title">Author</h2>
|
||||
<div class="chunkPiece">
|
||||
<div style="margin: 12px 20px 30px 30px;line-height:24px;font-size: 14px;">
|
||||
<div style="margin: 12px 20px 30px 20px;line-height:24px;font-size: 14px;">
|
||||
<div v-if="this.usercap.includes('author')">
|
||||
<!-- 统计数据 -->
|
||||
<div class="numeric" v-if="authorTable.manuscriptNum!=undefined">
|
||||
@@ -222,15 +230,24 @@
|
||||
</div> -->
|
||||
<div class="numerItem">
|
||||
<b @click="JumpPage(2)">{{authorTable.manuscriptNum}}</b>
|
||||
<p>Record of<br />submitted manuscript</p>
|
||||
<p>Submitted manuscripts</p>
|
||||
</div>
|
||||
<div class="numerItem">
|
||||
<b @click="JumpPage(3)">{{authorTable.accept}}</b>
|
||||
<p>Record of<br />published articles</p>
|
||||
<p>Published articles</p>
|
||||
</div>
|
||||
<div class="numerItem">
|
||||
<b >{{authorTable.tj}}</b>
|
||||
<p>Recommended manuscripts</p>
|
||||
</div>
|
||||
<div class="numerItem" >
|
||||
<b @click="JumpPage(6)" v-if="reviewTable.successReview">{{reviewTable.successReview}}</b>
|
||||
<b @click="JumpPage(6)" v-else>0</b>
|
||||
<p>Reviewed manuscripts</p>
|
||||
</div>
|
||||
<div class="numerItem">
|
||||
<b @click="JumpPage(4)">{{authorTable.index}}</b>
|
||||
<p>Citing<br />records</p>
|
||||
<p>Articles of interest</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -254,7 +271,7 @@
|
||||
Click here to <img src="../../assets/img/icon_9.png" alt=""
|
||||
class="icon_img">
|
||||
<el-link>
|
||||
<b @click="apointVisible=true">view your citation records.</b>
|
||||
<b @click="apointVisible=true">add valuable references.</b>
|
||||
</el-link>
|
||||
</p>
|
||||
</div>
|
||||
@@ -264,7 +281,7 @@
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-col :span="9">
|
||||
<!-- 审稿人信息 -->
|
||||
<div class="chunking" style="margin-top: 55px;">
|
||||
<!-- <el-divider></el-divider> -->
|
||||
@@ -791,6 +808,10 @@
|
||||
:key="item.en_name" :value="item.en_name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Website :" prop="website">
|
||||
<el-input type="text" placeholder="eg:http://..." v-model="coreForm.website" style="width: 320px;">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="major_a">
|
||||
<span slot="label">
|
||||
<i style="color: #F56C6C;margin-right: 4px;">*</i>
|
||||
@@ -994,16 +1015,54 @@
|
||||
youth_journal: [],
|
||||
df_country: [],
|
||||
df_technical: [{
|
||||
label: 'Prof',
|
||||
label: 'Professor',
|
||||
}, {
|
||||
label: 'Associate Prof.',
|
||||
label: 'Associate Professor',
|
||||
}, {
|
||||
label: 'Assistant Prof.',
|
||||
label: 'Assistant Professor',
|
||||
},
|
||||
// {
|
||||
// label: 'Ph.D.',
|
||||
// },
|
||||
{
|
||||
label: 'Researcher',
|
||||
}, {
|
||||
label: 'Ph.D.',
|
||||
label: 'Associate research fellow',
|
||||
}, {
|
||||
label: 'Others',
|
||||
}],
|
||||
label: 'Assistant research fellow',
|
||||
}, {
|
||||
label: 'Engineer',
|
||||
}, {
|
||||
label: 'Senior engineer',
|
||||
},
|
||||
{
|
||||
label: 'Associate Researcher',
|
||||
},
|
||||
{
|
||||
label: 'Lecturer',
|
||||
},
|
||||
{
|
||||
label: 'Associate Chief Physician',
|
||||
},
|
||||
{
|
||||
label: 'Assistant Researcher',
|
||||
},
|
||||
{
|
||||
label: 'Physician',
|
||||
},
|
||||
{
|
||||
label: 'Chief Physician',
|
||||
},
|
||||
{
|
||||
label: 'Senior Lecturer',
|
||||
},
|
||||
{
|
||||
label: 'Research Fellow',
|
||||
},
|
||||
{
|
||||
label: 'Senior Investigator',
|
||||
},
|
||||
],
|
||||
fileL_pdf1: [],
|
||||
pwdVisible: false,
|
||||
usermsgList: [],
|
||||
@@ -1415,7 +1474,7 @@
|
||||
}
|
||||
if (res.data.asReviewer) {
|
||||
this.review_journal = res.data.asReviewer.journal
|
||||
this.reviewTable = res.data.asReviewer
|
||||
this.reviewTable = res.data.asReviewer
|
||||
if (!this.usercap.includes('reviewer')) {
|
||||
localStorage.setItem('U_role', this.usercap + ',reviewer')
|
||||
}
|
||||
|
||||
584
src/components/page/Editor_For_Major.vue
Normal file
584
src/components/page/Editor_For_Major.vue
Normal file
@@ -0,0 +1,584 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-user"></i> Editors & Staff List
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container" style="min-width: 1000px;">
|
||||
<div>
|
||||
<span style="font-size: 14px;color: #606266;margin: 0 10px 0 0;">Journal : </span>
|
||||
<el-select v-model="query.journal_id" placeholder="Please select a journal" @change="query.pageIndex = 1;getDate()"
|
||||
style="width: 220px;margin-right: 35px;">
|
||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
|
||||
:value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="handle-box" style="margin-bottom: 15px; overflow: hidden; ">
|
||||
<div >
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addHandle" style="float: right;">
|
||||
Add new Editors & Staff</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header">
|
||||
<el-table-column label="Basic Information">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<span>Realname: </span><b style="font-size: 15px;">{{scope.row.realname}}</b>
|
||||
</p>
|
||||
<p class="tab_tie_col">
|
||||
<span>Account: </span>{{scope.row.account}}
|
||||
</p>
|
||||
<p class="tab_tie_col">
|
||||
<span>Email: </span>{{scope.row.email}}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Title" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
<!-- <span>Field: </span> -->
|
||||
{{scope.row.editor_title}}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="H-WOS" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="H-Google" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column align="center" width="120">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin: 0 0 10px 0;">
|
||||
<el-button type="primary" plain icon="el-icon-connection" @click="handleDtail(scope.row)">
|
||||
Detail
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="margin: 0 0 10px 0;">
|
||||
<el-button type="success" plain icon="el-icon-edit" @click="editHandle(scope.row)">
|
||||
Edit
|
||||
</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-button type="danger" plain icon="el-icon-delete" @click="reneDelete(scope.row)">Delete
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- <div class="pagination">
|
||||
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
|
||||
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<!-- 添加弹出框 -->
|
||||
<el-dialog title="Add Editors & Staff" :visible.sync="addVisible" width="660px" :close-on-click-modal="false"
|
||||
@close='addVisCancle'>
|
||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="140px" v-if="!dis_able">
|
||||
<el-form-item label="Email / Account :" prop="account" v-if="!dis_able">
|
||||
<el-input v-model="addForm.account" style="width: 300px;"></el-input>
|
||||
<el-button type="warning" @click="saerNa_U()" style="margin-left: 15px;" icon="el-icon-paperclip">
|
||||
Check</el-button>
|
||||
<p style="color: #888;margin-top: 10px;">
|
||||
Note: The new Editors & Staff must be a registered user.
|
||||
<br>Click <a class="zhu_ce" @click="Goto_res()">register</a>.
|
||||
</p>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="150px" v-if="dis_able">
|
||||
<el-form-item label="Account :">
|
||||
{{addForm.account}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Email :">
|
||||
{{addForm.email}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Realname :">
|
||||
{{addForm.realname}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Journal :" prop="journal_id">
|
||||
<el-select v-model="addForm.journal_id" placeholder="Please select a journal" style="width: 270px;">
|
||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
|
||||
:value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Title :" prop="title">
|
||||
<el-select v-model="addForm.title" placeholder="Please select a title" style="width: 270px;">
|
||||
<el-option v-for="item in titleList" :label="item.name" :key="item.name"
|
||||
:value="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="Personal introduction :" >
|
||||
<el-input type="textarea" v-model="addForm.areas" placeholder="Please enter"></el-input>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="addVisCancle">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveAdd()" v-if="dis_able">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 编辑弹出框 -->
|
||||
<el-dialog title="Edit Editors & Staff" :visible.sync="editvisible" width="600px" @close="editClose()">
|
||||
<el-form ref="addForm1" :model="addForm1" label-width="150px" >
|
||||
|
||||
<el-form-item label="Title :" prop="editor_title">
|
||||
<el-select v-model="addForm1.editor_title" placeholder="Please select a title" style="width: 270px;">
|
||||
<el-option v-for="item in titleList" :label="item.name" :key="item.name"
|
||||
:value="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="editClose()">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveEdit()">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'youthList',
|
||||
data() {
|
||||
return {
|
||||
YearThis: 0,
|
||||
edit_id: localStorage.getItem('U_id'),
|
||||
query: {
|
||||
journal_id: 0,
|
||||
type: 1,
|
||||
year: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 15,
|
||||
keywords: '',
|
||||
fieldkey: '',
|
||||
order_remark: 0
|
||||
},
|
||||
Total: 0,
|
||||
df_jour: [],
|
||||
df_year: [],
|
||||
titleList:[
|
||||
{name:'Production Editor'},
|
||||
{name:'Assistant Editor'},
|
||||
{name:'Managing Editor'}
|
||||
],
|
||||
list_year: [{
|
||||
title: '1 Year',
|
||||
id: 1
|
||||
}, {
|
||||
title: '2 Years',
|
||||
id: 2
|
||||
}, {
|
||||
title: '3 Years',
|
||||
id: 3
|
||||
}],
|
||||
tableData: [],
|
||||
IMG_Url: '',
|
||||
addVisible: false,
|
||||
reneVisible: false,
|
||||
cerVisible: false,
|
||||
addForm: {
|
||||
account: '',
|
||||
},
|
||||
addForm1:{
|
||||
etj_id: null,
|
||||
editor_title:''
|
||||
},
|
||||
editvisible:false,
|
||||
reneForm: {
|
||||
journal_id: 0
|
||||
},
|
||||
remarkMes: {
|
||||
remark: ''
|
||||
},
|
||||
remarkBox: false,
|
||||
dis_able: false,
|
||||
rules: {
|
||||
account: [{
|
||||
required: true,
|
||||
message: 'Please enter email / account',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
journal_id: [{
|
||||
required: true,
|
||||
message: 'Please select journal',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
// year: [{
|
||||
// required: true,
|
||||
// message: 'Please select year',
|
||||
// trigger: 'blur'
|
||||
// }],
|
||||
}
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
var pages = getCurrentPages(); // 获取当前页面栈
|
||||
var currentPage = pages[pages.length - 1]; // 当前页面
|
||||
if (currentPage.data.refreshIfNeeded) {
|
||||
currentPage.data.refreshIfNeeded = false;
|
||||
//这里为要调用的函数,重新获取数据,记得加上this
|
||||
this.getDate();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getSelect();
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 关闭编辑弹窗
|
||||
editClose(){
|
||||
this.editvisible = false
|
||||
this.addForm1.etj_id = null,
|
||||
this.addForm1.editor_title = ''
|
||||
},
|
||||
// 显示编辑弹出框
|
||||
editHandle(val){
|
||||
this.editvisible = true
|
||||
this.$nextTick(function() {
|
||||
this.addForm1.etj_id = val.etj_id
|
||||
this.addForm1.editor_title = val.editor_title
|
||||
})
|
||||
},
|
||||
// 提交编辑弹窗
|
||||
saveEdit(){
|
||||
this.$api
|
||||
.post('api/User/editEditorToJournal', {
|
||||
'etj_id': this.addForm1.etj_id,
|
||||
'editor_title': this.addForm1.editor_title
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Edit successfully!')
|
||||
this.editClose()
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
// 获取下拉值
|
||||
getSelect() {
|
||||
this.$api
|
||||
.post('api/Chief/getJournalsByEditor', {
|
||||
'user_id': this.edit_id
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.df_jour = res.data.journals;
|
||||
this.query.journal_id = this.df_jour[0].journal_id
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 获取列表数据
|
||||
getDate() {
|
||||
this.$api
|
||||
.post('api/User/getEditorToJournals', {
|
||||
'journal_id': this.query.journal_id
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.editors;
|
||||
for (var i = 0; i < this.tableData.length; i++) {
|
||||
this.getScoreData(i, this.tableData[i].score)
|
||||
}
|
||||
// this.Total = res.data.count;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 评分
|
||||
getScoreData(i, e) {
|
||||
this.tableData[i].starList = []
|
||||
this.tableData[i].starList_mark = 0
|
||||
if (e < 0.5 && e > 0) {
|
||||
this.tableData[i].starList.push({
|
||||
star: 2
|
||||
})
|
||||
this.tableData[i].starList_mark = 1
|
||||
} else {
|
||||
let zheng = Math.floor(e)
|
||||
let xiao = Number(e) - Math.floor(e)
|
||||
if (xiao >= 0.5) {
|
||||
xiao = 0.5
|
||||
} else {
|
||||
xiao = 0
|
||||
}
|
||||
for (var j = 0; j < zheng; j++) {
|
||||
this.tableData[i].starList.push({
|
||||
star: 1
|
||||
})
|
||||
}
|
||||
if (xiao == 0.5) {
|
||||
this.tableData[i].starList.push({
|
||||
star: 0
|
||||
})
|
||||
}
|
||||
this.tableData[i].starList_mark = Number(zheng) + Number(xiao)
|
||||
}
|
||||
},
|
||||
// 新增
|
||||
addHandle() {
|
||||
this.dis_able = false
|
||||
this.addForm.account = ''
|
||||
this.addVisible = true
|
||||
},
|
||||
|
||||
// 保存添加
|
||||
saveAdd() {
|
||||
this.$refs.add_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
// console.log(this.addForm,'this.addForm')
|
||||
this.$api
|
||||
.post('api/User/addEditorToJournal',
|
||||
{
|
||||
'user_id': this.addForm.user_id,
|
||||
'journal_id': this.addForm.journal_id,
|
||||
'editor_title': this.addForm.title
|
||||
//'research_areas': this.addForm.areas
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
|
||||
this.getDate();
|
||||
this.$message.success('Added successfully!');
|
||||
// this.$refs.add_Form.resetFields();
|
||||
this.dis_able = false
|
||||
this.addVisible = false;
|
||||
loading.close();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 添加关闭
|
||||
addVisCancle() {
|
||||
this.addVisible = false
|
||||
this.addForm.journal_id = null
|
||||
this.addForm.research_areas = ''
|
||||
},
|
||||
|
||||
// 查找与他相同的账号
|
||||
saerNa_U() {
|
||||
if (this.addForm.account != undefined && this.addForm.account != '') {
|
||||
this.$api
|
||||
.post('api/User/searchUserByAccountEmail', {
|
||||
'account': this.addForm.account
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data.user == null) {
|
||||
this.dis_able = false
|
||||
this.$message.error('Verify that the account or mailbox does not exist!');
|
||||
} else {
|
||||
this.dis_able = true
|
||||
this.addForm.user_id = res.data.user.user_id
|
||||
this.addForm.account = res.data.user.account
|
||||
this.addForm.realname = res.data.user.realname
|
||||
this.addForm.email = res.data.user.email
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error('Verification account or mailbox cannot be empty!');
|
||||
}
|
||||
},
|
||||
|
||||
// 点击注册
|
||||
Goto_res() {
|
||||
this.$router.push('/register');
|
||||
},
|
||||
|
||||
// 详情
|
||||
handleDtail(e) {
|
||||
let routerJump = this.$router.resolve({
|
||||
path: '/partyRole',
|
||||
query: {
|
||||
id: e.user_id
|
||||
}
|
||||
});
|
||||
window.open(routerJump.href, '_blank');
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 删除
|
||||
reneDelete(e) {
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete?', 'Tip', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/User/delEditorToJournal', {'etj_id':e.etj_id})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Deleted successfully');
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
|
||||
// 分页导航
|
||||
handlePageChange(val) {
|
||||
this.$set(this.query, 'pageIndex', val);
|
||||
this.getDate();
|
||||
},
|
||||
|
||||
colorIndex(num, time) {
|
||||
if (time != 0) {
|
||||
let date = new Date(parseInt(time * 1000));
|
||||
let Y = date.getFullYear() + '-';
|
||||
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
let H = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
|
||||
let U = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
time = Y + M + D;
|
||||
}
|
||||
let str = '';
|
||||
if (num < 10) {
|
||||
str = '<b style="color:#cb160a">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
} else if (num < 15) {
|
||||
str = '<b style="color:#cbb504">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
} else {
|
||||
str = '<b style="color:#0cbc15">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
}
|
||||
if (time == 0) {
|
||||
str =
|
||||
'<b style="color:#aaa;">0</b><br/><span style="color:#aaa;font-size:14px;margin-left:5px;">(Empty)</span>'
|
||||
}
|
||||
return str;
|
||||
},
|
||||
|
||||
// 时间格式
|
||||
formatDate(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + '-';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
||||
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
||||
return Y + M + D;
|
||||
},
|
||||
|
||||
formatYear(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + ' . ';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
|
||||
return Y + M;
|
||||
},
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
|
||||
.zhu_ce {
|
||||
text-decoration: underline;
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tab_tie_col {
|
||||
margin-bottom: 5px;
|
||||
color: #333;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.tab_tie_col>span {
|
||||
color: #888;
|
||||
margin: 0 5px 0 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.starSty {
|
||||
width: 18px;
|
||||
margin-right: 4px;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.starSty:nth-last-child(1) {
|
||||
margin-right: 0;
|
||||
}
|
||||
</style>
|
||||
2785
src/components/page/PreIngestedEditor.vue
Normal file
2785
src/components/page/PreIngestedEditor.vue
Normal file
File diff suppressed because it is too large
Load Diff
554
src/components/page/Re_review.vue
Normal file
554
src/components/page/Re_review.vue
Normal file
@@ -0,0 +1,554 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-row :gutter="10">
|
||||
<!-- 主体内容区域 -->
|
||||
<el-col :md="24" :lg="18">
|
||||
<el-card shadow="never" class="box-card" style="">
|
||||
<el-divider content-position="center">ARTICLE INFROMATION</el-divider>
|
||||
<!-- 文章信息 -->
|
||||
<div class="tet_list" :model="articleInfo">
|
||||
<h4>{{articleInfo.title}}</h4>
|
||||
<h5>
|
||||
<a :href="articleInfo.website" target="_blank"
|
||||
class="titlink">{{articleInfo.journal_title}}</a>
|
||||
<span style="margin: 0 10px;"> >> </span>
|
||||
Manuscript ID: {{articleInfo.accept_sn}}
|
||||
</h5>
|
||||
<!-- <p style="display:inline-block;margin: 0 35px;"><b>Type :</b> {{articleInfo.atype}}</p> -->
|
||||
<p style="display:inline-block; margin: 0 35px;"><b>Submitted time :</b>
|
||||
{{articleInfo.ctime|formatDate()}}
|
||||
</p>
|
||||
<div style="overflow: hidden;">
|
||||
<p><b>Abstract :</b> <br>{{articleInfo.abstrart}}</p>
|
||||
<el-row :gutter="10" style="margin: 30px 0;" class="flexbox">
|
||||
<el-col :span="12" class="file">
|
||||
<!-- 稿件主体 -->
|
||||
<h6>Manuscript:</h6>
|
||||
<div class="file_sty" v-for="item in fileList.manuscript">
|
||||
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
|
||||
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">
|
||||
<!-- {{item.type_name}} -->
|
||||
<!-- Revised manuscript -->
|
||||
<span
|
||||
style="color: #888;font-size: 13px;">{{item.ctime|formatDate()}}</span>
|
||||
<i class="el-icon-download"
|
||||
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
|
||||
</a><br>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12" class="file"
|
||||
v-if="fileList.response && fileList.response.length > 0">
|
||||
<!-- 作者对审稿人的话 -->
|
||||
<h6>Response to reviewers:</h6>
|
||||
<div class="file_sty" v-for="item in fileList.response">
|
||||
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
|
||||
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">response to
|
||||
reviewers
|
||||
<span
|
||||
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.artr_ctime|formatDate()}}</span>
|
||||
<i class="el-icon-download"
|
||||
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
|
||||
</a><br>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10" style="margin: 30px 0;" class="flexbox">
|
||||
<el-col :span="12" class="file" v-if="fileList.figures && fileList.figures.length > 0">
|
||||
<!-- 任意类型的文件 -->
|
||||
<h6>Figures:</h6>
|
||||
<div class="file_sty" v-for="item in fileList.figures">
|
||||
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
|
||||
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">figures
|
||||
<span
|
||||
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime|formatDate()}}</span>
|
||||
<i class="el-icon-download"
|
||||
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
|
||||
</a><br>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12" class="file"
|
||||
v-if="fileList.supplementary && fileList.supplementary.length > 0">
|
||||
<!-- 补充材料文件 -->
|
||||
<h6>Supplementary material:</h6>
|
||||
<div class="file_sty" v-for="item in fileList.supplementary">
|
||||
<img src="../../assets/img/icon_0.png" alt="" class="icon_img">
|
||||
<a :href='mediaUrl+item.file_url' target="_blank" class="txt_pdf">supplementary
|
||||
material
|
||||
<span
|
||||
style="margin-left: 50px;color: #888;font-size: 13px;">{{item.ctime|formatDate()}}</span>
|
||||
<i class="el-icon-download"
|
||||
style="margin-left: 20px;color: #66b1ff;font-weight: bold;"></i>
|
||||
</a><br>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- end -->
|
||||
<el-form :model="questionform" ref="question" label-width="300px" label-position="top"
|
||||
:rules="questionformRule">
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="questionform.recommend" style="line-height: 30px;">
|
||||
<el-radio :label="1">Accept</el-radio>
|
||||
<el-radio :label="2">Reject</el-radio>
|
||||
<!-- 退修改 -->
|
||||
<el-radio :label="3">Revison</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Comments to the authors" v-if="questionform.recommend == 3">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="questionform.content"
|
||||
:rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="0" style="text-align: center;">
|
||||
<el-button type="primary" @click="submit">Submit</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<!-- 既往审稿历史 -->
|
||||
<el-col :md="24" :lg="6" v-loading="loading">
|
||||
<el-card shadow="never" class="box-card" style="">
|
||||
<div slot="header" class="clearfix">
|
||||
<h4>Peer-review Archive</h4>
|
||||
</div>
|
||||
<div class="time">
|
||||
<el-timeline>
|
||||
<el-timeline-item reverse="true" :timestamp="item.ctime|formatDatehms" placement="top"
|
||||
v-for="(item, index) in recordList" :key="index">
|
||||
<el-card>
|
||||
<h4></h4>
|
||||
<div>
|
||||
<div v-if="index == recordList.length-1">
|
||||
<!-- 初审 -->
|
||||
<el-tag>Under review</el-tag>
|
||||
<p style="margin-top: 10px;">Comments: <el-button style="margin-left:10px;"
|
||||
type="text" @click="showUnderReview(item)"
|
||||
icon="el-icon-view">Details</el-button></p>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- 复审 -->
|
||||
<el-tag type="success">Second review</el-tag>
|
||||
<p style="margin-top: 10px;">Comments: <el-button style="margin-left:10px;"
|
||||
type="text" @click="showSecondReview(item)"
|
||||
icon="el-icon-view">Details</el-button></p>
|
||||
<p v-if="item.stime>0" style="" class="stime">
|
||||
Response time: {{item.stime|formatDatehms}}
|
||||
</p>
|
||||
<p v-else style="" class="stime">
|
||||
Response time: Re-reviewing...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- 初审问卷 -->
|
||||
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="900px"
|
||||
@close="closeUnderDia">
|
||||
<el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
|
||||
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="1.Originality of the topic">
|
||||
<el-radio-group v-model="undeQuestion.qu1">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="2.Importance in its Field">
|
||||
<el-radio-group v-model="undeQuestion.qu3">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
|
||||
<el-radio-group v-model="undeQuestion.qu6">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="4.English language">
|
||||
<el-radio-group v-model="undeQuestion.qu8">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="5.Readily Understandable">
|
||||
<el-radio-group v-model="undeQuestion.qu5">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-collapse>
|
||||
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||||
<el-col :span="8">
|
||||
<el-radio-group v-model="undeQuestion.qu9">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-collapse-item name="1" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content"
|
||||
v-model="undeQuestion.qu9contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu10">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="2" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content"
|
||||
v-model="undeQuestion.qu10contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="8.Are the approach/ methods properly described?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu11">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="3" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content"
|
||||
v-model="undeQuestion.qu11contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="9.Are the conclusions and interpretations sound?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu12">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="4" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content"
|
||||
v-model="undeQuestion.qu12contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="10.Are the references properly cited?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu13">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="5" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content"
|
||||
v-model="undeQuestion.qu13contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="Overall the Paper is Rated">
|
||||
(Poor------------------------Excellent)
|
||||
<br />
|
||||
<el-radio-group v-model="undeQuestion.rated" size="small">
|
||||
<el-radio-button label="1"></el-radio-button>
|
||||
<el-radio-button label="2"></el-radio-button>
|
||||
<el-radio-button label="3"></el-radio-button>
|
||||
<el-radio-button label="4"></el-radio-button>
|
||||
<el-radio-button label="5"></el-radio-button>
|
||||
<el-radio-button label="6"></el-radio-button>
|
||||
<el-radio-button label="7"></el-radio-button>
|
||||
<el-radio-button label="8"></el-radio-button>
|
||||
<el-radio-button label="9"></el-radio-button>
|
||||
<el-radio-button label="10"></el-radio-button>
|
||||
</el-radio-group>
|
||||
<span style="margin-left: 20px;">>Your score:{{undeQuestion.rated}}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="undeQuestion.recommend" style="line-height: 30px;">
|
||||
<el-radio :label="1">Accept with minor revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Accept with major revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject, with no resubmission</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||
<el-radio-group v-model="undeQuestion.other" style="line-height: 30px;">
|
||||
<el-radio :label="1">Imperfect style</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Too long</el-radio>
|
||||
<br />
|
||||
<el-radio :label="3">References incorrectly presented</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Comments for the Authors">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.comments"
|
||||
:rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Confidential Comments to the Editor">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.confidential"
|
||||
:rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
||||
<el-radio-group v-model="undeQuestion.is_anonymous" style="line-height: 30px;">
|
||||
<el-radio :label="0">Disclose name</el-radio>
|
||||
<br />
|
||||
<el-radio :label="1">Remain anonymous</el-radio>
|
||||
</el-radio-group>
|
||||
<p style="line-height: 20px;color: #aaa;font-size: 13px;margin: 12px 0 0 0;">
|
||||
If you agree to disclose your name, we will acknowledge you by name in the published
|
||||
PDF. However, if you prefer to remain anonymous, we will still express our gratitude
|
||||
by thanking you as an anonymous reviewer.
|
||||
<br />For example, {{articleInfo.journal_title}} would like to thank AAAAAAAA, BBBBBBBB, and
|
||||
other anonymous reviewers for their
|
||||
invaluable contributions to the peer review process of this paper.
|
||||
</p>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<!-- 复审问卷 -->
|
||||
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px"
|
||||
@close="closeSecDia">
|
||||
<el-form :model="ReReviewQuestion" ref="question" label-width="300px" label-position="top">
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="ReReviewQuestion.recommend" style="line-height: 30px;">
|
||||
<el-radio :label="1">Accept</el-radio>
|
||||
<el-radio :label="2">Reject</el-radio>
|
||||
<!-- 退修改 -->
|
||||
<el-radio :label="3">Revison</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Comments to the authors" v-if="ReReviewQuestion.recommend == 3">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="ReReviewQuestion.content"
|
||||
:rows="8"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
questionform: {
|
||||
art_rev_rep_id: null,
|
||||
recommend: null,
|
||||
content: ''
|
||||
},
|
||||
// form:{},
|
||||
questionformRule: {
|
||||
recommend: [{
|
||||
required: true,
|
||||
message: 'Please select your recommendation',
|
||||
trigger: 'blur'
|
||||
}, ]
|
||||
},
|
||||
recordList: [],
|
||||
articleInfo: {},
|
||||
fileList: {},
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
dialogFormVisible: false,
|
||||
txt_mess: {},
|
||||
undeQuestion: {},
|
||||
FdialogFormVisible: false,
|
||||
ReReviewQuestion: {}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getHistoryList()
|
||||
},
|
||||
methods: {
|
||||
// 显示复审对话框
|
||||
showSecondReview(item) {
|
||||
this.FdialogFormVisible = true
|
||||
this.ReReviewQuestion = item
|
||||
},
|
||||
// 关闭初审对话框
|
||||
closeUnderDia() {
|
||||
this.dialogFormVisible = false
|
||||
this.undeQuestion = {}
|
||||
},
|
||||
closeSecDia() {
|
||||
this.FdialogFormVisible = false
|
||||
this.ReReviewQuestion = {}
|
||||
},
|
||||
// 显示初审对话框
|
||||
showUnderReview(item) {
|
||||
this.dialogFormVisible = true
|
||||
this.undeQuestion = item
|
||||
},
|
||||
// 提交复审
|
||||
submit() {
|
||||
this.$refs['question'].validate((valid) => {
|
||||
if (valid) {
|
||||
// console.log(this.questionform,'this.questionform')
|
||||
this.$api
|
||||
.post('api/Reviewer/questionRepeat', this.questionform)
|
||||
.then(res => {
|
||||
this.loading = false;
|
||||
if (res.code == 0) {
|
||||
this.$message.success('successed !')
|
||||
this.$router.push('/peerewer')
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.loading = false;
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 获取历史审稿列表
|
||||
getHistoryList() {
|
||||
this.loading = true
|
||||
this.$api
|
||||
.post('api/Reviewer/getReviewerRepeatDetail', {
|
||||
'art_rev_id': this.$route.query.Art_id
|
||||
})
|
||||
.then(res => {
|
||||
this.loading = false;
|
||||
if (res.code == 0) {
|
||||
this.questionform.art_rev_rep_id = res.data.art_rev_info.question[res.data.art_rev_info
|
||||
.question.length - 1].art_rev_rep_id
|
||||
this.articleInfo = res.data.article_info
|
||||
this.fileList = res.data.files
|
||||
this.recordList = res.data.art_rev_info.question.reverse()
|
||||
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.loading = false;
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.time p {
|
||||
color: #606266;
|
||||
}
|
||||
|
||||
.flexbox {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.file_sty {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.titlink {
|
||||
color: #006699;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.file:not(:first-child) {
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
|
||||
.file_sty a {
|
||||
color: #606266;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.file_sty a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.file_sty .icon_img {
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.tet_list {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.tet_list h5 {
|
||||
font-size: 15px;
|
||||
margin: 20px 0 5px 0;
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tet_list h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.tet_list p {
|
||||
font-family: Calibri;
|
||||
line-height: 22px;
|
||||
font-size: 16px;
|
||||
|
||||
}
|
||||
</style>
|
||||
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_type == 'journal' && scope.row.doilink != '' || scope.row.refer_type == 'book' && scope.row.isbn != '' || scope.row.refer_type == 'other' && scope.row.refer_frag != '' && scope.row.refer_frag.length > 15" >
|
||||
<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>
|
||||
@@ -326,7 +326,7 @@
|
||||
Only Word and compressed files can be uploaded (file format: .docx).
|
||||
</div>
|
||||
</el-upload>
|
||||
</a>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="Supplementary Material :" label-width="200px">
|
||||
<el-upload class="upload-demo up_newstyle" :action="upload_supplementary" accept=".zip"
|
||||
@@ -347,7 +347,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 提交 submit -->
|
||||
<div class="bag_color" v-if="show_step==4">
|
||||
<div>
|
||||
<h3>
|
||||
@@ -487,8 +487,8 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Major :" prop="major_all">
|
||||
<el-cascader :options="jl_major" v-model="item.major_all" :props="defaultParams"
|
||||
placeholder="Please select major" style="width: 270px;" clearable></el-cascader>
|
||||
<el-cascader :options="step4MajorList" v-model="item.major_all" :props="default4Params"
|
||||
placeholder="Please select major" style="width: 270px;" clearable ></el-cascader>
|
||||
</el-form-item>
|
||||
<el-button :disabled="tuiJianForm.length==1" @click="onDeleteTuijian(item, index)"
|
||||
type="danger" icon="el-icon-delete" class="shanchu_tj"></el-button>
|
||||
@@ -665,7 +665,7 @@
|
||||
manuscirpt: '',
|
||||
supplementary: '',
|
||||
code: '',
|
||||
topics:null
|
||||
// topics:null
|
||||
},
|
||||
journal_type: [{
|
||||
name: 'ARTICLE',
|
||||
@@ -874,12 +874,18 @@
|
||||
companyList: [],
|
||||
countrys: [],
|
||||
majorList: [],
|
||||
step4MajorList:[], // 第四步的major数据
|
||||
jl_major: [],
|
||||
defaultParams: {
|
||||
label: 'title',
|
||||
value: 'major_id',
|
||||
children: 'children'
|
||||
},
|
||||
default4Params:{
|
||||
label: 'major_title',
|
||||
value: 'major_id',
|
||||
children: 'children'
|
||||
},
|
||||
mj_jour: [],
|
||||
jour_name: '',
|
||||
topicsList:null, // 话题列表
|
||||
@@ -907,7 +913,7 @@
|
||||
this.Temporary()
|
||||
} else {
|
||||
this.initMajor();
|
||||
this.getTopics()
|
||||
// this.getTopics() 获取话题列表
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -1023,14 +1029,15 @@
|
||||
this.$refs.tuiJianForm[i].validate(vali => {
|
||||
if (vali) {
|
||||
tuijian_yanzheng += 0
|
||||
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[0]
|
||||
this.tuiJianForm[i].cmajor = this.tuiJianForm[i].major_all[1]
|
||||
//this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[0]
|
||||
this.tuiJianForm[i].major = this.tuiJianForm[i].major_all[this.tuiJianForm[i].major_all.length - 1]
|
||||
//this.tuiJianForm[i].cmajor = this.tuiJianForm[i].major_all[1]
|
||||
} else {
|
||||
tuijian_yanzheng += 1
|
||||
}
|
||||
})
|
||||
}
|
||||
this.form.reviewers = this.tuiJianForm
|
||||
this.form.reviewers = this.tuiJianForm
|
||||
} else {
|
||||
this.form.reviewers = []
|
||||
}
|
||||
@@ -1185,17 +1192,17 @@
|
||||
'value': res.data.companys[i].title
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
this.$api
|
||||
.post('/api/Reviewer/getMajorForReviewer', {
|
||||
username: localStorage.getItem('U_name'),
|
||||
}).then(res => {
|
||||
}).then(res => {
|
||||
if (res.data.major != 0) {
|
||||
this.$api
|
||||
.post('api/User/getMajorList')
|
||||
.then(res => {
|
||||
this.majorList = res.data;
|
||||
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -1211,6 +1218,14 @@
|
||||
|
||||
this.checkReviewer()
|
||||
|
||||
this.$api
|
||||
.post('api/Major/getMajorList')
|
||||
.then(res => {
|
||||
console.log(res,99)
|
||||
this.step4MajorList = res.data.majors;
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
// 机构模糊搜索
|
||||
@@ -1634,11 +1649,12 @@
|
||||
this.form.istransfer = false
|
||||
this.form.becomeRev = false
|
||||
this.initMajor();
|
||||
this.getTopics()
|
||||
// this.getTopics()
|
||||
},
|
||||
|
||||
// 点击tab变化
|
||||
StepCode(e) {
|
||||
console.log(e)
|
||||
if (this.move_step > e) {
|
||||
if (this.move_step == 2) {
|
||||
this.onStaging(2)
|
||||
@@ -1693,7 +1709,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
showFiles() {
|
||||
// 文件显示出来
|
||||
this.fileL_coverLetter = [];
|
||||
@@ -1951,7 +1967,7 @@
|
||||
this.form.approval = res.data.base.approval
|
||||
this.form.abstrart = res.data.base.abstrart
|
||||
this.form.fund = res.data.base.fund
|
||||
this.form.topics = res.data.base.topics
|
||||
// this.form.topics = res.data.base.topics
|
||||
// 领域
|
||||
this.$api
|
||||
.post('api/Major/getMajorForAddArticle', {
|
||||
@@ -2055,7 +2071,7 @@
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.topicsList = res.data.topics
|
||||
console.log(res.data.topics,'话题')
|
||||
// console.log(res.data.topics,'话题')
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
@@ -2063,7 +2079,7 @@
|
||||
},
|
||||
// 选中值变化
|
||||
topicsChange(e){
|
||||
console.log(this.form.topics,'选中的话题id')
|
||||
// console.log(this.form.topics,'选中的话题id')
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<timetalk :talkMsgs="talkMsgs" :msgform="msgform"></timetalk>
|
||||
<timetalk :talkMsgs="talkMsgs" :msgform="msgform" @talksave="talksave"></timetalk>
|
||||
<div class="tree_box">
|
||||
<h2 style="margin: 0 0 20px 0;">Manuscript Tracking</h2>
|
||||
<div class="block">
|
||||
@@ -662,6 +662,10 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
talksave(val){
|
||||
this.msgform.ad_content = ''
|
||||
this.getTalkList()
|
||||
},
|
||||
//弹出编辑框
|
||||
testvis() {
|
||||
this.editVisible = true;
|
||||
@@ -864,6 +868,20 @@
|
||||
});
|
||||
},
|
||||
|
||||
// 获取留言列表
|
||||
getTalkList(){
|
||||
this.$api
|
||||
.post('api/Article/getArticleDialogs', {
|
||||
article_id: this.$route.query.id
|
||||
})
|
||||
.then((res) => {
|
||||
this.talkMsgs = res.data.dialogs;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
|
||||
// H指数修改
|
||||
HIndexEdit(row) {
|
||||
this.HEditVisible = true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
<div >
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
@@ -68,7 +68,7 @@
|
||||
<font style="color: #666b7a;">Journal : </font>
|
||||
<b style="font-weight: normal;">{{item.journalname}}</b>
|
||||
</p>
|
||||
<p>
|
||||
<p v-if="item.state != 6">
|
||||
<font style="color: #666b7a;">
|
||||
<i class="el-icon-time" style="margin: 0 5px 0 0;"></i>
|
||||
Update Time :
|
||||
@@ -92,6 +92,14 @@
|
||||
<span @click="esy_deta(item.article_id)">
|
||||
<i class="el-icon-paperclip"></i>My Manuscript
|
||||
</span>
|
||||
<span v-if="item.state == 6" style="text-decoration: none;">
|
||||
<font> | </font>
|
||||
<span @click="goPre_ingested(item.article_id)" class="preButton">
|
||||
<!-- <el-badge is-dot class="item" > -->
|
||||
<i class="el-icon-edit"></i>Enter Pre-accept Process
|
||||
<!-- </el-badge> -->
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -302,32 +310,61 @@
|
||||
{{formatDate1(item.ctime)}}
|
||||
</font>
|
||||
</template>
|
||||
<div class="art_author_coment">
|
||||
<p v-if="item.qu9_contents!=''">
|
||||
<font>Does the title represent manuscript's contents?</font>
|
||||
<pre>{{item.qu9_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu10_contents!=''">
|
||||
<font>Is the Abstract accurate and concise?</font>
|
||||
<pre>{{item.qu10_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu11_contents!=''">
|
||||
<font>Are the approach/ methods properly described?</font>
|
||||
<pre>{{item.qu11_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu12_contents!=''">
|
||||
<font>Are the conclusions and interpretations sound?</font>
|
||||
<pre>{{item.qu12_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu13_contents!=''">
|
||||
<font>Are the references properly cited?</font>
|
||||
<pre>{{item.qu13_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.comments!=''">
|
||||
<font>Comments for the Authors</font>
|
||||
<pre>{{item.comments}}</pre>
|
||||
</p>
|
||||
</div>
|
||||
<!-- 时间轴 -->
|
||||
<el-timeline v-if="item.question && item.question[0] != null">
|
||||
<el-timeline-item :timestamp="item1.ctime|formatDatehms" placement="top" v-for="(item1, index1) in item.question" :key="index1">
|
||||
<el-card>
|
||||
<!-- 初审 -->
|
||||
<div v-if="index1 == item.question.length-1">
|
||||
<h4><el-tag >Under review</el-tag></h4>
|
||||
<!-- 内容 -->
|
||||
<div class="art_author_coment">
|
||||
<p v-if="item1.qu9_contents!=''">
|
||||
<font>Does the title represent manuscript's contents?</font>
|
||||
<pre>{{item1.qu9_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu10_contents!=''">
|
||||
<font>Is the Abstract accurate and concise?</font>
|
||||
<pre>{{item1.qu10_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu11_contents!=''">
|
||||
<font>Are the approach/ methods properly described?</font>
|
||||
<pre>{{item1.qu11_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu12_contents!=''">
|
||||
<font>Are the conclusions and interpretations sound?</font>
|
||||
<pre>{{item1.qu12_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu13_contents!=''">
|
||||
<font>Are the references properly cited?</font>
|
||||
<pre>{{item1.qu13_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.comments!=''">
|
||||
<font>Comments for the Authors</font>
|
||||
<pre>{{item1.comments}}</pre>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- 复审 -->
|
||||
<el-tag type="success">Second review</el-tag>
|
||||
<p style="margin-top: 20px;" >
|
||||
<i class="el-icon-check final Accept" v-if="item1.recommend == 1" >{{item1.recommend | getOpinion}}</i>
|
||||
<i class="el-icon-close final Reject" v-if="item1.recommend == 2" >{{item1.recommend | getOpinion}}</i>
|
||||
<i class="el-icon-refresh-left final Revison" v-if="item1.recommend == 3" >{{item1.recommend | getOpinion}}</i>
|
||||
</p>
|
||||
<p class="commentfs" v-if="item1.recommend == 3" style="margin-bottom: 10px;">
|
||||
<font style="display: inline-block; margin-right: 20px;">Comments for the Authors</font>
|
||||
<pre>{{item1.content}}</pre>
|
||||
</p>
|
||||
<p style="" class="stime" v-if="item1.stime != 0">
|
||||
Response time: {{item1.stime|formatDatehms}} * {{item1.stime}}
|
||||
</p>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
<!-- end -->
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
|
||||
@@ -435,7 +472,16 @@
|
||||
// }
|
||||
|
||||
},
|
||||
|
||||
// 显示预收录页面
|
||||
goPre_ingested(id){
|
||||
this.$router.push({
|
||||
path: 'PreIngested',
|
||||
query: {
|
||||
id: id
|
||||
// id: 3070
|
||||
}
|
||||
});
|
||||
},
|
||||
// 点击稿件进程
|
||||
esy_mtps(e) {
|
||||
this.$router.push({
|
||||
@@ -456,6 +502,10 @@
|
||||
.then(res => {
|
||||
// 弹出框
|
||||
this.comentDeploy = res.suggest
|
||||
this.comentDeploy.map(item => {
|
||||
if(item.question && item.question.length > 0)
|
||||
item.question = item.question.reverse()
|
||||
})
|
||||
// this.activeComment = []
|
||||
// for (var i = 0; i < res.suggest.length; i++) {
|
||||
// this.activeComment.push(i)
|
||||
@@ -544,6 +594,22 @@
|
||||
},
|
||||
},
|
||||
filters: {
|
||||
|
||||
// 复审意见结果
|
||||
getOpinion(value){
|
||||
switch (value) {
|
||||
case 1:
|
||||
return 'Accept'
|
||||
break;
|
||||
case 2:
|
||||
return 'Reject'
|
||||
break;
|
||||
case 3:
|
||||
return 'Revison'
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
// 文章类型
|
||||
ellipsis(value) {
|
||||
let frag = '';
|
||||
@@ -720,6 +786,14 @@
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.time p{color: #606266;}
|
||||
.Accept{color: #67c23a;}
|
||||
.Reject{color: #909399;}
|
||||
.Revison{color: #e6a23c;}
|
||||
.final{ font-size: 20px;}
|
||||
.preButton{ display: inline-block; position: relative; }
|
||||
/* .preButton:after{content: ''; display: block; width: 6px; height: 6px; background: #ff0000; position: absolute; right: 0; top: -5px; border-radius: 6px;} */
|
||||
.preButton:hover{text-decoration:underline !important;}
|
||||
.container {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
<!-- 已经发表 -->
|
||||
<p @click="tabIndex(3)" :class="activeIndex == 3 ? 'tab_Normal tab_Select' : 'tab_Normal'">Online</p>
|
||||
<!-- 连续出版 -->
|
||||
<p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'"
|
||||
v-if="preJouList">Pre-publish</p>
|
||||
<!-- <p @click="tabIndex(4)" :class="activeIndex == 4 ? 'tab_Normal tab_Select' : 'tab_Normal'"
|
||||
v-if="preJouList">Pre-publish</p> -->
|
||||
<!-- 出版的 -->
|
||||
<p @click="tabIndex(5)" :class="activeIndex == 5 ? 'tab_Normal tab_Select' : 'tab_Normal'">Publish</p>
|
||||
<!-- 调查与撤回 -->
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div style="min-width: 1200px;">
|
||||
<div style="min-width: 1280px;">
|
||||
<div class="handle-box">
|
||||
<el-badge :value="item.num" type="warning" v-for="item in statList"
|
||||
:hidden='item.num==0||item.state==3||item.state==5' style="margin-right: 25px;">
|
||||
@@ -39,7 +39,7 @@
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch" style="margin:0 0 10px 0;">Search
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
<div v-if="!PreAcpVisible" >
|
||||
<div v-for="(item,ikgn) in tableData" class="mangu_list">
|
||||
<div>
|
||||
<font style="color: #666b7a;">ID : </font>
|
||||
@@ -52,16 +52,18 @@
|
||||
<i class="el-icon-collection"></i> Detail
|
||||
</b> -->
|
||||
|
||||
<span style="color: #666b7a;margin-left: 50px;">Type :</span>
|
||||
<span style="color: #666b7a;margin-left: 40px;">Type :</span>
|
||||
<font>
|
||||
{{artType(item.type)}}
|
||||
</font>
|
||||
<span style="color: #666b7a;margin-left: 50px;">Countries :</span>
|
||||
<font v-for="(iken, index) in item.countrys">
|
||||
{{iken}}
|
||||
<font v-if="index!=item.countrys.length-1">,</font>
|
||||
</font>
|
||||
<span style="color: #666b7a;margin-left: 50px;">Status :</span>
|
||||
<span style="color: #666b7a;margin-left: 40px;">Countries :</span>
|
||||
<!-- <span :class="item.countrys.length > 1 ? 'Countries': ''" > -->
|
||||
<font v-for="(iken, index) in item.countrys">
|
||||
{{iken}}
|
||||
<font v-if="index!=item.countrys.length-1">,</font>
|
||||
</font>
|
||||
<!-- </span> -->
|
||||
<span style="color: #666b7a;margin-left: 40px;">Status :</span>
|
||||
<font style="margin-right: 15px;font-size: 16px;font-weight: bold;letter-spacing: -0.5px;">
|
||||
{{stateFormat(item.state)}}
|
||||
</font>
|
||||
@@ -71,7 +73,7 @@
|
||||
<b v-if="item.state==5" @click="prodBegin(item)" class="btnCliArt">
|
||||
<i class="el-icon-paperclip"></i> Begin Produce
|
||||
</b>
|
||||
<span style="color: #666b7a;margin-left: 50px;">Plagiarism Check :</span>
|
||||
<span style="color: #666b7a;margin-left: 40px;">Plagiarism Check :</span>
|
||||
<font style="margin-right: 16px;font-size: 15px;font-weight: bold;">
|
||||
{{item.repetition}} %
|
||||
</font>
|
||||
@@ -91,7 +93,7 @@
|
||||
</div>
|
||||
|
||||
<div style="display: flex;margin-left: auto;">
|
||||
<div class="fixCard" style="width: 26%;">
|
||||
<div class="fixCard" style="width: 33%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">Manuscript Files</b>
|
||||
<p style="height: 10px;"></p>
|
||||
<div class="fi_new" v-if="item.file.coverLetter">
|
||||
@@ -206,16 +208,17 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 1%;"></div>
|
||||
<div class="fixCard" style="width: 18%;">
|
||||
<div class="fixCard" style="width: 16%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">AI scoring</b>
|
||||
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;color: #db890e;"
|
||||
v-if="item.reportList.length>0">
|
||||
<font style="font-size: 14px;font-weight: normal;color: #333;">Initial review score :</font>
|
||||
{{item.scoring}}
|
||||
<i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
|
||||
</p>
|
||||
<p style="font-size: 18px;font-weight: bold;margin-bottom: 5px;" v-if="item.reportList.length==0">
|
||||
<font style="font-size: 14px;font-weight: normal;">Initial review score :</font>
|
||||
{{item.scoring}}
|
||||
{{item.scoring}} <i class="el-icon-refresh refreshBtn" @click="refreshScore(item)"></i>
|
||||
</p>
|
||||
<p v-if="item.scoring!=0&&item.H!=null" style="color: #999;">{{item.H.google_editor}}
|
||||
</p>
|
||||
@@ -230,16 +233,16 @@
|
||||
v-if="item.reportList.length>0" style="margin-top: 1px;">Edit Hindex</el-button> -->
|
||||
<p v-if="item.review.length>0"
|
||||
style="font-size: 18px;font-weight: bold;margin-top: 15px;padding-top: 10px;border-top: 1px solid #dddddd;color: #db890e;">
|
||||
<font style="font-size: 14px;font-weight: normal;color: #333;">Final review score :</font>
|
||||
{{finalCount(item)}}
|
||||
<font v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'" style="font-size: 14px;font-weight: normal;color: #333;">Comprehensive Score :</font>
|
||||
<span v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'">{{finalCount(item)}}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div style="width: 1%;"></div>
|
||||
<div class="fixCard" style="width: 18%;">
|
||||
<div class="fixCard" style="width: 17%;">
|
||||
<b style="font-size: 16px;letter-spacing: -0.5px;">Reviewer Decision</b>
|
||||
<p style="height: 5px;"></p>
|
||||
<p v-for="(iken, index) in item.reviewScore" style="line-height: 28px;">
|
||||
Reviewer{{index+1}} score : <b style="color: #db890e;font-size: 18px;">{{iken.rated}}</b>
|
||||
<p v-for="(iken, index) in item.reviewScore" style="line-height: 28px;" :key="index">
|
||||
Reviewer{{index+1}} score : <b style="color: #db890e;font-size: 18px;">{{iken.rated}}</b><el-button style="margin-left: 10px;" type="text" @click="crateRevision(iken)" v-if="iken.can_repeat == 1" >Re-review</el-button>
|
||||
</p>
|
||||
<p v-if="item.reviewScore.length>0" style="font-size: 15px;margin: 0 0 5px 0;">
|
||||
Average : <b style="font-size: 18px;color: #db890e;">{{avegeCount(item.reviewScore)}}</b>
|
||||
@@ -303,8 +306,39 @@
|
||||
<i class="el-icon-edit"></i> Change
|
||||
</b>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- 预接收表 -->
|
||||
<el-table v-if="PreAcpVisible" :data="tableData" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||
<el-table-column width="160" label="Doi" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p style="margin-bottom: 5px;">
|
||||
{{scope.row.doi}}
|
||||
</p>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
|
||||
@click="showdetaileditor(scope.row)">Detail</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="accept_sn" label="SN" width="180px"></el-table-column>
|
||||
<el-table-column prop="" label="Title">
|
||||
<template slot-scope="scope">
|
||||
<p v-if="scope.row.title==''">
|
||||
Article{{scope.row.p_article_id}}
|
||||
</p>
|
||||
<p else>
|
||||
{{scope.row.title}}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label=" " align="center" width="200px">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click="changeEnter(scope.row)" size="mini" type="primary" plain
|
||||
icon="el-icon-edit">Edit</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- <el-table :data="tableData" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||||
@@ -536,7 +570,7 @@
|
||||
<el-option :key="3" label="Reject" :value="3"></el-option>
|
||||
<el-option :key="4" label="Revision" :value="4"></el-option>
|
||||
<el-option :key="6" label="Pre-accept" :value="6"></el-option>
|
||||
<el-option :key="5" label="Accept" :value="5"></el-option>
|
||||
<el-option :key="5" label="Accept" :value="5" :disabled="curState == 6 ? false : true"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Comments for authors :" v-show="editform.state==4">
|
||||
@@ -552,7 +586,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="editVisible = false">Cancel</el-button>
|
||||
<el-button @click="editVisible = false; curState = null">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveEdit">Save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
@@ -592,7 +626,7 @@
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="H Index" :visible.sync="aiSorbox" width="650px">
|
||||
<el-form ref="aiSorform" v-for="(item, index) in aiSorform.author" label-width="180px">
|
||||
<el-form ref="aiSorform" v-for="(item, index) in aiSorform.author" label-width="180px" :key="index">
|
||||
<el-form-item :label="'Corresponding Author '+(index+1)+' :'" v-if="aiSorform.author.length!=1">
|
||||
<p>{{item.firstname}} {{item.lastname}}</p>
|
||||
</el-form-item>
|
||||
@@ -665,7 +699,7 @@
|
||||
<p v-if="geogleList.length!=0" style="padding:15px 0 20px 20px;font-weight: bold;">
|
||||
Please select one and press the OK button.</p>
|
||||
<div style="max-height: 500px;overflow-y: scroll;margin-bottom: 10px;">
|
||||
<div v-for="item in geogleList"
|
||||
<div v-for="(item,index) in geogleList" :key="index"
|
||||
:class="IndexForm.g_author == item.author_id?'gugeList gu_col':'gugeList'"
|
||||
@click="choseGego(item)">
|
||||
<p style="font-weight: bold;letter-spacing: -0.5px;">{{item.name}}</p>
|
||||
@@ -784,6 +818,7 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
curState:null,
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
items: '',
|
||||
@@ -809,16 +844,23 @@
|
||||
state: 2
|
||||
}, {
|
||||
state: 4
|
||||
}, {
|
||||
state: 3
|
||||
}, {
|
||||
},
|
||||
{
|
||||
state: 6
|
||||
},
|
||||
{
|
||||
state: 5
|
||||
}],
|
||||
},
|
||||
{
|
||||
state: 3
|
||||
},
|
||||
],
|
||||
Total: 0,
|
||||
geogleList: [],
|
||||
IndexForm: {},
|
||||
editVisible: false,
|
||||
guestVisible: false,
|
||||
PreAcpVisible:false,
|
||||
editbox: false,
|
||||
repebox: false,
|
||||
aiSorbox: false,
|
||||
@@ -925,6 +967,53 @@
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 创建复审
|
||||
crateRevision(item){
|
||||
// 二次询问
|
||||
this.$confirm('Do you want to send a review invitation?', 'Tip', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Reviewer/startRepeatReviewer', {
|
||||
'art_rev_id': item.art_rev_id
|
||||
})
|
||||
.then(res => {
|
||||
//console.log(res)
|
||||
if(res.code == 0){
|
||||
this.$message.success('A review invitation was successfully sent!')
|
||||
this.getdate()
|
||||
}else{
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
|
||||
|
||||
},
|
||||
// 更新评分
|
||||
refreshScore(row){
|
||||
this.$api
|
||||
.post('api/Article/refuseScore', {
|
||||
'article_id': row.article_id
|
||||
})
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
this.getdate()
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 跳入预收录编辑页面
|
||||
changeEnter(val) {
|
||||
console.log(val,'val')
|
||||
this.$router.push({name: 'PreIngestedEditor', query: {id: val.article_id, uid:val.user_id}})
|
||||
},
|
||||
// 改变期刊
|
||||
chageJour() {
|
||||
this.$api
|
||||
@@ -953,7 +1042,8 @@
|
||||
this.getdate()
|
||||
},
|
||||
// 获取数据
|
||||
getdate() {
|
||||
getdate() {
|
||||
this.query.state == 6 ? this.PreAcpVisible = true : this.PreAcpVisible = false
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
@@ -1031,10 +1121,10 @@
|
||||
};
|
||||
}
|
||||
};
|
||||
for (let i = 0; i < res.state_num.length; i++) {
|
||||
for (let i = 0; i < res.state_num.length; i++) {
|
||||
for (let j = 0; j < this.statList.length; j++) {
|
||||
if (i == this.statList[j].state) {
|
||||
this.statList[j].num = res.state_num[i]
|
||||
this.statList[j].num = res.state_num[i]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1066,6 +1156,8 @@
|
||||
},
|
||||
// 修改文章状态弹出框
|
||||
testvis(e) {
|
||||
// console.log(e,'e')
|
||||
this.curState = e.state
|
||||
this.editVisible = true;
|
||||
this.editform.title = e.title;
|
||||
this.editform.articleId = e.article_id;
|
||||
@@ -1074,6 +1166,7 @@
|
||||
this.editform.state_old = e.state;
|
||||
this.editform.editormsg = '';
|
||||
this.editform.proposal_content = '';
|
||||
|
||||
this.$api
|
||||
.post('api/Article/getArticleDetail', {
|
||||
articleId: e.article_id,
|
||||
@@ -1197,14 +1290,22 @@
|
||||
},
|
||||
//修改文章状态
|
||||
saveEdit() {
|
||||
const loading33 = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.$api
|
||||
.post('api/Article/editArticleEditor', this.editform)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
loading33.close()
|
||||
this.$message.success('success');
|
||||
this.editVisible = false;
|
||||
this.getdate();
|
||||
} else {
|
||||
loading33.close()
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
@@ -1394,11 +1495,11 @@
|
||||
});
|
||||
},
|
||||
// 留言板弹出层
|
||||
articleCommun(e) {
|
||||
articleCommun(e) {
|
||||
this.msgform.user_id = e.user_id
|
||||
this.msgform.article_id = e.article_id
|
||||
this.msgform.title = e.title
|
||||
this.talkMsgs = []
|
||||
this.talkMsgs = []
|
||||
this.$api
|
||||
.post('api/Article/getArticleDialogs', {
|
||||
article_id: e.article_id
|
||||
@@ -1594,10 +1695,17 @@
|
||||
let str = 0;
|
||||
let sgr = 0;
|
||||
let all = 0;
|
||||
let j = 0 // null 评分人数
|
||||
for (let i = 0; i < arry.review.length; i++) {
|
||||
all += arry.review[i].rated
|
||||
if(arry.review[i].rated == null){
|
||||
j += 1
|
||||
continue;
|
||||
}else{
|
||||
all += arry.review[i].rated
|
||||
}
|
||||
|
||||
};
|
||||
str = (all / arry.review.length).toFixed(1)
|
||||
str = (all / (arry.review.length - j)).toFixed(1)
|
||||
sgr = ((Number(str) + Number(arry.scoring)) / 2).toFixed(1)
|
||||
return sgr;
|
||||
},
|
||||
@@ -1662,6 +1770,12 @@
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.refreshBtn{cursor: pointer; color: #069;}
|
||||
.Countries{
|
||||
display: inline-block;
|
||||
width: 20px; vertical-align: middle;
|
||||
white-space: nowrap;text-overflow:ellipsis; overflow:hidden; margin-bottom:3px;
|
||||
}
|
||||
.art_file>h4 {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
@@ -374,6 +374,19 @@
|
||||
<span style="font-size: 12px; color: #aaa;margin-left: 30px;">Only pdf or word files can be
|
||||
uploaded.</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="Original Data Upload :">
|
||||
<el-upload class="upload-demo"
|
||||
:action="baseUrl+'api/Production/up_article_file/type/articleOriginal'"
|
||||
:on-success="handleFileSuccess41" name="articleOriginal" type="articleOriginal"
|
||||
:on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
|
||||
:before-remove="beforeRemove41" :on-change="handleChange41" accept=".zip"
|
||||
:on-exceed="handleExceed" :file-list="fileL_sub41" ref="upload">
|
||||
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top"
|
||||
style="font-weight: bolder;"></b>upload</el-button>
|
||||
</el-upload>
|
||||
<span style="font-size: 12px; color: #aaa;margin-left: 30px;">Only zip files can be
|
||||
uploaded.</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
@@ -716,7 +729,7 @@
|
||||
</div>
|
||||
|
||||
|
||||
<!-- 上线弹出框 -->
|
||||
<!-- 上线弹出框 --->
|
||||
<el-dialog title="Tips" :visible.sync="onlineVisible" width="680px">
|
||||
<p style="line-height: 24px;">
|
||||
Are you sure you want to push this manuscript to the official website?
|
||||
@@ -968,6 +981,10 @@
|
||||
label: 'MINI REVIEW',
|
||||
value: 'Mini Review'
|
||||
},
|
||||
{
|
||||
label: 'RETRACTION NOTE',
|
||||
value: 'Retraction Note'
|
||||
},
|
||||
{
|
||||
label: '内经难经',
|
||||
value: '内经难经'
|
||||
@@ -1046,6 +1063,7 @@
|
||||
file_picF: [],
|
||||
fileL_sub: [],
|
||||
fileL_sub2: [],
|
||||
fileL_sub41:[],
|
||||
fileL_Note: [],
|
||||
fileL_Tex: [],
|
||||
fileL_Icm: [],
|
||||
@@ -1288,6 +1306,12 @@
|
||||
this.fileL_Icm[0].name = 'articleCDF';
|
||||
this.fileL_Icm[0].url = this.mediaUrl + 'articleCDF/' + res.data.production.file_cdf;
|
||||
}
|
||||
|
||||
if (res.data.production.file_original != "") {
|
||||
this.fileL_sub41 = [{}];
|
||||
this.fileL_sub41[0].name = 'Original';
|
||||
this.fileL_sub41[0].url = this.mediaUrl + 'articleOriginal/' + res.data.production.file_original;
|
||||
}
|
||||
|
||||
|
||||
// if (this.detailMes.main != '') {
|
||||
@@ -1784,7 +1808,46 @@
|
||||
|
||||
//5----参考文献左侧步骤条
|
||||
StepBNext(e) {
|
||||
this.showB_step = e
|
||||
if(e == 1){
|
||||
this.$confirm('This will clear the current reference information, are you sure you want to do this?', 'Prompt', {
|
||||
confirmButtonText: 'Sure',
|
||||
cancelButtonText: 'Cancle',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.clearRefences()
|
||||
}).catch(() => {
|
||||
|
||||
});
|
||||
}else{
|
||||
this.showB_step = e
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
// 清空引用数据
|
||||
clearRefences(){
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'please wait',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
this.$api
|
||||
.post('api/Preaccept/discardRefersByParticleid', {
|
||||
'p_article_id': this.p_article_id
|
||||
})
|
||||
.then(res => {
|
||||
loading.close();
|
||||
if (res.code == 0) {
|
||||
this.showB_step = 1
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
loading.close();
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
|
||||
//5----按钮每一步操作
|
||||
@@ -2183,6 +2246,11 @@
|
||||
this.fileL_sub2 = [fileList[fileList.length - 1]]
|
||||
}
|
||||
},
|
||||
handleChange41(file, fileList) {
|
||||
if (fileList.length > 0) {
|
||||
this.fileL_sub41 = [fileList[fileList.length - 1]]
|
||||
}
|
||||
},
|
||||
handleChange5(file, fileList) {
|
||||
if (fileList.length > 0) {
|
||||
this.fileL_Note = [fileList[fileList.length - 1]]
|
||||
@@ -2247,6 +2315,30 @@
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
},
|
||||
handleFileSuccess41(res, file) {
|
||||
if (res.code == 0) {
|
||||
this.$api
|
||||
.post('api/Production/editArticleFile', {
|
||||
'p_article_id': this.p_article_id,
|
||||
'filetype': 'Original',
|
||||
'fileURL': res.upurl
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Original Data File upload succeeded!');
|
||||
this.getData();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
|
||||
},
|
||||
handleFileSuccess5(res, file) {
|
||||
if (res.code == 0) {
|
||||
this.$api
|
||||
@@ -2350,6 +2442,7 @@
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
beforeRemove4(file, fileList) {
|
||||
return this.$confirm(`Are you sure to remove ${ file.name }?`).then(() => {
|
||||
this.$api
|
||||
@@ -2371,6 +2464,28 @@
|
||||
});
|
||||
});
|
||||
},
|
||||
beforeRemove41(file, fileList) {
|
||||
return this.$confirm(`Are you sure to remove ${ file.name }?`).then(() => {
|
||||
this.$api
|
||||
.post('master/Article/editArticleFile', {
|
||||
'p_article_id': this.p_article_id,
|
||||
'filetype': 'Original',
|
||||
'fileURL': ''
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Original Data File deleted successfully!');
|
||||
this.getData();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
// console.log('删除附加文件')
|
||||
});
|
||||
},
|
||||
beforeRemove5(file, fileList) {
|
||||
return this.$confirm(`Are you sure to remove ${ file.name }?`).then(() => {
|
||||
this.$api
|
||||
@@ -2514,13 +2629,15 @@
|
||||
cancelButtonText: 'Cancel',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
.then(() => {
|
||||
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
this.$api
|
||||
.post('api/Production/pushArticleToSystem', {
|
||||
'p_article_id': this.detailMes.p_article_id
|
||||
|
||||
@@ -50,9 +50,9 @@
|
||||
</p>
|
||||
<p>
|
||||
<span style="margin: 0 5px 0 0;">Layout: </span>
|
||||
<b class="el-icon-check" style="color: #0fa31d;font-weight: bold;" v-if="scope.row.mains!=''">
|
||||
<b class="el-icon-check" style="color: #0fa31d;font-weight: bold;" v-if="scope.row.mains == 1">
|
||||
</b>
|
||||
<b class="el-icon-close" style="color: #ff0000;font-weight: bold;" v-if="scope.row.mains==''">
|
||||
<b class="el-icon-close" style="color: #ff0000;font-weight: bold;" v-if="scope.row.mains == 0">
|
||||
</b>
|
||||
</p>
|
||||
</template>
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
|
||||
<!-- Html排版 -->
|
||||
<el-dialog title="HTML layout" :visible.sync="HtmlVisible" width="900px" :close-on-click-modal="false">
|
||||
<el-dialog title="HTML layout" :visible.sync="HtmlVisible" width="900px" :close-on-click-modal="false" @close="CancelHtml">
|
||||
<div style="margin: 0 0 0 10px;" class="htmlfile">
|
||||
<h3 style="font-size: 16px;margin-bottom: 25px;line-height: 22px;letter-spacing: -0.5px;word-break: break-word;"
|
||||
v-html="UpHtpFIle.title"></h3>
|
||||
@@ -223,31 +223,106 @@
|
||||
can be uploaded(.pdf)</div>
|
||||
</el-upload>
|
||||
</div> -->
|
||||
<div style="border-top: 2px dashed #0066994d;margin: 20px 0 0 0;padding: 20px 0 0 0;">
|
||||
<font style="font-size: 16px;">Html Layout :</font>
|
||||
<span style="margin-left: 15px;color: #666;" v-if="UpHtpFIle.mains==''">No Layout</span>
|
||||
<span style="margin-left: 15px;color: #0b4b6a;" v-if="UpHtpFIle.mains!=''">Typesetting
|
||||
completed</span>
|
||||
<el-button type="primary" icon="el-icon-document-copy" @click="htmlLayout()"
|
||||
style="margin-left: 20px;">
|
||||
<font v-if="UpHtpFIle.mains==''">Creat Html Proofread</font>
|
||||
<font v-if="UpHtpFIle.mains!=''">Edit Html Proofread</font>
|
||||
</el-button>
|
||||
<div class="titHtml" v-if="UpHtpFIle.mains!=''">
|
||||
<div v-for="(item,index) in UpHtpFIle.mains">
|
||||
<p v-html="item.content" v-if="item.width==0"></p>
|
||||
<p v-if="item.width!=0" class="MaxPicture">
|
||||
<img :src="baseUrl+'public/mainimg/'+item.content" :style="'width:'+item.width+'px'">
|
||||
<font :style="'width:'+item.width+'px'">{{item.note}}
|
||||
</font>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p style="border-top: 2px dashed #0066994d;margin: 20px 0 0 0;padding: 20px 0 0 0;"> </p>
|
||||
<el-collapse v-model="collapseActiveNames">
|
||||
<el-collapse-item name="html" v-loading="loadHtml">
|
||||
<template slot="title" >
|
||||
Html Layout :
|
||||
<span style="margin-left: 15px;color: #666;" v-if="mains==''">No Layout</span>
|
||||
<span style="margin-left: 15px;color: #0b4b6a;" v-if="mains!=''">Typesetting completed</span>
|
||||
<el-button v-if="mains!=''" type="primary" plain icon="el-icon-document-copy" @click.stop @click="htmlLayout()"
|
||||
style="margin-left: 20px;">
|
||||
<font >Edit Html Proofread</font>
|
||||
</el-button>
|
||||
<el-button v-if="mains!=''" type="danger" plain icon="el-icon-document-copy" @click.stop @click="clearHtmlLayout()"
|
||||
style="margin-left: 20px;">
|
||||
<font >Remove Html Proofread</font>
|
||||
</el-button>
|
||||
</template>
|
||||
<div>
|
||||
<!-- 生成选项 -->
|
||||
<div v-if="mains==''">
|
||||
<el-radio v-model="createType" label="1">Use last manuscirpt version</el-radio>
|
||||
<el-radio v-model="createType" label="2">Use new file upload</el-radio>
|
||||
|
||||
<!-- 使用默认最新稿件生成 -->
|
||||
<div style="margin: 20px 0 0 0" v-if="createType == '1'">
|
||||
<el-button type="primary" @click="htmlLayout" class="import" >Create Html Proofread</el-button>
|
||||
</div>
|
||||
<!-- 文件上传 -->
|
||||
<div class="up" 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>
|
||||
<el-button type="primary" @click="htmlLayout" class="import" >Create Html Proofread</el-button>
|
||||
</div>
|
||||
<!-- end -->
|
||||
</div>
|
||||
<!-- end -->
|
||||
<div class="titHtml" v-if="mains!=''">
|
||||
<div v-for="(item,index) in mains" :key="index">
|
||||
<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" @click.stop
|
||||
style="margin-left: 20px;">
|
||||
<font >Edit References</font>
|
||||
</el-button>
|
||||
</template>
|
||||
<div>
|
||||
<el-table class="table99" v-if="UpHtpFIle.refers!=''" height="400px" :header-cell-style="{background:'#eef1f6',color:'#606266'}"
|
||||
:data="UpHtpFIle.refers"
|
||||
stripe
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
type="index" align="center"
|
||||
width="50">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="CONTENT" align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div style="text-align: left;" v-if="scope.row.refer_type == 'journal'">
|
||||
<p>{{scope.row.author}},{{scope.row.title}}, <em>{{scope.row.joura}}</em> ,{{scope.row.dateno}}<br/></p>
|
||||
<a class="doiLink" :href="scope.row.doilink" target="_blank">{{scope.row.doilink}}</a>
|
||||
</div>
|
||||
<div style="text-align: left;" v-if="scope.row.refer_type == 'book'">
|
||||
<p>{{scope.row.author}},{{scope.row.title}},{{scope.row.dateno}}<br/></p>
|
||||
<a class="doiLink" :href="scope.row.isbn" target="_blank">{{scope.row.isbn}}</a>
|
||||
</div>
|
||||
<p class="wrongLine" style="text-align: left;" v-if="scope.row.refer_type == 'other'">
|
||||
{{scope.row.refer_frag}}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="HtmlVisible = false" plain>Cancel</el-button>
|
||||
<el-button @click="CancelHtml" plain>Cancel</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
@@ -258,9 +333,15 @@
|
||||
import {
|
||||
Loading
|
||||
} from 'element-ui';
|
||||
import { watch } from 'vue';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
articleId:null,
|
||||
createType:'1', // html生成方式
|
||||
collapseActiveNames:[], // 手风琴绑定值
|
||||
// oldFile:false, // 是否用新文件生成
|
||||
fileL_manuscirpt: [],
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
username: localStorage.getItem('U_name'),
|
||||
@@ -289,8 +370,10 @@
|
||||
UpHtpFIle: {
|
||||
title: '',
|
||||
article_id: '',
|
||||
p_article_id:null,
|
||||
htmlfile: '',
|
||||
mains: [],
|
||||
refers:[], //引用参数
|
||||
},
|
||||
UpLoadFile: {
|
||||
article_id: '',
|
||||
@@ -309,12 +392,26 @@
|
||||
chooseData: [],
|
||||
loading: false,
|
||||
steps_jour: 0,
|
||||
loadHtml:false, // mains 加载动画
|
||||
form:{
|
||||
manuscirpt: '',
|
||||
},
|
||||
fileData:'', // 上传后返回的文件url
|
||||
mains:[] // html 数据
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getJourDate();
|
||||
},
|
||||
methods: {
|
||||
computed: {
|
||||
upload_coverLetter: function() {
|
||||
return this.baseUrl + 'api/Article/up_file/type/coverLetter';
|
||||
},
|
||||
upload_manuscirpt: function() {
|
||||
return this.baseUrl + 'api/Production/up_last_artFile';
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 获取列表
|
||||
getDate() {
|
||||
const loading = this.$loading({
|
||||
@@ -335,7 +432,85 @@
|
||||
loading.close();
|
||||
});
|
||||
},
|
||||
|
||||
// 清空html
|
||||
clearHtmlLayout(){
|
||||
this.$confirm('You are Removing Html Proofread, do you want to continue?', 'Tips', {
|
||||
confirmButtonText: 'Sure',
|
||||
cancelButtonText: 'Cancle',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$api
|
||||
.post('api/Production/clearWebMains', {
|
||||
'article_id': this.articleId,
|
||||
})
|
||||
.then(res => {
|
||||
if(res.code == 0){
|
||||
this.getDate()
|
||||
}else{
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
}).catch(() => {});
|
||||
},
|
||||
// 跳转到引用编辑页面
|
||||
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.p_article_id
|
||||
}
|
||||
})
|
||||
},
|
||||
CancelHtml(){
|
||||
this.HtmlVisible = false
|
||||
this.form.manuscirpt = ''
|
||||
this.fileData = ''
|
||||
this.fileL_manuscirpt = []
|
||||
this.createType = '1' // html生成方式
|
||||
this.collapseActiveNames = ['html']
|
||||
|
||||
},
|
||||
beforeupload_manuscirpt(file) {
|
||||
let flieArr = file.name.split(".")
|
||||
let fileSuffix = flieArr[flieArr.length - 1];
|
||||
if (fileSuffix != 'docx') {
|
||||
this.$message.error('Only word and compressed files can be uploaded(.docx)');
|
||||
return false;
|
||||
}
|
||||
},
|
||||
upSuccess_manuscirpt(res, file) {
|
||||
if (res.code == 0) {
|
||||
this.fileData = res.upurl
|
||||
this.form.manuscirpt = 'manuscirpt/' + res.upurl;
|
||||
this.fileL_manuscirpt = [{}];
|
||||
this.fileL_manuscirpt[0].name = "Manuscirpt File";
|
||||
this.fileL_manuscirpt[0].url = 'manuscirpt/' + res.upurl;
|
||||
} else {
|
||||
this.$message.error('service error: ' + res.msg);
|
||||
}
|
||||
},
|
||||
//超出传送文件个数限制
|
||||
alertlimit() {
|
||||
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||||
},
|
||||
removefilemanuscirpt(file, fileList) {
|
||||
this.form.manuscirpt = '';
|
||||
this.fileL_manuscirpt = [];
|
||||
},
|
||||
clearUploadedFile() {
|
||||
this.$refs['uploadFile'].clearFiles();
|
||||
},
|
||||
uperr_coverLetter(err) {
|
||||
this.$message.error('Upload error');
|
||||
},
|
||||
|
||||
//初始化期刊分期
|
||||
getJourDate() {
|
||||
this.$api
|
||||
@@ -505,6 +680,7 @@
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// 关闭相关文章
|
||||
RelatCancle() {
|
||||
@@ -638,17 +814,63 @@
|
||||
});
|
||||
},
|
||||
|
||||
// 点击HTML查询数据
|
||||
getMainsInfo(e){
|
||||
this.loadHtml = true
|
||||
this.$api
|
||||
.post('api/Publish/getArticleMains', {
|
||||
'article_id': e.article_id
|
||||
})
|
||||
.then(res => {
|
||||
this.loadHtml = false
|
||||
if (res.code == 0) {
|
||||
// console.log(res,'res')
|
||||
this.mains = res.data.mains
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.loadHtml = false
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 文章html弹出层
|
||||
htmlContet(e) {
|
||||
htmlContet(e) {
|
||||
this.articleId = e.article_id
|
||||
this.UpHtpFIle.article_id = e.article_id
|
||||
this.UpHtpFIle.refers = e.refers
|
||||
this.UpHtpFIle.p_article_id = e.p_article_id
|
||||
this.UpHtpFIle.doi = e.doi
|
||||
this.UpHtpFIle.htmlfile = e.file_html
|
||||
this.UpHtpFIle.title = e.title
|
||||
this.UpHtpFIle.mains = e.mains
|
||||
this.UpLoadFile.article_id = e.article_id
|
||||
this.getMainsInfo(e)
|
||||
this.HtmlVisible = true
|
||||
|
||||
},
|
||||
|
||||
// 生成html
|
||||
// CreateHtml(){
|
||||
// const loading = this.$loading({
|
||||
// lock: true,
|
||||
// text: 'Loading...',
|
||||
// spinner: 'el-icon-loading',
|
||||
// background: 'rgba(0, 0, 0, 0.7)'
|
||||
// });
|
||||
// this.$api
|
||||
// .post('api/Production/getProductionMainsByDoi', {
|
||||
// doi: this.UpHtpFIle.doi,
|
||||
|
||||
// })
|
||||
// .then(res => {
|
||||
// if (res.code == 0) {
|
||||
// loading.close()
|
||||
// this.htmlLayout()
|
||||
// }
|
||||
// })
|
||||
// },
|
||||
// 修改文章html
|
||||
htmlLayout() {
|
||||
const loading = this.$loading({
|
||||
@@ -659,13 +881,14 @@
|
||||
});
|
||||
this.$api
|
||||
.post('api/Production/getProductionMainsByDoi', {
|
||||
doi: this.UpHtpFIle.doi
|
||||
doi: this.UpHtpFIle.doi,
|
||||
file: this.fileData
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
loading.close()
|
||||
this.HtmlVisible = false
|
||||
if (this.UpHtpFIle.mains == '') {
|
||||
if (this.mains == '') {
|
||||
this.$router.push({
|
||||
path: 'comArtHtmlCreat',
|
||||
query: {
|
||||
@@ -741,11 +964,50 @@
|
||||
this.$message.error('The maximum number of uploaded files has been exceeded');
|
||||
},
|
||||
|
||||
},
|
||||
watch:{
|
||||
HtmlVisible:{
|
||||
handler(newVal, oldVal) {
|
||||
if(this.UpHtpFIle.mains==0 && newVal == true){ //打开赋值
|
||||
this.collapseActiveNames.push('html')
|
||||
}else{ // 关闭清空
|
||||
this.collapseActiveNames = []
|
||||
}
|
||||
},
|
||||
deep: true // 可以深度检测到 person 对象的属性值的变化
|
||||
},
|
||||
// collapseActiveNames : {
|
||||
// handler(newVal, oldVal) {
|
||||
// console.log(newVal, '新传入的值')
|
||||
// this.$nextTick(()=>{
|
||||
// this.oldFile = newVal.find((item)=>{item.name===''});
|
||||
// })
|
||||
// },
|
||||
// // immediate: true,
|
||||
// deep: true // 可以深度检测到 person 对象的属性值的变化
|
||||
// }
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.doiLink{color: #409EFF;}
|
||||
.up_newstyle {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.up .up_newstyle{margin-left: 0; margin-bottom: 15px;}
|
||||
/deep/ .el-upload--text {
|
||||
background-color: #ecf5ff;
|
||||
border: 1px solid #b3d8ff !important;
|
||||
padding: 0 7px;
|
||||
/* margin-left: 10px; */
|
||||
}
|
||||
|
||||
.up_newstyle .el-upload__text em {
|
||||
color: #409EFF !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
.handle-box {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
@@ -909,31 +1171,33 @@
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list {
|
||||
margin-top: 4px;
|
||||
margin-top: -4px;
|
||||
margin-left: 20px;
|
||||
float: left;
|
||||
width: 35px;
|
||||
display: none;
|
||||
width: 500px;
|
||||
/* display: none; */
|
||||
}
|
||||
|
||||
/* /deep/ .import.is-disabled{background: #ecf5ff !important; color: #8cc5ff !important; border-color: #d9ecff !important;} */
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item {
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item {
|
||||
width: 30px !important;
|
||||
}
|
||||
} */
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-name {
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-name {
|
||||
width: 30px;
|
||||
}
|
||||
} */
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list .el-upload-list__item .el-upload-list__item-status-label {
|
||||
display: none;
|
||||
}
|
||||
} */
|
||||
|
||||
/deep/.htmlfile .upload-demo .el-upload-list__item:hover .el-icon-close {
|
||||
/* /deep/.htmlfile .upload-demo .el-upload-list__item:hover .el-icon-close {
|
||||
display: none;
|
||||
}
|
||||
} */
|
||||
/deep/ .table99 th{background: #e4e7ed !important; color: #777 !important;}
|
||||
</style>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
Comments from reviewers
|
||||
</h2>
|
||||
<el-collapse v-model="activeComment" v-if="comentDeploy!=''">
|
||||
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index"
|
||||
<el-collapse-item v-for="(item,index) in comentDeploy" :name="index" :key="index"
|
||||
class="art_author_list">
|
||||
<template slot="title">
|
||||
<b class="com_shu">{{index+1}}</b>
|
||||
@@ -39,32 +39,61 @@
|
||||
{{formatDate1(item.ctime)}}
|
||||
</font>
|
||||
</template>
|
||||
<div class="art_author_coment">
|
||||
<p v-if="item.qu9_contents!=''">
|
||||
<font>Does the title represent manuscript's contents?</font>
|
||||
<pre>{{item.qu9_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu10_contents!=''">
|
||||
<font>Is the Abstract accurate and concise?</font>
|
||||
<pre>{{item.qu10_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu11_contents!=''">
|
||||
<font>Are the approach/ methods properly described?</font>
|
||||
<pre>{{item.qu11_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu12_contents!=''">
|
||||
<font>Are the conclusions and interpretations sound?</font>
|
||||
<pre>{{item.qu12_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.qu13_contents!=''">
|
||||
<font>Are the references properly cited?</font>
|
||||
<pre>{{item.qu13_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item.comments!=''">
|
||||
<font>Comments for the Authors</font>
|
||||
<pre>{{item.comments}}</pre>
|
||||
</p>
|
||||
</div>
|
||||
<!-- 时间轴 -->
|
||||
<el-timeline v-if="item.question && item.question[0] != null">
|
||||
<el-timeline-item :timestamp="item1.ctime|formatDatehms" placement="top" v-for="(item1, index1) in item.question" :key="index1">
|
||||
<el-card>
|
||||
<!-- 初审 -->
|
||||
<div v-if="index1 == item.question.length-1">
|
||||
<h4><el-tag >Under review</el-tag></h4>
|
||||
<!-- 内容 -->
|
||||
<div class="art_author_coment">
|
||||
<p v-if="item1.qu9_contents!=''">
|
||||
<font>Does the title represent manuscript's contents?</font>
|
||||
<pre>{{item1.qu9_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu10_contents!=''">
|
||||
<font>Is the Abstract accurate and concise?</font>
|
||||
<pre>{{item1.qu10_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu11_contents!=''">
|
||||
<font>Are the approach/ methods properly described?</font>
|
||||
<pre>{{item1.qu11_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu12_contents!=''">
|
||||
<font>Are the conclusions and interpretations sound?</font>
|
||||
<pre>{{item1.qu12_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.qu13_contents!=''">
|
||||
<font>Are the references properly cited?</font>
|
||||
<pre>{{item1.qu13_contents}}</pre>
|
||||
</p>
|
||||
<p v-if="item1.comments!=''">
|
||||
<font>Comments for the Authors</font>
|
||||
<pre>{{item1.comments}}</pre>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- 复审 -->
|
||||
<el-tag type="success">Second review</el-tag>
|
||||
<p style="margin-top: 20px;" >
|
||||
<i class="el-icon-check final Accept" v-if="item1.recommend == 1" >{{item1.recommend | getOpinion}}</i>
|
||||
<i class="el-icon-close final Reject" v-if="item1.recommend == 2" >{{item1.recommend | getOpinion}}</i>
|
||||
<i class="el-icon-refresh-left final Revison" v-if="item1.recommend == 3" >{{item1.recommend | getOpinion}}</i>
|
||||
</p>
|
||||
<p class="commentfs" v-if="item1.recommend == 3" style="margin-bottom: 10px;">
|
||||
<font style="display: inline-block; margin-right: 20px;">Comments for the Authors</font>
|
||||
<pre>{{item1.content}}</pre>
|
||||
</p>
|
||||
<p style="" class="stime" v-if="item1.stime != 0">
|
||||
Response time: {{item1.stime|formatDatehms}}
|
||||
</p>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
<!-- end -->
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
<p v-if="comentDeploy==''" style="color: #888888;margin: 0 0 0 10px;">No Comment</p>
|
||||
@@ -143,6 +172,22 @@
|
||||
</el-upload>
|
||||
</p>
|
||||
<br clear="both">
|
||||
<h4>Supplementary Material :</h4>
|
||||
<p>
|
||||
<el-upload class="upload-demo up_newstyle" :action="upload_supplementary" accept=".zip"
|
||||
name="supplementary" :before-upload="beforeupload_supplementary"
|
||||
:on-error="uperr_coverLetter" :on-success="upSuccess_supplementary" :limit="1"
|
||||
:on-exceed="alertlimit" :on-remove="removefilesupplementary"
|
||||
>
|
||||
<div class="el-upload__text" style="padding:8px 5px;">
|
||||
<em>Click Upload</em>
|
||||
</div>
|
||||
<div class="el-upload__tip" slot="tip">
|
||||
Only ZIP files can be uploaded (file formats: .zip).
|
||||
</div>
|
||||
</el-upload>
|
||||
</p>
|
||||
<br clear="both">
|
||||
<h4>Figures :</h4>
|
||||
<p>
|
||||
<el-upload class="upload-demo" :action="upload_picturesAndTables" accept=".rar, .zip"
|
||||
@@ -405,6 +450,7 @@
|
||||
manuscirpt: '',
|
||||
picturesAndTables: '',
|
||||
responseFile: '',
|
||||
supplementary:'', //
|
||||
articleId: this.$route.query.id,
|
||||
username: localStorage.getItem('U_name')
|
||||
},
|
||||
@@ -422,6 +468,7 @@
|
||||
totalpageFileList: [],
|
||||
manuscirptFileList: [],
|
||||
supplementaryFileList:[],
|
||||
fileL_supplementary:[]
|
||||
};
|
||||
},
|
||||
created: function() {
|
||||
@@ -441,14 +488,17 @@
|
||||
upload_picturesAndTables: function() {
|
||||
return this.baseUrl + 'api/Article/up_file/type/picturesAndTables';
|
||||
},
|
||||
upload_supplementary: function() {
|
||||
return this.baseUrl + 'api/Article/up_file/type/supplementary';
|
||||
},
|
||||
upload_manuscirpt: function() {
|
||||
return this.baseUrl + 'api/Article/up_file/type/manuscirpt';
|
||||
},
|
||||
upload_response: function() {
|
||||
return this.baseUrl + 'api/Article/up_response_file';
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
},
|
||||
methods: {
|
||||
//初始化文章信息
|
||||
initarticle() {
|
||||
this.$api
|
||||
@@ -487,6 +537,11 @@
|
||||
|
||||
// 审稿人意见
|
||||
this.comentDeploy = res.suggest
|
||||
this.comentDeploy.map(item => {
|
||||
if(item.question && item.question.length > 0)
|
||||
item.question = item.question.reverse()
|
||||
})
|
||||
// console.log(this.comentDeploy,'this.comentDeploy')
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
@@ -587,6 +642,42 @@
|
||||
this.msgform.ad_content = ''
|
||||
});
|
||||
},
|
||||
beforeupload_supplementary(file) {
|
||||
let flieArr = file.name.split(".")
|
||||
let fileSuffix = flieArr[flieArr.length - 1];
|
||||
if (fileSuffix != 'zip') {
|
||||
this.$message.error('Only zip files can be uploaded(.zip)');
|
||||
return false;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
upSuccess_supplementary(res, file) {
|
||||
if (res.code == 0) {
|
||||
this.fileMesForm.supplementary = 'supplementary/' + res.upurl;
|
||||
this.fileL_supplementary = [{}]
|
||||
this.fileL_supplementary[0].name = "Supplementary Material";
|
||||
this.fileL_supplementary[0].url = 'supplementary/' + res.upurl;
|
||||
} else {
|
||||
this.$message.error('service error: ' + res.msg);
|
||||
}
|
||||
},
|
||||
|
||||
removefilesupplementary() {
|
||||
this.fileMesForm.supplementary = '';
|
||||
this.fileL_supplementary = [];
|
||||
// this.$api
|
||||
// .post('api/Article/delArticleFile', {
|
||||
// file_id: this.fileMesForm.supplementaryId
|
||||
// })
|
||||
// .then((res) => {
|
||||
// if (res.code == 0) {
|
||||
// this.$message.success('Deletion succeeded!');
|
||||
// } else {
|
||||
// this.$message.error(res.msg);
|
||||
// }
|
||||
// });
|
||||
},
|
||||
|
||||
// 上传文件
|
||||
onSubmit() {
|
||||
@@ -804,14 +895,32 @@
|
||||
},
|
||||
|
||||
},
|
||||
filters: {
|
||||
|
||||
}
|
||||
filters:{
|
||||
// 复审意见结果
|
||||
getOpinion(value){
|
||||
switch (value) {
|
||||
case 1:
|
||||
return 'Accept'
|
||||
break;
|
||||
case 2:
|
||||
return 'Reject'
|
||||
break;
|
||||
case 3:
|
||||
return 'Revison'
|
||||
break;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.time p{color: #606266;}
|
||||
.Accept{color: #67c23a;}
|
||||
.Reject{color: #909399;}
|
||||
.Revison{color: #e6a23c;}
|
||||
.final{ font-size: 20px;}
|
||||
.top_dao:hover {
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
@@ -934,7 +1043,6 @@
|
||||
.art_author_coment {}
|
||||
|
||||
.art_author_coment>p {
|
||||
margin: 10px 0 0 28px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
@@ -942,11 +1050,12 @@
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.art_author_coment>p>font {
|
||||
.art_author_coment>p>font,.commentfs>font {
|
||||
display: block;
|
||||
margin: 0 0 2px 0;
|
||||
margin: 15px 0 5px 0;
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
.commentfs{}
|
||||
</style>
|
||||
|
||||
@@ -6,14 +6,20 @@
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container" v-loading="loading" element-loading-text="Loading..."
|
||||
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)">
|
||||
element-loading-spinner="el-icon-loading" element-loading-background="rgba(255, 255, 255, 0.8)">
|
||||
<span style="font-size: 14px;color: #606266;margin: 0 10px 0 0;">Research direction :</span>
|
||||
<el-select v-model="messform.major_a" placeholder="Please select major" @change="majorChange(1)"
|
||||
<el-cascader placeholder="Please select major" v-model="selectFileds" style="width:300px; margin-right: 10px;" @change="fieldChange"
|
||||
:options="allFileds"
|
||||
:props="fieldsProps"
|
||||
collapse-tags
|
||||
clearable></el-cascader>
|
||||
<!-- <el-select v-model="messform.major_a" placeholder="Please select major" @change="majorChange(1)"
|
||||
style="width: 200px;margin: 0 10px 0 0;">
|
||||
<el-option :key="0" label="All major" :value="0"></el-option>
|
||||
<el-option v-for="item in majors_a" :key="item.major_id" :label="item.major_title"
|
||||
:value="item.major_id"></el-option>
|
||||
</el-select>
|
||||
|
||||
<el-select v-model="messform.major_b" placeholder="Please select major" v-if="majors_b!=''"
|
||||
@change="majorChange(2)" style="width: 200px;margin:0 10px 0 0;">
|
||||
<el-option :key="0" label="None" :value="0"></el-option>
|
||||
@@ -25,8 +31,10 @@
|
||||
<el-option :key="0" label="None" :value="0"></el-option>
|
||||
<el-option v-for="item in majors_c" :key="item.major_id" :label="item.major_title"
|
||||
:value="item.major_id"></el-option>
|
||||
</el-select>
|
||||
<el-input v-model="messform.keywords" clearable placeholder="Please enter keyword"
|
||||
</el-select> -->
|
||||
<el-input v-model="messform.email" clearable placeholder="Please enter email"
|
||||
style="width: 190px;display: inline-block;margin: 0 10px 20px 0;"></el-input>
|
||||
<el-input v-model="messform.field" clearable placeholder="Please enter field"
|
||||
style="width: 190px;display: inline-block;margin: 0 10px 20px 0;"></el-input>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">Search</el-button>
|
||||
<el-table :data="revTable" border stripe class="table" ref="multipleTable"
|
||||
@@ -118,13 +126,15 @@
|
||||
return {
|
||||
messform: {
|
||||
article_id: this.$route.query.id,
|
||||
keywords: '',
|
||||
email: '',
|
||||
field: '',
|
||||
pageIndex: 1,
|
||||
pageSize: 15,
|
||||
major_id: 0,
|
||||
major_a: 0,
|
||||
major_b: '',
|
||||
major_c: '',
|
||||
|
||||
// major_a: 0,
|
||||
// major_b: '',
|
||||
// major_c: '',
|
||||
},
|
||||
revTable: [],
|
||||
mesOpen: [],
|
||||
@@ -134,18 +144,28 @@
|
||||
majors_a: [],
|
||||
majors_b: [],
|
||||
majors_c: [],
|
||||
|
||||
allFileds:[], // 全部领域
|
||||
fieldsProps: {
|
||||
checkStrictly: true,
|
||||
value: 'major_id',
|
||||
label: 'major_title',
|
||||
children:'children'
|
||||
},
|
||||
selectFileds:[]
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDate();
|
||||
this.initMajor()
|
||||
//this.initMajor()
|
||||
this.getAllFields()
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
fieldChange(e){
|
||||
this.messform.major_id = this.selectFileds[this.selectFileds.length-1]
|
||||
},
|
||||
// 获取编辑列表数据
|
||||
getDate() {
|
||||
this.$api
|
||||
@@ -178,6 +198,7 @@
|
||||
// 关键字搜索
|
||||
handleSearch() {
|
||||
this.loading = true;
|
||||
// console.log(this.messform)
|
||||
this.getDate();
|
||||
},
|
||||
|
||||
@@ -235,6 +256,18 @@
|
||||
});
|
||||
},
|
||||
|
||||
// 获取全部领域
|
||||
getAllFields(){
|
||||
this.$api
|
||||
.post('api/Major/getMajorList')
|
||||
.then((res) => {
|
||||
if(res.code == 0){
|
||||
this.allFileds = res.data.majors
|
||||
}else{
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
});
|
||||
},
|
||||
// 搜索选择领域
|
||||
majorChange(e) {
|
||||
if (e == 1) {
|
||||
|
||||
@@ -9,10 +9,11 @@
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<el-row>
|
||||
<el-col :span="16">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="16" >
|
||||
|
||||
<div class="form-box">
|
||||
<el-form ref="articleform" :model="detailDate" label-width="200px">
|
||||
<el-form ref="articleform" :model="detailDate" label-width="130px">
|
||||
<el-form-item label="Article">
|
||||
<span>{{detailDate.article}}</span>
|
||||
</el-form-item>
|
||||
@@ -21,12 +22,15 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="CreateTime">
|
||||
<span>{{formatDate(detailDate.ctime)}}</span>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
<el-form-item label="Status">
|
||||
<span>{{mystate(detailDate.state)}}</span>
|
||||
<el-button style="margin-left:10px;" type="text" @click="dialogFormVisible=true" icon="el-icon-view">See
|
||||
Feedback</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="canRepeat == 1">
|
||||
<el-button type="primary" @click="createRevision">Re-review</el-button>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="Article file">
|
||||
<el-popover placement="right" width="350" trigger="click">
|
||||
<el-table :data="articlefileList">
|
||||
@@ -151,9 +155,41 @@
|
||||
<el-button type="primary" @click="onSubmit">submit</el-button>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-col :span="8" v-if="recordList && recordList.length > 0">
|
||||
<div class="clearfix fsheader">
|
||||
<h4>Peer-review Archive</h4>
|
||||
</div>
|
||||
<div class="time">
|
||||
<el-timeline>
|
||||
<el-timeline-item reverse="true" :timestamp="item.ctime|formatDatehms" placement="top" v-for="(item, index) in recordList" :key="index">
|
||||
<el-card>
|
||||
<h4></h4>
|
||||
<div>
|
||||
<div v-if="index == recordList.length-1">
|
||||
<!-- 初审 -->
|
||||
<el-tag >Under review</el-tag>
|
||||
<p style="margin-top: 10px;">Comments: <el-button style="margin-left:10px;" type="text" @click="showUnderReview(item)" icon="el-icon-view">Details</el-button></p>
|
||||
|
||||
</div>
|
||||
<div v-else >
|
||||
<!-- 复审 -->
|
||||
<el-tag type="success">Second review</el-tag>
|
||||
<p style="margin-top: 10px;">Comments: <el-button style="margin-left:10px;" type="text" @click="showSecondReview(item)" icon="el-icon-view">Details</el-button></p>
|
||||
<p v-if="item.stime>0" style="" class="stime">
|
||||
Response time: {{item.stime|formatDatehms}}
|
||||
</p>
|
||||
<p v-else style="" class="stime">
|
||||
Response time: Re-reviewing...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
|
||||
<!-- <div class="tree_box">
|
||||
<h2>State tracking</h2>
|
||||
<div class="block">
|
||||
@@ -347,13 +383,23 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="questionform.recommend" style="line-height: 30px;">
|
||||
<el-radio :label="1">Accept with minor revision</el-radio>
|
||||
<el-radio :label="1">Minor revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Accept with major revision</el-radio>
|
||||
<el-radio :label="2">Major revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<!-- TMR BMEC MDM .-->
|
||||
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
<!-- 其他期刊 -->
|
||||
<div v-else>
|
||||
<el-radio :label="4">Reject</el-radio>
|
||||
</div>
|
||||
<!-- <el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject, with no resubmission</el-radio>
|
||||
<el-radio :label="4">Reject, with no resubmission</el-radio> -->
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||
@@ -390,6 +436,230 @@
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<!-- 初审问卷 -->
|
||||
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible1" width="900px" @close="closeUnderDia">
|
||||
<el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
|
||||
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="1.Originality of the topic">
|
||||
<el-radio-group v-model="undeQuestion.qu1">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="2.Importance in its Field">
|
||||
<el-radio-group v-model="undeQuestion.qu3">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
|
||||
<el-radio-group v-model="undeQuestion.qu6">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="4.English language">
|
||||
<el-radio-group v-model="undeQuestion.qu8">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="5.Readily Understandable">
|
||||
<el-radio-group v-model="undeQuestion.qu5">
|
||||
<el-radio :label="1">Excellent</el-radio>
|
||||
<el-radio :label="2">Good</el-radio>
|
||||
<el-radio :label="3">Fair</el-radio>
|
||||
<el-radio :label="4">Poor</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-collapse>
|
||||
<el-form-item label="6.Does the title represent manuscript's contents?">
|
||||
<el-col :span="8">
|
||||
<el-radio-group v-model="undeQuestion.qu9">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-collapse-item name="1" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.qu9contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-collapse>
|
||||
<el-form-item label="7.Is the Abstract accurate and concise?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu10">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="2" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.qu10contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="8.Are the approach/ methods properly described?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu11">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="3" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.qu11contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="9.Are the conclusions and interpretations sound?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu12">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="4" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.qu12contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="10.Are the references properly cited?">
|
||||
<el-col :span="4">
|
||||
<el-radio-group v-model="undeQuestion.qu13">
|
||||
<el-radio :label="true">Yes</el-radio>
|
||||
<el-radio :label="false">No</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<el-collapse-item name="5" style="margin-top: -10px;">
|
||||
<template slot="title">
|
||||
<i class="el-icon-edit"></i>Comments/ Suggestions
|
||||
</template>
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.qu13contents" :rows="4"></el-input>
|
||||
</el-collapse-item>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="Overall the Paper is Rated">
|
||||
(Poor------------------------Excellent)
|
||||
<br />
|
||||
<el-radio-group v-model="undeQuestion.rated" size="small">
|
||||
<el-radio-button label="1"></el-radio-button>
|
||||
<el-radio-button label="2"></el-radio-button>
|
||||
<el-radio-button label="3"></el-radio-button>
|
||||
<el-radio-button label="4"></el-radio-button>
|
||||
<el-radio-button label="5"></el-radio-button>
|
||||
<el-radio-button label="6"></el-radio-button>
|
||||
<el-radio-button label="7"></el-radio-button>
|
||||
<el-radio-button label="8"></el-radio-button>
|
||||
<el-radio-button label="9"></el-radio-button>
|
||||
<el-radio-button label="10"></el-radio-button>
|
||||
</el-radio-group>
|
||||
<span style="margin-left: 20px;">>Your score:{{undeQuestion.rated}}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="undeQuestion.recommend" style="line-height: 30px;">
|
||||
<el-radio :label="1">Accept with minor revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Accept with major revision</el-radio>
|
||||
<br />
|
||||
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Reject, with no resubmission</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="OTHER SPECIFIC CRITICISMS">
|
||||
<el-radio-group v-model="undeQuestion.other" style="line-height: 30px;">
|
||||
<el-radio :label="1">Imperfect style</el-radio>
|
||||
<br />
|
||||
<el-radio :label="2">Too long</el-radio>
|
||||
<br />
|
||||
<el-radio :label="3">References incorrectly presented</el-radio>
|
||||
<br />
|
||||
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Comments for the Authors">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.comments" :rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Confidential Comments to the Editor">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.confidential" :rows="8"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Please choose disclose your name or remain anonymous.">
|
||||
<el-radio-group v-model="undeQuestion.is_anonymous" style="line-height: 30px;">
|
||||
<el-radio :label="0">Disclose name</el-radio>
|
||||
<br />
|
||||
<el-radio :label="1">Remain anonymous</el-radio>
|
||||
</el-radio-group>
|
||||
<p style="line-height: 20px;color: #aaa;font-size: 13px;margin: 12px 0 0 0;">
|
||||
If you agree to disclose your name, we will acknowledge you by name in the published
|
||||
PDF. However, if you prefer to remain anonymous, we will still express our gratitude
|
||||
by thanking you as an anonymous reviewer.
|
||||
<br />For example, {{txt_mess.title}} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers for their
|
||||
invaluable contributions to the peer review process of this paper.
|
||||
</p>
|
||||
</el-form-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<!-- 复审问卷 -->
|
||||
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" @close="closeSecDia">
|
||||
<el-form :model="ReReviewQuestion" ref="question" label-width="300px" label-position="top" >
|
||||
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
|
||||
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
|
||||
<el-radio-group v-model="ReReviewQuestion.recommend" style="line-height: 30px;">
|
||||
<el-radio :label="1">Accept</el-radio>
|
||||
<el-radio :label="2">Reject</el-radio>
|
||||
<!-- 退修改 -->
|
||||
<el-radio :label="3">Revison</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Confidential Comments to the Editor" v-if="ReReviewQuestion.recommend == 3">
|
||||
<el-input type="textarea" placeholder="please input content" v-model="ReReviewQuestion.content" :rows="8"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -397,6 +667,10 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
FdialogFormVisible:false,
|
||||
dialogFormVisible1:false,
|
||||
recordList:[],
|
||||
journal_id:null,
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
dateId: this.$route.query.id,
|
||||
@@ -413,7 +687,7 @@
|
||||
articlefile: '',
|
||||
articlezip: '',
|
||||
ctime: '',
|
||||
state: ''
|
||||
state: ''
|
||||
},
|
||||
txt_mess: {},
|
||||
questionform: {
|
||||
@@ -446,16 +720,81 @@
|
||||
other: '',
|
||||
confident: '',
|
||||
comment: ''
|
||||
}
|
||||
},
|
||||
canRepeat:null,
|
||||
undeQuestion:{},
|
||||
ReReviewQuestion:{}
|
||||
};
|
||||
},
|
||||
created: function() {
|
||||
this.getDate();
|
||||
this.initFileList();
|
||||
this.initquesion();
|
||||
this.getHistoryList()
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
// 显示复审对话框
|
||||
showSecondReview(item){
|
||||
this.FdialogFormVisible = true
|
||||
this.ReReviewQuestion = item
|
||||
},
|
||||
// 显示初审对话框
|
||||
showUnderReview(item){
|
||||
this.dialogFormVisible1 = true
|
||||
this.undeQuestion = item
|
||||
},
|
||||
// 关闭初审对话框
|
||||
closeUnderDia(){
|
||||
this.dialogFormVisible1 = false
|
||||
this.undeQuestion = {}
|
||||
},
|
||||
closeSecDia(){
|
||||
this.FdialogFormVisible = false
|
||||
this.ReReviewQuestion = {}
|
||||
},
|
||||
// 获取历史审稿列表
|
||||
getHistoryList(){
|
||||
this.loading = true
|
||||
this.$api
|
||||
.post('api/Reviewer/getReviewerRepeatDetail', {
|
||||
'art_rev_id': this.$route.query.id
|
||||
})
|
||||
.then(res => {
|
||||
this.loading = false;
|
||||
if (res.code == 0) {
|
||||
if(res.data.art_rev_info.question && res.data.art_rev_info.question[0] != null){
|
||||
this.recordList = res.data.art_rev_info.question.reverse()
|
||||
}
|
||||
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.loading = false;
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 创建复审实例
|
||||
createRevision(){
|
||||
this.$api
|
||||
.post('api/Reviewer/startRepeatReviewer', {
|
||||
'art_rev_id': this.detailDate.artrevid
|
||||
})
|
||||
.then(res => {
|
||||
//console.log(res)
|
||||
if(res.code == 0){
|
||||
this.$message.success('A review invitation was successfully sent!')
|
||||
this.getdate()
|
||||
}else{
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
upload_file(type) {
|
||||
return this.baseUrl + 'api/reviewer/up_file/type/' + type;
|
||||
},
|
||||
@@ -495,6 +834,8 @@
|
||||
this.detailDate.state = res.state;
|
||||
|
||||
this.txt_mess = res
|
||||
this.canRepeat = res.can_repeat
|
||||
this.journal_id = res.journal_id
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
@@ -639,6 +980,7 @@
|
||||
|
||||
|
||||
<style scoped>
|
||||
.fsheader{margin-bottom: 15px;}
|
||||
.dwnbtn {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
@@ -11,19 +11,35 @@
|
||||
<h3 class="man_Title">
|
||||
{{detailTitle}}
|
||||
</h3>
|
||||
<div class="type_MTxt">
|
||||
<div v-for="(item,index) in Main_List">
|
||||
<p v-html="item.text" 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>
|
||||
<font v-if="item.getnum!=0" class="chNumer">{{item.getnum}}</font>
|
||||
<b class="MaxBtn" @click="MTxtEdit(item,index)" style="background-color: #006699;right: 120px;">
|
||||
<div class="opBtn top">
|
||||
<el-button type="success" plain :disabled = "checkList.length > 0 ? false : true" @click="clearSelect">Select None</el-button>
|
||||
<el-button :disabled = "checkList.length > 0 ? false : true" type="danger" plain @click="deleteSelect">Delete</el-button>
|
||||
</div>
|
||||
<div class="type_MTxt">
|
||||
<div class="type_MTxt_item" v-for="(item,index) in Main_List" :key="index">
|
||||
<el-checkbox-group v-model="checkList" @change="handleCheckedChange" style="display: inline-block; float: left;width: 40px;">
|
||||
<el-checkbox :label="item.article_main_id" ><br/></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<div style="float:right; width:calc(100% - 45px);">
|
||||
<div v-if="item.width==0" :class="[item.is_title == 1 ? 'Ptitle' : '']">
|
||||
<p v-html="item.text" class="html"></p>
|
||||
</div>
|
||||
<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>
|
||||
<font v-if="item.getnum!=0" class="chNumer">{{item.getnum}}</font>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<b class="MaxBtn" @click="MTxtEdit(item,index)" style="background-color: #006699;">
|
||||
<i class="el-icon-edit"></i>
|
||||
</b>
|
||||
<b class="MaxBtn" @click="MTxtAdtxt(item,index)" style="background-color: #1c0099;right: 80px;">
|
||||
<!-- 批量添加 -->
|
||||
<b class="MaxBtn" @click="showMultAdd(item,index)" style="background-color: #bc9feb;">
|
||||
<svg t="1689577244398" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3063" width="16" height="16"><path d="M793.343512 870.449643H76.775179c-42.482265 0-76.775179-34.292913-76.775179-76.775179V77.106131C0 34.623865 34.292913 0.330952 76.775179 0.330952h537.42625c14.331367 0 25.591726 11.26036 25.591726 25.591726s-11.26036 25.591726-25.591726 25.591727H76.775179c-14.331367 0-25.591726 11.26036-25.591727 25.591726v716.568333c0 14.331367 11.26036 25.591726 25.591727 25.591726h716.568333c14.331367 0 25.591726-11.26036 25.591726-25.591726v-281.508988c0-14.331367 11.26036-25.591726 25.591726-25.591726s25.591726 11.26036 25.591727 25.591726v281.508988c0 42.482265-34.292913 76.775179-76.775179 76.775179z" fill="#ffffff" p-id="3064"></path><path d="M946.893869 1024H281.508988c-14.331367 0-25.591726-11.26036-25.591726-25.591726s11.26036-25.591726 25.591726-25.591726h665.384881c14.331367 0 25.591726-11.26036 25.591726-25.591727V435.390298c0-14.331367 11.26036-25.591726 25.591727-25.591727s25.591726 11.26036 25.591726 25.591727v511.834523c0 42.482265-34.292913 76.775179-76.775179 76.775179zM485.219129 566.93177c-20.473381 0-39.411258-8.189352-54.25446-22.520719L238.003054 350.937601c-10.23669-10.23669-10.23669-26.103561 0-36.340251s26.103561-10.23669 36.340251 0l193.47345 193.47345c5.118345 5.118345 11.26036 7.677518 18.426043 7.677518 6.653849 0 13.307698-3.071007 18.426043-8.189353l475.494272-499.550495c9.724856-10.23669 26.103561-10.748525 36.340251-1.023669 10.23669 9.724856 10.748525 26.103561 1.02367 36.340251L541.009092 542.875548c-14.331367 15.355036-33.781079 23.544388-54.766294 24.056222h-1.023669z" fill="#ffffff" p-id="3065"></path></svg>
|
||||
</b>
|
||||
<b class="MaxBtn" @click="MTxtAdtxt(item,index)" style="background-color: #1c0099;">
|
||||
<svg t="1685694820833" class="icon" viewBox="0 0 1025 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="10080" width="15" height="15">
|
||||
<path
|
||||
@@ -31,7 +47,7 @@
|
||||
fill="#ffffff" p-id="10081"></path>
|
||||
</svg>
|
||||
</b>
|
||||
<b class="MaxBtn" @click="MTxtPic(item,index)" style="background-color: #13bc20;right: 40px;">
|
||||
<b class="MaxBtn" @click="MTxtPic(item,index)" style="background-color: #13bc20;">
|
||||
<svg t="1684978324047" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="1967" width="15" height="15">
|
||||
<path
|
||||
@@ -39,14 +55,26 @@
|
||||
fill="#ffffff" p-id="1968"></path>
|
||||
</svg>
|
||||
</b>
|
||||
<!-- 回车 -->
|
||||
<b class="MaxBtn" @click="addReturn(item,index)" style="background-color: #f0d22c;">
|
||||
<svg t="1689578654755" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3402" width="16" height="16"><path d="M350.814815 797.392593c-5.499259 0-10.903704-2.085926-15.075556-6.257778l-113.777778-113.777778c-8.343704-8.343704-8.343704-21.807407 0-30.151111l0.18963-0.18963 113.588148-113.588148c8.343704-8.343704 21.807407-8.343704 30.151111 0s8.343704 21.807407 0 30.151111L267.188148 662.281481l98.702222 98.702223c8.343704 8.343704 8.343704 21.807407 0 30.151111-4.171852 4.171852-9.576296 6.257778-15.075555 6.257778z" p-id="3403" fill="#ffffff"></path><path d="M604.728889 683.614815h-367.881482c-11.757037 0-21.333333-9.576296-21.333333-21.333334s9.576296-21.333333 21.333333-21.333333h367.881482c71.86963 0 130.37037-58.500741 130.37037-130.37037v-208.592593c0-11.757037 9.576296-21.333333 21.333334-21.333333s21.333333 9.576296 21.333333 21.333333v208.592593c0 46.08-18.014815 89.505185-50.820741 122.216296C694.139259 665.6 650.714074 683.614815 604.728889 683.614815z" p-id="3404" fill="#ffffff"></path></svg>
|
||||
</b>
|
||||
<!-- <b class="MaxBtn" @click="MTxtTable(item,index)" style="background-color: #e07404;right:40px;">
|
||||
<i class="el-icon-document-add"></i>
|
||||
</b> -->
|
||||
<b class="MaxBtn" @click="MTxtDelet(item,index)" style="background-color: #bc1a13;right: 0px;">
|
||||
<b class="MaxBtn" @click="MTxtDelet(item,index)" style="background-color: #bc1a13;">
|
||||
<i class="el-icon-delete"></i>
|
||||
</b>
|
||||
</b>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="opBtn bottom">
|
||||
<el-button type="success" plain :disabled = "checkList.length > 0 ? false : true" @click="clearSelect">Select None</el-button>
|
||||
<el-button :disabled = "checkList.length > 0 ? false : true" type="danger" plain @click="deleteSelect">Delete</el-button>
|
||||
</div>
|
||||
<div style="height: 20px;"></div>
|
||||
</div>
|
||||
|
||||
@@ -181,8 +209,8 @@
|
||||
<b>{{lineStyle.titleTop}}</b>
|
||||
</p>
|
||||
<div class="lineAll" :style="'width:'+lineStyle.tabwith+'%'">
|
||||
<div v-for="item in lineTable" class="lineTit">
|
||||
<div v-for="(eqrt,iner) in item" :style="'width:'+lineStyle.arrwith[iner]+'%'">
|
||||
<div v-for="(item, index) in lineTable" class="lineTit" :key="index">
|
||||
<div v-for="(eqrt,iner) in item" :style="'width:'+lineStyle.arrwith[iner]+'%'" :key="iner">
|
||||
{{eqrt}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -196,11 +224,36 @@
|
||||
</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog ref="multAdd" title="Html layOut" z-index="1000"
|
||||
:visible.sync="multAddVisible"
|
||||
width="800px">
|
||||
<div>
|
||||
<div class="logtips">
|
||||
<p >Paste the contents of the wold file here, delete the carriage return at the end and click "Submit".</p>
|
||||
</div>
|
||||
<div class="istitle" v-if="saveMode == 'edit'">
|
||||
<span>Title set: </span>
|
||||
<el-radio-group v-model="multAdd.isTitle">
|
||||
<el-radio :label="0">Is not title</el-radio>
|
||||
<el-radio :label="1">Is title</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<vue-ueditor-wrap v-model="wordText" :config="editorConfig" editor-id="editor-demo-01"></vue-ueditor-wrap>
|
||||
</div>
|
||||
<span slot="footer">
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="multAddVisible = false">Cancel</el-button>
|
||||
<el-button v-if="saveMode == 'mult'" type="primary" @click="saveMultAdd">Add</el-button>
|
||||
<el-button v-if="saveMode == 'edit'" type="primary" @click="saveEdit">Save</el-button>
|
||||
<el-button v-if="saveMode == 'addOneText'" type="primary" @click="saveAddOne">Add</el-button>
|
||||
</span>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import VueUeditorWrap from 'vue-ueditor-wrap'; // ES6 Module
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -212,6 +265,7 @@
|
||||
txtStyle: {
|
||||
text: '',
|
||||
},
|
||||
checkList:[], // 复选框
|
||||
txtVisible: false,
|
||||
lineStyle: {
|
||||
titleTop: '',
|
||||
@@ -230,15 +284,187 @@
|
||||
imageUrl: '',
|
||||
width: '500'
|
||||
},
|
||||
pictVisible: false,
|
||||
wordText:'',
|
||||
editorConfig: {
|
||||
// 访问 UEditor 静态资源的根路径,可参考 https://hc199421.gitee.io/vue-ueditor-wrap/#/faq
|
||||
UEDITOR_HOME_URL: "/UEditor/",
|
||||
// serverUrl: "//ueditor.zhenghaochuan.com/cos",
|
||||
serverUrl: "",
|
||||
|
||||
},
|
||||
pictVisible:false,
|
||||
multAddVisible:false,
|
||||
multAdd:{
|
||||
// 批量添加项
|
||||
article_id:null,
|
||||
pre_id:null,
|
||||
|
||||
contents:[], // 识别出的word引用数组
|
||||
article_main_id:null,
|
||||
isTitle:0
|
||||
|
||||
},
|
||||
saveMode:''
|
||||
|
||||
};
|
||||
},
|
||||
|
||||
created() {
|
||||
this.getDate()
|
||||
},
|
||||
|
||||
components:{
|
||||
VueUeditorWrap
|
||||
},
|
||||
methods: {
|
||||
// 清空多选
|
||||
clearSelect(){
|
||||
this.checkList = []
|
||||
},
|
||||
// 批量删除选中
|
||||
deleteSelect(){
|
||||
this.$confirm('Are you sure you want to delete these?', 'Tips', {
|
||||
confirmButtonText: 'Sure',
|
||||
cancelButtonText: 'Cancel',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$api
|
||||
.post('api/Production/delWebMains', {
|
||||
'ids':this.checkList,
|
||||
} ).then((res)=>{
|
||||
if (res.code == 0) {
|
||||
this.checkList = []
|
||||
this.getDate()
|
||||
}else{
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
}).catch(() => {
|
||||
|
||||
});
|
||||
},
|
||||
// 添加空白行
|
||||
addReturn(item, index){
|
||||
this.$api
|
||||
.post('api/Production/addWebMainEmpty', {
|
||||
'article_id':this.Art_web_Id,
|
||||
'pre_id': item.article_main_id
|
||||
} ).then((res)=>{
|
||||
if (res.code == 0) {
|
||||
this.getDate()
|
||||
}else{
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 显示批量添加窗口
|
||||
showMultAdd(item,index){
|
||||
this.multAdd.article_id = this.Art_web_Id;
|
||||
this.multAdd.pre_id = item.article_main_id;
|
||||
this.multAddVisible = true
|
||||
this.saveMode = 'mult'
|
||||
// console.log(this.multAdd,'multAdd')
|
||||
},
|
||||
// 提交批量添加数据
|
||||
saveMultAdd(){
|
||||
var pp = this.wordText.split('</p>')
|
||||
var ss = []
|
||||
var re = /<[^>]+>/gi;
|
||||
var noP = /<p>/gi;
|
||||
// var nbsp = / /gi;
|
||||
pp.forEach(element => {
|
||||
// element = element.replace(re, "")
|
||||
// element = element.replace(nbsp,"")
|
||||
element = element.replace(noP,"")
|
||||
ss.push(element)
|
||||
});
|
||||
// 去掉最后一个数据
|
||||
console.log(ss[ss.length-1].length)
|
||||
if(ss[ss.length-1].length <= 0){
|
||||
this.multAdd.contents = ss.slice(0,-1)
|
||||
}else{
|
||||
this.multAdd.contents = ss
|
||||
}
|
||||
this.multAdd.contents.length > 0 ? this.wordSubmit() : this.$message.error('Please enter content in the editor before submitting!');
|
||||
},
|
||||
// 发送后台
|
||||
wordSubmit(){
|
||||
console.log(this.multAdd.contents)
|
||||
this.$api
|
||||
.post('api/Production/addWebMains', {
|
||||
'article_id': this.multAdd.article_id,
|
||||
'pre_id': this.multAdd.pre_id,
|
||||
'contents':this.multAdd.contents
|
||||
} ).then((res)=>{
|
||||
if (res.code == 0) {
|
||||
this.multAddVisible = false
|
||||
this.multAdd.contents = []
|
||||
this.multAdd.pre_id = ''
|
||||
this.wordText = ''
|
||||
this.saveMode = ''
|
||||
this.$message.success('successed!');
|
||||
this.getDate()
|
||||
}else{
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 编辑文本(新)
|
||||
saveEdit(){
|
||||
this.$api
|
||||
.post('api/Production/editWebMain', {
|
||||
'article_main_id': this.multAdd.article_main_id,
|
||||
'type': 'content',
|
||||
'content': this.wordText,
|
||||
'is_title':this.multAdd.isTitle
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Successfully edit text!')
|
||||
this.multAddVisible = false
|
||||
this.multAdd.article_main_id = ''
|
||||
this.wordText = ''
|
||||
this.saveMode = ''
|
||||
this.multAdd.isTitle = 0
|
||||
this.getDate()
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
// 添加段落文本(新)
|
||||
saveAddOne(){
|
||||
this.$api
|
||||
.post('api/Production/addWebMain', {
|
||||
'article_id':this.Art_web_Id ,
|
||||
'pre_id': this.multAdd.pre_id,
|
||||
'type': 'content',
|
||||
'content': this.wordText,
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Successfully add text!')
|
||||
this.multAddVisible = false
|
||||
this.multAdd.pre_id = ''
|
||||
this.wordText = ''
|
||||
this.saveMode = ''
|
||||
this.getDate()
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
// 获取数据
|
||||
getDate() {
|
||||
const loading = this.$loading({
|
||||
@@ -275,11 +501,19 @@
|
||||
|
||||
// 修改段落/图片
|
||||
MTxtEdit(val, num) {
|
||||
// console.log(val,'val')
|
||||
if (val.width == 0) {
|
||||
this.txtVisible = true
|
||||
this.txtStyle = JSON.parse(JSON.stringify(val))
|
||||
this.txtStyle.index = num
|
||||
this.txtStyle.visiTitle = 'Edit Text'
|
||||
this.multAdd.article_id = this.Art_web_Id;
|
||||
this.multAdd.article_main_id = val.article_main_id;
|
||||
this.wordText = val.text
|
||||
this.multAddVisible = true
|
||||
this.multAdd.isTitle = val.is_title
|
||||
this.saveMode = 'edit'
|
||||
// 以前的
|
||||
// this.txtVisible = true
|
||||
// this.txtStyle = JSON.parse(JSON.stringify(val))
|
||||
// this.txtStyle.index = num
|
||||
// this.txtStyle.visiTitle = 'Edit Text'
|
||||
} else {
|
||||
this.picStyle = JSON.parse(JSON.stringify(val));
|
||||
this.picStyle.type = 'img';
|
||||
@@ -289,16 +523,24 @@
|
||||
this.pictVisible = true
|
||||
}
|
||||
},
|
||||
|
||||
// 修改选中
|
||||
handleCheckedChange(val){
|
||||
// console.log(val)
|
||||
},
|
||||
|
||||
// 添加段落
|
||||
MTxtAdtxt(val, num) {
|
||||
this.txtStyle.visiTitle = 'Add Text'
|
||||
this.txtStyle.article_id = this.Art_web_Id;
|
||||
this.txtStyle.pre_id = val.article_main_id;
|
||||
this.txtStyle.type = 'content'
|
||||
this.txtStyle.text = ''
|
||||
this.txtVisible = true
|
||||
this.multAdd.article_id = this.Art_web_Id;
|
||||
this.multAdd.pre_id = val.article_main_id;
|
||||
this.multAddVisible = true
|
||||
this.saveMode = 'addOneText'
|
||||
this.wordText = ''
|
||||
// this.txtStyle.visiTitle = 'Add Text'
|
||||
// this.txtStyle.article_id = this.Art_web_Id;
|
||||
// this.txtStyle.pre_id = val.article_main_id;
|
||||
// this.txtStyle.type = 'content'
|
||||
// this.txtStyle.text = ''
|
||||
// this.txtVisible = true
|
||||
},
|
||||
|
||||
|
||||
@@ -542,6 +784,12 @@
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 隐藏编辑器底部内容 */
|
||||
/deep/ #edui1_bottombar{display: none;}
|
||||
/* 编辑器高度 */
|
||||
/deep/ #edui1_iframeholder{ height: 260px;}
|
||||
.logtips{margin-bottom: 15px; color: #666;}
|
||||
.type_MTxt_item .tools{position: absolute; right: 0; top: 0; z-index: 1; width: 280px;}
|
||||
.lineStyle {
|
||||
border-top: 1px solid #0066994d;
|
||||
padding: 20px 20px 40px 20px;
|
||||
@@ -629,14 +877,15 @@
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.opBtn.top{margin-bottom: 15px;}
|
||||
.opBtn.bottom{margin-top: 15px;}
|
||||
.type_MTxt>div {
|
||||
position: relative;
|
||||
padding: 8px 15px;
|
||||
min-height: 22px;
|
||||
border: 2px dashed #fff;
|
||||
border-radius: 5px;
|
||||
color: #606266;
|
||||
color: #606266; overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
@@ -676,10 +925,10 @@
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.type_MTxt>div .MaxBtn {
|
||||
position: absolute;
|
||||
.type_MTxt>div .MaxBtn { display:inline-block; float: left; margin-left: 15px; text-align: right;
|
||||
/* position: absolute;
|
||||
right: 0;
|
||||
top: -1px;
|
||||
top: -1px; */
|
||||
color: #fff;
|
||||
border-radius: 50px;
|
||||
font-size: 15.5px;
|
||||
@@ -756,4 +1005,7 @@
|
||||
height: 120px;
|
||||
display: block;
|
||||
}
|
||||
.istitle{margin: 20px 0;}
|
||||
.Ptitle{background: rgb(23, 138, 184); padding: 4px; margin: 15px 0;}
|
||||
.Ptitle p{margin-bottom: 0 !important; font-weight: bold; color: #fff !important; font-style: italic;}
|
||||
</style>
|
||||
|
||||
@@ -83,6 +83,9 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Begin Page Number :" prop="beginPage">
|
||||
<el-input-number :min="1" :max="Math.ceil(userListNum/EmailData.pagesize)" v-model="EmailData.beginPage" label="Page Number"></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="Scheduled Tasks :" prop="frequency">
|
||||
<el-radio-group v-model="EmailData.frequency">
|
||||
<el-radio label="day" style="display: block;margin: 10px 0 0 0;">
|
||||
@@ -98,7 +101,7 @@
|
||||
<span style="margin: 0 0 0 5px;">(explanatory note: 1st - 5th)</span>
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="d_rol">
|
||||
<h3>
|
||||
@@ -299,6 +302,7 @@
|
||||
substance_bom: '',
|
||||
substanceOld: '',
|
||||
frequency: 'day',
|
||||
beginPage:1 // 开始页数
|
||||
},
|
||||
keyValue: 0,
|
||||
userListNum: 0,
|
||||
@@ -864,8 +868,6 @@
|
||||
// artHtml)
|
||||
// }
|
||||
|
||||
|
||||
|
||||
this.$api
|
||||
.post('api/Promotion/addPromotion', this.EmailData)
|
||||
.then(res => {
|
||||
|
||||
1576
src/components/page/editPublicRefRdit.vue
Normal file
1576
src/components/page/editPublicRefRdit.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -14,14 +14,14 @@
|
||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
|
||||
:value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
<el-select v-model="query.board_group_id" placeholder="Please select a group" @change="getDate"
|
||||
<!-- <el-select v-model="query.board_group_id" placeholder="Please select a group" @change="getDate"
|
||||
style="margin-left: 10px;">
|
||||
<el-option v-for="item in df_group" :label="item.group_name" :key="item.board_group_id"
|
||||
:value="item.board_group_id">
|
||||
{{item.group_name}}
|
||||
<span v-if="item.person_num!=undefined" style="color: #bbb;">({{item.person_num}})</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-select> -->
|
||||
<el-button type="warning" icon="el-icon-circle-plus-outline" @click="addGroup"
|
||||
style="margin-left: 10px;">
|
||||
Group management</el-button>
|
||||
@@ -29,64 +29,95 @@
|
||||
Add new board</el-button>
|
||||
</div>
|
||||
|
||||
<!-- 期刊基本信息 -->
|
||||
<el-card shadow="never" style="margin-bottom: 20px; border-color: #409EFF;" class="jourInfoBox" v-if="journalInfo.title">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24" class="jourInfo">
|
||||
<div class="" style="vertical-align: top;"><span>Journal : </span>
|
||||
<el-link type="primary" :href="journalInfo.website" v-if="journalInfo.website !=''" target="_blank">
|
||||
<em>{{journalInfo.title}}({{journalInfo.abbr}})</em>
|
||||
</el-link></div>
|
||||
<div class=""><span>Editor-in-Chief : </span><em>{{journalInfo.editorinchief}}</em></div>
|
||||
<div class=""><span>Email : </span><em>{{journalInfo.email}}</em></div>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<div class="lieitem">
|
||||
<span>Hindex: <em>{{journalInfo.index_num}} / {{ journalInfo.boards_count }}</em></span>
|
||||
<span>Median: <em>{{journalInfo.median}}</em></span>
|
||||
<span>Avg: <em>{{journalInfo.avg}}</em></span>
|
||||
</div>
|
||||
</el-col>
|
||||
<!-- <el-col :span="6"><div class=""><span>Website: </span><em>{{journalInfo.website}}</em></div></el-col>
|
||||
<el-col :span="6"><div class=""><span>Aim_web: </span><em>{{journalInfo.aim_web}}</em></div></el-col> -->
|
||||
</el-row>
|
||||
</el-card>
|
||||
<!-- end -->
|
||||
|
||||
<el-table :data="tableData_0" border stripe class="table nullTable" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||||
<el-table-column prop="name" label="Realname"></el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column prop="hindex" label="H-WOS" width="110px" align="center"></el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column label="Contributions" align="center"></el-table-column>
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center"></el-table-column>
|
||||
<el-table-column label="Grade" width="110px" align="center"></el-table-column>
|
||||
<el-table-column prop="Wosindex" label="Wosindex" width="110px" align="center"></el-table-column>
|
||||
<el-table-column prop="remark" label="Remark" align="center"></el-table-column>
|
||||
<!-- <el-table-column label="Grade" width="110px" align="center"></el-table-column> -->
|
||||
<!-- <el-table-column label="Remarks" width="180"></el-table-column> -->
|
||||
<el-table-column label="" width="190" align="center"></el-table-column>
|
||||
<el-table-column label="" width="300" align="center"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
<p class="shen_fen" style="margin-top: 0;" v-if="tableData_A.length!=0">Editor-in-Chief</p>
|
||||
<el-table :data="tableData_A" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" :show-header="false"
|
||||
v-if="tableData_A.length!=0">
|
||||
<el-table-column prop="name" label="Realname">
|
||||
<el-table-column prop="Realname" label="Realname">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.tuser_id)" class="perSonGo">{{scope.row.name}}</p>
|
||||
<p @click="perSonnel(scope.row.user_id)" class="perSonGo">{{scope.row.realname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<el-table-column label="Contributions" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="flexbox">
|
||||
<div>Articles: <em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em> /
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em></div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Grade" width="110px" align="center">
|
||||
<el-table-column prop="Wosindex" label="Wosindex" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p style="display: inline-block;" v-if="scope.row.starList_mark!=0">
|
||||
<img src="../../assets/img/star-all.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==1" class="starSty">
|
||||
<img src="../../assets/img/star-traf.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==0" class="starSty">
|
||||
<img src="../../assets/img/star-none.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==2" class="starSty">
|
||||
<img src="../../assets/img/star-all.png" v-if="scope.row.starList_mark>8" class="starSty">
|
||||
<b style="font-size: 15px;color: #b77614;" v-if="scope.row.starList_mark>8">×
|
||||
{{scope.row.starList_mark}}</b>
|
||||
</p>
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="Remarks" width="180">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.remark}}
|
||||
<b @click="BoxRemark(scope.row)" style="margin-left:10px;cursor: pointer;color:#006699;"
|
||||
class="el-icon-edit"></b>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="" width="190" align="center">
|
||||
<el-table-column prop="remark" label="Remark" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin-bottom: 5px;" v-if="scope.row.remark != ''">{{scope.row.remark}}</div>
|
||||
<div>
|
||||
<el-button v-if="scope.row.remark != ''" size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Edit Remark</el-button>
|
||||
<el-button v-else size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Add Remark</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="perSonnel(scope.row.user_id)">User Edit</el-button>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="handleEdit(scope.$index, scope.row)">Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete"
|
||||
@click="bhandleEdit(scope.$index, scope.row)">Board Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" style="margin-top: 10px;"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -95,108 +126,237 @@
|
||||
<el-table :data="tableData_B" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" :show-header="false"
|
||||
v-if="tableData_B.length!=0">
|
||||
<el-table-column prop="name" label="Realname">
|
||||
<el-table-column prop="Realname" label="Realname">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.tuser_id)" class="perSonGo">{{scope.row.name}}</p>
|
||||
<p @click="perSonnel(scope.row.user_id)" class="perSonGo">{{scope.row.realname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<el-table-column label="Contributions" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="flexbox">
|
||||
<div>Articles: <em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em> /
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em></div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Grade" width="110px" align="center">
|
||||
<el-table-column prop="Wosindex" label="Wosindex" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p style="display: inline-block;" v-if="scope.row.starList_mark!=0">
|
||||
<img src="../../assets/img/star-all.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==1" class="starSty">
|
||||
<img src="../../assets/img/star-traf.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==0" class="starSty">
|
||||
<img src="../../assets/img/star-none.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==2" class="starSty">
|
||||
<img src="../../assets/img/star-all.png" v-if="scope.row.starList_mark>8" class="starSty">
|
||||
<b style="font-size: 15px;color: #b77614;" v-if="scope.row.starList_mark>8">×
|
||||
{{scope.row.starList_mark}}</b>
|
||||
</p>
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="Remarks" width="180">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.remark}}
|
||||
<b @click="BoxRemark(scope.row)" style="margin-left:10px;cursor: pointer;color:#006699;"
|
||||
class="el-icon-edit"></b>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="" width="190" align="center">
|
||||
<el-table-column prop="remark" label="Remark" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin-bottom: 5px;" v-if="scope.row.remark != ''">{{scope.row.remark}}</div>
|
||||
<div>
|
||||
<el-button v-if="scope.row.remark != ''" size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Edit Remark</el-button>
|
||||
<el-button v-else size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Add Remark</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="perSonnel(scope.row.user_id)">User Edit</el-button>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="handleEdit(scope.$index, scope.row)">Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete"
|
||||
@click="bhandleEdit(scope.$index, scope.row)">Board Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" style="margin-top: 10px;"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-table>
|
||||
<p class="shen_fen" v-if="tableData_C.length!=0">Editorial Board Members</p>
|
||||
<div v-for="(item,key) in tableData_C" v-if="tableData_C.length!=0">
|
||||
<p class="shen_number">{{key}}</p>
|
||||
<el-table :data="item" border stripe class="table" ref="multipleTable" :show-header="false"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" style="margin-bottom: 20px;">
|
||||
<el-table-column prop="name" label="Realname">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.tuser_id)" class="perSonGo">{{scope.row.name}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Grade" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p style="display: inline-block;" v-if="scope.row.starList_mark!=0">
|
||||
<img src="../../assets/img/star-all.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==1" class="starSty">
|
||||
<img src="../../assets/img/star-traf.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==0" class="starSty">
|
||||
<img src="../../assets/img/star-none.png" v-for="item in scope.row.starList"
|
||||
v-if="scope.row.starList_mark<=8&&item.star==2" class="starSty">
|
||||
<img src="../../assets/img/star-all.png" v-if="scope.row.starList_mark>8"
|
||||
class="starSty">
|
||||
<b style="font-size: 15px;color: #b77614;" v-if="scope.row.starList_mark>8">×
|
||||
{{scope.row.starList_mark}}</b>
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="Remarks" width="180">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.remark}}
|
||||
<b @click="BoxRemark(scope.row)" style="margin-left:10px;cursor: pointer;color:#006699;"
|
||||
class="el-icon-edit"></b>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="" width="190" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="tableData_C[0]">
|
||||
<!-- 没有分组时 -->
|
||||
<el-table :data="tableData_C" border stripe class="table" ref="multipleTable" :show-header="false"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" style="margin-bottom: 20px;">
|
||||
<el-table-column prop="Realname" label="Realname">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.user_id)" class="perSonGo">{{scope.row.realname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column label="Contributions" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="flexbox">
|
||||
<div>Articles: <em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em> /
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em></div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="Wosindex" label="Wosindex" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="Remark" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin-bottom: 5px;" v-if="scope.row.remark != ''">{{scope.row.remark}}</div>
|
||||
<div>
|
||||
<el-button v-if="scope.row.remark != ''" size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Edit Remark</el-button>
|
||||
<el-button v-else size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Add Remark</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="perSonnel(scope.row.user_id)">User Edit</el-button>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="handleEdit(scope.$index, scope.row)">Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
@click="bhandleEdit(scope.$index, scope.row)">Board Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" style="margin-top: 10px;"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div v-else>
|
||||
<!-- 有分组时 -->
|
||||
<div>
|
||||
<div v-for="(item,key1) of tableData_C" :key="key1">
|
||||
<div v-if="key1 == 'nogroup'">
|
||||
<!-- 显示无分组 -->
|
||||
<el-table :data="item" border stripe class="table" ref="multipleTable" :show-header="false"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" style="margin-bottom: 20px;">
|
||||
<el-table-column prop="Realname" label="Realname">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.user_id)" class="perSonGo">{{scope.row.realname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column label="Contributions" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="flexbox">
|
||||
<div>Articles: <em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em> /
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em></div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="Wosindex" label="Wosindex" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="Remark" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin-bottom: 5px;" v-if="scope.row.remark != ''">{{scope.row.remark}}</div>
|
||||
<div>
|
||||
<el-button v-if="scope.row.remark != ''" size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Edit Remark</el-button>
|
||||
<el-button v-else size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Add Remark</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="perSonnel(scope.row.user_id)">User Edit</el-button>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="bhandleEdit(scope.$index, scope.row)">Board Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" style="margin-top: 10px;"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div v-for="(item,key) of tableData_C" :key="key">
|
||||
<div v-if="key !== 'nogroup'">
|
||||
<!-- 显示有分组 -->
|
||||
<p class="shen_number" v-if="key !== 'nogroup'">{{key}}</p>
|
||||
<el-table :data="item" border stripe class="table" ref="multipleTable" :show-header="false"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" style="margin-bottom: 20px;">
|
||||
<el-table-column prop="Realname" label="Realname">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.user_id)" class="perSonGo">{{scope.row.realname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" label="Email"></el-table-column>
|
||||
<el-table-column label="Contributions" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="flexbox">
|
||||
<div>Articles: <em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em> /
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em></div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- <el-table-column prop="hindex" label="H-WOS" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="Wosindex" label="Wosindex" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="Remark" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div style="margin-bottom: 5px;" v-if="scope.row.remark != ''">{{scope.row.remark}}</div>
|
||||
<div>
|
||||
<el-button v-if="scope.row.remark != ''" size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Edit Remark</el-button>
|
||||
<el-button v-else size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="BoxRemark(scope.row)"> Add Remark</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="perSonnel(scope.row.user_id)">User Edit</el-button>
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="bhandleEdit(scope.$index, scope.row)">Board Edit</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" style="margin-top: 10px;"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 添加弹出框 -->
|
||||
@@ -214,18 +374,19 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="150px" v-if="dis_able">
|
||||
<el-form-item label="Email :">
|
||||
<el-form-item label="Email :" prop="email">
|
||||
{{addForm.email}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Account :" prop="account">
|
||||
<!-- <el-form-item label="Account :" prop="account">
|
||||
{{addForm.account}}
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="Realname :" prop="name">
|
||||
<el-input v-model="addForm.name" style="width: 300px;"></el-input>
|
||||
{{addForm.name}}
|
||||
<!-- <el-input v-model="addForm.name" style="width: 300px;"></el-input> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="Picture :">
|
||||
<!-- <el-form-item label="Picture :" prop="board_icon">
|
||||
<span slot="label">
|
||||
<i style="color: #F56C6C;">*</i>
|
||||
<i style="color: #F56C6C;">*</i>
|
||||
Picture
|
||||
</span>
|
||||
<el-upload class="avatar-uploader" :action="baseUrl+'api/Board/up_boardIcon_file'"
|
||||
@@ -234,7 +395,7 @@
|
||||
<img v-if="imageUrl" :src="imageUrl" class="avatar">
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="Journal :" prop="journal_id">
|
||||
<el-select v-model="addForm.journal_id" placeholder="Please select a journal" @change="getJourAdd()"
|
||||
style="width: 300px;">
|
||||
@@ -255,127 +416,25 @@
|
||||
<el-option v-for="item in add_group" :label="item.group_name" :key="item.board_group_id"
|
||||
:value="item.board_group_id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Homepage :" prop="website">
|
||||
<el-input v-model="addForm.website"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Academic degree :" prop="dr">
|
||||
<el-input v-model="addForm.dr"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Technical :" prop="title">
|
||||
<el-select v-model="addForm.title" placeholder="Please select a technical" style="width: 300px;">
|
||||
<el-option v-for="item in title_options" :key="item.value" :label="item.value"
|
||||
:value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Affiliation :" prop="address">
|
||||
<el-input v-model="addForm.address"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Country :" prop="country">
|
||||
<el-select v-model="addForm.country" filterable placeholder="Please select a country"
|
||||
value-key="groupID" style="width: 300px;">
|
||||
<el-option v-for="item in add_country" :label="item.en_name" :key="item.en_name"
|
||||
:value="item.en_name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Field :" prop="field">
|
||||
</el-form-item>
|
||||
<el-form-item label="Research areas :" prop="field">
|
||||
<el-input v-model="addForm.field" type="textarea" rows="5"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="addVisible = false">Cancel</el-button>
|
||||
<!-- 这这这 -->
|
||||
<el-button type="primary" @click="saveAdd()" v-if="dis_able">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
|
||||
<!-- 编辑弹出框 -->
|
||||
<el-dialog title="Edit Editorial board" :visible.sync="editVisible" width="750px">
|
||||
<el-form ref="edit_Form" :model="editForm" :rules="rules" label-width="150px">
|
||||
<el-form-item label="Email :">
|
||||
{{editForm.email}}
|
||||
</el-form-item>
|
||||
<el-form-item label="Realname :" prop="name">
|
||||
<el-input v-model="editForm.name" style="width: 300px;"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Picture :">
|
||||
<span slot="label">
|
||||
<i style="color: #F56C6C;">*</i>
|
||||
Picture
|
||||
</span>
|
||||
<el-upload class="avatar-uploader" :action="baseUrl+'api/Board/up_boardIcon_file'"
|
||||
:show-file-list="false" name="boardIcon" :on-success="handleAvatarSuccess_"
|
||||
:on-error="handleAvatarError_" :before-upload="beforeAvatarUpload_">
|
||||
<img v-if="imageUrl_" :src="imageUrl_" class="avatar">
|
||||
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="Journal :">
|
||||
{{query.journal_title}}
|
||||
<!-- <el-select v-model="editForm.journal_id" placeholder="Please select a journal"
|
||||
@change="getJourEdit(editForm.journal_id)" style="width: 300px;">
|
||||
<el-option v-for="item in add_jour" :label="item.title" :key="item.journal_id"
|
||||
:value="item.journal_id"></el-option>
|
||||
</el-select> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="Identity :" prop="type">
|
||||
<el-radio-group v-model="editForm.type">
|
||||
<el-radio :label="0">Editor-in-Chief</el-radio>
|
||||
<el-radio :label="1">Vice Editor-in-Chief</el-radio>
|
||||
<el-radio :label="2">Editorial Board Members</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Group :" prop="board_group_id" v-if="editForm.type==2">
|
||||
<el-select v-model="editForm.board_group_id" placeholder="Please select a group"
|
||||
style="width: 300px;">
|
||||
<el-option v-for="item in edit_group" :label="item.group_name" :key="item.board_group_id"
|
||||
:value="item.board_group_id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Homepage :" prop="website">
|
||||
<el-input v-model="editForm.website"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Academic degree :" prop="dr">
|
||||
<el-input v-model="editForm.dr"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Technical :" prop="title">
|
||||
<el-select v-model="editForm.title" placeholder="Please select a technical" style="width: 300px;">
|
||||
<el-option v-for="item in title_options" :key="item.value" :label="item.value"
|
||||
:value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Affiliation :" prop="address">
|
||||
<el-input v-model="editForm.address"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Country :" prop="country">
|
||||
<el-select v-model="editForm.country" filterable placeholder="Please select a country"
|
||||
value-key="groupID" style="width: 300px;">
|
||||
<el-option v-for="item in add_country" :label="item.en_name" :key="item.en_name"
|
||||
:value="item.en_name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Field :" prop="field">
|
||||
<el-input v-model="editForm.field" type="textarea" autosize></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="editVisible = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveEdit()">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</el-dialog>
|
||||
|
||||
<!-- 标记弹出框 -->
|
||||
<el-dialog title="Remarks" :visible.sync="remarkBox" width="550px">
|
||||
<el-form ref="remark" :model="remarkMes" label-width="130px">
|
||||
<el-form-item label="Editorial board :">
|
||||
<p style="line-height: 20px;margin-top: 6px;">{{remarkMes.realname}}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Email :">
|
||||
<p style="line-height: 20px;margin-top: 6px;">{{remarkMes.email}}</p>
|
||||
</el-form-item>
|
||||
<el-form-item label="Content :">
|
||||
</el-form-item>
|
||||
<el-form-item label="Remark :">
|
||||
<el-input type="textarea" rows="5" v-model="remarkMes.remark"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -384,15 +443,42 @@
|
||||
<el-button type="primary" @click="saveRemark">Save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 编委弹窗 -->
|
||||
<el-dialog title="Edit Board" :visible.sync="BoardEditorFormVisible" width="800px">
|
||||
<el-form ref="BoardEditorForm" :model="BoardEditorForm" label-width="130px" :rules="BoardEditorFormRule">
|
||||
<el-form-item label="Type :">
|
||||
<el-radio-group v-model="BoardEditorForm.type">
|
||||
<el-radio :label="0">Editor-in-Chief</el-radio>
|
||||
<el-radio :label="1">Vice Editor-in-Chief</el-radio>
|
||||
<el-radio :label="2">Editorial Board Members</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="Group :" v-if="BoardEditorForm.type == 2">
|
||||
<el-select v-model="BoardEditorForm.board_group_id" placeholder="Please select a group"
|
||||
style="width: 300px;">
|
||||
<el-option v-for="item in edit_group" :label="item.group_name" :key="item.board_group_id"
|
||||
:value="item.board_group_id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Research Areas :" prop="research_areas">
|
||||
<el-input type="textarea" rows="5" v-model="BoardEditorForm.research_areas"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="BoardEditorFormVisible = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveBoard">Save</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
journalInfo:{}, // 选中期刊信息
|
||||
baseUrl: this.Common.baseUrl,
|
||||
edit_id: localStorage.getItem('U_id'),
|
||||
now_year: 0,
|
||||
@@ -407,8 +493,16 @@
|
||||
add_country: [],
|
||||
addVisible: false,
|
||||
editVisible: false,
|
||||
BoardEditorForm:{
|
||||
btj_id:null,
|
||||
type:0,
|
||||
board_group_id:null,
|
||||
research_areas:''
|
||||
},
|
||||
BoardEditorFormVisible:false,
|
||||
addForm: {
|
||||
email: '',
|
||||
board_icon:'',
|
||||
board_group_id: -1
|
||||
},
|
||||
editForm: {
|
||||
@@ -629,6 +723,13 @@
|
||||
message: 'Please select a country',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
},
|
||||
BoardEditorFormRule:{
|
||||
research_areas: [{
|
||||
required: true,
|
||||
message: 'Please input research areas',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
}
|
||||
};
|
||||
},
|
||||
@@ -646,7 +747,7 @@
|
||||
});
|
||||
this.$api
|
||||
.post('api/Board/getBoards', this.query)
|
||||
.then(res => {
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data.boards.main != undefined) {
|
||||
this.tableData_A = res.data.boards.main;
|
||||
@@ -665,13 +766,37 @@
|
||||
this.tableData_B = []
|
||||
}
|
||||
if (res.data.boards.member != undefined) {
|
||||
// this.tableData_C = res.data.boards.member;
|
||||
//console.log(tablec,'tablec')
|
||||
// this.tableData_C = tablec.member;
|
||||
|
||||
if(res.data.boards.member[0]){
|
||||
//console.log('是数组',tablec.member[0])
|
||||
}else{
|
||||
//console.log('是对象')
|
||||
if(res.data.boards.member.nogroup && !res.data.boards.member.nogroup[0]){
|
||||
//console.log('是对象没有分组')
|
||||
var arr = []
|
||||
arr.push(res.data.boards.member.nogroup)
|
||||
res.data.boards.member.nogroup = arr
|
||||
//console.log('处理后的格式')
|
||||
}
|
||||
}
|
||||
|
||||
this.tableData_C = res.data.boards.member;
|
||||
|
||||
for (var i = 0; i < this.tableData_C.length; i++) {
|
||||
this.getScoreDataC(i, this.tableData_C[i].score)
|
||||
}
|
||||
|
||||
} else {
|
||||
this.tableData_C = []
|
||||
}
|
||||
|
||||
if(res.data.journal){
|
||||
this.journalInfo = res.data.journal
|
||||
// console.log(this.journalInfo,'this.journalInfo')
|
||||
}
|
||||
loading.close();
|
||||
|
||||
} else {
|
||||
@@ -760,6 +885,29 @@
|
||||
this.getgroup()
|
||||
},
|
||||
|
||||
// 编辑编委
|
||||
saveBoard(){
|
||||
this.$refs.BoardEditorForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('/api/Board/editBoard', this.BoardEditorForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.getDate()
|
||||
this.$refs.BoardEditorForm.resetFields()
|
||||
this.$message.success('succeed!');
|
||||
this.BoardEditorFormVisible = false
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}else{
|
||||
return false;
|
||||
}})
|
||||
},
|
||||
|
||||
// 评分
|
||||
getScoreDataA(i, e) {
|
||||
@@ -852,8 +1000,10 @@
|
||||
}
|
||||
},
|
||||
// 分组管理
|
||||
addGroup() {
|
||||
this.$router.push('/editorGroup');
|
||||
addGroup() {
|
||||
console.log(this.query.journal_id,'this.query.journal_id')
|
||||
this.$router.push('/editorGroup?journal_id='+this.query.journal_id);
|
||||
|
||||
},
|
||||
|
||||
// 用户跳转
|
||||
@@ -898,7 +1048,17 @@
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 编辑编委操作
|
||||
bhandleEdit(index, row) {
|
||||
this.$nextTick(() => {
|
||||
// console.log(row,'row')
|
||||
this.BoardEditorForm.btj_id = row.btj_id
|
||||
this.BoardEditorForm.type = row.type
|
||||
this.BoardEditorForm.board_group_id = row.board_group_id
|
||||
this.BoardEditorForm.research_areas = row.research_areas
|
||||
this.BoardEditorFormVisible = true
|
||||
})
|
||||
},
|
||||
// 查找账号
|
||||
saerNa_U() {
|
||||
if (this.addForm.email != '') {
|
||||
@@ -934,12 +1094,18 @@
|
||||
saveAdd() {
|
||||
this.$refs.add_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.addForm.board_icon == '' || this.addForm.board_icon == undefined) {
|
||||
this.$message.error('Please upload the picture!');
|
||||
return
|
||||
}
|
||||
// if (this.addForm.board_icon == '' || this.addForm.board_icon == undefined) {
|
||||
// this.$message.error('Please upload the picture!');
|
||||
// return
|
||||
// }
|
||||
this.$api
|
||||
.post('api/Board/addBoard', this.addForm)
|
||||
.post('api/Board/addBoard', {
|
||||
'user_id': this.addForm.user_id,
|
||||
'journal_id': this.addForm.journal_id,
|
||||
'board_group_id': this.addForm.board_group_id,
|
||||
'type': this.addForm.type,
|
||||
'research_areas': this.addForm.field
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.addVisible = false;
|
||||
@@ -962,7 +1128,7 @@
|
||||
|
||||
// 添加关闭
|
||||
addVisCancle() {
|
||||
this.$refs.add_Form.resetFields();
|
||||
this.$refs['add_Form'].resetFields();
|
||||
this.addForm.email = ''
|
||||
this.dis_able = false
|
||||
},
|
||||
@@ -1041,11 +1207,12 @@
|
||||
|
||||
// 删除操作
|
||||
handleDelete(index, row) {
|
||||
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete?', 'Tips', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Board/delBoard', row)
|
||||
.then(res => {
|
||||
@@ -1071,14 +1238,16 @@
|
||||
// 标记弹出框
|
||||
BoxRemark(e) {
|
||||
this.remarkBox = true;
|
||||
this.remarkMes.realname = e.name;
|
||||
this.remarkMes.user_id = e.tuser_id;
|
||||
this.remarkMes.email = e.email;
|
||||
this.remarkMes.realname = e.realname;
|
||||
this.remarkMes.btj_id = e.btj_id;
|
||||
this.remarkMes.remark = e.remark;
|
||||
},
|
||||
// 修改标记
|
||||
saveRemark() {
|
||||
this.$api.post('api/User/editRemarkForUser', this.remarkMes)
|
||||
this.$api.post('api/Board/editBoardRemark', {
|
||||
'btj_id': this.remarkMes.btj_id,
|
||||
'remark': this.remarkMes.remark
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Success');
|
||||
@@ -1169,6 +1338,18 @@
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.lieitem{margin-top: 15px;}
|
||||
.lieitem span{
|
||||
display: inline-block; float: left; margin-right: 30px; font-size: 14px; color: #606266;
|
||||
}
|
||||
.lieitem em{font-style: normal; font-weight: bold; font-size: 14px; color: #409EFF; background: #ecf5ff; border-radius: 10px; padding: 4px;}
|
||||
.jourInfoBox{background-color: #ecf5ff; }
|
||||
.jourInfo{ justify-content: space-around !important; align-items: start; color: #606266;}
|
||||
.jourInfo div{width: auto !important; margin-right: 30px; display: inline-block; font-size: 14px;}
|
||||
.jourInfo div em{font-style: normal; font-weight: bold;}
|
||||
.flexbox{display: flex; justify-content: space-between;}
|
||||
.flexbox div{width: 50%;}
|
||||
.flexbox em{font-style: normal; font-weight: bold; font-size: 14px; color: #409EFF; background: #ecf5ff; border-radius: 10px; padding: 4px;}
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
df_jour: [],
|
||||
addVisible: false,
|
||||
addForm: {
|
||||
journal_id: 0,
|
||||
journal_id: this.$route.query.journal_id - 0,
|
||||
journal_title: '',
|
||||
group_name: ''
|
||||
},
|
||||
@@ -71,9 +71,9 @@
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
created() {
|
||||
this.getJour();
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 获取期刊列表
|
||||
getJour() {
|
||||
@@ -84,8 +84,14 @@
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.df_jour = res.data.journals;
|
||||
this.addForm.journal_id = this.df_jour[0].journal_id
|
||||
this.addForm.journal_title = this.df_jour[0].title
|
||||
this.df_jour.map(item => {
|
||||
if(this.addForm.journal_id == item.journal_id){
|
||||
this.addForm.journal_title = item.journal_id
|
||||
this.addForm.journal_title = item.title
|
||||
}
|
||||
})
|
||||
//this.addForm.journal_id = this.df_jour[0].journal_id
|
||||
//this.addForm.journal_title = this.df_jour[0].title
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
@@ -131,6 +137,7 @@
|
||||
|
||||
// 保存添加
|
||||
saveAdd(addForm) {
|
||||
console.log(this.addForm,'this.addForm')
|
||||
this.$refs.add_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
|
||||
82
src/components/page/editorialBoard.vue
Normal file
82
src/components/page/editorialBoard.vue
Normal file
@@ -0,0 +1,82 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header" style="font-size: 14px;"
|
||||
empty-text="New messages (0)" v-loading="loading">
|
||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||
<el-table-column label="Journals" prop="jabbr" align="center"></el-table-column>
|
||||
<el-table-column label="Number" prop="boards_count" align="center"></el-table-column>
|
||||
<el-table-column label="Hindex" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="lieitem flexbox">
|
||||
<span>Hindex: <em>{{scope.row.index_num}} / {{ scope.row.boards_count }}</em></span><br/>
|
||||
<span>Median: <em>{{scope.row.median}}</em></span><br/>
|
||||
<span>Avg: <em>{{scope.row.avg}}</em></span><br/>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="平均H指数" prop="H" align="center"></el-table-column>
|
||||
<el-table-column label="国际化" prop="H" align="center"></el-table-column>
|
||||
<el-table-column label="不活跃系数" prop="H" align="center"></el-table-column> -->
|
||||
<el-table-column width="160" align="center">
|
||||
<template slot-scope="scope">
|
||||
<router-link :to="{path:'/Board-List',query:{id:scope.row.journal_id}}">
|
||||
<el-button type="primary" plain >Detail</el-button></router-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
loading:false,
|
||||
query: {
|
||||
username: localStorage.getItem('U_name'),
|
||||
// journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
|
||||
journal: 0,
|
||||
name: '',
|
||||
state: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
tableData:[],
|
||||
Total:0,
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.getdata();
|
||||
},
|
||||
methods:{
|
||||
// 获取文章列表数据
|
||||
|
||||
getdata() {
|
||||
this.loading = true
|
||||
this.$api
|
||||
.post('api/Monitor/getJournalBoards')
|
||||
.then(res => {
|
||||
if(res.code == 0){
|
||||
|
||||
this.tableData = res.data.journals
|
||||
}
|
||||
this.loading = false
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
this.loading = false
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.flexbox{display: flex; justify-content: space-between;}
|
||||
.lieitem span{
|
||||
display: inline-block; width: 30%;
|
||||
}
|
||||
.lieitem em{font-style: normal; font-weight: bold; font-size: 14px; color: #409EFF; background: #ecf5ff; border-radius: 10px; padding: 4px;}
|
||||
|
||||
|
||||
</style>
|
||||
1205
src/components/page/editorialBoardList.vue
Normal file
1205
src/components/page/editorialBoardList.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -77,11 +77,14 @@
|
||||
<el-table-column prop="company" label="Affiliation"></el-table-column>
|
||||
<el-table-column prop="field" label="Field"></el-table-column>
|
||||
<el-table-column prop="remark" label="Remark" width="160"></el-table-column>
|
||||
<el-table-column label="" width="100" align="center">
|
||||
<el-table-column label="" width="200" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button plain type="primary" icon="el-icon-edit" @click="handleEdit(scope.row)">
|
||||
Edit
|
||||
</el-button>
|
||||
<el-button plain type="danger" icon="el-icon-edit" @click="handleDelete(scope.row)">
|
||||
Delete
|
||||
</el-button>
|
||||
<!-- <div style="margin-top: 12px;">
|
||||
<el-button plain type="warning" @click="handleSend(scope.row)">
|
||||
PROMOTION
|
||||
@@ -545,6 +548,29 @@
|
||||
this.initMajor()
|
||||
},
|
||||
methods: {
|
||||
// 删除灰库用户
|
||||
handleDelete(row){
|
||||
|
||||
this.$confirm(`'Do you want to delete the user? Name: '${row.name}'`, 'prompt', {
|
||||
confirmButtonText: 'Yes',
|
||||
cancelButtonText: 'Cancel',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$api
|
||||
.post('api/User/delAshUser',{'ash_id': row.ash_id})
|
||||
.then(res => {
|
||||
if(res.code == 0){
|
||||
this.$message.success('successed!')
|
||||
this.getDate()
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
}).catch(() => { });
|
||||
|
||||
|
||||
},
|
||||
// 获取国家列表
|
||||
getCountry() {
|
||||
this.$api
|
||||
|
||||
@@ -62,6 +62,10 @@
|
||||
<font>Country :</font>
|
||||
<p class="rm_huid">{{userMessage.country}}</p>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Website :</font>
|
||||
<p class="rm_huid"><el-link v-if="userMessage.website != ''" :href="userMessage.website" target="_blank" type="primary">Personal academic introduction</el-link></p>
|
||||
</div>
|
||||
<div class="rol_mess">
|
||||
<font>Title :</font>
|
||||
<p class="rm_huid">{{userMessage.technical}}</p>
|
||||
@@ -325,6 +329,9 @@
|
||||
:value="item.en_name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="Website :" prop="website">
|
||||
<el-input v-model="MessForm.website" placeholder="eg:http://..."></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Title :" prop="technical">
|
||||
<el-select v-model="MessForm.technical" filterable placeholder="Please select" value-key="groupID"
|
||||
style="width: 200px;">
|
||||
@@ -610,14 +617,16 @@
|
||||
}
|
||||
],
|
||||
df_technical: [{
|
||||
label: 'Prof',
|
||||
label: 'Professor',
|
||||
}, {
|
||||
label: 'Associate Prof.',
|
||||
}, {
|
||||
label: 'Assistant Prof.',
|
||||
}, {
|
||||
label: 'Ph.D.',
|
||||
label: 'Associate Professor',
|
||||
}, {
|
||||
label: 'Assistant Professor',
|
||||
},
|
||||
// {
|
||||
// label: 'Ph.D.',
|
||||
// },
|
||||
{
|
||||
label: 'Researcher',
|
||||
}, {
|
||||
label: 'Associate research fellow',
|
||||
@@ -627,9 +636,38 @@
|
||||
label: 'Engineer',
|
||||
}, {
|
||||
label: 'Senior engineer',
|
||||
}, {
|
||||
label: 'Others',
|
||||
}],
|
||||
},
|
||||
{
|
||||
label: 'Associate Researcher',
|
||||
},
|
||||
{
|
||||
label: 'Lecturer',
|
||||
},
|
||||
{
|
||||
label: 'Associate Chief Physician',
|
||||
},
|
||||
{
|
||||
label: 'Assistant Researcher',
|
||||
},
|
||||
{
|
||||
label: 'Physician',
|
||||
},
|
||||
{
|
||||
label: 'Chief Physician',
|
||||
},
|
||||
{
|
||||
label: 'Senior Lecturer',
|
||||
},
|
||||
{
|
||||
label: 'Research Fellow',
|
||||
},
|
||||
{
|
||||
label: 'Senior Investigator',
|
||||
},
|
||||
// {
|
||||
// label: 'Others',
|
||||
// }
|
||||
],
|
||||
list_year: [{
|
||||
title: '1 Year',
|
||||
id: 1
|
||||
@@ -811,6 +849,7 @@
|
||||
this.userMessage.majorshu = res.data.baseInfo.majorshu
|
||||
this.userMessage.majorStr = res.data.baseInfo.majorStr
|
||||
this.cvitaForm.user_id = res.data.baseInfo.user_id;
|
||||
this.userMessage.website = res.data.baseInfo.website
|
||||
|
||||
this.coreTable = res.data.baseInfo
|
||||
this.cvitaTable = res.data.cvs
|
||||
|
||||
@@ -51,6 +51,50 @@
|
||||
</ul>
|
||||
</el-col>
|
||||
|
||||
<!-- 复审 -->
|
||||
<el-col :span="24">
|
||||
<div style="background-color: #ccc;height: 2px;width: 100%;margin:20px 0 35px 0;"></div>
|
||||
<div class="ma_title" style="height: 100%;">
|
||||
<h2>
|
||||
<!-- <img src="../../assets/img/icon_5.png" alt="" class="icon_img"> -->
|
||||
Second review
|
||||
</h2>
|
||||
Please click on the Re-review button for a second review.
|
||||
</div>
|
||||
<ul class="ta1_uli ta1_ulicad">
|
||||
|
||||
<li v-for="(item,index) in revisionList" :key="index">
|
||||
<!-- <h5>{{item.type}}</h5> -->
|
||||
<div class="btns">
|
||||
<router-link :to="{path:'/Re_review',query:{Art_id:item.art_rev_id}}" style="display: inline-block; margin-left: 10px;">
|
||||
<el-button type="success" plain >Re-review</el-button>
|
||||
</router-link>
|
||||
</div>
|
||||
<router-link :to="{path:'/Re_review',query:{Art_id:item.art_rev_id}}">
|
||||
<h3><span
|
||||
style="margin-right: 6px;color: #006699;">{{index+1}}.</span>{{item.article_title}}
|
||||
</h3>
|
||||
</router-link>
|
||||
<h4>
|
||||
<span>
|
||||
<font style="color: #006699;">Journal : </font>{{item.journal_title}}.
|
||||
</span>
|
||||
<span>
|
||||
<font style="color: #006699;">Type : </font>{{item.type | Actype}}
|
||||
</span>
|
||||
<span style="color: #888;margin-left: 20px;color: #006699;">
|
||||
{{item.ctime | formatDatehms}}
|
||||
</span><br>
|
||||
<!-- <span v-if="item.abstrart!=''" style="max-width: 1000px;">
|
||||
<font style="color: #888;">Abstrart : </font>{{item.abstrart | ellipsis}}
|
||||
</span> -->
|
||||
</h4>
|
||||
</li>
|
||||
<p v-if="revisionList==''" style="color:#6f6f6f;font-size: 14px;margin: 20px 0 0 30px;">No article
|
||||
</p>
|
||||
</ul>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24" v-if="tableData2!=''">
|
||||
<div style="background-color: #ccc;height: 2px;width: 100%;margin:20px 0 35px 0;"></div>
|
||||
<!-- <el-card class="box-card"> -->
|
||||
@@ -167,10 +211,12 @@
|
||||
tableData1: [],
|
||||
tableData2: [],
|
||||
tableData3: [],
|
||||
revisionList:[], // 复审列表
|
||||
TaBle2: {
|
||||
user_id: localStorage.getItem('U_id'),
|
||||
|
||||
},
|
||||
|
||||
TaBle3: {
|
||||
user_id: localStorage.getItem('U_id'),
|
||||
journal_id: 0,
|
||||
@@ -181,7 +227,7 @@
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
||||
|
||||
},
|
||||
created() {
|
||||
this.getData();
|
||||
@@ -202,6 +248,7 @@
|
||||
res.data.lists[i].ctime = Y + M + D;
|
||||
}
|
||||
this.tableData1 = res.data.lists;
|
||||
this.revisionList = res.data.repeats
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
@@ -270,8 +317,7 @@
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
},
|
||||
// 分页导航
|
||||
handlePageChange3(val) {
|
||||
this.$set(this.TaBle3, 'pageIndex', val);
|
||||
@@ -396,7 +442,79 @@
|
||||
return value.slice(0, value.lastIndexOf(" ")) + "...";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
// 文章类型
|
||||
Actype(value) {
|
||||
let frag = '';
|
||||
switch (value) {
|
||||
case "A":
|
||||
frag = 'Article';
|
||||
break;
|
||||
case 'B':
|
||||
frag = 'Review';
|
||||
break;
|
||||
case 'C':
|
||||
frag = 'Case report';
|
||||
break;
|
||||
case 'P':
|
||||
frag = 'Research proposal';
|
||||
break;
|
||||
case 'N':
|
||||
frag = 'News';
|
||||
break;
|
||||
case 'T':
|
||||
frag = 'Comment';
|
||||
break;
|
||||
case 'CT':
|
||||
frag = 'Correction';
|
||||
break;
|
||||
case 'HT':
|
||||
frag = 'Hypothesis';
|
||||
break;
|
||||
case 'PF':
|
||||
frag = 'Preface';
|
||||
break;
|
||||
case 'ET':
|
||||
frag = 'Editorial';
|
||||
break;
|
||||
case 'RP':
|
||||
frag = 'Report';
|
||||
break;
|
||||
case 'LR':
|
||||
frag = 'Letter';
|
||||
break;
|
||||
case 'EF':
|
||||
frag = 'Empirical formula';
|
||||
break;
|
||||
case 'EM':
|
||||
frag = 'Evidence-based medicine';
|
||||
break;
|
||||
case 'EC':
|
||||
frag = 'Expert consensus';
|
||||
break;
|
||||
case 'LTE':
|
||||
frag = 'Letter to editor';
|
||||
break;
|
||||
case 'QI':
|
||||
frag = 'Questionnaire investigation';
|
||||
break;
|
||||
case 'PT':
|
||||
frag = 'Protocol';
|
||||
break;
|
||||
case 'CS':
|
||||
frag = 'Case Series';
|
||||
break;
|
||||
case 'RT':
|
||||
frag = 'Retraction';
|
||||
break;
|
||||
case 'MR':
|
||||
frag = 'Mini Review';
|
||||
break;
|
||||
default:
|
||||
frag = 'Others';
|
||||
}
|
||||
return frag;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
|
||||
@@ -519,6 +637,7 @@
|
||||
.mes_alert .el-alert__content {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.btns{float: right;}
|
||||
|
||||
.mes_alert .el-alert__content .el-alert__title {
|
||||
font-size: 18px !important;
|
||||
|
||||
@@ -134,6 +134,7 @@
|
||||
this.$api
|
||||
.post('api/Reviewer/getReviewerListHistory', this.TaBle3)
|
||||
.then(res => {
|
||||
this.loading = false
|
||||
if (res.code == 0) {
|
||||
if (res.data.lists != '') {
|
||||
for (let i = 0; i < res.data.lists.length; i++) {
|
||||
@@ -147,16 +148,16 @@
|
||||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
res.data.lists[i].ctime = Y + M + D;
|
||||
}
|
||||
}
|
||||
this.loading = false;
|
||||
}
|
||||
}
|
||||
this.tableData3 = res.data.lists;
|
||||
this.link_Tota3 = res.data.count || 0;
|
||||
} else {
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.loading = false
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
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>
|
||||
@@ -870,7 +870,7 @@
|
||||
} else {
|
||||
// 重复
|
||||
path_add = 'api/Reviewer/addReviewerBee'
|
||||
}
|
||||
}
|
||||
this.$api
|
||||
.post(path_add, this.addForm)
|
||||
.then(res => {
|
||||
@@ -1091,7 +1091,7 @@
|
||||
},
|
||||
|
||||
// 搜索选择领域
|
||||
majorChange(e) {
|
||||
majorChange(e,val) {
|
||||
if (e == 1) {
|
||||
this.$api
|
||||
.post('api/Ucenter/getMajor', {
|
||||
@@ -1112,7 +1112,8 @@
|
||||
this.addForm.major_c = ''
|
||||
this.majorChange_panduan()
|
||||
});
|
||||
} else {
|
||||
} else {
|
||||
this.$set(this.addForm, this.addForm.major_c, val)
|
||||
this.majorChange_panduan()
|
||||
}
|
||||
},
|
||||
|
||||
120
src/components/page/superJournalsManagement.vue
Normal file
120
src/components/page/superJournalsManagement.vue
Normal file
@@ -0,0 +1,120 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" style="font-size: 14px;" empty-text="New messages (0)"
|
||||
v-loading="loading">
|
||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||
<el-table-column label="Journals" prop="jabbr" align="center"></el-table-column>
|
||||
<el-table-column label="Editor" prop="editor" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="">
|
||||
<span>name: <span>{{scope.row.editor.realname}}</span></span><br />
|
||||
<span>email: {{scope.row.editor.email}}</span><br />
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="当月编辑积分(初审/终审)" prop="DY" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-dropdown v-if="scope.row.mx.length > 0">
|
||||
<span class="el-dropdown-link">
|
||||
{{scope.row.DY}}<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item v-for="(item,index) in scope.row.mx">{{item}}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
<span v-else>{{scope.row.DY}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="当年初审均值" prop="CS" align="center" width="120"></el-table-column>
|
||||
<el-table-column label="当年终审均值" prop="ZS" align="center" width="120"></el-table-column>
|
||||
<el-table-column label="" prop="ZT" align="center" width="180">
|
||||
<template slot="header">
|
||||
<span>{{this.lastYear}}年直投 / 当月转投</span>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<span>{{scope.row.Z}}</span>
|
||||
<b> / </b>
|
||||
<span>{{scope.row.ZT}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="平均H指数" prop="H" align="center"></el-table-column>
|
||||
<el-table-column label="国际化" prop="H" align="center"></el-table-column>
|
||||
<el-table-column label="不活跃系数" prop="H" align="center"></el-table-column> -->
|
||||
<!-- <el-table-column width="160" align="center">
|
||||
<template slot-scope="scope">
|
||||
<router-link :to="{path:'/superYoungScientistList',query:{id:scope.row.journal_id}}">
|
||||
<el-button type="primary" plain >Detail</el-button></router-link>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
query: {
|
||||
username: localStorage.getItem('U_name'),
|
||||
// journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
|
||||
journal: 0,
|
||||
name: '',
|
||||
state: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
|
||||
},
|
||||
tableData: [],
|
||||
Total: 0,
|
||||
lastYear: 0,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getdata();
|
||||
},
|
||||
methods: {
|
||||
// 获取文章列表数据
|
||||
getdata() {
|
||||
this.loading = true
|
||||
this.lastYear = new Date().getFullYear()-1
|
||||
this.$api
|
||||
.post('api/Monitor/getJournalForms')
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.journals
|
||||
|
||||
}
|
||||
this.loading = false
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
this.loading = false
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.flexbox {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.lieitem span {
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.lieitem em {
|
||||
font-style: normal;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
color: #409EFF;
|
||||
background: #ecf5ff;
|
||||
border-radius: 10px;
|
||||
padding: 4px;
|
||||
}
|
||||
</style>
|
||||
749
src/components/page/superYoungScientistList.vue
Normal file
749
src/components/page/superYoungScientistList.vue
Normal file
@@ -0,0 +1,749 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-user"></i> Young Scientist List
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<el-table :data="tableData_0" border stripe class="table nullTable" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)">
|
||||
<el-table-column prop="realname" width="250px" label="Name"></el-table-column>
|
||||
<!-- <el-table-column prop="technical" label="Professional Title" width="150px" align="center"></el-table-column> -->
|
||||
<el-table-column prop="field" label="Field" align="center"></el-table-column>
|
||||
<el-table-column label="Contributions" align="center"></el-table-column>
|
||||
<el-table-column label="Ghindex" width="110px" align="center"></el-table-column>
|
||||
<el-table-column label="Wosindex" width="110px" align="center"></el-table-column>
|
||||
<!-- <el-table-column label="?" width="110px" align="center"></el-table-column>
|
||||
<el-table-column label="活跃度" width="110px" align="center"></el-table-column> -->
|
||||
<!-- <el-table-column label="Remarks" width="180"></el-table-column> -->
|
||||
<el-table-column label="" width="150px" align="center"></el-table-column>
|
||||
</el-table>
|
||||
<el-table :data="tableData_A" border stripe class="table" ref="multipleTable"
|
||||
header-cell-class-name="table-header" empty-text="New messages (0)" :show-header="false"
|
||||
>
|
||||
<el-table-column prop="realname" label="name" width="250px">
|
||||
<template slot-scope="scope">
|
||||
<p @click="perSonnel(scope.row.user_id)" class="perSonGo">{{scope.row.realname}}</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="technical" label="technical" width="150px" align="center"> -->
|
||||
<!-- <template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template> -->
|
||||
<!-- </el-table-column> -->
|
||||
<el-table-column prop="field" label="field" align="center">
|
||||
<!-- <template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="Contributions" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="flexbox">
|
||||
<div>Articles:
|
||||
<em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em>
|
||||
/
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em>
|
||||
</div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ghindex" label="H-Google" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="wosindex" label="wosindex" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="" width="150px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="perSonnel(scope.row.user_id)">User Edit</el-button>
|
||||
<!-- <el-button size="mini" type="primary" plain icon="el-icon-edit"
|
||||
@click="bhandleEdit(scope.$index, scope.row)">Board Edit</el-button> -->
|
||||
<!-- <el-button size="mini" type="danger" plain icon="el-icon-delete" style="margin-top: 10px;"
|
||||
@click="handleDelete(scope.$index, scope.row)">Delete</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<el-pagination background layout="total, prev, pager, next" :current-page="page.pageIndex" :page-size="page.pageSize"
|
||||
:total="Total" @current-change="handlePageChange"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
baseUrl: this.Common.baseUrl,
|
||||
edit_id: localStorage.getItem('U_id'),
|
||||
now_year: 0,
|
||||
tableData_0: [],
|
||||
tableData_A: [],
|
||||
page: {
|
||||
pageIndex: 1,
|
||||
pageSize: 20
|
||||
},
|
||||
Total: 0,
|
||||
df_jour: [],
|
||||
df_group: [],
|
||||
add_jour: [],
|
||||
add_group: [],
|
||||
add_country: [],
|
||||
addVisible: false,
|
||||
editVisible: false,
|
||||
addForm: {
|
||||
email: '',
|
||||
board_icon:'',
|
||||
board_group_id: -1
|
||||
},
|
||||
editForm: {
|
||||
journal_id: 0
|
||||
},
|
||||
edit_group: [],
|
||||
dis_able: false,
|
||||
remarkMes: {
|
||||
remark: ''
|
||||
},
|
||||
remarkBox: false,
|
||||
query: {
|
||||
journal_id: 0,
|
||||
journal_title: '',
|
||||
},
|
||||
imageUrl: '',
|
||||
imageUrl_: '',
|
||||
imageUrl_Mark: 0,
|
||||
title_options: [{
|
||||
value: 'Instructor'
|
||||
},
|
||||
{
|
||||
value: 'Assistant Professor'
|
||||
},
|
||||
{
|
||||
value: 'Senior Assistant Professor'
|
||||
},
|
||||
{
|
||||
value: 'Associate Professor'
|
||||
},
|
||||
{
|
||||
value: 'Senior Associate professor'
|
||||
},
|
||||
{
|
||||
value: 'Professor'
|
||||
},
|
||||
{
|
||||
value: 'Researcher'
|
||||
},
|
||||
{
|
||||
value: 'Associate Researcher'
|
||||
},
|
||||
{
|
||||
value: 'Assistant Researcher'
|
||||
},
|
||||
{
|
||||
value: 'RN'
|
||||
},
|
||||
{
|
||||
value: 'Research Fellow'
|
||||
},
|
||||
{
|
||||
value: 'Associate Research Scientist'
|
||||
},
|
||||
{
|
||||
value: 'Research Scientist'
|
||||
},
|
||||
{
|
||||
value: 'Senior Research Fellow'
|
||||
},
|
||||
{
|
||||
value: 'Senior Lecturer'
|
||||
},
|
||||
{
|
||||
value: 'Physician'
|
||||
},
|
||||
{
|
||||
value: 'Attending Physician'
|
||||
},
|
||||
{
|
||||
value: 'Associate Chief Physician'
|
||||
},
|
||||
{
|
||||
value: 'Chief Physician'
|
||||
},
|
||||
{
|
||||
value: 'Senior Research Scientist'
|
||||
},
|
||||
{
|
||||
value: 'Honorary Senior Research Fellow'
|
||||
},
|
||||
{
|
||||
value: 'Director'
|
||||
},
|
||||
{
|
||||
value: 'Executive Director'
|
||||
},
|
||||
{
|
||||
value: 'Sr. Bioinformatics Scientist'
|
||||
},
|
||||
{
|
||||
value: 'Psychotherapist'
|
||||
},
|
||||
{
|
||||
value: 'Postdoctoral Researcher'
|
||||
},
|
||||
{
|
||||
value: 'Managing Editor'
|
||||
},
|
||||
{
|
||||
value: 'Scientific Editor'
|
||||
},
|
||||
{
|
||||
value: 'Production Editor'
|
||||
},
|
||||
{
|
||||
value: 'Assistant Editor'
|
||||
},
|
||||
{
|
||||
value: 'Engineer'
|
||||
},
|
||||
{
|
||||
value: 'Lecturer'
|
||||
},
|
||||
{
|
||||
value: 'Investigator'
|
||||
},
|
||||
{
|
||||
value: 'Senior Investigator'
|
||||
},
|
||||
{
|
||||
value: '教授'
|
||||
},
|
||||
{
|
||||
value: '副教授'
|
||||
},
|
||||
{
|
||||
value: '讲师'
|
||||
},
|
||||
{
|
||||
value: '主任医师'
|
||||
},
|
||||
{
|
||||
value: '副主任医师'
|
||||
},
|
||||
{
|
||||
value: '主治医师'
|
||||
},
|
||||
{
|
||||
value: '主任中医师'
|
||||
},
|
||||
{
|
||||
value: '副主任中医师'
|
||||
}
|
||||
],
|
||||
rules: {
|
||||
account: [{
|
||||
required: true,
|
||||
message: 'Please input account',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
email: [{
|
||||
required: true,
|
||||
message: 'Please input email',
|
||||
trigger: 'blur'
|
||||
}, {
|
||||
validator: function(rule, value, callback) {
|
||||
if (/^[-.-_A-Za-z0-9]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value) == false) {
|
||||
callback(new Error("Please enter the correct email format"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
trigger: "blur"
|
||||
}],
|
||||
name: [{
|
||||
required: true,
|
||||
message: 'Please input realname',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
journal_id: [{
|
||||
required: true,
|
||||
message: 'Please select a journal',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
board_group_id: [{
|
||||
required: true,
|
||||
message: 'Please select a group',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
website: [{
|
||||
required: true,
|
||||
message: 'Please input website',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
type: [{
|
||||
required: true,
|
||||
message: 'Please input type',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
dr: [{
|
||||
required: true,
|
||||
message: 'Please input academic degree',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
title: [{
|
||||
required: true,
|
||||
message: 'Please input technical',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field: [{
|
||||
required: true,
|
||||
message: 'Please input field ',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
board_icon: [{
|
||||
required: true,
|
||||
message: 'Please select a icon',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
address: [{
|
||||
required: true,
|
||||
message: 'Please input affiliation',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
country: [{
|
||||
required: true,
|
||||
message: 'Please select a country',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDate();
|
||||
},
|
||||
methods: {
|
||||
// 获取编委和负责期刊列表数据
|
||||
getDate() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading...',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
|
||||
this.$api
|
||||
.post('api/Monitor/getYboards', {
|
||||
'journal_id': this.$route.query.id,
|
||||
'pageIndex': this.page.pageIndex,
|
||||
'pageSize': this.page.pageSize
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.tableData_A = res.data.yboards;
|
||||
// console.log(this.tableData_A,'this.tableData_A')
|
||||
if (res.data.yboards && res.data.yboards.length > 0) {
|
||||
this.tableData_A = res.data.yboards;
|
||||
this.Total = res.data.count
|
||||
} else {
|
||||
this.tableData_A = []
|
||||
}
|
||||
loading.close();
|
||||
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
loading.close();
|
||||
}
|
||||
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
loading.close();
|
||||
});
|
||||
|
||||
},
|
||||
handlePageChange(val) {
|
||||
this.$set(this.page, 'pageIndex', val);
|
||||
this.getDate();
|
||||
},
|
||||
|
||||
// 分组管理
|
||||
addGroup() {
|
||||
this.$router.push('/editorGroup');
|
||||
},
|
||||
|
||||
// 用户跳转
|
||||
perSonnel(e) {
|
||||
let routerJump = this.$router.resolve({
|
||||
path: '/partyRole',
|
||||
query: {
|
||||
id: e
|
||||
}
|
||||
});
|
||||
window.open(routerJump.href, '_blank');
|
||||
},
|
||||
|
||||
|
||||
// 添加操作
|
||||
addEditor(index, row) {
|
||||
this.addForm.journal_id = this.add_jour[0].journal_id
|
||||
this.getJourAdd()
|
||||
this.addVisible = true;
|
||||
},
|
||||
|
||||
|
||||
// 保存添加
|
||||
saveAdd() {
|
||||
this.$refs.add_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.addForm.board_icon == '' || this.addForm.board_icon == undefined) {
|
||||
this.$message.error('Please upload the picture!');
|
||||
return
|
||||
}
|
||||
this.$api
|
||||
.post('api/Board/addBoard', this.addForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.addVisible = false;
|
||||
this.$refs.add_Form.resetFields();
|
||||
this.$message.success(`Added successfully!`);
|
||||
this.dis_able = false
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 添加关闭
|
||||
addVisCancle() {
|
||||
this.$refs['add_Form'].resetFields();
|
||||
this.addForm.email = ''
|
||||
this.dis_able = false
|
||||
},
|
||||
|
||||
// 编辑操作
|
||||
handleEdit(index, row) {
|
||||
this.editForm = Object.assign({}, row);
|
||||
console.log(this.editForm,'this.editForm')
|
||||
this.imageUrl_ = this.baseUrl + 'journalpublic/' + this.editForm.board_icon
|
||||
this.imageUrl_Mark = 0
|
||||
this.editVisible = true
|
||||
// this.getJourEdit(this.query.journal_id)
|
||||
},
|
||||
// 编辑编委操作
|
||||
bhandleEdit(index, row) {
|
||||
console.log(row,'row')
|
||||
},
|
||||
// 改变期刊
|
||||
getJourEdit(e) {
|
||||
this.$api
|
||||
.post('api/Board/getBoardGroupList', {
|
||||
journal_id: e
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.edit_group = res.data.groups;
|
||||
this.edit_group.unshift({
|
||||
'board_group_id': 0,
|
||||
'group_name': 'No Group'
|
||||
})
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 保存编辑
|
||||
saveEdit() {
|
||||
this.$refs.edit_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/Board/editBoard', this.editForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.editVisible = false;
|
||||
this.$refs.edit_Form.resetFields();
|
||||
this.$message.success(`Edit successfully!`);
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
|
||||
if (this.imageUrl_Mark == 1) {
|
||||
this.$api
|
||||
.post('api/Board/editIcon', this.editForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.imageUrl_Mark = 0
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 删除操作
|
||||
handleDelete(index, row) {
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete?', 'Tips', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Board/delBoard', row)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Delete succeeded');
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
|
||||
// 点击注册
|
||||
Goto_res() {
|
||||
this.$router.push('/register');
|
||||
},
|
||||
|
||||
// 标记弹出框
|
||||
BoxRemark(e) {
|
||||
this.remarkBox = true;
|
||||
this.remarkMes.realname = e.name;
|
||||
this.remarkMes.user_id = e.tuser_id;
|
||||
this.remarkMes.email = e.email;
|
||||
this.remarkMes.remark = e.remark;
|
||||
},
|
||||
// 修改标记
|
||||
saveRemark() {
|
||||
this.$api.post('api/User/editRemarkForUser', this.remarkMes)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('Success');
|
||||
this.remarkBox = false;
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 指数颜色
|
||||
colorIndex(num, time) {
|
||||
if (time != 0) {
|
||||
let date = new Date(parseInt(time * 1000));
|
||||
let Y = date.getFullYear() + '-';
|
||||
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
|
||||
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
let H = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
|
||||
let U = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
time = Y + M + D;
|
||||
}
|
||||
let str = '';
|
||||
if (num < 10) {
|
||||
str = '<b style="color:#cb160a">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
} else if (num < 15) {
|
||||
str = '<b style="color:#cbb504">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
} else {
|
||||
str = '<b style="color:#0cbc15">' + num +
|
||||
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
|
||||
')</span>'
|
||||
}
|
||||
if (time == 0) {
|
||||
str =
|
||||
'<b style="color:#aaa;">0</b><br/><span style="color:#aaa;font-size:14px;margin-left:5px;">(No time)</span>'
|
||||
}
|
||||
return str;
|
||||
},
|
||||
|
||||
//上传图片-添加
|
||||
handleAvatarSuccess(res, file) {
|
||||
if (res.code == 0) {
|
||||
this.addForm.board_icon = res.upurl;
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
this.imageUrl = URL.createObjectURL(file.raw);
|
||||
},
|
||||
handleAvatarError(res, file) {
|
||||
// this.$message.error(res);
|
||||
},
|
||||
beforeAvatarUpload(file) {
|
||||
const isLt2M = file.size / 1024 / 1024 < 1;
|
||||
if (!isLt2M) {
|
||||
this.$message.error('The picture size cannot exceed 1M!');
|
||||
}
|
||||
return isLt2M;
|
||||
},
|
||||
|
||||
//上传图片-编辑
|
||||
handleAvatarSuccess_(res, file) {
|
||||
if (res.code == 0) {
|
||||
this.editForm.board_icon = res.upurl;
|
||||
// this.imageUrl_ = this.baseUrl + 'boardIcon/' + res.upurl;
|
||||
this.imageUrl_Mark = 1
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
this.imageUrl_ = URL.createObjectURL(file.raw);
|
||||
},
|
||||
handleAvatarError_(res, file) {
|
||||
// this.$message.error(res);
|
||||
},
|
||||
beforeAvatarUpload_(file) {
|
||||
const isLt2M = file.size / 1024 / 1024 < 1;
|
||||
if (!isLt2M) {
|
||||
this.$message.error('The picture size cannot exceed 1M!');
|
||||
}
|
||||
return isLt2M;
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.flexbox{display: flex; justify-content: space-between;}
|
||||
.flexbox div{width: 50%;}
|
||||
.flexbox em{font-style: normal; font-weight: bold; font-size: 14px; color: #409EFF; background: #ecf5ff; border-radius: 10px; padding: 4px;}
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.zhu_ce {
|
||||
text-decoration: underline;
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.biaoTou {
|
||||
background-color: #006699;
|
||||
font-size: 14px;
|
||||
min-width: 800px;
|
||||
}
|
||||
|
||||
.nullTable {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
||||
.shen_fen {
|
||||
margin: 30px 0 20px 0;
|
||||
font-weight: bold;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
.shen_number {
|
||||
margin-bottom: 15px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.perSonGo:hover {
|
||||
text-decoration: underline;
|
||||
color: #006699;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.starSty {
|
||||
width: 18px;
|
||||
margin-right: 4px;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.starSty:nth-last-child(1) {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.avatar-uploader .el-upload {
|
||||
border: 1px dashed #d9d9d9;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
}
|
||||
|
||||
.avatar-uploader_small {
|
||||
height: 140px;
|
||||
}
|
||||
|
||||
.avatar-uploader .el-upload:hover {
|
||||
border-color: #409EFF;
|
||||
}
|
||||
|
||||
.avatar-uploader-icon {
|
||||
font-size: 28px;
|
||||
color: #8c939d;
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
line-height: 140px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.avatar-uploader_small .el-upload {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.avatar-uploader_small .avatar-uploader-icon {
|
||||
line-height: 80px;
|
||||
margin-left: -30px;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
81
src/components/page/superYoungScientistManagement.vue
Normal file
81
src/components/page/superYoungScientistManagement.vue
Normal file
@@ -0,0 +1,81 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header" style="font-size: 14px;"
|
||||
empty-text="New messages (0)" v-loading="loading">
|
||||
<el-table-column type="index" label="No." width="55" align="center"></el-table-column>
|
||||
<el-table-column label="Journals" prop="jabbr" align="center"></el-table-column>
|
||||
<el-table-column label="Number" prop="yboard_count" align="center"></el-table-column>
|
||||
<el-table-column label="Hindex" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="lieitem flexbox">
|
||||
<span>Hindex: <em>{{scope.row.index_num}} / {{ scope.row.yboard_count }}</em></span><br/>
|
||||
<span>Median: <em>{{scope.row.median}}</em></span><br/>
|
||||
<span>Avg: <em>{{scope.row.avg}}</em></span><br/>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="平均H指数" prop="H" align="center"></el-table-column>
|
||||
<el-table-column label="国际化" prop="H" align="center"></el-table-column>
|
||||
<el-table-column label="不活跃系数" prop="H" align="center"></el-table-column> -->
|
||||
<el-table-column width="160" align="center">
|
||||
<template slot-scope="scope">
|
||||
<router-link :to="{path:'/superYoungScientistList',query:{id:scope.row.journal_id}}">
|
||||
<el-button type="primary" plain >Detail</el-button></router-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data(){
|
||||
return{
|
||||
loading:false,
|
||||
query: {
|
||||
username: localStorage.getItem('U_name'),
|
||||
// journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 0,
|
||||
journal: 0,
|
||||
name: '',
|
||||
state: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
tableData:[],
|
||||
Total:0,
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.getdata();
|
||||
},
|
||||
methods:{
|
||||
// 获取文章列表数据
|
||||
getdata() {
|
||||
this.loading = true
|
||||
this.$api
|
||||
.post('api/Monitor/getJournalYBoards')
|
||||
.then(res => {
|
||||
if(res.code == 0){
|
||||
|
||||
this.tableData = res.data.journals
|
||||
}
|
||||
this.loading = false
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
this.loading = false
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.flexbox{display: flex; justify-content: space-between;}
|
||||
.lieitem span{
|
||||
display: inline-block; width: 30%;
|
||||
}
|
||||
.lieitem em{font-style: normal; font-weight: bold; font-size: 14px; color: #409EFF; background: #ecf5ff; border-radius: 10px; padding: 4px;}
|
||||
|
||||
|
||||
</style>
|
||||
@@ -1,6 +1,6 @@
|
||||
<!--对话模块-->
|
||||
<template>
|
||||
<div class="kuang_communtion">
|
||||
<div class="kuang_communtion" v-loading="loading">
|
||||
<h2>
|
||||
Communication
|
||||
</h2>
|
||||
@@ -40,7 +40,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import Vue from 'vue'
|
||||
export default {
|
||||
props: {
|
||||
talkMsgs: {
|
||||
@@ -60,6 +60,7 @@
|
||||
data() {
|
||||
return {
|
||||
username: localStorage.getItem('U_name'),
|
||||
loading:false
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
@@ -85,10 +86,15 @@
|
||||
.post('api/Article/pushArticleDialog', this.msgform)
|
||||
.then((res) => {
|
||||
this.loading = false;
|
||||
this.$message.success('Sent successfully');
|
||||
this.$router.go(0);
|
||||
// this.$message.success('Sent successfully');
|
||||
this.$emit('talksave',true) // 传递成功信号
|
||||
// setTimeout(()=>{
|
||||
// this.$router.go(0);
|
||||
// },1000)
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
<template>
|
||||
<div class="login-wrap">
|
||||
<p class="yuju">
|
||||
<!-- <p class="yuju">
|
||||
You are almost done.
|
||||
<br>
|
||||
Please click on the link sent to your email inbox to complete your registration.
|
||||
<br>
|
||||
Please click on the link sent to your email inbox to complete your registration.
|
||||
</p> -->
|
||||
<p class="yuju">
|
||||
Congratulations!
|
||||
<br>
|
||||
Your account registration has been successfully completed. Please log in by <a @click="tologin" type="text">clicking here</a>.
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
@@ -20,7 +25,11 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
tologin(){
|
||||
this.$router.push({
|
||||
path:'/login'
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -44,4 +53,5 @@
|
||||
padding: 20px;
|
||||
font-size: 20px;
|
||||
}
|
||||
.yuju>a{color: #66b1ff; cursor: pointer;}
|
||||
</style>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<span>Email: </span>{{scope.row.email}}
|
||||
</p>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="Additional Information">
|
||||
<template slot-scope="scope">
|
||||
<p class="tab_tie_col">
|
||||
@@ -72,6 +72,15 @@
|
||||
</p> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="Contributions" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<div class="Contributions">
|
||||
<div>Articles: <em v-if="scope.row.articles.length > 0">{{scope.row.articles.length}}</em><em v-else>0</em> /
|
||||
<em v-if="scope.row.articles_all.length > 0">{{scope.row.articles_all.length}}</em><em v-else>0</em></div>
|
||||
<div>Reviewes: <em v-if="scope.row.reviewes.length > 0">{{scope.row.reviewes.length}}</em><em v-else>0</em></div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="H-WOS" width="110px" align="center">
|
||||
<template slot-scope="scope">
|
||||
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
|
||||
@@ -678,6 +687,9 @@
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* .Contributions{display: flex; justify-content: space-between;} */
|
||||
.Contributions div{ margin-bottom: 20px;}
|
||||
.Contributions em{font-style: normal; font-weight: bold; font-size: 14px; color: #409EFF; background: #ecf5ff; border-radius: 10px; padding: 4px;}
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user