期刊协议

This commit is contained in:
2024-05-06 15:29:42 +08:00
parent ed2874252a
commit 118153b1ad
7 changed files with 740 additions and 19 deletions

View File

@@ -13,15 +13,17 @@ axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded
// axios.defaults.baseURL = 'http://testtougao.tmrjournals.com/public/index.php/'
// axios.defaults.baseURL = 'http://www.tougao.com/'
//
// 记得切换
const service = axios.create({
// baseURL: 'http://testtougao.tmrjournals.com/public/index.php/',
// baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换
// baseURL: 'http://www.tougao.com/', //测试本地 记得切换
// baseURL: '/api', //本地
baseURL: '/', //正式
});
const service_new = axios.create({
baseURL: 'http://journal.com/',
baseURL: 'http://journal.com/',
// baseURL: '/',
});

View File

@@ -1,6 +1,5 @@
<template>
<div class="sidebar">
<el-menu
class="sidebar-el-menu"
:default-active="onRoutes"
@@ -353,6 +352,7 @@ export default {
index: 'Editors_Staff',
title: this.$t('sidebar.userManSys9')
},
{
index: 'partyDelete',
title: this.$t('sidebar.userManSys7')
@@ -368,6 +368,17 @@ export default {
icon: 'el-icon-chat-line-square',
index: 'TMRGPT',
title: 'TMRGPT'
},
{
icon: 'el-icon-connection',
index: '5',
title: this.$t('sidebar.journalManagement'),
subs: [
{
index: 'Journal_Agreement',
title: this.$t('sidebar.userManSys11')
}
]
}
],
//超级管理员
@@ -392,6 +403,7 @@ export default {
// }
]
},
{
icon: 'el-icon-user',
index: '2',

View File

@@ -1,19 +1,25 @@
<script>
const mediaUrl = '/public/';
const baseUrl = '/';
//记得切换
// const mediaUrl = 'http://www.tougao.com/';
// const baseUrl = 'http://www.tougao.com/';
// const IMGdoURL = 'http://www.journal.com/';
// const IMGupURL = 'http://www.journal.com/';
// const mediaUrl = 'http://testtougao.tmrjournals.com/public/';
// const baseUrl = 'http://testtougao.tmrjournals.com/public/index.php/';
export default {
baseUrl,
mediaUrl
}
//正式
const mediaUrl = '/public/';
const baseUrl = '/';
//本地(正式环境 )
// const mediaUrl = 'https://submission.tmrjournals.com/public/';
// const baseUrl = '/api';
// const mediaUrl = 'http://www.tougao.com/';
// const baseUrl = 'http://www.tougao.com/';
// const IMGdoURL = 'http://www.journal.com/';
// const IMGupURL = 'http://www.journal.com/';
// const mediaUrl = 'http://testtougao.tmrjournals.com/public/';
// const baseUrl = 'http://testtougao.tmrjournals.com/public/index.php/';
export default {
baseUrl,
mediaUrl
};
</script>

View File

@@ -70,6 +70,7 @@ const en = {
userTalSys7: 'Editorial board apply list',
userTalSys8: 'Young Scientist apply list',
userManSys: 'User Management System',
journalManagement: 'Journal Management',
userManSys1: 'Total User',
userManSys11: 'Active Users',
userManSys12: 'Inactive Users',
@@ -91,6 +92,7 @@ const en = {
userManSys7: 'Blacklist',
userManSys8: 'Academic Integrity Committee',
userManSys9: 'Editors & Staff',
userManSys11: 'Journal Agreement',
analyp: 'Manager',
analysis: 'Journal Evaluation System',
rev_ewer: 'Reviewer',
@@ -161,6 +163,8 @@ const en = {
title:'journal',
time:'time',
},protocol:{
PublishingAgreementInfo:'Please enter the publishing agreement'
}
}

View File

@@ -69,6 +69,7 @@ const zh = {
userTalSys7: '编委申请列表',
userTalSys8: '青年科学家申请列表',
userManSys: '用户管理',
journalManagement: '期刊管理',
userManSys1: '用户管理',
userManSys11: '活跃用户',
userManSys12: '非活跃用户',
@@ -90,6 +91,7 @@ const zh = {
userManSys7: '黑名单',
userManSys8: '期刊委员会',
userManSys9: '期刊编辑',
userManSys11: '期刊协议',
analyp: '管理',
analysis: '引用统计',
rev_ewer: '审稿人',
@@ -158,6 +160,8 @@ const zh = {
title:'期刊',
time:'时间',
},protocol:{
PublishingAgreementInfo:'请输入出版协议'
}
}

View File

@@ -0,0 +1,685 @@
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item> <i class="el-icon-user"></i> Journal Agreement </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="dataForm.journal_id"
placeholder="Please select a journal"
@change="handleSelectJournal"
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>
<!-- :action="'/api/api/Ucenter/up_userIcon_file'" -->
<el-upload
class="chapter-avatar-uploader"
:action="baseUrl + '/api/Ucenter/up_userIcon_file'"
name="icon"
accept=".jpeg,.jpg,.gif,.png"
:show-file-list="false"
:on-success="contentUploadSuccess"
>
</el-upload>
<quill-editor
v-model="dataForm.ethics"
ref="myQuillEditor"
:options="editorOption"
@blur="onEditorBlur($event)"
@focus="onEditorFocus($event)"
@ready="onEditorReady($event)"
class="chapter_editor"
>
</quill-editor>
<div class="queSub">
<el-button type="primary" @click="submitGpt()"> Submit </el-button>
</div>
<!-- <div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
</div> -->
</div>
<!-- 添加弹出框 -->
<el-dialog title="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>
import { quillEditor } from 'vue-quill-editor';
import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css';
const toolbarOptions = [
['bold', 'italic', 'underline', 'strike'], // 加粗,斜体,下划线,删除线
['blockquote', 'code-block'], //引用,代码块
[{ header: 1 }, { header: 2 }], // 几级标题
[{ list: 'ordered' }, { list: 'bullet' }], // 有序列表,无序列表
[{ script: 'sub' }, { script: 'super' }], // 下角标,上角标
[{ indent: '-1' }, { indent: '+1' }], // 缩进
[{ direction: 'rtl' }], // 文字输入方向
[{ size: ['small', false, 'large', 'huge'] }], // 字体大小
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
[{ color: [] }, { background: [] }], // 颜色选择
[{ font: ['SimSun', 'SimHei', 'Microsoft-YaHei', 'KaiTi', 'FangSong', 'Arial'] }], // 字体
[{ align: [] }], // 居中
['clean'], // 清除样式,
['link', 'image'] // 上传图片、上传视频
];
export default {
name: 'youthList',
components: {
quillEditor
},
data() {
return {
YearThis: 0,
edit_id: localStorage.getItem('U_id'),
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
dataForm: {},
editorOption: {
modules: {
history: {
delay: 1000,
maxStack: 50,
userOnly: false
},
toolbar: {
container: toolbarOptions,
handlers: {
image: function (value) {
if (value) {
// 调用element的图片上传组件
document.querySelector('.chapter-avatar-uploader input').click();
} else {
this.quill.format('image', false);
}
}
}
}
},
placeholder: this.$t('protocol.PublishingAgreementInfo')
},
query: {
journal_id: 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: {
// 提交问题
submitGpt() {
// if (this.falseMark) {
// return false
// }
if (this.dataForm.ethics == '') {
this.$message.error(this.$t('protocol.PublishingAgreementInfo') + '');
return false;
}
// 传递问题
this.$api
.post('api/Journal/editJournalLeftZc', {
...this.dataForm
})
.then((res) => {
console.log('res at line 257:', res);
if (res.code == 0) {
this.$message.success(res.msg);
this.getSelect();
// 循环答案
} else {
this.$message.error(res.msg);
}
})
.catch((err) => {
console.log(err);
});
},
handleSelectJournal(e) {
console.log('data at line 212:', e);
var data = this.df_jour.find((v) => v.journal_id == e);
console.log('data at line 246:', data);
this.dataForm.ethics = data.ethics;
this.$refs.myQuillEditor.form = this.dataForm.ethics;
// const length = this.$refs.myQuillEditor.quill.getLength(); // 获取编辑器内容的长度
// this.$refs.myQuillEditor.quill.setSelection(length, 0);
this.$nextTick(() => {
// let quill = this.$refs.myQuillEditor.quill;
// console.log('quill.getSelection() at line 292:', quill.getSelection())
// let length = quill.getSelection().length;
// // 插入图片res为服务器返回的图片链接地址
// quill.insertEmbed(length, 'image', this.mediaUrl + 'usericon/' + res.upurl);
// // 调整光标到最后
// quill.setSelection(length + 1);
});
this.$forceUpdate();
},
contentUploadSuccess(res, file) {
// console.log(res)
let quill = this.$refs.myQuillEditor.quill;
// 如果上传成功
if (res) {
// 获取光标所在位置
let length = quill.getSelection().index;
// 插入图片res为服务器返回的图片链接地址
quill.insertEmbed(length, 'image', this.mediaUrl + 'usericon/' + res.upurl);
// 调整光标到最后
quill.setSelection(length + 1);
} else {
// 提示信息需引入Message
this.$message.error('图片插入失败!');
}
},
// 失去焦点事件
onEditorBlur(quill) {
// console.log('editor blur!', quill)
},
// 获得焦点事件
onEditorFocus(quill) {
//console.log('editor focus!', quill)
},
// 准备富文本编辑器
onEditorReady(quill) {
// console.log('editor ready!', quill)
},
// 关闭编辑弹窗
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/Journal/getJournalByeditor', {
user_id: this.edit_id
})
.then((res) => {
if (res.code == 0) {
this.df_jour = res.data.journals;
if (JSON.stringify(this.dataForm) == '{}') {
this.dataForm.journal_id = this.df_jour[0].journal_id;
this.dataForm.ethics = this.df_jour[0].ethics;
}
// this.getDate();
} else {
this.$message.error(res.msg);
}
})
.catch((err) => {
this.$message.error(err);
});
},
// 获取列表数据
getDate() {
this.$api
.post('api/Journal/getJournalByeditor', {
user_id: this.edit_id
})
.then((res) => {
console.log(res, 111111111111);
if (res.code == 0) {
this.tableData = res.data.journals;
// 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;
}
.queSub {
position: absolute;
bottom: 30px;
right: 45px;
margin: 20px 0 0 0;
}
.container {
height: 70vh;
}
</style>

View File

@@ -974,6 +974,14 @@ export default new Router({
title: 'Editors & Staff'
}
},
{
name:'Journal_Agreement',
path: '/Journal_Agreement', // 期刊协议列表
component: () => import('../components/page/Journal_Agreement'),
meta: {
title: 'Journal Agreement'
}
},
{
name:'super-Journals-Management',
path: '/superJournalsManagement', // 超管单期刊列表