1
This commit is contained in:
@@ -1,54 +1,106 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="10" v-show="userrole=='reviewer'||userrole==1">
|
||||
<el-card shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{$t('home.authortop')}}</span>
|
||||
</div>
|
||||
<div class="top-content">
|
||||
<span>
|
||||
<p>Welcome to the TMR Publishing Group online manuscript submission and tracking system.</p>
|
||||
<p>Please go through our instructions for authors before submitting.</p>
|
||||
<p><el-link type="primary" href="/articleAdd">Click here</el-link> to submit your manuscript.</p>
|
||||
<el-divider></el-divider>
|
||||
<p>If you experience any problems, please contact us by publisher@tmrjournals.com</p>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- <el-button size="medium " type="primary" @click="goaddarticle" >add article</el-button> -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="14">
|
||||
<el-card shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<el-badge
|
||||
:value="this.usermsgList.length"
|
||||
:hidden="this.usermsgList.length>0?false:true"
|
||||
class="item"
|
||||
>
|
||||
<span>{{$t('home.usermsg')}}</span>
|
||||
</el-badge>
|
||||
</div>
|
||||
<el-table
|
||||
:data="usermsgList"
|
||||
border
|
||||
class="msg-table"
|
||||
>
|
||||
<el-table-column label="Date" width="150" :formatter="dateFormate" prop="ctime"></el-table-column>
|
||||
<el-table-column label="Message" prop="content"></el-table-column>
|
||||
<el-table-column label="" width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
@click="show(scope.row)"
|
||||
>To See</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<!--<el-col :span="12">
|
||||
<div>
|
||||
<el-row :gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="4" v-if="this.usercap.includes('chief')">
|
||||
<router-link target="_blank" :to="{path:'/managing',query: {top_id: '1'}}">
|
||||
<div class="grid-jue1">
|
||||
<svg t="1629185957321" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3125" width="40" height="40">
|
||||
<path d="M657.749333 142.222222c-55.523556 0-113.777778 24.007111-145.976889 63.488-32.426667-39.480889-90.794667-63.488-145.863111-63.488H48.241778v728.177778h288.881778c109.795556-1.934222 126.634667 14.677333 135.509333 22.755556a48.924444 48.924444 0 0 1 12.970667 22.755555h52.337777a49.607111 49.607111 0 0 1 16.611556-27.534222c13.425778-9.102222 34.133333-20.252444 159.288889-18.773333h261.688889V142.222222z m-172.487111 694.044445c-35.498667-13.312-104.903111-18.887111-151.210666-18.887111H100.238222V194.56h265.671111c56.888889 0 119.694222 33.223111 119.694223 80.896v481.621333s-0.796444 45.169778-0.341334 79.075556z m240.526222-18.659556c-97.962667-1.706667-152.689778 0.796444-187.505777 18.659556V275.456c0-47.672889 63.146667-80.896 119.808-80.896h265.329777v622.933333z"
|
||||
fill="#ffffff" p-id="3126"></path>
|
||||
<path d="M810.666667 415.288889l-79.644445-62.577778-79.758222 62.577778v-307.2h159.402667v307.2zM167.708444 332.231111h250.311112v52.337778h-250.311112zM167.708444 480.369778h250.311112v52.337778h-250.311112zM167.708444 628.508444h250.311112v52.337778h-250.311112z"
|
||||
fill="#ffffff" p-id="3127"></path>
|
||||
</svg>
|
||||
<p>{{$t('charact.role1')}}</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="4" v-if="this.usercap.includes('board')">
|
||||
<router-link target="_blank" :to="{path:'/editorial',query: {top_id: '1'}}">
|
||||
<div class="grid-jue2">
|
||||
<svg t="1629186126715" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3462" width="40" height="40">
|
||||
<path d="M356.693333 910.222222H91.022222V113.777778h743.310222v179.768889h-52.110222V165.888H143.132444v692.224h213.560889V910.222222z"
|
||||
fill="#ffffff" p-id="3463"></path>
|
||||
<path d="M880.867556 781.539556v76.231111H473.088v-76.231111h407.779556M932.977778 729.429333H420.977778V910.222222h512V729.429333zM227.555556 510.065778h243.256888v52.110222H227.555556zM227.555556 381.041778h243.256888v52.110222H227.555556zM227.555556 252.131556h294.456888v52.110222H227.555556zM676.977778 372.508444a63.943111 63.943111 0 1 1-62.577778 63.943112 63.488 63.488 0 0 1 63.032889-63.943112m0-52.110222a116.053333 116.053333 0 1 0 115.256889 116.053334 115.598222 115.598222 0 0 0-115.712-116.053334z"
|
||||
fill="#ffffff" p-id="3464"></path>
|
||||
<path d="M533.162667 768.227556l-45.169778-26.055112L622.364444 513.592889l45.169778 26.168889-134.371555 228.465778zM820.792889 768.227556L686.421333 539.761778l45.169778-26.168889 134.371556 228.579555-45.169778 26.055112z"
|
||||
fill="#ffffff" p-id="3465"></path>
|
||||
</svg>
|
||||
<p>{{$t('charact.role2')}}</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="4" v-if="this.usercap.includes('reviewer')">
|
||||
<router-link target="_blank" :to="{path:'/peerewer',query: {top_id: '1'}}">
|
||||
<div class="grid-jue3">
|
||||
<svg t="1629185981340" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3293" width="40" height="40">
|
||||
<path d="M447.715556 910.222222H91.022222V113.777778h728.177778v327.68h-52.110222V165.888H143.132444v692.224h304.583112V910.222222zM611.214222 890.083556L542.72 910.222222l20.138667-68.380444 321.877333-321.763556L932.977778 568.32 611.214222 890.083556z"
|
||||
fill="#ffffff" p-id="3294"></path>
|
||||
<path d="M499.256889 613.717333H343.153778l-28.216889 67.470223H251.448889L391.509333 361.813333H455.111111l138.126222 319.374223h-65.763555zM477.866667 561.265778l-56.206223-134.144-56.888888 134.144zM522.24 305.834667h136.533333v28.444444h-136.533333z"
|
||||
fill="#ffffff" p-id="3295"></path>
|
||||
<path d="M576.284444 251.790222h28.444445v136.533334h-28.444445z" fill="#ffffff" p-id="3296"></path>
|
||||
</svg>
|
||||
<p>{{$t('charact.role3')}}</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="4" v-if="this.usercap.includes('yboard')">
|
||||
<router-link target="_blank" :to="{path:'/youthed',query: {top_id: '1'}}">
|
||||
<div class="grid-jue4">
|
||||
<svg t="1629185867793" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2957" width="40" height="40">
|
||||
<path d="M515.413333 125.155556H125.155556v796.444444h757.76V597.674667H830.577778V869.262222H177.493333V177.493333h337.92V125.155556z"
|
||||
fill="#ffffff" p-id="2958"></path>
|
||||
<path d="M276.48 309.816889h147.911111v52.337778h-147.911111zM276.48 497.208889h147.911111v52.337778h-147.911111zM276.48 684.714667h455.111111v52.337777h-455.111111zM760.718222 174.193778l66.332445 39.708444-194.56 325.063111-50.289778 8.760889-16.042667-48.469333 194.56-325.063111M742.627556 102.4L508.928 492.885333l37.774222 113.777778 118.442667-20.593778L898.844444 195.925333 742.627556 102.4z"
|
||||
fill="#ffffff" p-id="2959"></path>
|
||||
</svg>
|
||||
<p>{{$t('charact.role4')}}</p>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-col :span="10" v-show="userrole=='reviewer'||userrole==1">
|
||||
<el-card shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{$t('home.authortop')}}</span>
|
||||
</div>
|
||||
<div class="top-content">
|
||||
<span>
|
||||
<p>Welcome to the TMR Publishing Group online manuscript submission and tracking system.</p>
|
||||
<p>Please go through our instructions for authors before submitting.</p>
|
||||
<p>
|
||||
<el-link type="primary" href="/articleAdd">Click here</el-link> to submit your manuscript.
|
||||
</p>
|
||||
<el-divider></el-divider>
|
||||
<p>If you experience any problems, please contact us by publisher@tmrjournals.com</p>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- <el-button size="medium " type="primary" @click="goaddarticle" >add article</el-button> -->
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="14">
|
||||
<el-card shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<el-badge :value="this.usermsgList.length" :hidden="this.usermsgList.length>0?false:true" class="item">
|
||||
<span>{{$t('home.usermsg')}}</span>
|
||||
</el-badge>
|
||||
</div>
|
||||
<el-table :data="usermsgList" border class="msg-table">
|
||||
<el-table-column label="Date" width="150" :formatter="dateFormate" prop="ctime"></el-table-column>
|
||||
<el-table-column label="Message" prop="content"></el-table-column>
|
||||
<el-table-column label="" width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" @click="show(scope.row)">To See</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<!--<el-col :span="12">
|
||||
<el-card shadow="hover">
|
||||
<div>
|
||||
<span>add article</span>
|
||||
@@ -60,117 +112,168 @@
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
</div>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Schart from 'vue-schart';
|
||||
import bus from '../common/bus';
|
||||
export default {
|
||||
name: 'dashboard',
|
||||
data() {
|
||||
return {
|
||||
name: localStorage.getItem('ms_username'),
|
||||
userrole: localStorage.getItem('ms_userrole'),
|
||||
userdata: '',
|
||||
usermsgList: []
|
||||
};
|
||||
},
|
||||
created: function () {
|
||||
// this.getUserdata();
|
||||
this.initUserMsg();
|
||||
},
|
||||
components: {
|
||||
Schart
|
||||
},
|
||||
computed: {
|
||||
role() {
|
||||
let frag = 'dads';
|
||||
switch (this.userrole) {
|
||||
case '1':
|
||||
frag = this.$t('total.author');
|
||||
break;
|
||||
case '2':
|
||||
frag = this.$t('total.editor');
|
||||
break;
|
||||
case 'reviewer':
|
||||
frag = this.$t('total.reviewers') + ' & ' + this.$t('total.author');
|
||||
break;
|
||||
case 'admin':
|
||||
frag = this.$t('total.admin');
|
||||
break;
|
||||
}
|
||||
return frag;
|
||||
},
|
||||
my_login_time() {
|
||||
return this.formatDate(this.userdata.last_login_time);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// getUserdata() {
|
||||
// this.$api
|
||||
// .post('api/user/getUserdata', {'account':this.name})
|
||||
// .then(res=>{
|
||||
// if(res.code==0){
|
||||
// this.userdata = res.data;
|
||||
// }else{
|
||||
// this.$message.error('get userinfo error');
|
||||
// console.log('error getuserdata');
|
||||
// }
|
||||
// })
|
||||
// .catch(err=>{
|
||||
// });
|
||||
// },
|
||||
initUserMsg() {
|
||||
this.$api.post('api/User/getUserMsg', { account: this.name }).then((res) => {
|
||||
this.usermsgList = res;
|
||||
});
|
||||
},
|
||||
dateFormate(row, column, cellValue, index) {
|
||||
return this.formatDate(cellValue);
|
||||
},
|
||||
show(row){
|
||||
this.$api.post('api/User/changeMsgState',{id:row.user_msg_id})
|
||||
.then(res=>{
|
||||
this.initUserMsg();
|
||||
this.$router.push(row.url);
|
||||
});
|
||||
},
|
||||
formatDate(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + '-';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
||||
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
||||
return Y + M + D + ' ' + h + ':' + m + ':' + s;
|
||||
},
|
||||
goaddarticle(){
|
||||
this.$router.push('/articleAdd');
|
||||
}
|
||||
}
|
||||
};
|
||||
import Schart from 'vue-schart';
|
||||
import bus from '../common/bus';
|
||||
export default {
|
||||
name: 'dashboard',
|
||||
data() {
|
||||
return {
|
||||
name: localStorage.getItem('U_name'),
|
||||
userrole: localStorage.getItem('U_status'),
|
||||
usercap: localStorage.getItem('U_role'),
|
||||
userdata: '',
|
||||
usermsgList: []
|
||||
};
|
||||
},
|
||||
created: function() {
|
||||
// this.getUserdata();
|
||||
this.initUserMsg();
|
||||
},
|
||||
components: {
|
||||
Schart
|
||||
},
|
||||
computed: {
|
||||
role() {
|
||||
let frag = 'dads';
|
||||
switch (this.userrole) {
|
||||
case '2':
|
||||
frag = this.$t('total.author');
|
||||
break;
|
||||
case '1':
|
||||
frag = this.$t('total.editor');
|
||||
break;
|
||||
case 'reviewer':
|
||||
frag = this.$t('total.reviewers') + ' & ' + this.$t('total.author');
|
||||
break;
|
||||
case '0':
|
||||
frag = this.$t('total.admin');
|
||||
break;
|
||||
}
|
||||
return frag;
|
||||
},
|
||||
my_login_time() {
|
||||
return this.formatDate(this.userdata.last_login_time);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// getUserdata() {
|
||||
// this.$api
|
||||
// .post('api/user/getUserdata', {'account':this.name})
|
||||
// .then(res=>{
|
||||
// if(res.code==0){
|
||||
// this.userdata = res.data;
|
||||
// }else{
|
||||
// this.$message.error('get userinfo error');
|
||||
// console.log('error getuserdata');
|
||||
// }
|
||||
// })
|
||||
// .catch(err=>{
|
||||
// });
|
||||
// },
|
||||
initUserMsg() {
|
||||
this.$api.post('api/User/getUserMsg', {
|
||||
account: this.name
|
||||
}).then((res) => {
|
||||
this.usermsgList = res;
|
||||
});
|
||||
},
|
||||
dateFormate(row, column, cellValue, index) {
|
||||
return this.formatDate(cellValue);
|
||||
},
|
||||
show(row) {
|
||||
this.$api.post('api/User/changeMsgState', {
|
||||
id: row.user_msg_id
|
||||
})
|
||||
.then(res => {
|
||||
this.initUserMsg();
|
||||
this.$router.push(row.url);
|
||||
});
|
||||
},
|
||||
formatDate(timestamp) {
|
||||
var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + '-';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
|
||||
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
|
||||
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
|
||||
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
|
||||
return Y + M + D + ' ' + h + ':' + m + ':' + s;
|
||||
},
|
||||
goaddarticle() {
|
||||
this.$router.push('/articleAdd');
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.msg-table{
|
||||
text-align: center;
|
||||
}
|
||||
.add-button{
|
||||
display: block;
|
||||
margin: 50px auto;
|
||||
}
|
||||
.top-content{
|
||||
padding: 2px;
|
||||
}
|
||||
.top-content span{
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
display: block;
|
||||
padding: 2px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.msg-table {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.add-button {
|
||||
display: block;
|
||||
margin: 50px auto;
|
||||
}
|
||||
|
||||
.top-content {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.top-content span {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
display: block;
|
||||
padding: 2px;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.grid-jue1,
|
||||
.grid-jue2,
|
||||
.grid-jue3,
|
||||
.grid-jue4 {
|
||||
margin: 10px 10px 20px 10px;
|
||||
padding: 20px 20px 26px 20px;
|
||||
color: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.grid-jue1 p,
|
||||
.grid-jue2 p,
|
||||
.grid-jue3 p,
|
||||
.grid-jue4 p {
|
||||
margin-left: 50px;
|
||||
margin-top: -30px;
|
||||
}
|
||||
|
||||
.grid-jue1:hover,
|
||||
.grid-jue2:hover,
|
||||
.grid-jue3:hover,
|
||||
.grid-jue4:hover {
|
||||
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 30%);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.grid-jue1 {
|
||||
background-image: linear-gradient(to right, #1c66c0, #118bb3);
|
||||
}
|
||||
|
||||
.grid-jue2 {
|
||||
background-image: linear-gradient(to right, #e26a2d, #f5953c);
|
||||
}
|
||||
|
||||
.grid-jue3 {
|
||||
background-image: linear-gradient(to right, #4640c4, #7959e1);
|
||||
}
|
||||
|
||||
.grid-jue4 {
|
||||
background-image: linear-gradient(to right, #cc3646, #e84651);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,177 +1,181 @@
|
||||
<template>
|
||||
<div class="login-wrap">
|
||||
<div class="ms-login">
|
||||
<div class="ms-title">{{ $t('system.title') }}</div>
|
||||
<el-form :model="param" :rules="rules" ref="login" label-width="0px" class="ms-content">
|
||||
<el-form-item prop="username">
|
||||
<el-input v-model="param.username" auto-complete="off" placeholder="username">
|
||||
<i slot="prefix" class="el-icon-lx-people" />
|
||||
<!-- <el-button slot="prepend" icon="el-icon-lx-people"></el-button> -->
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input type="password" auto-complete="off" placeholder="password" v-model="param.password">
|
||||
<i slot="prefix" class="el-icon-lx-lock" />
|
||||
<!-- <el-button slot="prepend" icon="el-icon-lx-lock"></el-button> -->
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<div class="login-btn">
|
||||
<el-button type="primary" @click="submitForm()">{{ $t('system.login') }}</el-button>
|
||||
</div>
|
||||
<el-row style="text-align: left">
|
||||
<el-col :span="24">
|
||||
<el-link :underline="false" type="primary" @click="doRetrieve()">{{ $t('system.repassword') }}</el-link>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-link :underline="false" type="primary" @click="doRegister()">{{ $t('system.register') }}</el-link>
|
||||
</el-col>
|
||||
<el-col :span="24" style="margin-top: 5px">
|
||||
<el-link :underline="false" type="primary" @click="skip_check()">
|
||||
<img class="orcid" src="../../assets/img/orcid.png" style="float: left; margin: -1px 5px 0 0" />{{$t('system.orcidlogin')}}
|
||||
</el-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="login-wrap">
|
||||
<div class="ms-login">
|
||||
<div class="ms-title">{{ $t('system.title') }}</div>
|
||||
<el-form :model="param" :rules="rules" ref="login" label-width="0px" class="ms-content">
|
||||
<el-form-item prop="username">
|
||||
<el-input v-model="param.username" auto-complete="off" placeholder="username">
|
||||
<i slot="prefix" class="el-icon-lx-people" />
|
||||
<!-- <el-button slot="prepend" icon="el-icon-lx-people"></el-button> -->
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input type="password" auto-complete="off" placeholder="password" v-model="param.password">
|
||||
<i slot="prefix" class="el-icon-lx-lock" />
|
||||
<!-- <el-button slot="prepend" icon="el-icon-lx-lock"></el-button> -->
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<div class="login-btn">
|
||||
<el-button type="primary" @click="submitForm()">{{ $t('system.login') }}</el-button>
|
||||
</div>
|
||||
<el-row style="text-align: left">
|
||||
<el-col :span="24">
|
||||
<el-link :underline="false" type="primary" @click="doRetrieve()">{{ $t('system.repassword') }}</el-link>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-link :underline="false" type="primary" @click="doRegister()">{{ $t('system.register') }}</el-link>
|
||||
</el-col>
|
||||
<el-col :span="24" style="margin-top: 5px">
|
||||
<el-link :underline="false" type="primary" @click="skip_check()">
|
||||
<img class="orcid" src="../../assets/img/orcid.png" style="float: left; margin: -1px 5px 0 0" />{{$t('system.orcidlogin')}}
|
||||
</el-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data: function () {
|
||||
return {
|
||||
aa: localStorage.getItem('ms_journal'),
|
||||
orcidLink:
|
||||
'https://orcid.org/oauth/authorize?client_id=APP-PKF0BGRP6DWM6FUB&response_type=code&scope=/authenticate&redirect_uri=https://submission.tmrjournals.com/orcidLink',
|
||||
param: {
|
||||
username: '',
|
||||
password: ''
|
||||
},
|
||||
rules: {
|
||||
username: [
|
||||
{
|
||||
required: true,
|
||||
message: 'enter one user name',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
password: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please input a password',
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
submitForm() {
|
||||
//登录操作
|
||||
this.$refs.login.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/user/checkLogin', this.param)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
if (res.code == 1) {
|
||||
this.$message.error('Login failed, user name or password error!');
|
||||
return false;
|
||||
} else {
|
||||
this.$message.success('login success');
|
||||
localStorage.setItem('ms_username', res.userinfo.account);
|
||||
if (this.param.username == 'superadmin' || this.param.username == 'wuxiongzhi2') {
|
||||
localStorage.setItem('ms_userrole', 'admin');
|
||||
} else if (res.userinfo.type == 1 && res.userinfo.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.userinfo.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error('Please enter the correct account and password');
|
||||
console.log('error submit!!');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
doRegister() {
|
||||
//注册页面
|
||||
this.$router.push({
|
||||
path: '/register'
|
||||
});
|
||||
},
|
||||
doRetrieve() {
|
||||
//找回密码
|
||||
this.$router.push({
|
||||
path: '/retrieve'
|
||||
});
|
||||
},
|
||||
export default {
|
||||
data: function() {
|
||||
return {
|
||||
aa: localStorage.getItem('ms_journal'),
|
||||
orcidLink: 'https://orcid.org/oauth/authorize?client_id=APP-PKF0BGRP6DWM6FUB&response_type=code&scope=/authenticate&redirect_uri=https://submission.tmrjournals.com/orcidLink',
|
||||
param: {
|
||||
username: '',
|
||||
password: ''
|
||||
},
|
||||
rules: {
|
||||
username: [{
|
||||
required: true,
|
||||
message: 'enter one user name',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
password: [{
|
||||
required: true,
|
||||
message: 'Please input a password',
|
||||
trigger: 'blur'
|
||||
}]
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
submitForm() {
|
||||
//登录操作
|
||||
this.$refs.login.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/User/checkLogin', this.param)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
if (res.code == 1) {
|
||||
this.$message.error('Login failed, user name or password error!');
|
||||
return false;
|
||||
} else {
|
||||
this.$message.success('login success');
|
||||
// U_status 0超级管理员 1编辑 2作者
|
||||
if (this.param.username == 'superadmin' || this.param.username == 'wuxiongzhi2') {
|
||||
localStorage.setItem('U_status', '0'); //超级管理员
|
||||
localStorage.setItem('U_role', 'superadmin');
|
||||
localStorage.setItem('U_name', res.userinfo.account);
|
||||
localStorage.setItem('U_id', res.userinfo.user_id);
|
||||
} else if (res.data.roles.includes('editor')) {
|
||||
localStorage.setItem('U_status', '1'); //编辑
|
||||
localStorage.setItem('U_role', res.data.roles);
|
||||
localStorage.setItem('U_name', res.data.userinfo.account);
|
||||
localStorage.setItem('U_id', res.data.userinfo.user_id);
|
||||
} else {
|
||||
localStorage.setItem('U_status', '2'); //其余的身份
|
||||
localStorage.setItem('U_role', res.data.roles);
|
||||
localStorage.setItem('U_name', res.data.userinfo.account);
|
||||
localStorage.setItem('U_id', res.data.userinfo.user_id);
|
||||
}
|
||||
this.$router.push('/');
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error('Please enter the correct account and password');
|
||||
console.log('error submit!!');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
doRegister() {
|
||||
//注册页面
|
||||
this.$router.push({
|
||||
path: '/register'
|
||||
});
|
||||
},
|
||||
doRetrieve() {
|
||||
//找回密码
|
||||
this.$router.push({
|
||||
path: '/retrieve'
|
||||
});
|
||||
},
|
||||
|
||||
skip_check() {
|
||||
location.href = this.orcidLink;
|
||||
}
|
||||
}
|
||||
};
|
||||
skip_check() {
|
||||
location.href = this.orcidLink;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.login-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: url(../../assets/img/login-bg.jpg);
|
||||
background-size: 100%;
|
||||
}
|
||||
.login-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: url(../../assets/img/login-bg.jpg);
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.ms-title {
|
||||
width: 100%;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
.ms-title {
|
||||
width: 100%;
|
||||
line-height: 50px;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.ms-login {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 350px;
|
||||
margin: -190px 0 0 -175px;
|
||||
border-radius: 5px;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
overflow: hidden;
|
||||
}
|
||||
.ms-login {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
width: 350px;
|
||||
margin: -190px 0 0 -175px;
|
||||
border-radius: 5px;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ms-content {
|
||||
padding: 30px 30px;
|
||||
}
|
||||
.ms-content {
|
||||
padding: 30px 30px;
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
text-align: center;
|
||||
}
|
||||
.login-btn {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-btn button {
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.login-btn button {
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.login-tips {
|
||||
font-size: 12px;
|
||||
line-height: 30px;
|
||||
color: #fff;
|
||||
}
|
||||
.login-tips {
|
||||
font-size: 12px;
|
||||
line-height: 30px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.orcid {
|
||||
display: block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
}
|
||||
.orcid {
|
||||
display: block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<el-option key="B" label="Review" value="B"></el-option>
|
||||
<el-option key="C" label="Case report" value="C"></el-option>
|
||||
<el-option key="M" label="Meta-analysis" value="M"></el-option>
|
||||
<el-option key="P" label="Research proposal" value="P"></el-option>
|
||||
<el-option key="P" label="Research proposal" value="P"></el-option>
|
||||
<el-option key="N" label="News" value="N"></el-option>
|
||||
<el-option key="T" label="Comment" value="T"></el-option>
|
||||
<el-option key="O" label="Others" value="O"></el-option>
|
||||
@@ -283,9 +283,9 @@
|
||||
<el-dialog title="" :visible.sync="licensebox" width="30%">
|
||||
<span style="word-wrap:break-word; word-break:normal; ">
|
||||
Creative Commons Licensing<br>
|
||||
TMR Publishing Group provides authors the choice of applying the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) licenses defined below, to be determined after acceptance:<br>
|
||||
TMR Publishing Group provides authors the choice of applying the Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) licenses defined below, to be determined after acceptance:<br>
|
||||
Attribution: CC BY-NC 4.0<br>
|
||||
This license lets others distribute, remix, tweak, and build upon your work. They can not use the material for commercial purposes.
|
||||
This license lets others distribute, remix, tweak, and build upon your work. They can not use the material for commercial purposes.
|
||||
</span>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="licensebox = false">close</el-button>
|
||||
@@ -305,7 +305,7 @@ export default {
|
||||
loading: false,
|
||||
form: {
|
||||
journal: localStorage.getItem('ms_journal_alias') ? parseInt(localStorage.getItem('ms_journal_alias')) : 1,
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
title: '',
|
||||
major: '',
|
||||
cmajor: '',
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<span>
|
||||
<p>
|
||||
I am writing just to follow up on the suggestion from the editor of {{ form.journalname }} that you might be
|
||||
interested in submitting your paper to {{ transinfo.jourtitle }} instead.<br /><br />
|
||||
interested in submitting your paper to {{ transinfo.jourtitle }} instead.<br /><br />
|
||||
</p>
|
||||
<p>
|
||||
If you choose to pursue publication in {{ transinfo.jourtitle }},
|
||||
@@ -385,7 +385,7 @@ export default {
|
||||
articleId: this.$route.query.id,
|
||||
journal: '',
|
||||
journalname: '',
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
title: '',
|
||||
accept_sn: '',
|
||||
abstrart: '',
|
||||
@@ -436,7 +436,7 @@ export default {
|
||||
frag = 'Meta-analysis';
|
||||
break;
|
||||
case 'P':
|
||||
frag = 'Research proposal';
|
||||
frag = 'Research proposal';
|
||||
break;
|
||||
case 'N':
|
||||
frag = 'News';
|
||||
|
||||
@@ -515,7 +515,7 @@ export default {
|
||||
totalpageFileList:[],
|
||||
manuscirptFileList: [],
|
||||
editform: {
|
||||
editname: localStorage.getItem('ms_username'),
|
||||
editname: localStorage.getItem('U_name'),
|
||||
articleId: this.$route.query.id,
|
||||
state: 0,
|
||||
trsjournal:0,
|
||||
@@ -605,7 +605,7 @@ export default {
|
||||
frag = 'Meta-analysis';
|
||||
break;
|
||||
case 'P':
|
||||
frag = 'Research proposal';
|
||||
frag = 'Research proposal';
|
||||
break;
|
||||
case 'N':
|
||||
frag = 'News';
|
||||
|
||||
@@ -87,7 +87,7 @@ export default {
|
||||
return {
|
||||
items: '',
|
||||
query: {
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
journal: localStorage.getItem('ms_journal_alias')?parseInt(localStorage.getItem('ms_journal_alias')):0,
|
||||
name: '',
|
||||
state:0,
|
||||
|
||||
@@ -102,7 +102,7 @@ export default {
|
||||
return {
|
||||
items: '',
|
||||
query: {
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
journal: 0,
|
||||
name: '',
|
||||
state:-1,
|
||||
|
||||
@@ -394,13 +394,13 @@ export default {
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
dateId: this.$route.query.id,
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
articlefileList: [],
|
||||
articlezipList: [],
|
||||
dialogFormVisible: false,
|
||||
activeNames: ['1', '2', '3', '4', '5', '6', '7'],
|
||||
detailDate: {
|
||||
editor: localStorage.getItem('ms_username'),
|
||||
editor: localStorage.getItem('U_name'),
|
||||
artrevid: '',
|
||||
article: '',
|
||||
reviewer: '',
|
||||
|
||||
@@ -52,7 +52,7 @@ export default {
|
||||
articleId: this.$route.query.id,
|
||||
journal: '',
|
||||
journalname: '',
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
title: '',
|
||||
accept_sn: '',
|
||||
abstrart: '',
|
||||
|
||||
@@ -136,11 +136,11 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
baseUrl: this.Common.baseUrl,
|
||||
name:localStorage.getItem('ms_username'),
|
||||
name:localStorage.getItem('U_name'),
|
||||
userdata: '',
|
||||
loading: false,
|
||||
reviewerForm: {
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
journal: '',
|
||||
gender:1,
|
||||
introduction:'',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-connection"></i> Journal list
|
||||
<i class="el-icon-connection"></i> Editor list
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
|
||||
361
src/components/page/editmbereditor.vue
Normal file
361
src/components/page/editmbereditor.vue
Normal file
@@ -0,0 +1,361 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-connection"></i> Editorial board list
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="handle-box">
|
||||
<el-button type="primary" icon="el-icon-circle-plus-outline" @click="addEditor">add</el-button>
|
||||
</div>
|
||||
<div class="handle-box" :rules="rules">
|
||||
<el-select v-model="query.journal_id" placeholder="请选择期刊" @change="chan_id">
|
||||
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header">
|
||||
<el-table-column prop="account" label="username" align="center"></el-table-column>
|
||||
<el-table-column prop="realname" label="realname" align="center"></el-table-column>
|
||||
<el-table-column prop="phone" label="phone" align="center"></el-table-column>
|
||||
<el-table-column prop="email" label="email" align="center"></el-table-column>
|
||||
<el-table-column label="" width="100" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" icon="el-icon-delete" class="red" @click="handleDelete(scope.$index, scope.row)">Delete</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<!-- 添加弹出框 -->
|
||||
<el-dialog title="Add editorial board" :visible.sync="addVisible" width="40%">
|
||||
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="150px">
|
||||
<el-form-item label="account" prop="account">
|
||||
<el-input v-model="addForm.account" @blur='saerNa_U()'></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="email" prop="email">
|
||||
<el-input v-model="addForm.email" @blur='saerEm_U()'></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="journal" prop="journal_id">
|
||||
<el-select v-model="addForm.journal_id" filterable placeholder="Please select a responsible Journal" value-key="groupID"
|
||||
style="width: 300px;">
|
||||
<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="realname" prop="realname">
|
||||
<el-input v-model="addForm.realname"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="password" prop="password">
|
||||
<el-input v-model="addForm.password" type="password"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="Confirm password" prop="repassword">
|
||||
<el-input v-model="addForm.repassword" type="password"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="phone" prop="phone">
|
||||
<el-input v-model="addForm.phone"></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(addForm)">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 已有信息弹出框 -->
|
||||
<el-dialog title="Add editorial board" :visible.sync="oldVisible" width="40%">
|
||||
<el-form ref="old_Form" :model="oldForm" :rules="rules" label-width="100px">
|
||||
<el-form-item label="account">
|
||||
{{oldForm.account}}
|
||||
</el-form-item>
|
||||
<el-form-item label="email">
|
||||
{{oldForm.email}}
|
||||
</el-form-item>
|
||||
<el-form-item label="journal" prop="journal_id">
|
||||
<el-select v-model="oldForm.journal_id" filterable placeholder="Please select a responsible Journal" value-key="groupID"
|
||||
style="width: 300px;">
|
||||
<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="realname">
|
||||
{{oldForm.realname}}
|
||||
</el-form-item>
|
||||
<el-form-item label="phone">
|
||||
{{oldForm.phone}}
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="oldVisible = false">Cancel</el-button>
|
||||
<el-button type="primary" @click="saveOld(oldForm)">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
edit_id: localStorage.getItem('U_id'),
|
||||
tableData: [],
|
||||
df_jour: [],
|
||||
addVisible: false,
|
||||
oldVisible: false,
|
||||
addForm: {},
|
||||
oldForm: {},
|
||||
aid: -1,
|
||||
id: -1,
|
||||
query: {
|
||||
journal_id: 0,
|
||||
},
|
||||
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"
|
||||
}],
|
||||
journal_id: [{
|
||||
required: true,
|
||||
message: 'Please select a responsible Journal',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
password: [{
|
||||
required: true,
|
||||
message: 'Please input password',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
repassword: [{
|
||||
required: true,
|
||||
message: 'Please input confirm password',
|
||||
trigger: 'blur'
|
||||
}]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getjour();
|
||||
// this.getdate();
|
||||
},
|
||||
methods: {
|
||||
// 获取编委和负责期刊列表数据
|
||||
getdate() {
|
||||
this.$api
|
||||
.post('api/Chief/getJournalBoard', this.query)
|
||||
.then(res => {
|
||||
this.tableData = res.data.boards;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
},
|
||||
getjour() {
|
||||
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.$api
|
||||
.post('api/Chief/getJournalBoard', this.query)
|
||||
.then(res => {
|
||||
this.tableData = res.data.boards;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉分类搜索
|
||||
chan_id(event) {
|
||||
this.getdate();
|
||||
},
|
||||
|
||||
// 添加操作
|
||||
addEditor(index, row) {
|
||||
this.aid = index;
|
||||
this.addVisible = true;
|
||||
},
|
||||
|
||||
// 查找与他相同的账号
|
||||
saerNa_U() {
|
||||
if (this.addForm.account != undefined) {
|
||||
this.$api
|
||||
.post('api/Chief/checkEmailForUser', {
|
||||
'email': this.addForm.account
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data.user_info != null) {
|
||||
this.$confirm('该账户已存在,是否在该账户下操作?', '提示', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.addVisible = false;
|
||||
this.$refs.add_Form.resetFields();
|
||||
// this.id = index;
|
||||
this.oldVisible = true;
|
||||
this.oldForm = res.data.user_info;
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}
|
||||
},
|
||||
// 查找与他相同的邮箱
|
||||
saerEm_U() {
|
||||
if (this.addForm.email != undefined) {
|
||||
this.$api
|
||||
.post('api/Chief/checkEmailForUser', {
|
||||
'email': this.addForm.email
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res.data.user_info != null) {
|
||||
this.$confirm('该账户已存在,是否在该账户下操作?', '提示', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.addVisible = false;
|
||||
this.$refs.add_Form.resetFields();
|
||||
// this.id = index;
|
||||
this.oldVisible = true;
|
||||
this.oldForm = res.data.user_info;
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 保存添加
|
||||
saveAdd(addForm) {
|
||||
if (addForm.password == addForm.repassword) {
|
||||
this.$refs.add_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/Chief/addJournalBoard', this.addForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.addVisible = false;
|
||||
this.$refs.add_Form.resetFields();
|
||||
this.$message.success(`添加成功`);
|
||||
this.getdate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.$message.error("两次新密码输入不一致");
|
||||
}
|
||||
},
|
||||
// 保存old添加
|
||||
saveOld(oldForm) {
|
||||
this.$refs.old_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/Chief/addJournalBoardHas', this.oldForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.oldVisible = false;
|
||||
this.$refs.old_Form.resetFields();
|
||||
this.$message.success(`添加成功`);
|
||||
this.getdate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 删除操作
|
||||
handleDelete(index, row) {
|
||||
// 二次确认删除
|
||||
this.$confirm('确定要删除吗?', '提示', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Chief/delJournalBoard', row)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('删除成功');
|
||||
this.getdate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
</style>
|
||||
183
src/components/page/editmberperiod.vue
Normal file
183
src/components/page/editmberperiod.vue
Normal file
@@ -0,0 +1,183 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-connection"></i> Journal list
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header">
|
||||
<el-table-column prop="title" label="title" width="320px"></el-table-column>
|
||||
<el-table-column label="chief" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div v-for="item in scope.row.chief">
|
||||
{{item.realname==''?item.account:(item.realname!=''?item.account+' ('+item.realname+')':'')}}
|
||||
<el-button type="text" icon="el-icon-delete" class="red" @click="handleDelete(item)"></el-button>
|
||||
</div>
|
||||
<el-button type="text" icon="el-icon-edit" @click="handleEdit(scope.$index, scope.row)">Choice</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="issn" label="issn" width="130px"></el-table-column>
|
||||
<el-table-column prop="email" label="email" width="240px"></el-table-column>
|
||||
<el-table-column prop="website" label="website" width="300px"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
|
||||
<!-- 选择弹出框 -->
|
||||
<el-dialog title="Choice editor" :visible.sync="editVisible" width="30%">
|
||||
<el-form ref="edit_Form" :model="editForm" :rules="rules" label-width="80px">
|
||||
<el-form-item label="title">
|
||||
<template slot-scope="scope">
|
||||
{{editForm.title}}
|
||||
</template>
|
||||
</el-form-item>
|
||||
<el-form-item label="chief" prop="chief">
|
||||
<el-select v-model="editForm.user_id" filterable placeholder="Please select the editor in chief" value-key="groupID"
|
||||
style="width: 250px;">
|
||||
<el-option v-for="item in chietry"
|
||||
:label="item.realname==''?item.account:(item.realname!=''?item.account+' ('+item.realname+')':'')"
|
||||
:key="item.user_id" :value="item.user_id"></el-option>
|
||||
</el-select>
|
||||
</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(editForm)">OK</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
editVisible: false,
|
||||
editForm: {},
|
||||
idx: -1,
|
||||
chietry: [],
|
||||
rules: {
|
||||
account: [{
|
||||
required: true,
|
||||
message: 'Please input account',
|
||||
trigger: 'blur'
|
||||
}]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getdate();
|
||||
},
|
||||
methods: {
|
||||
// 获取列表数据
|
||||
getdate() {
|
||||
this.$api
|
||||
.post('api/Chief/getJournalForChief')
|
||||
.then(res => {
|
||||
this.tableData = res.data.journals;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 编辑操作
|
||||
handleEdit(index, row) {
|
||||
this.idx = index;
|
||||
this.editForm = Object.assign({}, row);
|
||||
// 获取下拉数据
|
||||
this.$api
|
||||
.post('api/Chief/getChiefList')
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.chietry = res.data.chiefs;
|
||||
for (let i = 0; i < this.chietry.length; i++) {
|
||||
for (let r = 0; r < this.editForm.chief.length; r++) {
|
||||
if (this.chietry[i].user_id == this.editForm.chief[r].user_id) {
|
||||
this.chietry.splice(i, 1);
|
||||
if (i == 0) {
|
||||
i = 0
|
||||
} else {
|
||||
i = i - 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
|
||||
this.editVisible = true;
|
||||
},
|
||||
// 保存编辑
|
||||
saveEdit(editForm) {
|
||||
this.$refs.edit_Form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.$api
|
||||
.post('api/Chief/addChiefToJournal', this.editForm)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.editVisible = false;
|
||||
this.$message.success(`更改第 ${this.idx + 1} 行成功`);
|
||||
this.getdate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
} else {
|
||||
this.$message.error('error submit!!');
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 删除操作
|
||||
handleDelete(item) {
|
||||
// 二次确认删除
|
||||
this.$confirm('Are you sure you want to delete?', 'Delete', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/Chief/delChiefToJournal', item)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('删除成功');
|
||||
this.getdate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
</style>
|
||||
@@ -58,7 +58,7 @@ export default {
|
||||
jdt:false,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
baseUrl: this.Common.baseUrl,
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
upform: {
|
||||
course: '',
|
||||
url: ''
|
||||
|
||||
49
src/components/page/man_aging.vue
Normal file
49
src/components/page/man_aging.vue
Normal file
@@ -0,0 +1,49 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-collection"></i> {{this.head_line}}
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container container_l">
|
||||
789+456
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
head_line: "",
|
||||
tableData: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
created() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
// 获取数据
|
||||
getData() {
|
||||
this.head_line = localStorage.getItem('journal_title');
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
$route(to, from) {
|
||||
this.getData()
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -335,7 +335,7 @@ export default {
|
||||
totalpageFileList:[],
|
||||
manuscirptFileList: [],
|
||||
editform: {
|
||||
editname: localStorage.getItem('ms_username'),
|
||||
editname: localStorage.getItem('U_name'),
|
||||
articleId: this.$route.query.id,
|
||||
state: '',
|
||||
editormsg: ''
|
||||
@@ -412,7 +412,7 @@ export default {
|
||||
frag = 'Meta-analysis';
|
||||
break;
|
||||
case 'P':
|
||||
frag = 'Research proposal';
|
||||
frag = 'Research proposal';
|
||||
break;
|
||||
case 'N':
|
||||
frag = 'News';
|
||||
|
||||
@@ -7,7 +7,7 @@ export default {
|
||||
data: function () {
|
||||
return {
|
||||
query: {
|
||||
account: localStorage.getItem('ms_username'),
|
||||
account: localStorage.getItem('U_name'),
|
||||
code: this.$route.query.code
|
||||
},
|
||||
loading: true,
|
||||
|
||||
@@ -1,312 +1,279 @@
|
||||
<template>
|
||||
<div class="login-wrap" v-loading="loading">
|
||||
<template>
|
||||
<p class="ms_notes">
|
||||
Thank you for using ORCID ID to login our website, please continue to login or register TMR Publshing Group account to connect with your ORCID ID.
|
||||
</p>
|
||||
<!-- <p class="ms_noter">
|
||||
<div class="login-wrap" v-loading="loading">
|
||||
<template>
|
||||
<p class="ms_notes">
|
||||
Thank you for using ORCID ID to login our website, please continue to login or register TMR Publshing Group account
|
||||
to connect with your ORCID ID.
|
||||
</p>
|
||||
<!-- <p class="ms_noter">
|
||||
如果你拥有账户但没有绑定相应的ORCID,请点击绑定操作,<br/>
|
||||
如果你没有账户,请点击注册进行相应操作
|
||||
</p> -->
|
||||
<el-tabs v-model="activeName" class="ms_tab_n">
|
||||
<el-tab-pane label="Login" name="first">
|
||||
<div class="ms_link">
|
||||
<div class="ms-title">User Login</div>
|
||||
<el-form class="ms-content" :rules="registerRules" ref="loginForm" :model="loginForm" label-width="0">
|
||||
<!-- 用户名 -->
|
||||
<el-form-item prop="username">
|
||||
<el-input size="small" v-model="loginForm.username" auto-complete="off" placeholder="username">
|
||||
<i slot="prefix" class="el-icon-user"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 密码 -->
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
size="small"
|
||||
v-model="loginForm.password"
|
||||
auto-complete="off"
|
||||
placeholder="password"
|
||||
show-password
|
||||
>
|
||||
<i slot="prefix" class="el-icon-lock"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 按钮 -->
|
||||
<el-row justify="center">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click.native.prevent="orcidBind" class="register-submit" style="width: 100%"
|
||||
>bind</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="Register" name="second">
|
||||
<div class="ms_login">
|
||||
<div class="ms-title">User Register</div>
|
||||
<el-form class="ms-content" :rules="registerRules" ref="registerForm" :model="registerForm" label-width="0">
|
||||
<!-- 用户名 -->
|
||||
<el-form-item prop="username">
|
||||
<el-input size="small" v-model="registerForm.username" auto-complete="off" placeholder="username">
|
||||
<i slot="prefix" class="el-icon-user"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 密码 -->
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
size="small"
|
||||
v-model="registerForm.password"
|
||||
auto-complete="off"
|
||||
placeholder="password"
|
||||
show-password
|
||||
>
|
||||
<i slot="prefix" class="el-icon-lock"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 确认密码 -->
|
||||
<el-form-item prop="passwordd">
|
||||
<el-input
|
||||
size="small"
|
||||
v-model="registerForm.passwordd"
|
||||
auto-complete="off"
|
||||
placeholder="password"
|
||||
show-password
|
||||
>
|
||||
<i slot="prefix" class="el-icon-lock"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 姓名 -->
|
||||
<el-form-item prop="name">
|
||||
<el-input size="small" v-model="registerForm.name" auto-complete="off" placeholder="realname">
|
||||
<i slot="prefix" class="el-icon-edit-outline"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 手机 -->
|
||||
<el-form-item prop="phone">
|
||||
<el-input size="small" v-model="registerForm.phone" auto-complete="off" placeholder="phone">
|
||||
<i slot="prefix" class="el-icon-mobile-phone" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 邮件 -->
|
||||
<el-form-item prop="email">
|
||||
<el-input size="small" v-model="registerForm.email" auto-complete="off" placeholder="email">
|
||||
<i slot="prefix" class="el-icon-message"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 按钮 -->
|
||||
<el-row justify="center">
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click.native.prevent="orcidRegister"
|
||||
class="register-submit"
|
||||
style="width: 100%"
|
||||
>bind</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
</div>
|
||||
<el-tabs v-model="activeName" class="ms_tab_n">
|
||||
<el-tab-pane label="Login" name="first">
|
||||
<div class="ms_link">
|
||||
<div class="ms-title">User Login</div>
|
||||
<el-form class="ms-content" :rules="registerRules" ref="loginForm" :model="loginForm" label-width="0">
|
||||
<!-- 用户名 -->
|
||||
<el-form-item prop="username">
|
||||
<el-input size="small" v-model="loginForm.username" auto-complete="off" placeholder="username">
|
||||
<i slot="prefix" class="el-icon-user"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 密码 -->
|
||||
<el-form-item prop="password">
|
||||
<el-input size="small" v-model="loginForm.password" auto-complete="off" placeholder="password" show-password>
|
||||
<i slot="prefix" class="el-icon-lock"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 按钮 -->
|
||||
<el-row justify="center">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click.native.prevent="orcidBind" class="register-submit" style="width: 100%">bind</el-button>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="Register" name="second">
|
||||
<div class="ms_login">
|
||||
<div class="ms-title">User Register</div>
|
||||
<el-form class="ms-content" :rules="registerRules" ref="registerForm" :model="registerForm" label-width="0">
|
||||
<!-- 用户名 -->
|
||||
<el-form-item prop="username">
|
||||
<el-input size="small" v-model="registerForm.username" auto-complete="off" placeholder="username">
|
||||
<i slot="prefix" class="el-icon-user"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 密码 -->
|
||||
<el-form-item prop="password">
|
||||
<el-input size="small" v-model="registerForm.password" auto-complete="off" placeholder="password" show-password>
|
||||
<i slot="prefix" class="el-icon-lock"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 确认密码 -->
|
||||
<el-form-item prop="passwordd">
|
||||
<el-input size="small" v-model="registerForm.passwordd" auto-complete="off" placeholder="password"
|
||||
show-password>
|
||||
<i slot="prefix" class="el-icon-lock"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 姓名 -->
|
||||
<el-form-item prop="name">
|
||||
<el-input size="small" v-model="registerForm.name" auto-complete="off" placeholder="realname">
|
||||
<i slot="prefix" class="el-icon-edit-outline"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 手机 -->
|
||||
<el-form-item prop="phone">
|
||||
<el-input size="small" v-model="registerForm.phone" auto-complete="off" placeholder="phone">
|
||||
<i slot="prefix" class="el-icon-mobile-phone" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 邮件 -->
|
||||
<el-form-item prop="email">
|
||||
<el-input size="small" v-model="registerForm.email" auto-complete="off" placeholder="email">
|
||||
<i slot="prefix" class="el-icon-message"></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!-- 按钮 -->
|
||||
<el-row justify="center">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click.native.prevent="orcidRegister" class="register-submit" style="width: 100%">bind</el-button>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data: function () {
|
||||
return {
|
||||
account: localStorage.getItem('ms_username'),
|
||||
code: this.$route.query.code,
|
||||
// loading: true,
|
||||
has_user: true,
|
||||
loginForm: {},
|
||||
registerForm: {},
|
||||
activeName: 'first',
|
||||
registerRules: {
|
||||
username: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter your username.',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
password: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter your password.',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
passwordd: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter your password.',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter your real name.',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
phone: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter the correct mobile phone number.',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
email: [
|
||||
{
|
||||
required: true,
|
||||
message: 'Please enter your email address.',
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
type: 'email',
|
||||
message: 'Email address format error(example@gmail.com).',
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
created: function () {
|
||||
this.initLinkOrcid();
|
||||
},
|
||||
methods: {
|
||||
initLinkOrcid() {
|
||||
this.$api
|
||||
.post('api/User/OrcidLogin', { code: this.code })
|
||||
.then((res) => {
|
||||
if (res.data.user == null) {
|
||||
this.loginForm.orcid = res.data.orcid;
|
||||
this.registerForm.orcid = res.data.orcid;
|
||||
this.loading = false;
|
||||
} else {
|
||||
this.$message.success('Login success');
|
||||
localStorage.setItem('ms_username', res.data.user.account);
|
||||
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.data.user.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
//绑定操作提交
|
||||
orcidBind() {
|
||||
this.$api
|
||||
.post('api/User/orcidBind', this.loginForm)
|
||||
.then((res) => {
|
||||
if (res.data.code == 1) {
|
||||
this.$message.error(res.data.msg);
|
||||
} else {
|
||||
this.$message.success('Binding success');
|
||||
localStorage.setItem('ms_username', res.data.user.account);
|
||||
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.data.user.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
//注册提交
|
||||
orcidRegister() {
|
||||
this.$api
|
||||
.post('api/User/orcidRegister', this.registerForm)
|
||||
.then((res) => {
|
||||
this.$message.success('Register success');
|
||||
localStorage.setItem('ms_username', res.data.user.account);
|
||||
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.data.user.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
export default {
|
||||
data: function() {
|
||||
return {
|
||||
account: localStorage.getItem('U_name'),
|
||||
code: this.$route.query.code,
|
||||
// loading: true,
|
||||
has_user: true,
|
||||
loginForm: {},
|
||||
registerForm: {},
|
||||
activeName: 'first',
|
||||
registerRules: {
|
||||
username: [{
|
||||
required: true,
|
||||
message: 'Please enter your username.',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
password: [{
|
||||
required: true,
|
||||
message: 'Please enter your password.',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
passwordd: [{
|
||||
required: true,
|
||||
message: 'Please enter your password.',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
name: [{
|
||||
required: true,
|
||||
message: 'Please enter your real name.',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
phone: [{
|
||||
required: true,
|
||||
message: 'Please enter the correct mobile phone number.',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
email: [{
|
||||
required: true,
|
||||
message: 'Please enter your email address.',
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
type: 'email',
|
||||
message: 'Email address format error(example@gmail.com).',
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
created: function() {
|
||||
this.initLinkOrcid();
|
||||
},
|
||||
methods: {
|
||||
initLinkOrcid() {
|
||||
this.$api
|
||||
.post('api/User/OrcidLogin', {
|
||||
code: this.code
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.data.user == null) {
|
||||
this.loginForm.orcid = res.data.orcid;
|
||||
this.registerForm.orcid = res.data.orcid;
|
||||
this.loading = false;
|
||||
} else {
|
||||
this.$message.success('Login success');
|
||||
localStorage.setItem('U_name', res.data.user.account);
|
||||
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.data.user.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
//绑定操作提交
|
||||
orcidBind() {
|
||||
this.$api
|
||||
.post('api/User/orcidBind', this.loginForm)
|
||||
.then((res) => {
|
||||
if (res.data.code == 1) {
|
||||
this.$message.error(res.data.msg);
|
||||
} else {
|
||||
this.$message.success('Binding success');
|
||||
localStorage.setItem('U_name', res.data.user.account);
|
||||
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.data.user.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
//注册提交
|
||||
orcidRegister() {
|
||||
this.$api
|
||||
.post('api/User/orcidRegister', this.registerForm)
|
||||
.then((res) => {
|
||||
this.$message.success('Register success');
|
||||
localStorage.setItem('U_name', res.data.user.account);
|
||||
if (res.data.user.type == 1 && res.data.user.is_reviewer) {
|
||||
localStorage.setItem('ms_userrole', 'reviewer');
|
||||
} else {
|
||||
localStorage.setItem('ms_userrole', res.data.user.type);
|
||||
}
|
||||
this.$router.push('/');
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.login-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: url(../../assets/img/login-bg.jpg);
|
||||
background-size: 100%;
|
||||
padding-top: 80px;
|
||||
}
|
||||
.login-wrap {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: url(../../assets/img/login-bg.jpg);
|
||||
background-size: 100%;
|
||||
padding-top: 80px;
|
||||
}
|
||||
|
||||
.ms_login,
|
||||
.ms_link {
|
||||
width: 400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.ms_login,
|
||||
.ms_link {
|
||||
width: 400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.ms_login .ms-title,
|
||||
.ms_link .ms-title {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
margin: 20px 0;
|
||||
color: #fff;
|
||||
}
|
||||
.ms_login .ms-title,
|
||||
.ms_link .ms-title {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
margin: 20px 0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.ms_notes {
|
||||
width: 400px;
|
||||
margin: 0 auto 60px auto;
|
||||
padding: 20px 50px;
|
||||
line-height: 24px;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
color: #fe7300;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.ms_notes {
|
||||
width: 400px;
|
||||
margin: 0 auto 60px auto;
|
||||
padding: 20px 50px;
|
||||
line-height: 24px;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
color: #fe7300;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
/* .ms_link {}
|
||||
/* .ms_link {}
|
||||
|
||||
.ms_link .ms-title {} */
|
||||
|
||||
.ms_tab_n {
|
||||
width: 500px;
|
||||
margin: 0 auto;
|
||||
border-radius: 5px;
|
||||
padding-bottom: 30px;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
.ms_tab_n {
|
||||
width: 500px;
|
||||
margin: 0 auto;
|
||||
border-radius: 5px;
|
||||
padding-bottom: 30px;
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
.ms_tab_n .el-tabs__nav {
|
||||
margin-left: 142px;
|
||||
height: 60px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
.ms_tab_n .el-tabs__nav {
|
||||
margin-left: 142px;
|
||||
height: 60px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
.ms_tab_n .el-tabs__item {
|
||||
font-size: 22px;
|
||||
padding: 0 40px;
|
||||
color: #fff;
|
||||
}
|
||||
.ms_tab_n .el-tabs__item {
|
||||
font-size: 22px;
|
||||
padding: 0 40px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.ms_tab_n .el-tabs__active-bar {
|
||||
left: -28px;
|
||||
width: 120px !important;
|
||||
}
|
||||
.ms_tab_n .el-tabs__active-bar {
|
||||
left: -28px;
|
||||
width: 120px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -72,7 +72,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
query: {
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
journalId: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
|
||||
@@ -517,7 +517,7 @@ export default {
|
||||
baseUrl: this.Common.baseUrl,
|
||||
mediaUrl: this.Common.mediaUrl,
|
||||
dateId: this.$route.query.id,
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
loading:false,
|
||||
articlefileList: [],
|
||||
figFileList: [],
|
||||
|
||||
@@ -59,9 +59,9 @@ export default {
|
||||
name:'reviewerArticleList',
|
||||
data() {
|
||||
return {
|
||||
userrole:localStorage.getItem('ms_userrole'),
|
||||
userrole:localStorage.getItem('U_status'),
|
||||
query: {
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
|
||||
@@ -101,7 +101,7 @@ export default {
|
||||
mediaUrl:this.Common.mediaUrl,
|
||||
baseUrl: this.Common.baseUrl,
|
||||
fullscreenLoading: false,
|
||||
username: localStorage.getItem('ms_username'),
|
||||
username: localStorage.getItem('U_name'),
|
||||
upform: {
|
||||
journal: '',
|
||||
url: ''
|
||||
|
||||
@@ -1,66 +1,49 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-user"></i> Reviewer list
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="handle-box">
|
||||
<el-select
|
||||
v-model="query.journalId"
|
||||
@change="getdate"
|
||||
placeholder="Please select journal"
|
||||
>
|
||||
<el-option :key="0" label="All journal" :value="0"></el-option>
|
||||
<el-option
|
||||
v-for="item in journalList"
|
||||
:key="item.journal_id"
|
||||
:label="item.title"
|
||||
:value="item.journal_id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="addJournal">add</el-button> -->
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
border
|
||||
stripe
|
||||
class="table"
|
||||
ref="multipleTable"
|
||||
header-cell-class-name="table-header"
|
||||
>
|
||||
<!-- <el-table-column prop="user_id" label="No." align="center"></el-table-column> -->
|
||||
<el-table-column prop="account" label="Account" align="center"></el-table-column>
|
||||
<el-table-column prop="realname" label="Name" align="center"></el-table-column>
|
||||
<el-table-column prop="country" label="Country" align="center"></el-table-column>
|
||||
<el-table-column prop="company" label="Affiliation" align="center"></el-table-column>
|
||||
<el-table-column label="" width="180" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-tickets"
|
||||
@click="showdetail(scope.row)"
|
||||
>Detail</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div 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="change" :visible.sync="editVisible" width="40%">
|
||||
<div>
|
||||
<div class="crumbs">
|
||||
<el-breadcrumb separator="/">
|
||||
<el-breadcrumb-item>
|
||||
<i class="el-icon-user"></i> Reviewer list
|
||||
</el-breadcrumb-item>
|
||||
</el-breadcrumb>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="handle-box">
|
||||
<el-select v-model="query.journalId" @change="getDate" placeholder="Please select journal">
|
||||
<el-option :key="0" label="All journal" :value="0"></el-option>
|
||||
<el-option v-for="item in journalList" :key="item.journal_id" :label="item.title" :value="item.journal_id"></el-option>
|
||||
</el-select>
|
||||
<!-- <el-button type="primary" icon="el-icon-circle-plus-outline" @click="addJournal">add</el-button> -->
|
||||
</div>
|
||||
<el-table :data="tableData" border stripe class="table" ref="multipleTable" header-cell-class-name="table-header">
|
||||
<!-- <el-table-column prop="user_id" label="No." align="center"></el-table-column> -->
|
||||
<el-table-column prop="account" label="Account" align="center"></el-table-column>
|
||||
<el-table-column prop="realname" label="Name" align="center"></el-table-column>
|
||||
<el-table-column prop="country" label="Country" align="center"></el-table-column>
|
||||
<el-table-column prop="company" label="Affiliation" align="center"></el-table-column>
|
||||
<el-table-column label="" width="220" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-tickets" @click="showdetail(scope.row)">Detail</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" @click="showDelete(scope.row)">Delete</el-button>
|
||||
</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="删除" :visible.sync="delOpen" width="40%">
|
||||
<div v-for="item in lineOptions" :name='item.journal_id' :value='item.reviewer_id' style="margin-left: 60px;">
|
||||
{{item.journal.title}} - {{item.reviewer.account}}
|
||||
<el-button type="text" icon="el-icon-delete" @click="lastDelete($event)" style="color: #FF0000;margin-left: 20px;">Delete</el-button>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="delOpen = false;" type="primary">取 消</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<!-- <el-dialog title="change" :visible.sync="editVisible" width="40%">
|
||||
<el-form ref="changform" :model="change" label-width="80px">
|
||||
<el-form-item label="editormsg">
|
||||
<span>{{change.title}}</span>
|
||||
@@ -82,105 +65,153 @@
|
||||
<el-button type="primary" @click="">save</el-button>
|
||||
</span>
|
||||
</el-dialog> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'reviewerList',
|
||||
data() {
|
||||
return {
|
||||
query: {
|
||||
username: localStorage.getItem('ms_username'),
|
||||
journalId:0,
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
tableData: [],
|
||||
journalList:[],
|
||||
Total: 0,
|
||||
editVisible: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getdate();
|
||||
this.initselect();
|
||||
},
|
||||
methods: {
|
||||
// 获取编辑列表数据
|
||||
getdate() {
|
||||
this.$api
|
||||
.post('api/User/getreviewerList', this.query)
|
||||
.then(res => {
|
||||
this.Total = res.total;
|
||||
this.tableData = res.data;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 分页导航
|
||||
handlePageChange(val) {
|
||||
this.$set(this.query, 'pageIndex', val);
|
||||
this.getdate();
|
||||
},
|
||||
showdetail(row) {
|
||||
this.$router.push({ path: 'reviewerDetail', query: { id: row.user_id } });
|
||||
},
|
||||
//初始化期刊选项
|
||||
initselect() {
|
||||
this.$api
|
||||
.post('api/Article/getJournal', { username: this.query.username })
|
||||
.then(res => {
|
||||
this.journalList = res;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
export default {
|
||||
name: 'reviewerList',
|
||||
data() {
|
||||
return {
|
||||
query: {
|
||||
username: localStorage.getItem('U_name'),
|
||||
journalId: 0,
|
||||
pageIndex: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
tableData: [],
|
||||
journalList: [],
|
||||
Total: 0,
|
||||
// editVisible: false,
|
||||
delForm: {
|
||||
line: []
|
||||
},
|
||||
delOpen: false,
|
||||
addForm: {},
|
||||
lineOptions: [],
|
||||
mess_age: {}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDate();
|
||||
this.initselect();
|
||||
},
|
||||
methods: {
|
||||
// 获取编辑列表数据
|
||||
getDate() {
|
||||
this.$api
|
||||
.post('api/User/getreviewerList', this.query)
|
||||
.then(res => {
|
||||
this.Total = res.total;
|
||||
this.tableData = res.data;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 分页导航
|
||||
handlePageChange(val) {
|
||||
this.$set(this.query, 'pageIndex', val);
|
||||
this.getDate();
|
||||
},
|
||||
// 查看详情
|
||||
showdetail(row) {
|
||||
this.$router.push({
|
||||
path: 'reviewerDetail',
|
||||
query: {
|
||||
id: row.user_id
|
||||
}
|
||||
});
|
||||
},
|
||||
// 删除弹窗
|
||||
showDelete(index, row) {
|
||||
this.aid = index;
|
||||
this.delOpen = true;
|
||||
this.$api
|
||||
.post('api/User/getReviewerForDel', {
|
||||
reviewer_id: index.reviewer_id,
|
||||
editor_account: localStorage.getItem('U_name')
|
||||
})
|
||||
.then(res => {
|
||||
this.lineOptions = res.data;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
// 删除操作
|
||||
lastDelete(e) {
|
||||
this.mess_age.reviewer_id = e.currentTarget.parentElement.getAttribute('value')
|
||||
this.mess_age.journal_id = e.currentTarget.parentElement.getAttribute('name')
|
||||
// 二次确认删除
|
||||
this.$confirm('确定要删除吗?', '提示', {
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$api
|
||||
.post('api/User/deleteArticleReviewer',this.mess_age)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.delOpen = false;
|
||||
this.$message.success('删除成功');
|
||||
this.getDate();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
this.$message.error(err);
|
||||
});
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
//初始化期刊选项
|
||||
initselect() {
|
||||
this.$api
|
||||
.post('api/Article/getJournal', {
|
||||
username: this.query.username
|
||||
})
|
||||
.then(res => {
|
||||
this.journalList = res;
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.handle-box {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.handle-select {
|
||||
width: 120px;
|
||||
}
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.handle-input {
|
||||
width: 300px;
|
||||
display: inline-block;
|
||||
}
|
||||
.table {
|
||||
width: 100%;
|
||||
font-size: 14px;
|
||||
}
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
.mr10 {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.table-td-thumb {
|
||||
display: block;
|
||||
margin: auto;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
.el-table .warning-row {
|
||||
background: #f3ca7f;
|
||||
}
|
||||
.el-table .success-row {
|
||||
background: #bcfc9a;
|
||||
}
|
||||
.el-table .normol-row{
|
||||
background: #d8f1c7
|
||||
}
|
||||
.el-table .red-row{
|
||||
background: #f05555;
|
||||
}
|
||||
.table-td-thumb {
|
||||
display: block;
|
||||
margin: auto;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.el-table .warning-row {
|
||||
background: #f3ca7f;
|
||||
}
|
||||
|
||||
.el-table .success-row {
|
||||
background: #bcfc9a;
|
||||
}
|
||||
|
||||
.el-table .normol-row {
|
||||
background: #d8f1c7
|
||||
}
|
||||
|
||||
.el-table .red-row {
|
||||
background: #f05555;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user