tijiao
This commit is contained in:
@@ -384,8 +384,8 @@ const en = {
|
|||||||
selectComment: 'Please select the text to add annotations to!',
|
selectComment: 'Please select the text to add annotations to!',
|
||||||
selectWord: 'Please select only a single word!',
|
selectWord: 'Please select only a single word!',
|
||||||
alreadyCommented: 'There are already annotations in the text, please select again!',
|
alreadyCommented: 'There are already annotations in the text, please select again!',
|
||||||
Multicolumn:'Multicolumn',
|
Multicolumn: 'Multicolumn',
|
||||||
singleRow:"single-row",
|
singleRow: "single-row",
|
||||||
},
|
},
|
||||||
pendingPayment: {
|
pendingPayment: {
|
||||||
title: 'Title',
|
title: 'Title',
|
||||||
@@ -468,7 +468,39 @@ const en = {
|
|||||||
11: 'WeChat article publishing in progress...',
|
11: 'WeChat article publishing in progress...',
|
||||||
fail: 'WeChat article publishing failed',
|
fail: 'WeChat article publishing failed',
|
||||||
unknown: 'Unknown status'
|
unknown: 'Unknown status'
|
||||||
}
|
},
|
||||||
|
aiReview: {
|
||||||
|
Explain: 'Explain',
|
||||||
|
state0: 'Journal Scope Assessment',
|
||||||
|
state1: 'Journal Scope Explanation',
|
||||||
|
state2: 'Scientific and Innovative Assessment',
|
||||||
|
state3: 'Scientific and Innovative Explanation',
|
||||||
|
state4: 'Contradiction Assessment',
|
||||||
|
state5: 'Contradiction Explanation',
|
||||||
|
state6: 'Unreasonable Assessment',
|
||||||
|
state7: 'Unreasonable Explanation',
|
||||||
|
state8: 'Ethics Assessment',
|
||||||
|
state9: 'Ethics Explanation',
|
||||||
|
state10: 'Academic Misconduct Assessment',
|
||||||
|
state11: 'Academic Misconduct Explanation',
|
||||||
|
state12: 'Conclusion Assessment',
|
||||||
|
state13: 'Conclusion Explanation',
|
||||||
|
state14: 'Fund Number',
|
||||||
|
state15: 'Article Hotspot',
|
||||||
|
state16: 'Review Direction',
|
||||||
|
state17: 'AI Publishing Suggestion',
|
||||||
|
state18: 'Review Time',
|
||||||
|
state19: 'Reference Evaluation',
|
||||||
|
state20: 'Clinical registration number and informed consent assessment',
|
||||||
|
state191: 'Proportion of references from the past three years',
|
||||||
|
|
||||||
|
state192: 'Proportion of references from the past five years',
|
||||||
|
|
||||||
|
state193: 'Proportion of references from JCR Q1',
|
||||||
|
|
||||||
|
state194: 'Proportion of references from JCR Q2',
|
||||||
|
state21: 'Probability of article being cited',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -461,6 +461,35 @@ const zh = {
|
|||||||
fail: '公微文章发布失败',
|
fail: '公微文章发布失败',
|
||||||
unknown: '状态未知'
|
unknown: '状态未知'
|
||||||
},
|
},
|
||||||
|
aiReview: {
|
||||||
|
Explain: '解释',
|
||||||
|
state0: '期刊范围评估',
|
||||||
|
state1: '期刊范围解释',
|
||||||
|
state2: '科学性及创新性评估',
|
||||||
|
state3: '科学性及创新性解释',
|
||||||
|
state4: '矛盾评估',
|
||||||
|
state5: '矛盾解释',
|
||||||
|
state6: '不合理评估',
|
||||||
|
state7: '不合理解释',
|
||||||
|
state8: '伦理号评估',
|
||||||
|
state9: '伦理号解释',
|
||||||
|
state10: '学术不端评估',
|
||||||
|
state11: '学术不端解释',
|
||||||
|
state12: '结论的评估',
|
||||||
|
state13: '结论的解释',
|
||||||
|
state14: '基金号',
|
||||||
|
state15: '文章热点',
|
||||||
|
state16: '送审方向',
|
||||||
|
state17: 'AI发表建议',
|
||||||
|
state18: '审核时间',
|
||||||
|
state19: '参考文献评估',
|
||||||
|
state20: '临床注册号和知情同意书评估',
|
||||||
|
state191: '近三年参考文献的比例',
|
||||||
|
state192: '近五年参考文献的比例',
|
||||||
|
state193: '参考文献JCR1区比例',
|
||||||
|
state194: '参考文献JCR2区比例',
|
||||||
|
state21: '文章被引用概率',
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,14 +6,45 @@
|
|||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
<div class="container_state" v-loading="loading" style="margin: 10px 0 0 0">
|
<div class="container_state" v-loading="loading" style="margin: 10px 0 0 0">
|
||||||
<div style="margin-bottom: 10px; margin-top: 0px;overflow: hidden;" v-if="AIcontent!=''">
|
<div style="margin-bottom: 10px; margin-top: 0px; overflow: hidden">
|
||||||
<img src="@/assets/img/ai.png" style="width: 30px; height: 30px; margin-right: 4px;float: left;margin-top: 10px;" />
|
<!-- <p class="beautiful-gradient"style="float: right;width: calc(100% - 40px);font-size: 13px;line-height: 16px;color: #1d45f2;" >{{ AIcontent }}</p> -->
|
||||||
|
</div>
|
||||||
<p class="beautiful-gradient"style="float: right;width: calc(100% - 40px);font-size: 13px;line-height: 16px;color: #1d45f2;" >{{ AIcontent }}</p>
|
|
||||||
</div>
|
|
||||||
<el-row :gutter="30">
|
<el-row :gutter="30">
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<div class="art_state_">
|
<div class="art_state_">
|
||||||
|
<div style="position: relative" v-if="currentArticleData.ai_review==''">
|
||||||
|
<img
|
||||||
|
src="@/assets/img/ai.png"
|
||||||
|
class="beautiful-gradient"
|
||||||
|
style="
|
||||||
|
opacity: 0.5;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
margin-right: 4px;
|
||||||
|
position: absolute;
|
||||||
|
left: -18px;
|
||||||
|
top: -18px;
|
||||||
|
cursor: pointer;
|
||||||
|
"
|
||||||
|
@click="creatAI()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div style="position: relative" v-else>
|
||||||
|
<img
|
||||||
|
src="@/assets/img/ai.png"
|
||||||
|
class="beautiful-gradient"
|
||||||
|
style="
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
margin-right: 4px;
|
||||||
|
position: absolute;
|
||||||
|
left: -18px;
|
||||||
|
top: -18px;
|
||||||
|
cursor: pointer;
|
||||||
|
"
|
||||||
|
@click="openAI()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<div class="art_state_message">
|
<div class="art_state_message">
|
||||||
<div class="art_state_message_id" style="padding-left: 15px">
|
<div class="art_state_message_id" style="padding-left: 15px">
|
||||||
<font
|
<font
|
||||||
@@ -136,7 +167,7 @@
|
|||||||
<el-collapse-item title="Research areas" name="1">
|
<el-collapse-item title="Research areas" name="1">
|
||||||
<div style="position: relative; height: 30px">
|
<div style="position: relative; height: 30px">
|
||||||
<common-major
|
<common-major
|
||||||
v-if="form.state==0"
|
v-if="form.state == 0"
|
||||||
:articleId="editform.articleId"
|
:articleId="editform.articleId"
|
||||||
@load="initMajor()"
|
@load="initMajor()"
|
||||||
style="position: absolute; top: 10px; right: 10px"
|
style="position: absolute; top: 10px; right: 10px"
|
||||||
@@ -153,7 +184,8 @@
|
|||||||
<span style="color: #006699; font-weight: bold; margin-right: 10px"
|
<span style="color: #006699; font-weight: bold; margin-right: 10px"
|
||||||
>Field {{ i + 1 }}:</span
|
>Field {{ i + 1 }}:</span
|
||||||
>{{ v.str
|
>{{ v.str
|
||||||
}}<i v-if="form.state==0"
|
}}<i
|
||||||
|
v-if="form.state == 0"
|
||||||
class="el-icon-delete-solid"
|
class="el-icon-delete-solid"
|
||||||
style="color: #f56c6c !important; margin-left: 10px"
|
style="color: #f56c6c !important; margin-left: 10px"
|
||||||
@click="handleDeleteMajor(v)"
|
@click="handleDeleteMajor(v)"
|
||||||
@@ -543,6 +575,81 @@
|
|||||||
frameborder="0"
|
frameborder="0"
|
||||||
></iframe>
|
></iframe>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
|
<el-dialog :title="$t('AI.AISummaryAnalysis')" :visible.sync="isShowAI" width="1100px" class="AIDialog">
|
||||||
|
<div class="AISummaryAnalysis">
|
||||||
|
<el-collapse class="auth_colla auth_collna_ew" style="margin-bottom: 10px; margin-top: -20px">
|
||||||
|
<el-collapse-item name="1">
|
||||||
|
<template slot="title">
|
||||||
|
Abstract
|
||||||
|
<font v-if="currentArticleData.keywords" style="margin-left: 3px">, Keywords</font>
|
||||||
|
</template>
|
||||||
|
<p>
|
||||||
|
<font>Abstract :</font><b>{{ currentArticleData.abstrart }}</b>
|
||||||
|
</p>
|
||||||
|
<p v-if="currentArticleData.keywords">
|
||||||
|
<font>Keywords :</font><b>{{ currentArticleData.keywords }}</b>
|
||||||
|
</p>
|
||||||
|
</el-collapse-item>
|
||||||
|
</el-collapse>
|
||||||
|
|
||||||
|
<div style="line-height: 20px" v-if="isShowAI">
|
||||||
|
<p class="beautiful-gradient1">
|
||||||
|
<span class="title" style="font-size: 18px; font-weight: 700">{{ $t('aiReview.state17') }}</span>
|
||||||
|
|
||||||
|
<span style="margin-top: 8px; display: block">{{ currentArticleData.ai_review['overall_evaluation'] }}</span>
|
||||||
|
</p>
|
||||||
|
<p style="overflow: hidden; margin-bottom: 8px">
|
||||||
|
<span style="float: right; color: #3830b9; margin-right: 8px"
|
||||||
|
>{{ this.$t('aiReview.state18') }} : {{ currentArticleData.ai_review['create_time'] }}</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p class="titleBox">
|
||||||
|
<span class="title" style="color: #fff; font-size: 16px">{{ $t('AI.AIAbstractInfo') }}</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- {{ currentArticleData.ai_review }} -->
|
||||||
|
|
||||||
|
<el-form label-width="240">
|
||||||
|
<el-form-item label="``" v-for="(v, i) in aiReview">
|
||||||
|
<span slot="label" class="title" :style="v.color ? `color:${v.color}` : ''">
|
||||||
|
{{ `${i + 1}. ${v.topic} : ` }}
|
||||||
|
</span>
|
||||||
|
<div style="">
|
||||||
|
<div
|
||||||
|
style="color: #333; width: calc(100% - 180px); margin-left: 180px"
|
||||||
|
v-if="v.parameter && v.parameter.length > 0"
|
||||||
|
>
|
||||||
|
<div label="``" v-for="(item, index) in v.parameter">
|
||||||
|
<span class="title" style="" :style="item.color ? `color:${item.color}` : ''">
|
||||||
|
{{ `(${index + 1}) ${item.topic} : ` }}
|
||||||
|
</span>
|
||||||
|
<div style="">
|
||||||
|
<div style="color: #333">
|
||||||
|
{{ currentArticleData.ai_review[item.value] }}
|
||||||
|
|
||||||
|
<span v-if="item.explanationValue">
|
||||||
|
{{ currentArticleData.ai_review[item.explanationValue] }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="color: #333" v-else>{{ currentArticleData.ai_review[v.value] }}</div>
|
||||||
|
|
||||||
|
<div style="color: #888; line-height: 22px" v-if="v.explanationValue">
|
||||||
|
<span>{{ $t('aiReview.Explain') }} : </span> {{ currentArticleData.ai_review[v.explanationValue] }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<!-- <el-button @click="isShowAI = false">取 消</el-button> -->
|
||||||
|
<el-button type="" @click="isShowAI = false">Close</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -554,8 +661,10 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
researchAreas:['1'],
|
isShowAI: false,
|
||||||
AIcontent:'',
|
currentArticleData: {},
|
||||||
|
researchAreas: ['1'],
|
||||||
|
AIcontent: '',
|
||||||
previewData: {},
|
previewData: {},
|
||||||
baseUrl: this.Common.baseUrl,
|
baseUrl: this.Common.baseUrl,
|
||||||
mediaUrl: this.Common.mediaUrl,
|
mediaUrl: this.Common.mediaUrl,
|
||||||
@@ -626,7 +735,7 @@ export default {
|
|||||||
{
|
{
|
||||||
state: 6,
|
state: 6,
|
||||||
title: this.$t('artstate.state6')
|
title: this.$t('artstate.state6')
|
||||||
},
|
}
|
||||||
// {
|
// {
|
||||||
// state: 5,
|
// state: 5,
|
||||||
// title: this.$t('artstate.state5')
|
// title: this.$t('artstate.state5')
|
||||||
@@ -672,19 +781,136 @@ export default {
|
|||||||
},
|
},
|
||||||
Resubmitrules: {
|
Resubmitrules: {
|
||||||
journalId: [{ required: true, message: 'Please select the name of the journal to be forwarded to' }]
|
journalId: [{ required: true, message: 'Please select the name of the journal to be forwarded to' }]
|
||||||
}
|
},
|
||||||
|
aiReview: [
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state0'),
|
||||||
|
value: 'journal_scope_assessment',
|
||||||
|
explanationValue: 'journal_scope_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state2'),
|
||||||
|
value: 'attribute_assessment',
|
||||||
|
explanationValue: 'attribute_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state4'),
|
||||||
|
value: 'contradiction_assessment',
|
||||||
|
explanationValue: 'contradiction_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state6'),
|
||||||
|
value: 'unreasonable_assessment',
|
||||||
|
explanationValue: 'unreasonable_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state8'),
|
||||||
|
value: 'ethics_assessment',
|
||||||
|
explanationValue: '',
|
||||||
|
parameter: [
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state8'),
|
||||||
|
value: 'ethics_assessment',
|
||||||
|
explanationValue: 'ethics_explanation'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state20'),
|
||||||
|
value: 'registration_assessment',
|
||||||
|
explanationValue: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state10'),
|
||||||
|
value: 'academic_assessment',
|
||||||
|
explanationValue: 'academic_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state12'),
|
||||||
|
value: 'conclusion_assessment',
|
||||||
|
explanationValue: 'conclusion_explanation'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state14'),
|
||||||
|
value: 'fund_number',
|
||||||
|
explanationValue: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state15'),
|
||||||
|
value: 'hotspot',
|
||||||
|
explanationValue: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state16'),
|
||||||
|
value: 'submit_direction',
|
||||||
|
explanationValue: ''
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// topic: this.$t('aiReview.state17'),
|
||||||
|
// value: 'overall_evaluation',
|
||||||
|
// explanationValue: ''
|
||||||
|
// },
|
||||||
|
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state19'),
|
||||||
|
value: 'create_time',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)',
|
||||||
|
parameter: [
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state191'),
|
||||||
|
value: 'references_past_three',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state192'),
|
||||||
|
value: 'references_past_five',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state193'),
|
||||||
|
value: 'references_ratio_JCR1',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state194'),
|
||||||
|
value: 'references_ratio_JCR2',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state21'),
|
||||||
|
value: 'cite_rate',
|
||||||
|
explanationValue: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
// {
|
||||||
|
// topic: this.$t('aiReview.state18'),
|
||||||
|
// value: 'create_time',
|
||||||
|
// explanationValue: ''
|
||||||
|
// }
|
||||||
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created: function () {
|
async created() {
|
||||||
this.getAi();
|
await this.initarticle();
|
||||||
this.initarticle();
|
await this.getAi();
|
||||||
|
|
||||||
this.initFileList();
|
this.initFileList();
|
||||||
this.getWordimgList();
|
this.getWordimgList();
|
||||||
this.getWordTablesList();
|
this.getWordTablesList();
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
||||||
// coverLetterUrl: function() {
|
// coverLetterUrl: function() {
|
||||||
// return this.baseUrl + this.form.coverLetter;
|
// return this.baseUrl + this.form.coverLetter;
|
||||||
// },
|
// },
|
||||||
@@ -742,16 +968,59 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getAi(){
|
|
||||||
var that = this;
|
|
||||||
await this.$api
|
|
||||||
.post('api/Aireview/get', {
|
|
||||||
article_id: this.$route.query.id
|
|
||||||
})
|
|
||||||
.then(async (res) => {
|
|
||||||
console.log('res at line 819:', res)
|
|
||||||
this.AIcontent = res.data.content?res.data.content:'';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async creatAI() {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: 'loading...',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
await this.$api
|
||||||
|
// api/Article/addArticle
|
||||||
|
.post('api/Aireview/review', {
|
||||||
|
article_id: this.editform.articleId
|
||||||
|
})
|
||||||
|
.then(async(res) => {
|
||||||
|
if (res.status==1) {
|
||||||
|
|
||||||
|
loading.close();
|
||||||
|
|
||||||
|
await this.getAi()
|
||||||
|
await this.openAI();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
loading.close();
|
||||||
|
this.$message.error('Please click to view again in 1 minute in AI analysis');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
openAI(data) {
|
||||||
|
this.isShowAI = true;
|
||||||
|
},
|
||||||
|
async getAi() {
|
||||||
|
await this.$api
|
||||||
|
// api/Article/addArticle
|
||||||
|
.post('api/Aireview/get', {
|
||||||
|
article_id: this.editform.articleId
|
||||||
|
// article_id: 6332
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.currentArticleData = {
|
||||||
|
abstrart: this.form.abstrart,
|
||||||
|
keywords: this.form.keywords,
|
||||||
|
ai_review: ''
|
||||||
|
};
|
||||||
|
if (res.data != null) {
|
||||||
|
this.currentArticleData.ai_review = res.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('this.currentArticleData at line 1312:', this.currentArticleData);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
// this.$message.error('AI analysis failed');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
async getWordimgList() {
|
async getWordimgList() {
|
||||||
@@ -1422,19 +1691,51 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.beautiful-gradient {
|
.beautiful-gradient {
|
||||||
background: linear-gradient(135deg, #f0f9fe, #dce6ff, #d7e9fd);
|
/* background: linear-gradient(135deg, #f0f9fe, #dce6ff, #d7e9fd); */
|
||||||
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.01);
|
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.01);
|
||||||
border-radius: 16px;
|
/* border-radius: 16px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
color: #333;
|
color: #333;
|
||||||
font-family: "Segoe UI", sans-serif;
|
font-family: "Segoe UI", sans-serif; */
|
||||||
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
|
border-radius: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.beautiful-gradient:hover {
|
.beautiful-gradient:hover {
|
||||||
transform: translateY(-4px);
|
transform: translateY(-4px);
|
||||||
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
|
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
|
||||||
|
}
|
||||||
|
.AISummaryAnalysis .titleBox {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: #6157fd;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.AISummaryAnalysis div .title {
|
||||||
|
display: inline-block;
|
||||||
|
width: auto;
|
||||||
|
color: #6157fd;
|
||||||
|
/* font-weight: bold; */
|
||||||
|
}
|
||||||
|
::v-deep .AISummaryAnalysis .auth_collna_ew .el-collapse-item__header {
|
||||||
|
padding-left: 30px;
|
||||||
|
}
|
||||||
|
::v-deep .AISummaryAnalysis .el-form-item--mini.el-form-item,
|
||||||
|
.el-form-item--small.el-form-item {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}.beautiful-gradient1 {
|
||||||
|
background: linear-gradient(135deg, #f0f9fe, #dce6ff, #d7e9fd);
|
||||||
|
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.01);
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px 20px 10px 20px !important;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #333;
|
||||||
|
font-family: 'Segoe UI', sans-serif;
|
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
|
border-radius: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -107,15 +107,17 @@
|
|||||||
</p>
|
</p>
|
||||||
<div class="mangu_list" style="position: relative">
|
<div class="mangu_list" style="position: relative">
|
||||||
<img
|
<img
|
||||||
|
class="beautiful-gradient"
|
||||||
v-if="item.ai_review != '' && item.ai_review"
|
v-if="item.ai_review != '' && item.ai_review"
|
||||||
src="@/assets/img/ai.png"
|
src="@/assets/img/ai.png"
|
||||||
@click="openAI(item)"
|
@click="openAI(item)"
|
||||||
style="cursor: pointer; width: 30px; height: 30px; position: absolute; right: 6px; top: 6px"
|
style="cursor: pointer; width: 30px; height: 30px; position: absolute; right: 6px; top: 6px"
|
||||||
/>
|
/>
|
||||||
<img
|
<img
|
||||||
|
class="beautiful-gradient"
|
||||||
v-else
|
v-else
|
||||||
src="@/assets/img/ai.png"
|
src="@/assets/img/ai.png"
|
||||||
@click="creatAI(item, ikgn)"
|
@click="getAi(item, ikgn)"
|
||||||
style="opacity: 0.5; cursor: pointer; width: 30px; height: 30px; position: absolute; right: 6px; top: 6px"
|
style="opacity: 0.5; cursor: pointer; width: 30px; height: 30px; position: absolute; right: 6px; top: 6px"
|
||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
@@ -408,7 +410,7 @@
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
"
|
"
|
||||||
>{{ v.author_account&&v.author_account.realname?v.author_account.realname:'' }}</span
|
>{{ v.author_account && v.author_account.realname ? v.author_account.realname : '' }}</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -1348,9 +1350,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog :title="$t('AI.AISummaryAnalysis')" :visible.sync="isShowAI" width="50%" class="AIDialog">
|
<el-dialog :title="$t('AI.AISummaryAnalysis')" :visible.sync="isShowAI" width="1100px" class="AIDialog">
|
||||||
<div class="AISummaryAnalysis">
|
<div class="AISummaryAnalysis">
|
||||||
<el-collapse class="auth_colla auth_collna_ew" style="margin-bottom: 0">
|
<el-collapse class="auth_colla auth_collna_ew" style="margin-bottom: 10px; margin-top: -20px">
|
||||||
<el-collapse-item name="1">
|
<el-collapse-item name="1">
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
Abstract
|
Abstract
|
||||||
@@ -1365,14 +1367,61 @@
|
|||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
|
|
||||||
<p style="line-height: 20px">
|
<div style="line-height: 20px" v-if="isShowAI">
|
||||||
<span>{{ $t('AI.AIAbstractInfo') }} :</span>
|
<p class="beautiful-gradient1">
|
||||||
{{ currentArticleData.ai_review }}
|
<span class="title" style="font-size: 18px; font-weight: 700">{{ $t('aiReview.state17') }}</span>
|
||||||
</p>
|
|
||||||
|
<span style="margin-top: 8px; display: block">{{ currentArticleData.ai_review['overall_evaluation'] }}</span>
|
||||||
|
</p>
|
||||||
|
<p style="overflow: hidden; margin-bottom: 8px">
|
||||||
|
<span style="float: right; color: #3830b9; margin-right: 8px"
|
||||||
|
>{{ this.$t('aiReview.state18') }} : {{ currentArticleData.ai_review['create_time'] }}</span
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p class="titleBox">
|
||||||
|
<span class="title" style="color: #fff; font-size: 16px">{{ $t('AI.AIAbstractInfo') }}</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- {{ currentArticleData.ai_review }} -->
|
||||||
|
|
||||||
|
<el-form label-width="240">
|
||||||
|
<el-form-item label="``" v-for="(v, i) in aiReview">
|
||||||
|
<span slot="label" class="title" :style="v.color ? `color:${v.color}` : ''">
|
||||||
|
{{ `${i + 1}. ${v.topic} : ` }}
|
||||||
|
</span>
|
||||||
|
<div style="">
|
||||||
|
<div
|
||||||
|
style="color: #333; width: calc(100% - 180px); margin-left: 180px"
|
||||||
|
v-if="v.parameter && v.parameter.length > 0"
|
||||||
|
>
|
||||||
|
<div label="``" v-for="(item, index) in v.parameter">
|
||||||
|
<span class="title" style="" :style="item.color ? `color:${item.color}` : ''">
|
||||||
|
{{ `(${index + 1}) ${item.topic} : ` }}
|
||||||
|
</span>
|
||||||
|
<div style="">
|
||||||
|
<div style="color: #333">
|
||||||
|
{{ currentArticleData.ai_review[item.value] }}
|
||||||
|
|
||||||
|
<span v-if="item.explanationValue">
|
||||||
|
{{ currentArticleData.ai_review[item.explanationValue] }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="color: #333" v-else>{{ currentArticleData.ai_review[v.value] }}</div>
|
||||||
|
|
||||||
|
<div style="color: #888; line-height: 22px" v-if="v.explanationValue">
|
||||||
|
<span>{{ $t('aiReview.Explain') }} : </span> {{ currentArticleData.ai_review[v.explanationValue] }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<!-- <el-button @click="isShowAI = false">取 消</el-button> -->
|
<!-- <el-button @click="isShowAI = false">取 消</el-button> -->
|
||||||
<el-button type="primary" @click="isShowAI = false">Close</el-button>
|
<el-button type="" @click="isShowAI = false">Close</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
@@ -1568,6 +1617,135 @@ export default {
|
|||||||
title: this.$t('artstate.state6')
|
title: this.$t('artstate.state6')
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
aiReview: [
|
||||||
|
//1
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state0'),
|
||||||
|
value: 'journal_scope_assessment',
|
||||||
|
explanationValue: 'journal_scope_explanation'
|
||||||
|
},
|
||||||
|
//3
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state4'),
|
||||||
|
value: 'contradiction_assessment',
|
||||||
|
explanationValue: 'contradiction_explanation'
|
||||||
|
},
|
||||||
|
//4
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state6'),
|
||||||
|
value: 'unreasonable_assessment',
|
||||||
|
explanationValue: 'unreasonable_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
//6
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state10'),
|
||||||
|
value: 'academic_assessment',
|
||||||
|
explanationValue: 'academic_explanation'
|
||||||
|
},
|
||||||
|
|
||||||
|
//8
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state14'),
|
||||||
|
value: 'fund_number',
|
||||||
|
explanationValue: ''
|
||||||
|
},
|
||||||
|
//9
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state15'),
|
||||||
|
value: 'hotspot',
|
||||||
|
explanationValue: ''
|
||||||
|
},
|
||||||
|
//10
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state16'),
|
||||||
|
value: 'submit_direction',
|
||||||
|
explanationValue: ''
|
||||||
|
},
|
||||||
|
//11
|
||||||
|
// {
|
||||||
|
// topic: this.$t('aiReview.state17'),
|
||||||
|
// value: 'overall_evaluation',
|
||||||
|
// explanationValue: ''
|
||||||
|
// },
|
||||||
|
|
||||||
|
//2
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state2'),
|
||||||
|
value: 'attribute_assessment',
|
||||||
|
explanationValue: 'attribute_explanation'
|
||||||
|
},
|
||||||
|
//5
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state8'),
|
||||||
|
value: 'ethics_assessment',
|
||||||
|
explanationValue: '',
|
||||||
|
parameter: [
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state8'),
|
||||||
|
value: 'ethics_assessment',
|
||||||
|
explanationValue: 'ethics_explanation'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state20'),
|
||||||
|
value: 'registration_assessment',
|
||||||
|
explanationValue: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
//7
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state12'),
|
||||||
|
value: 'conclusion_assessment',
|
||||||
|
explanationValue: 'conclusion_explanation'
|
||||||
|
},
|
||||||
|
//12
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state19'),
|
||||||
|
value: 'create_time',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)',
|
||||||
|
parameter: [
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state191'),
|
||||||
|
value: 'references_past_three',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state192'),
|
||||||
|
value: 'references_past_five',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state193'),
|
||||||
|
value: 'references_ratio_JCR1',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state194'),
|
||||||
|
value: 'references_ratio_JCR2',
|
||||||
|
explanationValue: '',
|
||||||
|
color: 'rgb(0, 112, 192)'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
//13
|
||||||
|
{
|
||||||
|
topic: this.$t('aiReview.state21'),
|
||||||
|
value: 'cite_rate',
|
||||||
|
explanationValue: ''
|
||||||
|
}
|
||||||
|
|
||||||
|
// {
|
||||||
|
// topic: this.$t('aiReview.state18'),
|
||||||
|
// value: 'create_time',
|
||||||
|
// explanationValue: ''
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
|
||||||
bankVisible: false,
|
bankVisible: false,
|
||||||
majorData: {},
|
majorData: {},
|
||||||
googleSearchInfo: ''
|
googleSearchInfo: ''
|
||||||
@@ -1652,32 +1830,70 @@ export default {
|
|||||||
},
|
},
|
||||||
openAI(data) {
|
openAI(data) {
|
||||||
this.isShowAI = true;
|
this.isShowAI = true;
|
||||||
this.currentArticleData = { ...data };
|
this.$api
|
||||||
console.log('this.currentArticleData at line 1312:', this.currentArticleData);
|
// api/Article/addArticle
|
||||||
|
.post('api/Aireview/get', {
|
||||||
|
article_id: data.article_id
|
||||||
|
// article_id: 6332
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.currentArticleData = { ...data, ai_review: res.data };
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
loading.close();
|
||||||
|
this.$message.error('AI analysis failed');
|
||||||
|
});
|
||||||
},
|
},
|
||||||
creatAI(data, i) {
|
async getAi(data, i) {
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
lock: true,
|
lock: true,
|
||||||
text: 'Loading...',
|
text: 'loading...',
|
||||||
spinner: 'el-icon-loading',
|
spinner: 'el-icon-loading',
|
||||||
background: 'rgba(0, 0, 0, 0.7)'
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
});
|
});
|
||||||
console.log('data at line 1336:', data);
|
await this.$api
|
||||||
|
|
||||||
|
.post('api/Aireview/get', {
|
||||||
|
article_id: data.article_id
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
this.currentArticleData = {
|
||||||
|
...data,
|
||||||
|
ai_review: ''
|
||||||
|
};
|
||||||
|
if (res.data != null) {
|
||||||
|
this.tableData[i].ai_review = { ...res.data };
|
||||||
|
this.currentArticleData.ai_review = res.data;
|
||||||
|
loading.close();
|
||||||
|
this.isShowAI = true;
|
||||||
|
} else {
|
||||||
|
this.creatAI(data, i, loading);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('this.currentArticleData at line 1312:', this.currentArticleData);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
loading.close();
|
||||||
|
// this.$message.error('AI analysis failed');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
creatAI(data, i, loading) {
|
||||||
|
loading.text = 'In AI analysis, please be patient and wait...';
|
||||||
this.$api
|
this.$api
|
||||||
// api/Article/addArticle
|
// api/Article/addArticle
|
||||||
.post('api/Aireview/review', {
|
.post('api/Aireview/review', {
|
||||||
article_id: data.article_id
|
article_id: data.article_id
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.data.content) {
|
if (res.status == 1) {
|
||||||
this.tableData[i].ai_review = res.data.content;
|
this.tableData[i].ai_review = { ...res.data };
|
||||||
loading.close();
|
loading.close();
|
||||||
this.openAI({ ...data, ai_review: res.data.content });
|
this.openAI({ ...data, ai_review: { ...res.data } });
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
loading.close();
|
loading.close();
|
||||||
this.$message.error('AI analysis failed');
|
this.$message.error('Please click to view again in 1 minute in AI analysis');
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 保存个人信息
|
// 保存个人信息
|
||||||
@@ -3069,11 +3285,20 @@ export default {
|
|||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
.AISummaryAnalysis p span {
|
.AISummaryAnalysis .titleBox {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: #6157fd;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.AISummaryAnalysis div .title {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: auto;
|
width: auto;
|
||||||
color: #6157fd;
|
color: #6157fd;
|
||||||
font-weight: bold;
|
/* font-weight: bold; */
|
||||||
}
|
}
|
||||||
::v-deep .AIDialog .el-dialog__body {
|
::v-deep .AIDialog .el-dialog__body {
|
||||||
padding: 20px !important;
|
padding: 20px !important;
|
||||||
@@ -3095,6 +3320,15 @@ export default {
|
|||||||
transition: transform 0.3s ease, box-shadow 0.3s ease !important; */
|
transition: transform 0.3s ease, box-shadow 0.3s ease !important; */
|
||||||
}
|
}
|
||||||
.beautiful-gradient {
|
.beautiful-gradient {
|
||||||
|
/* background: linear-gradient(135deg, #f0f9fe, #dce6ff, #d7e9fd); */
|
||||||
|
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.01);
|
||||||
|
border-radius: 30px;
|
||||||
|
/* border-radius: 16px;
|
||||||
|
padding: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #333;
|
||||||
|
font-family: "Segoe UI", sans-serif; */
|
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.beautiful-gradient:hover {
|
.beautiful-gradient:hover {
|
||||||
@@ -3135,4 +3369,19 @@ export default {
|
|||||||
.mangu_list div.fi_new div > div:nth-child(1) {
|
.mangu_list div.fi_new div > div:nth-child(1) {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
::v-deep .AISummaryAnalysis .el-form-item--mini.el-form-item,
|
||||||
|
.el-form-item--small.el-form-item {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.beautiful-gradient1 {
|
||||||
|
background: linear-gradient(135deg, #f0f9fe, #dce6ff, #d7e9fd);
|
||||||
|
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.01);
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px 20px 10px 20px !important;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #333;
|
||||||
|
font-family: 'Segoe UI', sans-serif;
|
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
|
border-radius: 30px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user