|
|
@@ -30,7 +30,10 @@
|
|
|
<el-button link type="text" size="mini" @click="handleReview(scope.row, 'public')">团队报告</el-button>
|
|
|
<el-button link type="text" size="mini" @click="handleDownload(scope.row)">下载报告</el-button>
|
|
|
</template>
|
|
|
- <span v-else-if="String(scope.row.state) === '-1'" class="failed">生成失败</span>
|
|
|
+ <template v-else-if="String(scope.row.state) === '-1'">
|
|
|
+ <span class="failed">生成失败</span>
|
|
|
+ <el-button v-if="String(scope.row.reportType) === '1'" link type="text" size="mini" @click="retryReport(scope.row)">重新生成</el-button>
|
|
|
+ </template>
|
|
|
<span v-else class="pending">生成中</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
@@ -54,7 +57,7 @@
|
|
|
|
|
|
<script setup name="QuestionnaireReports">
|
|
|
import { ref, getCurrentInstance, onMounted } from 'vue'
|
|
|
- import { getQuestionnaireReportList, getReportEvaluation, updateReportEvaluation } from '@/api/agent/index.js'
|
|
|
+ import { getQuestionnaireReportList, getReportEvaluation, updateReportEvaluation, reCreateReport } from '@/api/agent/index.js'
|
|
|
import { reportArtifactUrl } from '@/utils/reportArtifactLinks.js'
|
|
|
|
|
|
const { proxy } = getCurrentInstance()
|
|
|
@@ -70,6 +73,7 @@
|
|
|
const evaluationReportId = ref(null)
|
|
|
const evaluationForm = ref({ overallAssessment: '', developmentAdvice: '' })
|
|
|
const evaluationProcessingMessage = '评估分析正在进行中,你需要等待1小时左右,我们会在报告生成完成后提示你,你可以去“我的PERILL报告”查阅报告结果。'
|
|
|
+ const retryingReportId = ref(null)
|
|
|
|
|
|
const isGenerated = row => [1, 2].includes(Number(row.state))
|
|
|
const canEditEvaluation = row => String(row.reportType) === '1'
|
|
|
@@ -84,6 +88,18 @@
|
|
|
if (!row.fileUrl) return proxy.$message.error('该报告尚未生成,请生成后再下载!')
|
|
|
window.open(row.fileUrl, '_blank', 'noopener,noreferrer')
|
|
|
}
|
|
|
+ const retryReport = async row => {
|
|
|
+ if (retryingReportId.value) return
|
|
|
+ retryingReportId.value = row.reportId
|
|
|
+ try {
|
|
|
+ const res = await reCreateReport(row.reportId)
|
|
|
+ if (res.code !== 0) return proxy.$message.error(res.msg)
|
|
|
+ await getList()
|
|
|
+ proxy.$message.success('报告已重新生成,请稍候查看')
|
|
|
+ } finally {
|
|
|
+ retryingReportId.value = null
|
|
|
+ }
|
|
|
+ }
|
|
|
const openEvaluation = async row => {
|
|
|
if (!canEditEvaluation(row)) return
|
|
|
evaluationReportId.value = row.reportId
|