Files
tougao_web/src/components/page/Academic_Integrity_Committee.vue

584 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<div class="crumbs">
<el-breadcrumb separator="/">
<el-breadcrumb-item>
<i class="el-icon-user"></i> Academic Integrity Committee List
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="container" style="min-width: 1000px;">
<div>
<span style="font-size: 14px;color: #606266;margin: 0 10px 0 0;">Journal : </span>
<el-select v-model="query.journal_id" placeholder="Please select a journal" @change="query.pageIndex = 1;getDate()"
style="width: 220px;margin-right: 35px;">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
:value="item.journal_id"></el-option>
</el-select>
</div>
<div class="handle-box" style="margin-bottom: 15px; overflow: hidden; ">
<div >
<el-button type="primary" icon="el-icon-plus" @click="addHandle" style="float: right;">
Add new Academic Integrity Committee</el-button>
</div>
</div>
<el-table :data="tableData" border stripe class="table" ref="multipleTable"
header-cell-class-name="table-header">
<el-table-column label="Basic Information">
<template slot-scope="scope">
<p class="tab_tie_col">
<span>Realname: </span><b style="font-size: 15px;">{{scope.row.realname}}</b>
</p>
<p class="tab_tie_col">
<span>Account: </span>{{scope.row.account}}
</p>
<p class="tab_tie_col">
<span>Email: </span>{{scope.row.email}}
</p>
</template>
</el-table-column>
<el-table-column label="Research Areas" align="center">
<template slot-scope="scope">
<!-- <p class="tab_tie_col">
<span>Affiliation: </span>{{scope.row.company}}
</p> -->
<p class="tab_tie_col">
<!-- <span>Field: </span> -->
{{scope.row.research_areas}}
</p>
<!-- <p class="tab_tie_col">
<span>Major: </span>{{scope.row.major_title}}
</p> -->
</template>
</el-table-column>
<el-table-column label="H-WOS" align="center">
<template slot-scope="scope">
<p v-html="colorIndex(scope.row.wos_index,scope.row.wos_time)"></p>
</template>
</el-table-column>
<el-table-column label="H-Google" align="center">
<template slot-scope="scope">
<p v-html="colorIndex(scope.row.google_index,scope.row.google_time)"></p>
</template>
</el-table-column>
<el-table-column align="center" width="120">
<template slot-scope="scope">
<div style="margin: 0 0 10px 0;">
<el-button type="primary" plain icon="el-icon-connection" @click="handleDtail(scope.row)">
Detail
</el-button>
</div>
<div style="margin: 0 0 10px 0;">
<el-button type="success" plain icon="el-icon-edit" @click="editHandle(scope.row)">
Edit
</el-button>
</div>
<div>
<el-button type="danger" plain icon="el-icon-delete" @click="reneDelete(scope.row)">Delete
</el-button>
</div>
</template>
</el-table-column>
</el-table>
<!-- <div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
:page-size="query.pageSize" :total="Total" @current-change="handlePageChange"></el-pagination>
</div> -->
</div>
<!-- 添加弹出框 -->
<el-dialog title="Add Academic Integrity Committee" :visible.sync="addVisible" width="660px" :close-on-click-modal="false"
@close='addVisCancle'>
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="140px" v-if="!dis_able">
<el-form-item label="Email / Account :" prop="account" v-if="!dis_able">
<el-input v-model="addForm.account" style="width: 300px;"></el-input>
<el-button type="warning" @click="saerNa_U()" style="margin-left: 15px;" icon="el-icon-paperclip">
Check</el-button>
<p style="color: #888;margin-top: 10px;">
Note: The new Academic Integrity Committee must be a registered user.
<br>Click <a class="zhu_ce" @click="Goto_res()">register</a>.
</p>
</el-form-item>
</el-form>
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="150px" v-if="dis_able">
<el-form-item label="Account :">
{{addForm.account}}
</el-form-item>
<el-form-item label="Email :">
{{addForm.email}}
</el-form-item>
<el-form-item label="Realname :">
{{addForm.realname}}
</el-form-item>
<el-form-item label="Journal :" prop="journal_id">
<el-select v-model="addForm.journal_id" placeholder="Please select a journal" style="width: 270px;">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
:value="item.journal_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Research areas :" >
<el-input type="textarea" v-model="addForm.areas" placeholder="Please enter"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="addVisCancle">Cancel</el-button>
<el-button type="primary" @click="saveAdd()" v-if="dis_able">OK</el-button>
</span>
</el-dialog>
<!-- 编辑弹出框 -->
<el-dialog :close-on-click-modal="false" title="Edit Academic Integrity Committee" :visible.sync="editvisible" width="600px" @close="editClose()">
<el-form ref="addForm1" :model="addForm1" label-width="150px" >
<el-form-item label="Research areas :" >
<el-input type="textarea" v-model="addForm1.areas" placeholder="Please enter"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editClose()">Cancel</el-button>
<el-button type="primary" @click="saveEdit()">OK</el-button>
</span>
</el-dialog>
<!-- 证书弹出框 -->
<el-dialog :close-on-click-modal="false" :visible.sync="cerVisible" width="850px">
<el-image class="table-td-thumb rev_digol" :src="this.IMG_Url"></el-image>
</el-dialog>
</div>
</template>
<script>
export default {
name: 'youthList',
data() {
return {
YearThis: 0,
edit_id: localStorage.getItem('U_id'),
query: {
journal_id: 0,
type: 1,
year: 0,
pageIndex: 1,
pageSize: 15,
keywords: '',
fieldkey: '',
order_remark: 0
},
Total: 0,
df_jour: [],
df_year: [],
list_year: [{
title: '1 Year',
id: 1
}, {
title: '2 Years',
id: 2
}, {
title: '3 Years',
id: 3
}],
tableData: [],
IMG_Url: '',
addVisible: false,
reneVisible: false,
cerVisible: false,
addForm: {
account: '',
},
addForm1:{
ctj_id: null,
areas:''
},
editvisible:false,
reneForm: {
journal_id: 0
},
remarkMes: {
remark: ''
},
remarkBox: false,
dis_able: false,
rules: {
account: [{
required: true,
message: 'Please enter email / account',
trigger: 'blur'
}],
journal_id: [{
required: true,
message: 'Please select journal',
trigger: 'blur'
}],
// year: [{
// required: true,
// message: 'Please select year',
// trigger: 'blur'
// }],
}
};
},
onShow() {
var pages = getCurrentPages(); // 获取当前页面栈
var currentPage = pages[pages.length - 1]; // 当前页面
if (currentPage.data.refreshIfNeeded) {
currentPage.data.refreshIfNeeded = false;
//这里为要调用的函数重新获取数据记得加上this
this.getDate();
}
},
created() {
this.getSelect();
},
methods: {
// 关闭编辑弹窗
editClose(){
this.editvisible = false
this.addForm1.ctj_id = null,
this.addForm1.areas = ''
},
// 显示编辑弹出框
editHandle(val){
this.editvisible = true
this.$nextTick(function() {
this.addForm1.ctj_id = val.ctj_id
this.addForm1.areas = val.research_areas
})
},
// 提交编辑弹窗
saveEdit(){
this.$api
.post('api/User/editCommittee', {
'ctj_id': this.addForm1.ctj_id,
'research_areas': this.addForm1.areas
})
.then(res => {
if (res.code == 0) {
this.$message.success('Edit successfully!')
this.editClose()
this.getDate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
},
// 获取下拉值
getSelect() {
this.$api
.post('api/Chief/getJournalsByEditor', {
'user_id': this.edit_id
})
.then(res => {
if (res.code == 0) {
this.df_jour = res.data.journals;
this.query.journal_id = this.df_jour[0].journal_id
this.getDate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
},
// 获取列表数据
getDate() {
this.$api
.post('api/User/getCommittee', {
'journal_id': this.query.journal_id
})
.then(res => {
if (res.code == 0) {
this.tableData = res.data.committees;
for (var i = 0; i < this.tableData.length; i++) {
this.getScoreData(i, this.tableData[i].score)
}
// this.Total = res.data.count;
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
console.log(err);
});
},
// 评分
getScoreData(i, e) {
this.tableData[i].starList = []
this.tableData[i].starList_mark = 0
if (e < 0.5 && e > 0) {
this.tableData[i].starList.push({
star: 2
})
this.tableData[i].starList_mark = 1
} else {
let zheng = Math.floor(e)
let xiao = Number(e) - Math.floor(e)
if (xiao >= 0.5) {
xiao = 0.5
} else {
xiao = 0
}
for (var j = 0; j < zheng; j++) {
this.tableData[i].starList.push({
star: 1
})
}
if (xiao == 0.5) {
this.tableData[i].starList.push({
star: 0
})
}
this.tableData[i].starList_mark = Number(zheng) + Number(xiao)
}
},
// 新增
addHandle() {
this.dis_able = false
this.addForm.account = ''
this.addVisible = true
},
// 保存添加
saveAdd() {
this.$refs.add_Form.validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: 'Loading...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.$api
.post('api/User/addCommittee',
{
'user_id': this.addForm.user_id,
'journal_id': this.addForm.journal_id,
'research_areas': this.addForm.areas
})
.then(res => {
if (res.code == 0) {
this.getDate();
this.$message.success('Added successfully!');
// this.$refs.add_Form.resetFields();
this.dis_able = false
this.addVisible = false;
loading.close();
} else {
this.$message.error(res.msg);
loading.close();
}
})
.catch(err => {
this.$message.error(err);
loading.close();
});
} else {
return false;
}
});
},
// 添加关闭
addVisCancle() {
this.addVisible = false
this.addForm.journal_id = null
this.addForm.research_areas = ''
},
// 查找与他相同的账号
saerNa_U() {
if (this.addForm.account != undefined && this.addForm.account != '') {
this.$api
.post('api/User/searchUserByAccountEmail', {
'account': this.addForm.account
})
.then(res => {
if (res.code == 0) {
if (res.data.user == null) {
this.dis_able = false
this.$message.error('Verify that the account or mailbox does not exist!');
} else {
this.dis_able = true
this.addForm.user_id = res.data.user.user_id
this.addForm.account = res.data.user.account
this.addForm.realname = res.data.user.realname
this.addForm.email = res.data.user.email
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
} else {
this.$message.error('Verification account or mailbox cannot be empty!');
}
},
// 点击注册
Goto_res() {
this.$router.push('/register');
},
// 详情
handleDtail(e) {
let routerJump = this.$router.resolve({
path: '/partyRole',
query: {
id: e.user_id
}
});
window.open(routerJump.href, '_blank');
},
// 删除
reneDelete(e) {
// 二次确认删除
this.$confirm('Are you sure you want to delete?', 'Tip', {
type: 'warning'
})
.then(() => {
this.$api
.post('api/User/delCommittee', {'ctj_id':e.ctj_id})
.then(res => {
if (res.code == 0) {
this.$message.success('Deleted successfully');
this.getDate();
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
})
.catch(() => {});
},
// 证书弹出层
cerFicte(e) {
this.IMG_Url = this.Common.mediaUrl + 'cert/' + e.icon
this.cerVisible = true;
},
// 分页导航
handlePageChange(val) {
this.$set(this.query, 'pageIndex', val);
this.getDate();
},
colorIndex(num, time) {
if (time != 0) {
let date = new Date(parseInt(time * 1000));
let Y = date.getFullYear() + '-';
let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) + '-' : date.getMonth() + 1 + '-';
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
let H = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
let U = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
time = Y + M + D;
}
let str = '';
if (num < 10) {
str = '<b style="color:#cb160a">' + num +
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
')</span>'
} else if (num < 15) {
str = '<b style="color:#cbb504">' + num +
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
')</span>'
} else {
str = '<b style="color:#0cbc15">' + num +
'</b><span style="color:#aaa;font-size:14px;margin-left:5px;"><br/>(' + time +
')</span>'
}
if (time == 0) {
str =
'<b style="color:#aaa;">0</b><br/><span style="color:#aaa;font-size:14px;margin-left:5px;">(Empty)</span>'
}
return str;
},
// 时间格式
formatDate(timestamp) {
var date = new Date(timestamp * 1000); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return Y + M + D;
},
formatYear(timestamp) {
var date = new Date(timestamp * 1000); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + ' . ';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
return Y + M;
},
}
};
</script>
<style scoped>
.handle-box {
margin-bottom: 20px;
}
.table {
width: 100%;
font-size: 14px;
}
.red {
color: #ff0000;
}
.zhu_ce {
text-decoration: underline;
color: #006699;
font-weight: bold;
cursor: pointer;
}
.tab_tie_col {
margin-bottom: 5px;
color: #333;
word-wrap: break-word;
word-break: normal;
}
.tab_tie_col>span {
color: #888;
margin: 0 5px 0 0;
font-size: 13px;
}
.starSty {
width: 18px;
margin-right: 4px;
vertical-align: text-top;
}
.starSty:nth-last-child(1) {
margin-right: 0;
}
</style>