This commit is contained in:
2025-06-20 13:12:26 +08:00
parent eb84024fdf
commit 74525e161e
9 changed files with 128 additions and 48 deletions

View File

@@ -8,7 +8,7 @@
:hidden="item.num == 0 || item.state == 3 || item.state == 5" :hidden="item.num == 0 || item.state == 3 || item.state == 5"
style="margin-right: 25px" style="margin-right: 25px"
> >
<el-button <el-button style="padding:7px 10px"
@click=" @click="
query.state = item.state; query.state = item.state;
getdate(); getdate();
@@ -32,13 +32,13 @@
<el-option :key="1" :label="$t('artstate.act1')" :value="1"></el-option> <el-option :key="1" :label="$t('artstate.act1')" :value="1"></el-option>
<el-option :key="2" :label="$t('artstate.act2')" :value="2"></el-option> <el-option :key="2" :label="$t('artstate.act2')" :value="2"></el-option>
</el-select> --> </el-select> -->
<el-select v-model="query.journal" @change="chageJour" placeholder="Please select journal"> <el-select v-model="query.journal" @change="chageJour" placeholder="Please select journal" size="mini">
<el-option :key="0" label="All journals" :value="0"></el-option> <el-option :key="0" label="All journals" :value="0"></el-option>
<el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id"> </el-option> <el-option v-for="item in journals" :key="item.journal_id" :label="item.title" :value="item.journal_id"> </el-option>
</el-select> </el-select>
<p style="height: 5px"></p> <p style="height: 5px"></p>
<el-select v-model="query.special_num" @change="getdate" placeholder="Please select guest" style="width: 245px"> <el-select size="mini" v-model="query.special_num" @change="getdate" placeholder="Please select guest" style="width: 245px">
<el-option :key="0" label="Not select special issue" :value="0"></el-option> <el-option :key="0" label="Not select special issue" :value="0"></el-option>
<el-option <el-option
v-for="item in itemGuest" v-for="item in itemGuest"
@@ -47,9 +47,9 @@
:value="item.journal_special_id" :value="item.journal_special_id"
></el-option> ></el-option>
</el-select> </el-select>
<el-input v-model="query.name" placeholder="Title" style="width: 250px"></el-input> <el-input v-model="query.name" placeholder="Title" style="width: 250px" size="mini" clearable></el-input>
<el-input v-model="query.sn" placeholder="SN" style="width: 250px; margin-right: 10px"></el-input> <el-input v-model="query.sn" placeholder="SN" style="width: 250px; margin-right: 10px" size="mini" clearable></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleSearch" style="margin: 0 0 10px 0">Search </el-button> <el-button type="primary" icon="el-icon-search" @click="handleSearch" style="margin: 0 0 10px 0" size="mini">Search </el-button>
</div> </div>
<div v-if="!PreAcpVisible"> <div v-if="!PreAcpVisible">
@@ -459,7 +459,7 @@
<font <font
v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'" v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'"
style="font-size: 14px; font-weight: normal; color: #333" style="font-size: 14px; font-weight: normal; color: #333"
>Comprehensive Score :</font >Comprehensive Score : </font
> >
<span v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'">{{ finalCount(item) }}</span> <span v-if="finalCount(item) > 0 && finalCount(item) != 'NaN'">{{ finalCount(item) }}</span>
</p> </p>
@@ -577,7 +577,7 @@
</div> </div>
</div> </div>
<div style="margin: 15px 0 0 0"> <div style="margin: 10px 0 0 0">
<span style="color: #666b7a; margin: 2px 5px 0 0">Remarks :</span> <span style="color: #666b7a; margin: 2px 5px 0 0">Remarks :</span>
<font style="margin-right: 10px; line-height: 24px; font-weight: bold">{{ item.remarks }}</font> <font style="margin-right: 10px; line-height: 24px; font-weight: bold">{{ item.remarks }}</font>
<b @click="testedit(item)" class="btnCliArt"> <i class="el-icon-edit"></i> Change </b> <b @click="testedit(item)" class="btnCliArt"> <i class="el-icon-edit"></i> Change </b>

View File

@@ -80,7 +80,7 @@
<!-- <el-table-column prop="email" label="Email" align="center"></el-table-column> --> <!-- <el-table-column prop="email" label="Email" align="center"></el-table-column> -->
<!-- <el-table-column prop="company" label="Company" align="center"></el-table-column> --> <!-- <el-table-column prop="company" label="Company" align="center"></el-table-column> -->
<!-- <el-table-column prop="major_str" label="Major"></el-table-column> --> <!-- <el-table-column prop="major_str" label="Major"></el-table-column> -->
<el-table-column label="Research areas" width="310"> <el-table-column label="Research areas" width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<commonMajorTableList <commonMajorTableList
:user_id="scope.row.reviewer_id" :user_id="scope.row.reviewer_id"

View File

@@ -49,7 +49,7 @@
<!-- <p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p> --> <!-- <p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Research areas" width="310"> <el-table-column label="Research areas" width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<commonMajorTableList <commonMajorTableList
:user_id="scope.row.user_id" :user_id="scope.row.user_id"

View File

@@ -103,7 +103,7 @@
<!-- <p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p> --> <!-- <p class="tab_tie_col" v-if="scope.row.majorstr != ''"><span>Major: </span>{{ scope.row.majorstr }}</p> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Research areas" width="310"> <el-table-column label="Research areas" width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<commonMajorTableList <commonMajorTableList
:user_id="scope.row.reviewer_id" :user_id="scope.row.reviewer_id"

View File

@@ -37,7 +37,7 @@
class="cascader-container" class="cascader-container"
style="display: flex; align-items: center; justify-content: space-between" style="display: flex; align-items: center; justify-content: space-between"
> >
<span style="margin-right: 10px; font-size: 12px; color: #006699; font-weight: bold">Field {{ Number(index + 1) }} :</span> <span style="margin-right: 10px; font-size: 13px; color: #006699; font-weight: bold">Field {{ Number(index + 1) }} :</span>

View File

@@ -1,15 +1,20 @@
<template> <template>
<div> <div style="width: 100%">
<div <div
@click="BoxMajor()" @click="BoxMajor()"
v-if="user_id" v-if="user_id"
style="display: flex; align-items: center; justify-content: space-between" style="width: 100%; display: flex; align-items: center; justify-content: space-between"
:style="{ cursor: disabled ? '' : 'pointer' }" :style="{ cursor: disabled ? '' : 'pointer' }"
> >
<!-- 使用 user_id 来获取用户的 majorData --> <!-- 使用 user_id 来获取用户的 majorData -->
<div> <div style="position: relative; padding-top: 14px;width: 100%;">
<b
style="margin-left: 1px; color: #006699; position: absolute; top: 0px; right: 0"
class="el-icon-edit"
v-if="!disabled"
></b>
<div v-if="!loading" class="majorDataBox"> <div v-if="!loading" class="majorDataBox">
<p v-for="(v, i) in majorData" style="border-top: 1px solid #b3d8ff"> <p v-for="(v, i) in majorData" style="border-top: 1px solid #b3d8ff; font-size: 13px">
<span style="font-weight: bold">{{ i + 1 }}.</span> <span style="font-weight: bold">{{ i + 1 }}.</span>
{{ v.major_title.replace('Medicine >', '').trim().split('>').pop().trim() }} {{ v.major_title.replace('Medicine >', '').trim().split('>').pop().trim() }}
</p> </p>
@@ -19,11 +24,9 @@
<!-- 如果数据还在加载显示 "Loading..." --> <!-- 如果数据还在加载显示 "Loading..." -->
</div> </div>
</div> </div>
<b style="margin-left: 10px; color: #006699" class="el-icon-edit" v-if="!disabled"></b>
</div> </div>
<el-dialog :title="disabled?'Research areas':'Edit Research areas'" :visible.sync="majorBox" width="800px"> <el-dialog :title="disabled ? 'Research areas' : 'Edit Research areas'" :visible.sync="majorBox" width="800px">
<el-form ref="remark" :model="majorMes" label-width="120px"> <el-form ref="remark" :model="majorMes" label-width="120px">
<el-form-item label="Reviewer :"> <el-form-item label="Reviewer :">
<p style="line-height: 20px; margin-top: 6px"> <p style="line-height: 20px; margin-top: 6px">
@@ -35,8 +38,11 @@
<p style="line-height: 20px; margin-top: 6px">{{ majorMes.email }}</p> <p style="line-height: 20px; margin-top: 6px">{{ majorMes.email }}</p>
</el-form-item> --> </el-form-item> -->
<el-form-item label="Research areas :"> <el-form-item label="Research areas :">
<common-major-list
<common-major-list :disabled="disabled" :list="majorValueList" @load="(e) => (this.majorValueList = e)"></common-major-list> :disabled="disabled"
:list="majorValueList"
@load="(e) => (this.majorValueList = e)"
></common-major-list>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -76,18 +82,19 @@ export default {
this.majorMes.user_id = this.baseInfo.user_id; this.majorMes.user_id = this.baseInfo.user_id;
this.majorMes.email = this.baseInfo.email; this.majorMes.email = this.baseInfo.email;
if (this.disabled) { if (this.disabled) {
this.majorValueList = [...this.majorData].map((item)=>{return {...item,str:item.major_title}}); this.majorValueList = [...this.majorData].map((item) => {
console.log('this.majorValueList at line 79:', this.majorValueList) return { ...item, str: item.major_title };
} else { });
this.majorValueList = [...this.majorData].map((item) => ({ console.log('this.majorValueList at line 79:', this.majorValueList);
selectedValue: Array.isArray(item.shu) } else {
? item.shu this.majorValueList = [...this.majorData].map((item) => ({
: typeof item.shu === 'string' selectedValue: Array.isArray(item.shu)
? item.shu.split(',').map(Number) ? item.shu
: [item.shu] : typeof item.shu === 'string'
})); ? item.shu.split(',').map(Number)
} : [item.shu]
}));
}
}, },
async fetchMajorData(userId) { async fetchMajorData(userId) {
// if (!this.majorData[userId]) { // if (!this.majorData[userId]) {

View File

@@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<!-- <oldForm></oldForm> --> <oldForm></oldForm>
<newForm></newForm> <newForm></newForm>
</div> </div>

View File

@@ -303,20 +303,92 @@ export default {
}); });
}, },
questionSubmit() { questionSubmit() {
if (this.questionform.is_anonymous === '') { if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '0') {
this.$message.error('Please choose disclose your name or remain anonymous.'); this.$message.error('Please choose disclose your name or remain anonymous.');
return false; return false;
} }
const regex = /[\u4E00-\u9FA5\uF900-\uFA2D]{1,}/;
if (this.questionform.comment && this.questionform.comment != '') {
if (regex.test(this.questionform.comment)) {
// 如果输入的是中文,则清空输入框
this.$message.error('Comments for the Authors cannot use Chinese.');
return false;
}
}
if (this.questionform.confident && this.questionform.confident != '') {
if (regex.test(this.questionform.confident)) {
// 如果输入的是中文,则清空输入框
this.$message.error('Confidential Comments to the Editor cannot be in Chinese.');
return false;
}
}
// 验证相加的字数
let Char_Cter =
this.questionform.qu9contents +
' ' +
this.questionform.qu10contents +
' ' +
this.questionform.qu11contents +
' ' +
this.questionform.qu12contents +
' ' +
this.questionform.qu13contents +
' ' +
this.questionform.comment;
if (new RegExp('[\\u4E00-\\u9FFF]+', 'g').test(Char_Cter)) {
//中文
let blankCount = 0;
for (let i in Char_Cter.match(/ /g)) {
blankCount++;
}
let wenziCount = 0;
for (let j = 0; j < Char_Cter.length; j++) {
if (Char_Cter.charCodeAt(j) < 0 || Char_Cter.charCodeAt(j) > 255) {
wenziCount++;
}
}
if (blankCount + wenziCount <= 60) {
this.$message.error('We encourage you to enrich your comment further to help improve the peer paper.');
this.$message({
offset: '380',
type: 'error',
message: 'We encourage you to enrich your comment further to help improve the peer paper.'
});
return false;
}
} else {
//英文
let blankCount = 0;
for (let i in Char_Cter.match(/ /g)) {
blankCount++;
}
if (blankCount <= 50) {
this.$message.error('We encourage you to enrich your comment further to help improve the peer paper.');
this.$message({
offset: '380',
type: 'error',
message: 'We encourage you to enrich your comment further to help improve the peer paper.'
});
return false;
}
}
// 提交接口
this.loading = true; this.loading = true;
this.$refs.question.validate((valid) => { this.$refs.question.validate((valid) => {
if (valid) { if (valid) {
this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => { this.$api.post('api/Reviewer/questionSubmit', this.questionform).then((res) => {
this.loading = false; if (res.code == 0) {
if (res.code === 0) { this.loading = false;
this.$message.success('Success!!'); this.$message.success('Success!!');
this.getData();
this.$router.push('/per_text_success'); this.$router.push('/per_text_success');
} else { } else {
this.loading = false;
// this.$message.error('Question submit error!');
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}); });

View File

@@ -1,11 +1,11 @@
<template> <template>
<div> <div style="height: 100%;">
<div class="crumbs"> <div class="crumbs" style="margin: 0;">
<!-- <el-breadcrumb separator="/"> <!-- <el-breadcrumb separator="/">
<el-breadcrumb-item> <i class="el-icon-user"></i> Reviewer list </el-breadcrumb-item> <el-breadcrumb-item> <i class="el-icon-user"></i> Reviewer list </el-breadcrumb-item>
</el-breadcrumb> --> </el-breadcrumb> -->
</div> </div>
<div class="container"> <div class="container" style="height: 100%;box-sizing: border-box;">
<!-- <div class="handle-box"> <!-- <div class="handle-box">
</div> --> </div> -->
@@ -53,7 +53,7 @@
</el-button> </el-button>
<el-button type="primary" icon="el-icon-plus" class="handle-del" @click="add_Selection">Add Reviewer </el-button> <el-button type="primary" icon="el-icon-plus" class="handle-del" @click="add_Selection">Add Reviewer </el-button>
</div> </div>
<el-table :data="tableData" class="table" ref="multipleTable" header-cell-class-name="table-header" empty-text="Messages (0)"> <el-table height="86%" :data="tableData" class="table" ref="multipleTable" header-cell-class-name="table-header" empty-text="Messages (0)">
<el-table-column label="Base Information" width="280px"> <el-table-column label="Base Information" width="280px">
<template slot-scope="scope"> <template slot-scope="scope">
<p class="tab_tie_col"> <p class="tab_tie_col">
@@ -147,7 +147,7 @@
</p> </p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="Other Information"> <el-table-column label="Other Information" min-width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<p class="tab_tie_col"><span>Field: </span>{{ scope.row.field }}</p> <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>Major: </span>{{ scope.row.major_title }}</p> -->
@@ -176,6 +176,7 @@
> >
</b> </b>
<el-button <el-button
style="padding: 4px;"
size="mini" size="mini"
type="success" type="success"
plain plain
@@ -184,7 +185,7 @@
v-if="scope.row.is_yboard == '0'" v-if="scope.row.is_yboard == '0'"
>Upgrade</el-button >Upgrade</el-button
> >
<el-button <el-button style="padding: 4px;"
size="mini" size="mini"
type="warning" type="warning"
plain plain
@@ -206,7 +207,7 @@
></b> ></b>
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column label="Research areas" width="310"> <el-table-column label="Research areas" width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<commonMajorTableList :user_id="scope.row.user_id" :baseInfo="scope.row" :key="scope.row.user_id"></commonMajorTableList> <commonMajorTableList :user_id="scope.row.user_id" :baseInfo="scope.row" :key="scope.row.user_id"></commonMajorTableList>
</template> </template>
@@ -219,10 +220,10 @@
@click="handleEdit(scope.$index, scope.row)">Edit</el-button> @click="handleEdit(scope.$index, scope.row)">Edit</el-button>
</div> --> </div> -->
<div style="margin: 0 0 6px 0"> <div style="margin: 0 0 6px 0">
<el-button type="primary" plain icon="el-icon-edit" @click="handleDtail(scope.row)"> Detail </el-button> <el-button style="width: 80px;padding: 7px 10px;" type="primary" plain icon="el-icon-edit" @click="handleDtail(scope.row)"> Detail </el-button>
</div> </div>
<div> <div >
<el-button size="mini" type="danger" plain icon="el-icon-delete" @click="showDelete(scope.row)"> <el-button style="width: 80px;padding: 7px 10px;" size="mini" type="danger" plain icon="el-icon-delete" @click="showDelete(scope.row)">
Delete</el-button Delete</el-button
> >
</div> </div>
@@ -1509,7 +1510,7 @@ export default {
} }
.starSty { .starSty {
width: 18px; width: 14px;
margin-right: 4px; margin-right: 4px;
vertical-align: text-top; vertical-align: text-top;
} }