审稿录入Latex

This commit is contained in:
2026-03-09 16:50:59 +08:00
parent 4e46f5bcff
commit 68f52bed67
15 changed files with 699 additions and 1481 deletions

View File

@@ -19,8 +19,8 @@ const service = axios.create({
// baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换 // baseURL: 'https://submission.tmrjournals.com/', //正式 记得切换
// baseURL: 'http://www.tougao.com/', //测试本地 记得切换 // baseURL: 'http://www.tougao.com/', //测试本地 记得切换
// baseURL: 'http://192.168.110.110/tougao/public/index.php/', // baseURL: 'http://192.168.110.110/tougao/public/index.php/',
baseURL: '/api', //本地 // baseURL: '/api', //本地
// baseURL: '/', //正式 baseURL: '/', //正式
}); });

View File

@@ -164,218 +164,7 @@
:articleId="articleId" :articleId="articleId"
:journal_id="journal_id" :journal_id="journal_id"
></common-review-article> ></common-review-article>
<!-- <el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="undeQuestion.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="undeQuestion.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="undeQuestion.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="undeQuestion.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="undeQuestion.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="undeQuestion.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="undeQuestion.qu9contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="undeQuestion.qu10contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="undeQuestion.qu11contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="undeQuestion.qu12contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px;">
<template slot="title">
<i class="el-icon-edit"></i>Comments/ Suggestions
</template>
<el-input type="textarea" placeholder="please input content"
v-model="undeQuestion.qu13contents" :rows="4"></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="undeQuestion.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px;">>Your score:{{undeQuestion.rated}}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="undeQuestion.recommend" style="line-height: 30px;">
<el-radio :label="1">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="undeQuestion.other" style="line-height: 30px;">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.comments"
:rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.confidential"
:rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous.">
<el-radio-group v-model="undeQuestion.is_anonymous" style="line-height: 30px;">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px;color: #aaa;font-size: 13px;margin: 12px 0 0 0;">
If you agree to disclose your name, we will acknowledge you by name in the published
PDF. However, if you prefer to remain anonymous, we will still express our gratitude
by thanking you as an anonymous reviewer.
<br />For example, {{articleInfo.journal_title}} would like to thank AAAAAAAA, BBBBBBBB, and
other anonymous reviewers for their
invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
</el-collapse>
</el-form> -->
</el-dialog> </el-dialog>
<!-- 复审问卷 --> <!-- 复审问卷 -->
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" :close-on-click-modal="false" <el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" :close-on-click-modal="false"

View File

@@ -251,7 +251,7 @@
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="900px" :close-on-click-modal="false"> <el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible" width="900px" :close-on-click-modal="false">
<!-- 审稿人表单修改 --> <!-- 审稿人表单修改 -->
<common-review-article <common-review-article v-if="dialogFormVisible"
type="questionform" type="questionform"
pagetype="Editor" pagetype="Editor"
:form="questionform" :form="questionform"
@@ -261,239 +261,12 @@
:journal_id="journal_id" :journal_id="journal_id"
></common-review-article> ></common-review-article>
<!-- <el-form :model="questionform" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="questionform.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu11contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu12contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu13contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">>Your score:{{ questionform.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
<el-radio :label="1">Minor revision</el-radio>
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
</div>
<div v-else>
<el-radio :label="4">Reject</el-radio>
</div>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item><el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style=" box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous.">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer
to remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers
for their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
</el-collapse>
</el-form> -->
</el-dialog> </el-dialog>
<!-- 初审问卷 --> <!-- 初审问卷 -->
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible1" width="900px" @close="closeUnderDia" :close-on-click-modal="false"> <el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible1" width="900px" @close="closeUnderDia" :close-on-click-modal="false">
<!-- 审稿人表单修改 --> <!-- 审稿人表单修改 -->
<common-review-article <common-review-article v-if="dialogFormVisible1"
type="undeQuestion" type="undeQuestion"
pagetype="Editor" pagetype="Editor"
:form="undeQuestion" :form="undeQuestion"
@@ -503,231 +276,7 @@
:journal_id="journal_id" :journal_id="journal_id"
></common-review-article> ></common-review-article>
<!-- <el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="undeQuestion.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="undeQuestion.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="undeQuestion.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="undeQuestion.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="undeQuestion.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="undeQuestion.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu11contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu12contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu13contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="undeQuestion.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">>Your score:{{ undeQuestion.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="undeQuestion.recommend" style="line-height: 30px">
<el-radio :label="1">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="undeQuestion.other" style="line-height: 30px">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item><el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.comments" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.confidential"
:rows="8"
></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous.">
<el-radio-group v-model="undeQuestion.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer
to remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers
for their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
</el-collapse>
</el-form> -->
</el-dialog> </el-dialog>
<!-- 复审问卷 --> <!-- 复审问卷 -->
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" @close="closeSecDia" :close-on-click-modal="false"> <el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" @close="closeSecDia" :close-on-click-modal="false">

View File

@@ -420,7 +420,8 @@
</p> </p>
<p v-if="item1.comments!=''"> <p v-if="item1.comments!=''">
<font>Comments for the Authors</font> <font>Comments for the Authors</font>
<pre>{{item1.comments}}</pre> <p v-html="getHtmlValue(item1.comments)"></p>
</p> </p>
</div> </div>
</div> </div>
@@ -474,7 +475,8 @@
<p v-if="item.suggest_for_author!=''" style="margin-left: 0;"> <p v-if="item.suggest_for_author!=''" style="margin-left: 0;">
<font style="margin-top: 0px;">Comments for the Authors</font> <font style="margin-top: 0px;">Comments for the Authors</font>
<pre style="text-align: justify;">{{item.suggest_for_author}}</pre> <p v-html="getHtmlValue(item.suggest_for_author)"></p>
<!-- <pre style="text-align: justify;">{{item.suggest_for_author}}</pre> -->
</p> </p>
</div> </div>
@@ -537,6 +539,55 @@
this.getdate(); this.getdate();
}, },
methods: { methods: {
formatToHtml(val) {
if (!val) return '';
// 1. 创建临时的 textarea。目的是利用浏览器标准化的能力处理 \n
const tempTextArea = document.createElement('textarea');
tempTextArea.value = val;
// 此时 text 里的换行符已经被统一为 \n
let text = tempTextArea.value;
// 2. 处理换行:将 \n 转换为 <br>
// 这样能确保你那 8 条审稿意见能正确分行
let processedText = text.replace(/\n/g, '<br>');
return processedText;
},
getHtmlValue(val){
// const formula = '<wmath data-id=\"wmath-7g5e4ycyj\" data-latex=\"$$\\sqrt{a^2 + b^2}$$\" data-wrap=\"block\">a2+b2</wmath>';
var str = `${val}`;
setTimeout(() => {
if (window.renderMathJax) window.renderMathJax();
}, 500);
return str ? this.formatToHtml(str) : '';
},
//初始化期刊选项 //初始化期刊选项
initselect() { initselect() {
this.$api this.$api
@@ -1174,4 +1225,15 @@ this.$router.push({
/deep/.research_area .el-collapse-item__content{ /deep/.research_area .el-collapse-item__content{
padding-bottom: 0 !important; padding-bottom: 0 !important;
} }
::v-deep wmath {
display: block !important;
width: 100% !important;
}
::v-deep wmath[data-wrap="inline"] {
display: inline-block !important;
width: auto !important;
}
</style> </style>

View File

@@ -72,7 +72,9 @@
</p> </p>
<p v-if="item1.comments!=''"> <p v-if="item1.comments!=''">
<font>Comments for the Authors</font> <font>Comments for the Authors</font>
<pre>{{item1.comments}}</pre>
<p v-html="getHtmlValue(item1.comments)"></p>
</p> </p>
</div> </div>
</div> </div>
@@ -127,7 +129,8 @@
<p v-if="item.suggest_for_author!=''"> <p v-if="item.suggest_for_author!=''">
<font style="margin-top: 0px;">Comments for the Authors</font> <font style="margin-top: 0px;">Comments for the Authors</font>
<pre style="text-align: justify;">{{item.suggest_for_author}}</pre> <p v-html="getHtmlValue(item.suggest_for_author)" style="text-align: justify;"></p>
</p> </p>
</div> </div>
@@ -525,7 +528,7 @@
export default { export default {
data() { data() {
return { return {
questionform:{}, questionform:{},
dialogFormVisible:false, dialogFormVisible:false,
baseUrl: this.Common.baseUrl, baseUrl: this.Common.baseUrl,
mediaUrl: this.Common.mediaUrl, mediaUrl: this.Common.mediaUrl,
@@ -600,6 +603,55 @@
}, },
}, },
methods: { methods: {
formatToHtml(val) {
if (!val) return '';
// 1. 创建临时的 textarea。目的是利用浏览器标准化的能力处理 \n
const tempTextArea = document.createElement('textarea');
tempTextArea.value = val;
// 此时 text 里的换行符已经被统一为 \n
let text = tempTextArea.value;
// 2. 处理换行:将 \n 转换为 <br>
// 这样能确保你那 8 条审稿意见能正确分行
let processedText = text.replace(/\n/g, '<br>');
return processedText;
},
getHtmlValue(val){
// const formula = '<wmath data-id=\"wmath-7g5e4ycyj\" data-latex=\"$$\\sqrt{a^2 + b^2}$$\" data-wrap=\"block\">a2+b2</wmath>';
var str = `${val}`;
setTimeout(() => {
if (window.renderMathJax) window.renderMathJax();
}, 500);
return str ? this.formatToHtml(str) : '';
},
showDetail(data){ showDetail(data){
this.questionform = data; this.questionform = data;
@@ -678,7 +730,11 @@
if(item.question && item.question.length > 0) if(item.question && item.question.length > 0)
item.question = item.question.reverse() item.question = item.question.reverse()
}) })
if(this.comentDeploy.length){
setTimeout(() => {
if (window.renderMathJax) window.renderMathJax();
}, 500);
}
// 审稿人意见 // 审稿人意见
this.comentFinal = res.suggest_final this.comentFinal = res.suggest_final
@@ -1284,4 +1340,15 @@ that.wordTables=wordTables
letter-spacing: -0.5px; letter-spacing: -0.5px;
} }
.commentfs{} .commentfs{}
::v-deep wmath {
display: block !important;
width: 100% !important;
}
::v-deep wmath[data-wrap="inline"] {
display: inline-block !important;
width: auto !important;
}
</style> </style>

View File

@@ -408,7 +408,7 @@
<!-- 审稿人表单修改 --> <!-- 审稿人表单修改 -->
<common-review-article <common-review-article
v-if="dialogFormVisible"
type="questionform" type="questionform"
pagetype="Editor" pagetype="Editor"
:form="questionform" :form="questionform"
@@ -418,239 +418,12 @@
:journal_id="journal_id" :journal_id="journal_id"
></common-review-article> ></common-review-article>
<!-- <el-form :model="questionform" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="questionform.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu11contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu12contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu13contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">>Your score:{{ questionform.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
<el-radio :label="1">Minor revision</el-radio>
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<div v-if="journal_id == 1 || journal_id == 23 || journal_id == 10">
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
</div>
<div v-else>
<el-radio :label="4">Reject</el-radio>
</div>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item><el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style=" box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="questionform.comment" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input type="textarea" placeholder="please input content" v-model="questionform.confident" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous.">
<el-radio-group v-model="questionform.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer
to remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers
for their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
</el-collapse>
</el-form> -->
</el-dialog> </el-dialog>
<!-- 初审问卷 --> <!-- 初审问卷 -->
<el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible1" width="900px" @close="closeUnderDia" :close-on-click-modal="false"> <el-dialog title="Feedback questionnaire" :visible.sync="dialogFormVisible1" width="900px" @close="closeUnderDia" :close-on-click-modal="false">
<!-- 审稿人表单修改 --> <!-- 审稿人表单修改 -->
<common-review-article <common-review-article v-if="dialogFormVisible1"
type="undeQuestion" type="undeQuestion"
pagetype="Editor" pagetype="Editor"
:form="undeQuestion" :form="undeQuestion"
@@ -660,231 +433,7 @@
:journal_id="journal_id" :journal_id="journal_id"
></common-review-article> ></common-review-article>
<!-- <el-form :model="undeQuestion" ref="question" label-width="300px" label-position="top">
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="undeQuestion.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="undeQuestion.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="undeQuestion.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="undeQuestion.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="undeQuestion.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="undeQuestion.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu11contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu12contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="undeQuestion.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.qu13contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="undeQuestion.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">>Your score:{{ undeQuestion.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="undeQuestion.recommend" style="line-height: 30px">
<el-radio :label="1">Accept with minor revision</el-radio>
<br />
<el-radio :label="2">Accept with major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject, with no resubmission</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="undeQuestion.other" style="line-height: 30px">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item><el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input type="textarea" placeholder="please input content" v-model="undeQuestion.comments" :rows="8"></el-input>
</el-form-item>
<el-form-item label="Confidential Comments to the Editor">
<el-input
type="textarea"
placeholder="please input content"
v-model="undeQuestion.confidential"
:rows="8"
></el-input>
</el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous.">
<el-radio-group v-model="undeQuestion.is_anonymous" style="line-height: 30px">
<el-radio :label="0">Disclose name</el-radio>
<br />
<el-radio :label="1">Remain anonymous</el-radio>
</el-radio-group>
<p style="line-height: 20px; color: #aaa; font-size: 13px; margin: 12px 0 0 0">
If you agree to disclose your name, we will acknowledge you by name in the published PDF. However, if you prefer
to remain anonymous, we will still express our gratitude by thanking you as an anonymous reviewer.
<br />For example, {{ txt_mess.title }} would like to thank AAAAAAAA, BBBBBBBB, and other anonymous reviewers
for their invaluable contributions to the peer review process of this paper.
</p>
</el-form-item>
</el-collapse>
</el-form> -->
</el-dialog> </el-dialog>
<!-- 复审问卷 --> <!-- 复审问卷 -->
<el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" @close="closeSecDia" :close-on-click-modal="false"> <el-dialog title="Second review questionnaire" :visible.sync="FdialogFormVisible" width="900px" @close="closeSecDia" :close-on-click-modal="false">

View File

@@ -1,68 +1,54 @@
<template> <template>
<div class="container" style="min-width: auto; padding: 15px 15px 0">
<el-row :gutter="24">
<div class="container" style="min-width: auto;padding:15px 15px 0;"> <el-col :span="24">
<el-row :gutter="24"> <div class="form-box" style="width: 100%">
<el-col :span="24"> <el-form ref="articleform" :model="detailDate" label-width="220px">
<div class="form-box" style="width: 100%"> <!-- <el-form-item label="Article : ">
<el-form ref="articleform" :model="detailDate" label-width="220px">
<!-- <el-form-item label="Article : ">
<span>{{ detailDate.article }}</span> <span>{{ detailDate.article }}</span>
</el-form-item> --> </el-form-item> -->
<el-form-item label="Editorial Board Member : "> <el-form-item label="Editorial Board Member : ">
<span>{{ detailDate.reviewer }}</span> <span>{{ detailDate.reviewer }}</span>
</el-form-item> </el-form-item>
<el-form-item label="Editorial Board Member Email : "> <el-form-item label="Editorial Board Member Email : ">
<span>{{ detailDate.article_final.reviewer_email }}</span> <span>{{ detailDate.article_final.reviewer_email }}</span>
</el-form-item> </el-form-item>
<el-form-item label="Affiliation : " v-if="detailDate.article_final.reviewer_company"> <el-form-item label="Affiliation : " v-if="detailDate.article_final.reviewer_company">
<span>
{{ detailDate.article_final.reviewer_company }}
</span>
</el-form-item>
<el-form-item label="Final decision time : ">
<span>{{ detailDate.ctime }}</span>
</el-form-item>
<el-form-item label="Final decision : ">
<span style="font-size: 16px; font-weight: bold">
<span v-if="detailDate.article_final.state == 1" style="color: #67c23a">Accept</span>
<span v-else-if="detailDate.article_final.state == 2" style="color: #ff4949">Reject</span>
<span v-else-if="detailDate.article_final.state == 3" style="color: #ffc500">Revision</span>
</span>
</el-form-item>
<span <template v-if="detailDate.article_final">
<el-form-item label="Comment for authors : " prop="suggest_for_author">
<div style="color: #888">
<p v-html="getHtmlValue(detailDate.article_final.suggest_for_author)" v-if="detailDate.article_final.suggest_for_author"></p>
<span v-else>No comment</span>
</div>
</el-form-item>
<el-form-item label="Comment for editor : " prop="suggest_for_editor">
<div style="color: #888">
<p v-html="getHtmlValue(detailDate.article_final.suggest_for_editor)" v-if="detailDate.article_final.suggest_for_editor"></p>
<span v-else>No comment</span>
> </div>
{{ detailDate.article_final.reviewer_company }} </el-form-item>
</span> </template>
</el-form>
</el-form-item>
<el-form-item label="Final decision time : ">
<span>{{ detailDate.ctime }}</span>
</el-form-item>
<el-form-item label="Final decision : ">
<span style="font-size: 16px;font-weight: bold">
<span v-if="detailDate.article_final.state==1" style="color: #67c23a;">Accept</span>
<span v-else-if="detailDate.article_final.state==2" style="color: #ff4949;">Reject</span>
<span v-else-if="detailDate.article_final.state==3" style="color: #ffc500;">Revision</span>
</span>
</el-form-item>
<template v-if="detailDate.article_final">
<el-form-item label="Comment for authors : " prop="suggest_for_author">
<div style="color: #888;"
>
{{ detailDate.article_final.suggest_for_author? detailDate.article_final.suggest_for_author : 'No comment' }}
</div> </div>
</el-form-item> </el-col>
<el-form-item label="Comment for editor : " prop="suggest_for_editor"> </el-row>
</div>
<div style="color: #888;"
>
{{ detailDate.article_final.suggest_for_editor? detailDate.article_final.suggest_for_editor : 'No comment' }}
</div>
</el-form-item>
</template>
</el-form>
</div>
</el-col>
</el-row>
</div>
</template> </template>
<script> <script>
@@ -152,6 +138,55 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
formatToHtml(val) {
if (!val) return '';
// 1. 创建临时的 textarea。目的是利用浏览器标准化的能力处理 \n
const tempTextArea = document.createElement('textarea');
tempTextArea.value = val;
// 此时 text 里的换行符已经被统一为 \n
let text = tempTextArea.value;
// 2. 处理换行:将 \n 转换为 <br>
// 这样能确保你那 8 条审稿意见能正确分行
let processedText = text.replace(/\n/g, '<br>');
return processedText;
},
getHtmlValue(val){
const formula = '<wmath data-id=\"wmath-7g5e4ycyj\" data-latex=\"$$\\sqrt{a^2 + b^2}$$\" data-wrap=\"block\">a2+b2</wmath>';
var str = `${val}`;
setTimeout(() => {
if (window.renderMathJax) window.renderMathJax();
}, 500);
return str ? this.formatToHtml(str) : '';
},
init() { init() {
this.getDate(); this.getDate();
}, },
@@ -240,12 +275,10 @@ export default {
//初始化详情信息 //初始化详情信息
getDate() { getDate() {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.commonEditor.getData(); this.$refs.commonEditor.getData();
});
this.$forceUpdate();
});
this.$forceUpdate();
// const loading = this.$loading({ // const loading = this.$loading({
// lock: true, // lock: true,
// text: 'Loading', // text: 'Loading',
@@ -272,7 +305,6 @@ export default {
// this.articleId = res.data.article.article_id; // this.articleId = res.data.article.article_id;
// this.editVisible1 = true; // this.editVisible1 = true;
// }) // })
// .catch((err) => { // .catch((err) => {
// console.log(err); // console.log(err);
@@ -398,7 +430,6 @@ export default {
this.detailDate.articlezip = ''; this.detailDate.articlezip = '';
}, },
mystate(mystate) { mystate(mystate) {
let str = ''; let str = '';
switch (mystate) { switch (mystate) {
case 1: case 1:
@@ -447,4 +478,15 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
} }
::v-deep wmath {
display: block !important;
width: 100% !important;
}
::v-deep wmath[data-wrap="inline"] {
display: inline-block !important;
width: auto !important;
}
</style> </style>

View File

@@ -25,7 +25,14 @@
<template> <template>
<el-form-item label="Comments for the Authors" prop="suggest_for_author"> <el-form-item label="Comments for the Authors" prop="suggest_for_author">
<el-input v-if="isEdit" <common-author-comment-editor
:readonly="!isEdit"
keyValue="suggest_for_author"
:value="editorContentMap.suggest_for_author"
:id="'tiny-suggest_for_author'"
@input="getAuthorCommentEditorContent"
/>
<!-- <el-input v-if="isEdit"
:autosize="{ minRows: 2, maxRows: 8 }" :autosize="{ minRows: 2, maxRows: 8 }"
type="textarea" type="textarea"
@@ -34,11 +41,21 @@
></el-input> ></el-input>
<div v-else style="color: #888;"> <div v-else style="color: #888;">
{{ questionform.suggest_for_author }} {{ questionform.suggest_for_author }}
</div> </div> -->
</el-form-item> </el-form-item>
</template> </template>
<el-form-item label="Comment for Editor" prop="suggest_for_editor"> <el-form-item label="Comment for Editor" prop="suggest_for_editor">
<el-input v-if="isEdit"
<common-author-comment-editor
keyValue="suggest_for_editor"
:readonly="!isEdit"
id="tiny-suggest_for_editor"
:loading="JSON.stringify(questionform) == '{}'"
:value="editorContentMap.suggest_for_editor"
@input="getAuthorCommentEditorContent"
/>
<!-- <el-input v-if="isEdit"
type="textarea" type="textarea"
placeholder="please input content" placeholder="please input content"
@@ -48,7 +65,7 @@
<div v-else style="color: #888;"> <div v-else style="color: #888;">
{{ questionform.suggest_for_editor?questionform.suggest_for_editor:'No comment' }} {{ questionform.suggest_for_editor?questionform.suggest_for_editor:'No comment' }}
</div> </div> -->
</el-form-item> </el-form-item>
@@ -109,7 +126,7 @@ export default {
default: true default: true
}, },
articleId: { articleId: {
type: Number, type: [Number,String],
default: 0 default: 0
}, },
journal_id: { journal_id: {
@@ -153,6 +170,10 @@ export default {
isEdit: true, isEdit: true,
baseQuestionform: {}, baseQuestionform: {},
questionform: {}, questionform: {},
editorContentMap: {
suggest_for_author: '',
suggest_for_editor: '',
},
rules: {} rules: {}
}; };
}, },
@@ -161,6 +182,46 @@ export default {
}, },
methods: { methods: {
async abstractFormat(content) {
content = this.$commonJS.transformHtmlString(content, 'content', { keepBr: true });
var div = document.createElement('div');
div.innerHTML = content;
var imgTags = div.getElementsByTagName('img');
for (var i = imgTags.length - 1; i >= 0; i--) {
imgTags[i].parentNode.removeChild(imgTags[i]);
}
var tableTags = div.getElementsByTagName('table');
for (var i = tableTags.length - 1; i >= 0; i--) {
tableTags[i].parentNode.removeChild(tableTags[i]);
}
var strongTags = div.getElementsByTagName('strong');
for (var i = 0; i < strongTags.length; i++) {
var bTag = document.createElement('b');
bTag.innerHTML = strongTags[i].innerHTML;
strongTags[i].parentNode.replaceChild(bTag, strongTags[i]);
}
var emTags = div.getElementsByTagName('em');
for (var i = 0; i < emTags.length; i++) {
var iTag = document.createElement('i');
iTag.innerHTML = emTags[i].innerHTML;
emTags[i].parentNode.replaceChild(iTag, emTags[i]);
}
// 处理 p 标签 + 解码
content = div.innerHTML;
content = content.replace(/^<p>\s*(.*?)\s*<\/p>$/, '$1').trim();
content = await this.$commonJS.decodeHtml(content);
content = content.replace(/&nbsp;|\u00A0/g, ' ');
return content;
},
getAuthorCommentEditorContent(key, val) {
this.$set(this.questionform, key, val);
// 2. 更新本地缓存,但不触发子组件重新加载 props
this.editorContentMap[key] = val;
},
getData() { this.rules = { getData() { this.rules = {
state: [{ required: true, message: 'Please select the manuscript Final Decision', trigger: 'blur' }], state: [{ required: true, message: 'Please select the manuscript Final Decision', trigger: 'blur' }],
// suggest_for_editor: [{ required: true, message: 'please Input Comments for the Editor', trigger: 'blur' }], // suggest_for_editor: [{ required: true, message: 'please Input Comments for the Editor', trigger: 'blur' }],
@@ -177,11 +238,14 @@ export default {
is_anonymous: this.baseQuestionform.is_anonymous, is_anonymous: this.baseQuestionform.is_anonymous,
}; };
this.editorContentMap.suggest_for_editor = this.questionform.suggest_for_editor?this.questionform.suggest_for_editor:'';
this.editorContentMap.suggest_for_author = this.questionform.suggest_for_author?this.questionform.suggest_for_author:'';
this.$refs.question.clearValidate(); this.$refs.question.clearValidate();
}, },
questionSubmit() { async questionSubmit() {
if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '2') { if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '2') {
this.$message.error('Please choose disclose your name or remain anonymous.'); this.$message.error('Please choose disclose your name or remain anonymous.');
@@ -220,6 +284,17 @@ export default {
// 提交接口 // 提交接口
// this.loading = true; // this.loading = true;
var editorStr='';
var authorStr='';
if (this.questionform.suggest_for_editor&&this.questionform.suggest_for_editor != '') {
editorStr = await this.abstractFormat(this.questionform.suggest_for_editor);
}
if(this.questionform.suggest_for_author&&this.questionform.suggest_for_author != ''){
authorStr = await this.abstractFormat(this.questionform.suggest_for_author);
}
this.$refs.question.validate((valid) => { this.$refs.question.validate((valid) => {
@@ -232,7 +307,8 @@ export default {
}); });
this.$api this.$api
.post('api/Finalreview/review', { .post('api/Finalreview/review', {
...this.questionform ...this.questionform,
suggest_for_editor:editorStr,suggest_for_author:authorStr,
}) })
.then((res) => { .then((res) => {
if (res.status == 1) { if (res.status == 1) {

View File

@@ -91,7 +91,7 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.questionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props this.questionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props
if (this.questionform.qu5 !== '') { if (this.questionform.qu5 !== '') {
console.log('this.questionform.qu5 at line 114:', this.questionform.qu5);
if (this.questionform.qu5 == 0) { if (this.questionform.qu5 == 0) {
this.questionform.qu5 = false; this.questionform.qu5 = false;
} else { } else {
@@ -134,7 +134,7 @@ export default {
}, },
questionform: { questionform: {
handler(newVal) { handler(newVal) {
console.log('newVal at line 93:', newVal);
// 变化时通知父组件 // 变化时通知父组件
this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal) this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal)
}, },

View File

@@ -0,0 +1,234 @@
<template>
<div class="tinymce-container">
<div v-if="readonly" v-html="displayValue" class="readonly-content">
</div>
<div v-else>
<div v-if="displayValue==null" class="loading-status loadTinymceBox">
<i class="el-icon-loading"></i> Fetching medical history of objective, please wait...
</div>
<tinymce
v-else
type="table"
:height="360"
ref="tinymceChild"
:tinymceOtherInit="{
forced_root_block: '',
newline_behavior: 'linebreak'
}"
valid_elements=",br"
:wordStyle="`p{font-size: 13px;}`"
:isAutomaticUpdate="true"
:id="id"
@updateChange="handleUpdate"
:value="displayValue"
class="paste-area text-container"
:toolbar="[
'bold italic |myuppercase myuppercasea Line MoreSymbols|subscript superscript||LateX|clearButton'
]"
style="line-height: 12px; overflow: auto; font-size: 13px; margin-top: 0pt; margin-bottom: 0pt"
></tinymce>
</div>
</div>
</template>
<script>
import Tinymce from '@/components/page/components/Tinymce';
export default {
components: { Tinymce },
props: {
value: String,
keyValue: String,
label: { type: String, default: 'Comments for the Authors' },
loading: Boolean,
readonly: Boolean,
id: { type: String, default: 'tiny-mhoo' }
},
data() {
return {
displayValue: null,
oldValue: null
};
},
watch: {
value: {
handler(newVal) {
// 1. 【核心】判断传入的新值是否和当前正在显示的值一致
// 如果去掉公式后的内容和 newVal 一致,说明是内部输入引起的,直接拦截,不执行后续逻辑
if ((this.displayValue ==this.oldValue)&&this.value!=''&&this.oldValue!=null) {
return;
}
// 2. 只有当外部真正传入了完全不同的值(比如初始化或切换文章)才执行重置
setTimeout(() => {
this.oldValue=JSON.parse(JSON.stringify(this.value))
let str = newVal || ''; // 使用 newVal 而不是 this.value
const formula = '<wmath data-id=\"wmath-7g5e4ycyj\" data-latex=\"$$\\sqrt{a^2 + b^2}$$\" data-wrap=\"block\">a2+b2</wmath>';
str = `${str}`;
this.displayValue = str ? this.formatToHtml(str) : '';
setTimeout(() => {
if (window.renderMathJax) window.renderMathJax();
}, 500);
}, 500);
},
immediate: true
}
},
beforeDestroy() {
this.destroyTinymce();
},
methods: {
destroyTinymce() {
this.displayValue=null
// 通过 window.tinymce 获取全局对象,根据 id 找到并销毁
if (window.tinymce && window.tinymce.get(this.id)) {
window.tinymce.get(this.id).destroy();
}
},
formatToHtml(val) {
if (!val) return '';
// 1. 创建临时的 textarea。目的是利用浏览器标准化的能力处理 \n
const tempTextArea = document.createElement('textarea');
tempTextArea.value = val;
// 此时 text 里的换行符已经被统一为 \n
let text = tempTextArea.value;
// 2. 处理换行:将 \n 转换为 <br>
// 这样能确保你那 8 条审稿意见能正确分行
let processedText = text.replace(/\n/g, '<br>');
// 4. 返回结果。注意:这里的 <wmath> 标签依然以字符形式存在,
// 当它被赋值给 Tinymce 的 :value 时Tinymce 会将其解析为真正的 HTML 元素。
return processedText;
},
handleUpdate(content) {
// 传回父组件时,保持 Tinymce 的 HTML 格式
this.$emit('input', this.keyValue, content);
}
}
}
</script>
<style scoped>
.loadTinymceBox {
height: 160px; line-height: 160px; text-align: center; border: 2px solid #eee;
border-radius: 10px;
color: #c0c4cc !important;
}
.loadTinymceBox *{
color: #c0c4cc !important;
}
::v-deep wmath {
display: block !important;
width: 100% !important;
}
::v-deep wmath[data-wrap="inline"] {
display: inline-block !important;
width: auto !important;
}
b span{
font-weight: bold !important;
}
i span{
font-style: italic !important; ;
}
sub span{
vertical-align: sub;
}
sup span{
vertical-align: sup;
}
sub {
vertical-align: sub!important;
}
sup {
vertical-align: sup !important;
}
span[style*="vertical-align: super"] {
vertical-align: super !important;
}
span[style*="vertical-align: sub"] {
vertical-align: sub !important;
}
blue {
color: rgb(0, 130, 170) !important;
}
blue sup {
color: rgb(0, 130, 170) !important;
}
blue sub {
color: rgb(0, 130, 170) !important;
}
/* ::v-deep mjx-container {
font-size: 14px !important;
margin: 5px 0 !important;
} */
.readonly-content {
min-height: 52px;
height: 195px;
overflow-y: auto;
background-color: #fff;
background-image: none;
border: 1px solid #dcdfe6;
border-radius: 4px;
resize: vertical;
padding: 5px 15px;
line-height: 1.5;
}
</style>

View File

@@ -100,63 +100,48 @@
<el-form-item label="" v-if="articleId"> <el-form-item label="" v-if="articleId">
<common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html> <common-word-html :articleId="articleId" style="box-sizing: border-box"></common-word-html>
</el-form-item> </el-form-item>
<template v-if="type == 'undeQuestion'">
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'"> <el-form-item
<el-input v-if="type == 'undeQuestion'"
:autosize="{ minRows: 2, maxRows: 8 }" label="Comments for the Authors"
:readonly="!isEdit" :prop="txt_mess.atype !== 'Comment' && txt_mess.atype !== 'News' ? 'comment' : ''"
type="textarea" >
placeholder="please input content"
v-model="questionform.comments"
></el-input> <common-author-comment-editor
</el-form-item> :readonly="!isEdit"
<el-form-item keyValue="comments"
label="Comments for the Authors" :value="editorContentMap.comments"
prop="comment" :id="'tiny-author-comments'"
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'" @input="getAuthorCommentEditorContent"
> />
<el-input </el-form-item>
:readonly="!isEdit"
type="textarea" <el-form-item
placeholder="please input content" v-else
v-model="questionform.comments" label="Comments for the Authors"
:autosize="{ minRows: 2, maxRows: 10 }" :prop="txt_mess.atype !== 'Comment' && txt_mess.atype !== 'News' ? 'comment' : ''"
></el-input> >
</el-form-item> <common-author-comment-editor
</template> :readonly="!isEdit"
<template v-else> keyValue="comment"
<el-form-item label="Comments for the Authors" v-if="this.txt_mess.atype == 'Comment' || this.txt_mess.atype == 'News'"> :value="editorContentMap.comment"
<el-input :id="'tiny-author-comment'"
:autosize="{ minRows: 2, maxRows: 8 }" @input="getAuthorCommentEditorContent"
:readonly="!isEdit" />
type="textarea" </el-form-item>
placeholder="please input content"
v-model="questionform.comment"
></el-input>
</el-form-item>
<el-form-item
label="Comments for the Authors"
prop="comment"
v-if="this.txt_mess.atype != 'Comment' && this.txt_mess.atype != 'News'"
>
<el-input
:readonly="!isEdit"
type="textarea"
placeholder="please input content"
v-model="questionform.comment"
:autosize="{ minRows: 2, maxRows: 8 }"
></el-input>
</el-form-item>
</template>
<el-form-item label="Confidential Comments to the Editor" v-if="confident"> <el-form-item label="Confidential Comments to the Editor" v-if="confident">
<el-input
<common-author-comment-editor
v-if="confident"
keyValue="confident"
:readonly="!isEdit" :readonly="!isEdit"
type="textarea" id="tiny-confident"
placeholder="please input content" :loading="JSON.stringify(questionform) == '{}'"
v-model="questionform.confident" :value="editorContentMap.confident"
:autosize="{ minRows: 2, maxRows: 10 }" @input="getAuthorCommentEditorContent"
></el-input> />
</el-form-item> </el-form-item>
<el-form-item label="Please choose disclose your name or remain anonymous" v-if="isEdit"> <el-form-item label="Please choose disclose your name or remain anonymous" v-if="isEdit">
@@ -194,6 +179,7 @@ export default {
oldForm, oldForm,
newForm newForm
}, },
props: { props: {
// isEdit: { // isEdit: {
// type: Boolean, // type: Boolean,
@@ -217,7 +203,7 @@ export default {
default: true default: true
}, },
articleId: { articleId: {
type: Number, type: Number||String,
default: 0 default: 0
}, },
journal_id: { journal_id: {
@@ -240,7 +226,15 @@ export default {
watch: { watch: {
form: { form: {
handler(e) { handler(e) {
this.baseQuestionform = {};
this. editorContentMap={
comment:'',
comments:'',
confident:'',
}
this.baseQuestionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props this.baseQuestionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props
this.getData();
}, },
immediate: true, immediate: true,
deep: true deep: true
@@ -259,17 +253,34 @@ export default {
loading: false, loading: false,
isEdit: true, isEdit: true,
baseQuestionform: {}, baseQuestionform: {},
questionform: {}, questionform: null,
rules: {} rules: {},
editorContentMap: {
comment:'',
comments:'',
confident:'',
}
}; };
}, },
created() { created() {
this.getData(); this.getData();
}, },
methods: { methods: {
getAuthorCommentEditorContent(key, val) {
this.$set(this.questionform, key, val);
// 2. 更新本地缓存,但不触发子组件重新加载 props
this.editorContentMap[key] = val;
},
getData() { getData() {
// Fetch article data // Fetch article data
this.questionform = null;
this.questionform = { ...this.baseQuestionform }; this.questionform = { ...this.baseQuestionform };
this.editorContentMap.comment = this.questionform.comment || '';
this.editorContentMap.comments = this.questionform.comments || '';
this.editorContentMap.confident = this.questionform.confident || '';
if (this.baseQuestionform.type != 1) { if (this.baseQuestionform.type != 1) {
this.isNewForm = true; this.isNewForm = true;
this.rules = { this.rules = {
@@ -296,9 +307,43 @@ export default {
recommend: [{ required: true, message: 'please select', trigger: 'blur' }] recommend: [{ required: true, message: 'please select', trigger: 'blur' }]
}; };
} }
}, },
questionSubmit() { async abstractFormat(content) {
content = this.$commonJS.transformHtmlString(content, 'content', { keepBr: true });
var div = document.createElement('div');
div.innerHTML = content;
var imgTags = div.getElementsByTagName('img');
for (var i = imgTags.length - 1; i >= 0; i--) {
imgTags[i].parentNode.removeChild(imgTags[i]);
}
var tableTags = div.getElementsByTagName('table');
for (var i = tableTags.length - 1; i >= 0; i--) {
tableTags[i].parentNode.removeChild(tableTags[i]);
}
var strongTags = div.getElementsByTagName('strong');
for (var i = 0; i < strongTags.length; i++) {
var bTag = document.createElement('b');
bTag.innerHTML = strongTags[i].innerHTML;
strongTags[i].parentNode.replaceChild(bTag, strongTags[i]);
}
var emTags = div.getElementsByTagName('em');
for (var i = 0; i < emTags.length; i++) {
var iTag = document.createElement('i');
iTag.innerHTML = emTags[i].innerHTML;
emTags[i].parentNode.replaceChild(iTag, emTags[i]);
}
// 处理 p 标签 + 解码
content = div.innerHTML;
content = content.replace(/^<p>\s*(.*?)\s*<\/p>$/, '$1').trim();
content = await this.$commonJS.decodeHtml(content);
content = content.replace(/&nbsp;|\u00A0/g, ' ');
return content;
},
async questionSubmit() {
if (this.questionform.is_anonymous == '' && this.questionform.is_anonymous != '0') { 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.');
@@ -388,6 +433,21 @@ export default {
} }
// 提交接口 // 提交接口
// this.loading = true; // this.loading = true;
var commentStr='';
var commentsStr='';
var confidentStr='';
if (this.questionform.comment&&this.questionform.comment != '') {
commentStr = await this.abstractFormat(this.questionform.comment);
}
if(this.questionform.comments&&this.questionform.comments != ''){
commentsStr = await this.abstractFormat(this.questionform.comments);
}
if(this.questionform.confident != ''){
confidentStr = await this.abstractFormat(this.questionform.confident);
}
this.$refs.question.validate((valid) => { this.$refs.question.validate((valid) => {
if (valid) { if (valid) {
@@ -400,6 +460,9 @@ export default {
this.$api this.$api
.post(this.isNewForm ? 'api/Reviewer/questionSubmitNew' : 'api/Reviewer/questionSubmit', { .post(this.isNewForm ? 'api/Reviewer/questionSubmitNew' : 'api/Reviewer/questionSubmit', {
...this.questionform, ...this.questionform,
comment: commentStr,
comments: commentsStr,
confident: confidentStr,
type: this.isNewForm ? (this.txt_mess.atype == 'REVIEW' || this.txt_mess.atype == 'MINI REVIEW' ? 3 : 2) : 1 type: this.isNewForm ? (this.txt_mess.atype == 'REVIEW' || this.txt_mess.atype == 'MINI REVIEW' ? 3 : 2) : 1
}) })
.then((res) => { .then((res) => {

View File

@@ -92,7 +92,7 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.questionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props this.questionform = JSON.parse(JSON.stringify(e)); // 深拷贝,防止直接改 props
if (this.questionform.qu5 !== '') { if (this.questionform.qu5 !== '') {
console.log('this.questionform.qu5 at line 114:', this.questionform.qu5);
if (this.questionform.qu5 == 0) { if (this.questionform.qu5 == 0) {
this.questionform.qu5 = false; this.questionform.qu5 = false;
} else { } else {
@@ -135,7 +135,7 @@ export default {
}, },
questionform: { questionform: {
handler(newVal) { handler(newVal) {
console.log('newVal at line 93:', newVal);
// 变化时通知父组件 // 变化时通知父组件
this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal) this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal)
}, },

View File

@@ -97,7 +97,7 @@ export default {
}, },
questionform: { questionform: {
handler(newVal) { handler(newVal) {
console.log('newVal at line 93:', newVal);
// 变化时通知父组件 // 变化时通知父组件
this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal) this.$emit('update', newVal); // 或自定义事件this.$emit('formChanged', newVal)
}, },

View File

@@ -79,230 +79,16 @@
<el-dialog :visible.sync="questionVisible" width="1000px" :close-on-click-modal="false"> <el-dialog :visible.sync="questionVisible" width="1000px" :close-on-click-modal="false">
<!-- 审稿人表单修改 --> <!-- 审稿人表单修改 -->
<!-- 不显示给编辑的话 --> <!-- 不显示给编辑的话 -->
<common-review-article <common-review-article v-if="questionVisible"
:form="questionform" :form="questionform"
type="questionform" type="questionform"
:txt_mess="txt_mess" :txt_mess="txt_mess"
:confident="false" :confident="false"
:btn_submit="1" :btn_submit="1"
:articleId="articleId" :articleId="0"
:journal_id="journal_id" :journal_id="journal_id"
></common-review-article> ></common-review-article>
<!-- <el-form
:model="questionform"
:rules="rules"
ref="question"
label-width="300px"
label-position="top"
style="padding: 0 20px"
>
<el-divider content-position="center">REFEREE'S ASSESSMENT</el-divider>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="1.Originality of the topic">
<el-radio-group v-model="questionform.qu1">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="2.Importance in its Field">
<el-radio-group v-model="questionform.qu3">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="3.Does the manuscript fall within the aim and scope of the journal?">
<el-radio-group v-model="questionform.qu6">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="4.English language">
<el-radio-group v-model="questionform.qu8">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="5.Readily Understandable">
<el-radio-group v-model="questionform.qu5">
<el-radio :label="1">Excellent</el-radio>
<el-radio :label="2">Good</el-radio>
<el-radio :label="3">Fair</el-radio>
<el-radio :label="4">Poor</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-collapse>
<el-form-item label="6.Does the title represent manuscript's contents?">
<el-col :span="8">
<el-radio-group v-model="questionform.qu9">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="12">
<el-collapse-item name="1" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu9contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
</el-collapse>
</el-col>
</el-row>
<el-collapse>
<el-form-item label="7.Is the Abstract accurate and concise?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu10">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="2" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu10contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="8.Are the approach/ methods properly described?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu11">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="3" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu11contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="9.Are the conclusions and interpretations sound?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu12">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="4" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu12contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-form-item label="10.Are the references properly cited?">
<el-col :span="4">
<el-radio-group v-model="questionform.qu13">
<el-radio :label="true">Yes</el-radio>
<el-radio :label="false">No</el-radio>
</el-radio-group>
</el-col>
<el-col :span="20">
<el-collapse-item name="5" style="margin-top: -10px">
<template slot="title"> <i class="el-icon-edit"></i>Comments/ Suggestions </template>
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.qu13contents"
:rows="4"
></el-input>
</el-collapse-item>
</el-col>
</el-form-item>
<el-divider content-position="center">REFEREE'S RECOMMENDATIONS</el-divider>
<el-form-item label="Overall the Paper is Rated">
(Poor------------------------Excellent)
<br />
<el-radio-group v-model="questionform.rated" size="small">
<el-radio-button label="1"></el-radio-button>
<el-radio-button label="2"></el-radio-button>
<el-radio-button label="3"></el-radio-button>
<el-radio-button label="4"></el-radio-button>
<el-radio-button label="5"></el-radio-button>
<el-radio-button label="6"></el-radio-button>
<el-radio-button label="7"></el-radio-button>
<el-radio-button label="8"></el-radio-button>
<el-radio-button label="9"></el-radio-button>
<el-radio-button label="10"></el-radio-button>
</el-radio-group>
<span style="margin-left: 20px">>Your score:{{ questionform.rated }}</span>
</el-form-item>
<el-form-item label="REFEREE'S RECOMMENDATIONS" prop="recommend">
<el-radio-group v-model="questionform.recommend" style="line-height: 30px">
<el-radio :label="1">Minor revision</el-radio>
<br />
<el-radio :label="2">Major revision</el-radio>
<br />
<el-radio :label="3">Reject in current form, but may be resubmitted</el-radio>
<br />
<el-radio :label="4">Reject</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="OTHER SPECIFIC CRITICISMS">
<el-radio-group v-model="questionform.other" style="line-height: 30px">
<el-radio :label="1">Imperfect style</el-radio>
<br />
<el-radio :label="2">Too long</el-radio>
<br />
<el-radio :label="3">References incorrectly presented</el-radio>
<br />
<el-radio :label="4">Typographical and Grammatical errors</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="Comments for the Authors">
<el-input
type="textarea"
placeholder="please input content"
v-model="questionform.comment"
:rows="6"
></el-input>
</el-form-item>
</el-collapse>
</el-form> -->
</el-dialog> </el-dialog>
</div> </div>
</div> </div>

View File

@@ -184,6 +184,7 @@ Vue.component("Editor", Editor);
//自定义组件 //自定义组件
const components = { const components = {
'common-table': () => import('@/components/page/components/table/table.vue'), 'common-table': () => import('@/components/page/components/table/table.vue'),
'common-author-comment-editor': () => import('@/components/page/components/Tinymce/AuthorCommentEditor.vue'),
'common-review-article': () => import('@/components/page/components/reviewArticle/index.vue'), 'common-review-article': () => import('@/components/page/components/reviewArticle/index.vue'),
'common-author-article': () => import('@/components/page/components/reviewArticle/author.vue'), 'common-author-article': () => import('@/components/page/components/reviewArticle/author.vue'),
'common-editor-article': () => import('@/components/page/components/EditorArticle/index.vue'), 'common-editor-article': () => import('@/components/page/components/EditorArticle/index.vue'),