This commit is contained in:
徐哼唧L
2022-12-09 16:18:12 +08:00
parent dc4d87a990
commit 5ed3073b6e
130 changed files with 41608 additions and 2013 deletions

View File

@@ -9,108 +9,212 @@
</div>
<div class="container">
<div class="handle-box">
<el-button type="primary" icon="el-icon-plus" class="handle-del" @click="add_Selection">Add</el-button>
<el-button type="primary" icon="el-icon-plus" class="handle-del" @click="add_Selection">Add User
</el-button>
</div>
<div class="handle-box">
<el-select v-model="query.journalId" placeholder="Please select a journal" @change="getContent">
<el-option label="All journal" :key="0" :value="0"></el-option>
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
:value="item.journal_id"></el-option>
</el-select>
<el-input v-model="query.keyword" placeholder="Please enter ..." style="width: 220px;margin: 0 15px;"></el-input>
<!-- <span style="margin:0 10px 0 20px;font-size: 14px;">Class:</span> -->
<el-select v-model="query.class" style="width: 100px;margin: 0 0 0 15px;" @change="getContent">
<el-option label="All class" :key="0" :value="0"></el-option>
<el-option label="A" key="A" value="A"></el-option>
<el-option label="B" key="B" value="B"></el-option>
<el-option label="C" key="C" value="C"></el-option>
<el-option label="D" key="D" value="D"></el-option>
<el-option label="Not rated" key="1" value="1"></el-option>
</el-select>
<el-input v-model="query.keyword" placeholder="Please enter ..." style="width: 220px;margin: 0 15px;">
</el-input>
<el-button type="primary" icon="el-icon-search" @click="getContent">Search</el-button>
</div>
<el-table :data="tableData" border class="table" ref="multipleTable" header-cell-class-name="table-header">
<el-table-column prop="account" label="Account"></el-table-column>
<el-table-column prop="realname" label="Realname"></el-table-column>
<el-table-column prop="journal_title" label="Journal"></el-table-column>
<el-table-column prop="email" label="Email"></el-table-column>
<el-table-column prop="technical" label="Technical"></el-table-column>
<el-table-column prop="company" label="Affiliation"></el-table-column>
<el-table-column prop="board" label="Youth editorial board" width="80" align="center">
<el-table :data="tableData" border class="table" ref="multipleTable" header-cell-class-name="table-header"
empty-text="Messages (0)">
<el-table-column label="Base Information" min-width="35%">
<template slot-scope="scope">
<el-button icon="el-icon-check" type="text" style="color: #0fa31d" v-if="scope.row.is_yboard=='1'"></el-button>
<el-button icon="el-icon-close" type="text" style="color: #ff0000" v-if="scope.row.is_yboard=='0'"></el-button>
<p class="tab_tie_col">
<span>Realname: </span><b style="font-size: 15px;">{{scope.row.realname}}</b>
<span style="margin-left:30px ;">Class: </span>
<el-button @click="BoxGrade(scope.row)" size="mini" type="text">
<b v-if="scope.row.grade!=''">{{scope.row.grade}}</b>
<b v-if="scope.row.grade==''">Not rated</b>
</el-button>
<span style="margin-left:30px ;">CV: </span>
<b class="el-icon-check" style="color: #0fa31d;font-weight: bold;"
v-if="scope.row.qualifications!=''">
</b>
<b class="el-icon-close" style="color: #ff0000;font-weight: bold;"
v-if="scope.row.qualifications==''">
</b>
</p>
<p class="tab_tie_col">
<span>Title: </span>{{scope.row.technical}}
</p>
<p class="tab_tie_col">
<span>Email: </span>{{scope.row.email}}
</p>
</template>
</el-table-column>
<el-table-column label="CV" width="50" align="center"><template slot-scope="scope">
<el-button icon="el-icon-check" type="text" style="color: #0fa31d" v-if="scope.row.qualifications!=''"></el-button>
<el-button icon="el-icon-close" type="text" style="color: #ff0000" v-if="scope.row.qualifications==''"></el-button>
<el-table-column label="Other Information">
<template slot-scope="scope">
<p class="tab_tie_col">
<span>Field: </span>{{scope.row.field}}
</p>
<p class="tab_tie_col">
<span>Major: </span>{{scope.row.major_title}}
</p>
<p class="tab_tie_col">
<span>Affiliation: </span>{{scope.row.company}}
</p>
<p class="tab_tie_col">
<span>Youth editorial board: </span>
<b class="el-icon-check" style="color: #0fa31d;margin-right: 20px;font-weight: bold;"
v-if="scope.row.is_yboard=='1'">
</b>
<b class="el-icon-close" style="color: #ff0000;margin-right: 20px;font-weight: bold;"
v-if="scope.row.is_yboard=='0'">
</b>
<el-button size="mini" type="success" plain icon="el-icon-sort-up"
@click="gradeup(scope.row)" v-if="scope.row.is_yboard=='0'">Upgrade</el-button>
<el-button size="mini" type="warning" plain icon="el-icon-sort-down"
@click="gradedown(scope.row)" v-if="scope.row.is_yboard=='1'">downgrade</el-button>
</p>
</template>
</el-table-column>
<el-table-column label="" width="320" align="center">
<el-table-column label="Remarks" width="250" align="center">
<template slot-scope="scope">
<el-button size="mini" type="success" plain icon="el-icon-sort-up" @click="gradeup(scope.row)" v-if="scope.row.is_yboard=='0'">Upgrade</el-button>
<el-button size="mini" type="warning" plain icon="el-icon-sort-down" @click="gradedown(scope.row)" v-if="scope.row.is_yboard=='1'">downgrade</el-button>
<el-button size="mini" type="primary" plain icon="el-icon-tickets" @click="handleEdit(scope.$index, scope.row)">Edit</el-button>
<el-button size="mini" type="danger" plain icon="el-icon-delete" @click="showDelete(scope.row)">Delete</el-button>
{{scope.row.remark}}
<b @click="BoxRemark(scope.row)" style="margin-left:10px;cursor: pointer;color:#006699;"
class="el-icon-edit"></b>
</template>
</el-table-column>
<el-table-column label="" width="110" align="center">
<template slot-scope="scope">
<div style="margin: 0 0 6px 0;">
<el-button size="mini" type="primary" plain icon="el-icon-tickets"
@click="handleEdit(scope.$index, scope.row)">Edit</el-button>
</div>
<div>
<el-button size="mini" type="danger" plain icon="el-icon-delete"
@click="showDelete(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="link_Total" @current-change="handlePageChange"></el-pagination>
<el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"
:page-size="query.pageSize" :total="link_Total" @current-change="handlePageChange"></el-pagination>
</div>
</div>
<!-- 检测邮箱弹出框 -->
<el-dialog title="Add User Check Email" :visible.sync="checkVisible" width="500px">
<el-form ref="check_Form" :model="checkForm" :rules="rules" label-width="80px">
<el-form-item label="Email :" prop="email">
<el-input v-model="checkForm.email" style="width: 300px;margin-right: 10px;"></el-input>
<el-button v-if="email_num==0" type="primary" @click="saveCheck(checkForm)">Check</el-button>
</el-form-item>
</el-form>
<div v-if="email_num==1" style="margin: 0 80px;color: orangered;word-break:break-word;">
<!-- 验证失败 -->
{{checkForm.email}} already exists. <br>Do you want to continue adding a new identity or modify the
mailbox for
authentication.
<div style="text-align: center;margin: 15px 0 0 0;">
<el-button type="primary" @click="NewCheck()" icon="el-icon-refresh">Re-enter</el-button>
<el-button type="primary" @click="GoldCheck()" icon="el-icon-plus">Add this user role</el-button>
</div>
</div>
<div v-if="email_num==2" style="margin: 0 80px;color: #006699;">
<!-- 验证成功 -->
Verification succeeded, continue to add information!
</div>
</el-dialog>
<!-- 添加弹出框 -->
<el-dialog title="Add" :visible.sync="addVisible" width="40%">
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="110px">
<el-form-item label="account" prop="account">
<el-input v-model="addForm.account" @blur='saerNa_U()'></el-input>
<el-dialog title="Add User" :visible.sync="addVisible" width="700px">
<el-form ref="add_Form" :model="addForm" :rules="rules" label-width="120px">
<el-form-item label="Email :">
{{addForm.email}}
</el-form-item>
<el-form-item label="email" prop="email">
<el-input v-model="addForm.email" @blur='saerEm_U()'></el-input>
<el-form-item label="Account :" prop="account">
<span v-if="this.email_num==1">{{addForm.account}}</span>
<el-input v-model="addForm.account" v-if="this.email_num==2" @blur='saerNa_U()'></el-input>
<p v-if="btn_alert==true" style="color: orangered;">Account already exists, please rewrite it!</p>
</el-form-item>
<el-form-item label="password" prop="password">
<span style="color: #666;">123456qwe</span>
</el-form-item>
<el-form-item label="gender" prop="gender">
<el-form-item label="Gender :" prop="gender">
<el-radio-group v-model="addForm.gender">
<el-radio :label="1">male</el-radio>
<el-radio :label="2">female</el-radio>
<el-radio :label="1">Male</el-radio>
<el-radio :label="2">Female</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="journal" prop="journal_id">
<el-select v-model="addForm.journal_id" placeholder="Please select a journal">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
<el-form-item label="Journal :" prop="journal_id">
<el-select v-if="this.email_num==1" v-model="addForm.journal_id"
placeholder="Please select a journal">
<el-option v-for="item in df_jour_cun" :label="item.title" :key="item.journal_id"
:value="item.journal_id"></el-option>
</el-select>
<el-select v-if="this.email_num==2" v-model="addForm.journal_id"
placeholder="Please select a journal">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id"
:value="item.journal_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="title" prop="title">
<el-select v-model="addForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
<el-form-item label="Title :" prop="title">
<el-select v-model="addForm.title" filterable placeholder="Please select a title"
value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_technical" :key="item.label" :label="item.label"
:value="item.label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="country" prop="country">
<el-select v-model="addForm.country" filterable placeholder="Please select a country" value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name" :value="item.en_name"></el-option>
<el-form-item label="Country :" prop="country">
<el-select v-model="addForm.country" filterable placeholder="Please select a country"
value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name"
:value="item.en_name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="realname" prop="realname">
<el-form-item label="Realname :" prop="realname">
<el-input v-model="addForm.realname"></el-input>
</el-form-item>
<el-form-item label="orcid">
<el-form-item label="Class :">
<el-select v-model="addForm.grade" placeholder="Please select a class">
<el-option key="A" label="A" value="A"></el-option>
<el-option key="B" label="B" value="B"></el-option>
<el-option key="C" label="C" value="C"></el-option>
<el-option key="D" label="D" value="D"></el-option>
</el-select>
</el-form-item>
<el-form-item label="Orcid :">
<el-input v-model="addForm.orcid"></el-input>
</el-form-item>
<el-form-item label="introduction">
<el-input v-model="addForm.introduction" type="textarea"></el-input>
<el-form-item label="Introduction :">
<el-input v-model="addForm.introduction" type="textarea" :autosize="{minRows: 2}"></el-input>
</el-form-item>
<el-form-item label="institution">
<el-form-item label="Institution :">
<el-input v-model="addForm.company"></el-input>
</el-form-item>
<el-form-item label="major" prop="maj_cn">
<el-cascader v-model="addForm.maj_cn" :options="jl_major" :props="defaultParams" placeholder="Please select major"
@change="ched_id" style="width: 300px;"></el-cascader>
<el-form-item label="Major :" :prop="this.email_num==1?'':'maj_cn'">
<el-cascader v-model="addForm.maj_cn" :options="jl_major" :props="defaultParams"
placeholder="Please select major" @change="ched_id_add" style="width: 300px;"></el-cascader>
</el-form-item>
<el-form-item label="field" prop="field">
<el-form-item label="Field :" prop="field">
<el-input v-model="addForm.field" type="textarea"></el-input>
</el-form-item>
<!-- 简历 -->
<el-form-item prop="qualifications" label="CV.">
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess1" name="reviewerCV"
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
:before-remove="beforeRemove" :on-change="handleChange1" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf1"
ref="upload">
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
<el-form-item label="CV. :" prop="qualifications">
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'"
:on-success="handleFileSuccess2" name="reviewerCV" type="reviewerCV" :on-error="handleFileError"
:on-preview="handlePreview" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-change="handleChange2" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf2"
ref="upload">
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top"
style="font-weight: bolder;"></b>upload</el-button>
</el-upload>
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
</el-form-item>
@@ -121,124 +225,64 @@
</span>
</el-dialog>
<!-- 添加重复弹出框 -->
<el-dialog title="Add old" :visible.sync="oldVisible" width="40%">
<el-form ref="old_Form" :model="oldForm" :rules="rules" label-width="110px">
<el-form-item label="account" prop="account">
<el-input v-model="oldForm.account"></el-input>
</el-form-item>
<el-form-item label="email" prop="email">
<el-input v-model="oldForm.email"></el-input>
</el-form-item>
<el-form-item label="gender" prop="gender">
<el-radio-group v-model="oldForm.gender">
<el-radio :label="1">male</el-radio>
<el-radio :label="2">female</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="journal" prop="journal_id">
<el-select v-model="oldForm.journal_id" placeholder="Please select a journal">
<el-option v-for="item in df_jour" :label="item.title" :key="item.journal_id" :value="item.journal_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="title" prop="title">
<el-select v-model="oldForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="country" prop="country">
<el-select v-model="oldForm.country" filterable placeholder="Please select a country" value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name" :value="item.en_name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="realname" prop="realname">
<el-input v-model="oldForm.realname"></el-input>
</el-form-item>
<el-form-item label="orcid">
<el-input v-model="oldForm.orcid"></el-input>
</el-form-item>
<el-form-item label="introduction">
<el-input v-model="oldForm.introduction" type="textarea" :autosize="{minRows: 2}"></el-input>
</el-form-item>
<el-form-item label="institution">
<el-input v-model="oldForm.company"></el-input>
</el-form-item>
<el-form-item label="major" prop="maj_cn">
<el-cascader v-model="oldForm.maj_cn" :options="jl_major" :props="defaultParams" placeholder="Please select major"
@change="ched_id_old" style="width: 300px;"></el-cascader>
</el-form-item>
<el-form-item label="field" prop="field">
<el-input v-model="oldForm.field" type="textarea"></el-input>
</el-form-item>
<!-- 简历 -->
<el-form-item prop="qualifications" label="CV.">
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess2" name="reviewerCV"
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
:before-remove="beforeRemove" :on-change="handleChange2" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf2"
ref="upload">
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
</el-upload>
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
</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>
<!-- 编辑弹出框 -->
<el-dialog title="Edit message" :visible.sync="editVisible" width="40%">
<el-form ref="edit_Form" :model="editForm" :rules="rules" label-width="110px">
<el-form-item label="account" prop="account">
{{editForm.account}}
</el-form-item>
<el-form-item label="email" prop="email">
<el-dialog title="Edit User Message" :visible.sync="editVisible" width="700px">
<el-form ref="edit_Form" :model="editForm" :rules="rules" label-width="120px">
<el-form-item label="Email :">
{{editForm.email}}
</el-form-item>
<el-form-item label="gender" prop="gender">
<span v-if="editForm.gender==1">male</span>
<span v-if="editForm.gender==2">female</span>
<el-form-item label="Account :" prop="account">
{{editForm.account}}
</el-form-item>
<el-form-item label="journal" prop="journal_title">
<el-form-item label="Gender :" prop="gender">
<span v-if="editForm.gender==1">Male</span>
<span v-if="editForm.gender==2">Female</span>
</el-form-item>
<el-form-item label="Journal :" prop="journal_title">
{{editForm.journal_title}}
</el-form-item>
<el-form-item label="title" prop="title">
<el-select v-model="editForm.title" filterable placeholder="Please select a title" value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_technical" :key="item.label" :label="item.label" :value="item.label"></el-option>
<el-form-item label="Title :" prop="title">
<el-select v-model="editForm.title" filterable placeholder="Please select a title"
value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_technical" :key="item.label" :label="item.label"
:value="item.label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="country" prop="country">
<el-select v-model="editForm.country" filterable placeholder="Please select a country" value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name" :value="item.en_name"></el-option>
<el-form-item label="Country :" prop="country">
<el-select v-model="editForm.country" filterable placeholder="Please select a country"
value-key="groupID" style="width: 300px;">
<el-option v-for="item in df_country" :label="item.en_name" :key="item.en_name"
:value="item.en_name"></el-option>
</el-select>
</el-form-item>
<el-form-item label="realname">
{{editForm.realname}}
<el-form-item label="Realname :">
<el-input v-model="editForm.realname"></el-input>
</el-form-item>
<el-form-item label="orcid">
<el-form-item label="Orcid :">
{{editForm.orcid}}
</el-form-item>
<el-form-item label="introduction">
<el-form-item label="Introduction :">
<el-input v-model="editForm.introduction" type="textarea" :autosize="{minRows: 2}"></el-input>
</el-form-item>
<el-form-item label="institution">
<el-form-item label="Institution :">
<el-input v-model="editForm.company"></el-input>
</el-form-item>
<el-form-item label="major" prop="maj_cn">
<el-cascader :options="jl_major" v-model="editForm.maj_cn" :props="defaultParams" placeholder="Please select major"
@change="ched_id_edit" style="width: 300px;"></el-cascader>
<el-form-item label="Major :" prop="maj_cn">
<el-cascader :options="jl_major" v-model="editForm.maj_cn" :props="defaultParams"
placeholder="Please select major" @change="ched_id_edit" style="width: 300px;"></el-cascader>
</el-form-item>
<el-form-item label="field">
<el-form-item label="Field :">
<el-input v-model="editForm.field" type="textarea"></el-input>
</el-form-item>
<!-- 简历 -->
<el-form-item prop="qualifications" label="CV.">
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'" :on-success="handleFileSuccess3" name="reviewerCV"
type="reviewerCV" :on-error="handleFileError" :on-preview="handlePreview" :on-remove="handleRemove"
:before-remove="beforeRemove" :on-change="handleChange3" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf3"
ref="upload">
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top" style="font-weight: bolder;"></b>upload</el-button>
<el-form-item label="CV. :" prop="qualifications">
<el-upload class="upload-demo" :action="baseUrl+'api/Reviewer/up_cv_file'"
:on-success="handleFileSuccess3" name="reviewerCV" type="reviewerCV" :on-error="handleFileError"
:on-preview="handlePreview" :on-remove="handleRemove" :before-remove="beforeRemove"
:on-change="handleChange3" accept=".pdf" :on-exceed="handleExceed" :file-list="fileL_pdf3"
ref="upload">
<el-button type="text" style="font-weight: bolder;"><b class="el-icon-lx-top"
style="font-weight: bolder;"></b>upload</el-button>
</el-upload>
<span style="font-size: 12px; color: #aaa;">Only compressed files can be uploaded(.pdf)</span>
</el-form-item>
@@ -250,16 +294,54 @@
</el-dialog>
<!-- 删除弹出框 -->
<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;">
<el-dialog title="Delete" :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>
<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>
<el-button @click="delOpen = false;" type="primary">Canel</el-button>
</span>
</el-dialog>
<!-- 标记弹出框 -->
<el-dialog title="Remarks" :visible.sync="remarkBox" width="550px">
<el-form ref="remark" :model="remarkMes" label-width="85px">
<el-form-item label="Reviewer :">
<p style="line-height: 20px;margin-top: 6px;">{{remarkMes.realname}}</p>
</el-form-item>
<el-form-item label="Content :">
<el-input type="textarea" rows="5" v-model="remarkMes.remark"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="remarkBox = false">Cancel</el-button>
<el-button type="primary" @click="saveRemark">Save</el-button>
</span>
</el-dialog>
<!-- 评级弹出框 -->
<el-dialog title="Reviewer Class" :visible.sync="gradeBox" width="400px">
<el-form ref="grade" :model="gradeMes" label-width="85px">
<el-form-item label="Reviewer :">
<p style="line-height: 20px;margin-top: 6px;">{{gradeMes.realname}}</p>
</el-form-item>
<el-form-item label="Class :">
<el-select v-model="gradeMes.grade" placeholder="Please select">
<el-option key="A" label="A" value="A"></el-option>
<el-option key="B" label="B" value="B"></el-option>
<el-option key="C" label="C" value="C"></el-option>
<el-option key="D" label="D" value="D"></el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="gradeBox = false">Cancel</el-button>
<el-button type="primary" @click="saveGrade">Save</el-button>
</span>
</el-dialog>
</div>
</template>
@@ -268,21 +350,21 @@
data() {
return {
tableData: [],
addForm: {
gender: 1,
major: [],
qualifications: ''
checkForm: {
email: ''
},
mess_age: {},
editForm: {
title: '',
},
oldForm: {},
addForm: {},
delOpen: false,
editVisible: false,
addVisible: false,
oldVisible: false,
checkVisible: false,
btn_alert: false,
email_num: 0,
df_jour_cun: [],
df_jour: [],
df_country: [],
jl_major: [],
@@ -296,8 +378,9 @@
query: {
username: localStorage.getItem('U_name'),
journalId: 0,
class: 0,
pageIndex: 1,
pageSize: 15
pageSize: 15,
},
df_technical: [{
label: 'Prof',
@@ -310,12 +393,17 @@
}, {
label: 'Others',
}],
remarkMes: {
remark: ''
},
remarkBox: false,
gradeMes: {
grade: ''
},
gradeBox: false,
link_Total: 0,
aid: -1,
idx: -1,
baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl,
fileL_pdf1: [],
fileL_pdf2: [],
fileL_pdf3: [],
rules: {
@@ -345,17 +433,17 @@
}],
journal_id: [{
required: true,
message: 'Please select journal_id',
message: 'Please select journal',
trigger: 'blur'
}],
journal_title: [{
required: true,
message: 'Please select journal_title',
message: 'Please select title',
trigger: 'blur'
}],
maj_cn: [{
required: true,
message: 'Please select maj_cn',
message: 'Please select major',
trigger: 'blur'
}],
title: [{
@@ -383,11 +471,11 @@
message: 'Please input realname',
trigger: 'blur'
}],
qualifications: [{
required: true,
message: 'Please upload your resume',
trigger: 'blur'
}]
// qualifications: [{
// required: true,
// message: 'Please upload your resume',
// trigger: 'blur'
// }]
}
};
},
@@ -412,7 +500,6 @@
.catch(err => {
this.$message.error(err);
});
this.$api
.post('api/Reviewer/getAllMajor')
.then(res => {
@@ -432,6 +519,15 @@
},
getContent() {
if (this.query.class == 0) {
if (this.query.grade != undefined) {
delete this.query.grade
}
} else if (this.query.class == 1) {
this.query.grade = ''
} else {
this.query.grade = this.query.class
}
this.$api
.post('api/Reviewer/getReviewerListByJournal', this.query)
.then(res => {
@@ -497,42 +593,44 @@
})
.catch(() => {});
},
// 添加操作
add_Selection(index, row) {
this.aid = index;
this.addVisible = true;
this.fileL_pdf1 = [];
},
// 下拉级联添加
ched_id(event) {
ched_id_add(event) {
this.addForm.major = event[0];
this.addForm.cmajor = event[1];
},
ched_id_old(event) {
this.oldForm.major = event[0];
this.oldForm.cmajor = event[1];
},
ched_id_edit(event) {
this.editForm.major = event[0];
this.editForm.cmajor = event[1];
},
// 保存添加
saveAdd(addForm) {
this.$refs.add_Form.validate((valid) => {
if (this.addForm.qualifications == '') {
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
return false;
}
// 添加操作
add_Selection(index, row) {
this.checkVisible = true;
this.checkForm.email = '';
this.email_num = 0;
this.addForm = {};
this.fileL_pdf2 = [];
},
// 验证邮箱是否存在
saveCheck(checkForm) {
this.$refs.check_Form.validate((valid) => {
if (valid) {
this.$api
.post('api/Reviewer/addReviewer', this.addForm)
.post('api/Reviewer/checkUser', {
'account': this.checkForm.email
})
.then(res => {
if (res.code == 0) {
this.addVisible = false;
this.btn_alert = false;
this.$refs.add_Form.resetFields();
this.$message.success(`Added successfully!`);
this.getContent();
if (res.data.has == 'no') {
this.email_num = 2;
this.addForm.email = this.checkForm.email;
this.addForm.gender = 1;
setTimeout(() => {
this.checkVisible = false
this.addVisible = true
}, 1000);
} else {
this.email_num = 1
}
} else {
this.$message.error(res.msg);
}
@@ -540,13 +638,55 @@
.catch(err => {
this.$message.error(err);
});
} else {
this.$message.error('error submit!!');
return false;
}
});
},
// 如果重新填写
NewCheck() {
this.checkForm.email = ''
this.email_num = 0
},
// 如果继续添加
GoldCheck() {
this.$api
.post('api/Reviewer/getReviewerByNameEmail', {
'account': this.checkForm.email
})
.then(res => {
this.checkVisible = false
this.addForm = res.data.reviewer;
if (this.addForm.reviewer_id == null) {
this.addForm.reviewer_id = res.data.reviewer.user_id
}
this.addForm.title = res.data.reviewer.technical;
this.addForm.cv = res.data.reviewer.qualifications;
this.fileL_pdf2 = [];
if (res.data.reviewer.qualifications != "") {
this.fileL_pdf2 = [{}];
this.fileL_pdf2[0].name = 'reviewerCV';
this.fileL_pdf2[0].url = this.mediaUrl + 'reviewer/' + res.data.reviewer.qualifications;
}
this.addForm.maj_cn = [this.addForm.major, this.addForm.cmajor];
this.addVisible = true
// 可申请审稿人的期刊
this.$api
.post('api/Journal/getJournalsForReviewerInEditor', {
'editor_id': this.edit_id,
'reviewer_id': this.addForm.reviewer_id,
})
.then(res => {
this.df_jour_cun = res.data.journals
})
.catch(err => {
this.$message.error(err);
});
})
.catch(err => {
this.$message.error(err);
});
},
// 查找与他相同的账号
saerNa_U() {
if (this.addForm.account != undefined) {
@@ -559,31 +699,6 @@
if (res.data.has == 'no') {
this.btn_alert = false
} else {
this.$confirm('Repeat of user account!', 'Tips', {})
.then(res => {
this.$api
.post('api/Reviewer/getReviewerByNameEmail', {
'account': this.addForm.account
})
.then(res => {
this.oldForm = res.data.reviewer;
this.oldForm.title = res.data.reviewer.technical;
this.oldForm.cv = res.data.reviewer.qualifications;
this.fileL_pdf2 = [];
if (res.data.reviewer.qualifications != "") {
this.fileL_pdf2 = [{}];
this.fileL_pdf2[0].name = 'reviewerCV';
this.fileL_pdf2[0].url = this.mediaUrl + 'reviewer/' + res.data.reviewer.qualifications;
}
this.oldForm.maj_cn = [this.oldForm.major, this.oldForm.cmajor];
this.oldVisible = true
})
.catch(err => {
this.$message.error(err);
});
}).catch(() => {});
this.btn_alert = true
}
} else {
@@ -595,62 +710,30 @@
});
}
},
// 查找与他相同的邮箱
saerEm_U() {
if (this.addForm.email != undefined) {
this.$api
.post('api/Reviewer/checkUser', {
'account': this.addForm.email
})
.then(res => {
if (res.code == 0) {
if (res.data.has == 'no') {
this.btn_alert = false
} else {
this.$confirm('Repeat of user account!', 'Tips', {})
.then(res => {
this.$api
.post('api/Reviewer/getReviewerByNameEmail', {
'account': this.addForm.email
})
.then(res => {
this.oldForm = res.data.reviewer;
this.oldForm.maj_cn = [this.oldForm.major, this.oldForm.cmajor];
this.oldVisible = true
})
.catch(err => {
this.$message.error(err);
});
}).catch(() => {});
this.btn_alert = true
}
} else {
this.$message.error(res.msg);
}
})
.catch(err => {
this.$message.error(err);
});
}
},
// 保存重复的添加
saveOld(oldForm) {
this.$refs.old_Form.validate((valid) => {
if (this.oldForm.qualifications == '') {
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
// 保存用户的添加
saveAdd(addForm) {
this.$refs.add_Form.validate((valid) => {
if (this.addForm.qualifications == '') {
this.$message.error(
'Please make sure that the qualifications document is uploaded successfully');
return false;
}
if (valid) {
let path_add = ''
if (this.email_num == 2) {
// 新的
path_add = 'api/Reviewer/addReviewer'
} else {
// 重复
path_add = 'api/Reviewer/addReviewerBee'
}
this.$api
.post('api/Reviewer/addReviewerBee', this.oldForm)
.post(path_add, this.addForm)
.then(res => {
if (res.code == 0) {
this.addVisible = false;
this.oldVisible = false;
this.btn_alert = false;
this.$refs.add_Form.resetFields();
this.$refs.old_Form.resetFields();
this.$message.success(`Added successfully!`);
this.getContent();
} else {
@@ -660,7 +743,6 @@
.catch(err => {
this.$message.error(err);
});
} else {
this.$message.error('error submit!!');
return false;
@@ -669,7 +751,6 @@
},
// 编辑操作
handleEdit(index, row) {
this.idx = index;
row.title = row.technical;
this.editForm = Object.assign({}, row);
this.editForm.cv = this.editForm.qualifications;
@@ -686,10 +767,10 @@
// 保存编辑
saveEdit(editForm) {
this.$refs.edit_Form.validate((valid) => {
if (this.editForm.qualifications == '') {
this.$message.error('Please make sure that the qualifications document is uploaded successfully');
return false;
}
// if (this.editForm.qualifications == '') {
// this.$message.error('Please make sure that the qualifications document is uploaded successfully');
// return false;
// }
if (valid) {
this.$api
.post('api/Reviewer/editReviewerForEditor', this.editForm)
@@ -697,7 +778,7 @@
if (res.code == 0) {
this.editVisible = false;
this.btn_alert = false;
this.$message.success(`Successfully changed line ${this.idx + 1} `);
this.$message.success(`Successfully changed `);
this.getContent();
} else {
this.$message.error(res.msg);
@@ -714,7 +795,6 @@
},
// 删除弹窗
showDelete(index, row) {
this.aid = index;
this.delOpen = true;
this.$api
.post('api/User/getReviewerForDel', {
@@ -733,7 +813,7 @@
this.mess_age.reviewer_id = e.currentTarget.parentElement.getAttribute('value')
this.mess_age.journal_id = e.currentTarget.parentElement.getAttribute('name')
// 二次确认删除
this.$confirm('确定要删除吗?', '提示', {
this.$confirm('Are you sure you want to delete?', 'Tip', {
type: 'warning'
})
.then(() => {
@@ -742,7 +822,7 @@
.then(res => {
if (res.code == 0) {
this.delOpen = false;
this.$message.success('删除成功');
this.$message.success('Deleted successfully');
this.getContent();
} else {
this.$message.error(res.msg);
@@ -754,12 +834,49 @@
})
.catch(() => {});
},
// 上传文件
handleChange1(file, fileList) {
if (fileList.length > 0) {
this.fileL_pdf1 = [fileList[fileList.length - 1]]
}
// 评级弹出框
BoxGrade(e) {
this.gradeBox = true;
this.gradeMes.journal_id = e.journal_id;
this.gradeMes.user_id = e.user_id;
this.gradeMes.grade = e.grade;
this.gradeMes.realname = e.realname;
console.log(this.gradeMes)
},
// 修改评级
saveGrade() {
this.$api.post('api/Reviewer/editReviewerGrade', this.gradeMes)
.then(res => {
if (res.code == 0) {
this.$message.success('Success');
this.gradeBox = false;
this.getContent();
} else {
this.$message.error(res.msg);
}
});
},
// 标记弹出框
BoxRemark(e) {
this.remarkBox = true;
this.remarkMes.realname = e.realname;
this.remarkMes.user_id = e.user_id;
this.remarkMes.remark = e.remark;
},
// 修改标记
saveRemark() {
this.$api.post('api/User/editRemarkForUser', this.remarkMes)
.then(res => {
if (res.code == 0) {
this.$message.success('Success');
this.remarkBox = false;
this.getContent();
} else {
this.$message.error(res.msg);
}
});
},
// 上传文件
handleChange2(file, fileList) {
if (fileList.length > 0) {
this.fileL_pdf2 = [fileList[fileList.length - 1]]
@@ -772,16 +889,16 @@
},
handleFileSuccess1(res, file) {
if (res.code == 0) {
this.addForm.cv = res.upurl;
this.addForm.qualifications = res.upurl;
this.checkForm.cv = res.upurl;
this.checkForm.qualifications = res.upurl;
} else {
this.$message.error(res.msg);
}
},
handleFileSuccess2(res, file) {
if (res.code == 0) {
this.oldForm.cv = res.upurl;
this.oldForm.qualifications = res.upurl;
this.addForm.cv = res.upurl;
this.addForm.qualifications = res.upurl;
} else {
this.$message.error(res.msg);
}
@@ -808,7 +925,7 @@
window.open(file.url);
},
handleExceed(files, fileList) {
this.$message.warning("当前限制选择 1 个文件,请先删除当前文件!");
this.$message.warning("The current limit is 1 file. Please delete the current file first!");
},
}
};
@@ -846,4 +963,15 @@
.el-table .red-row {
background: #f05555;
}
.tab_tie_col {
margin-bottom: 5px;
color: #333;
}
.tab_tie_col>span {
color: #888;
margin: 0 5px 0 0;
font-size: 13px;
}
</style>