质控复核
continuous-integration/drone/push Build encountered an error Details

uat
wangxiaoshuang 2025-07-15 17:51:42 +08:00
parent 07fbbf5a74
commit a357fe7ce6
3 changed files with 42 additions and 22 deletions

View File

@ -396,7 +396,7 @@
<h3 v-else>{{ $t('trials:audit:message:noData') }}</h3>
</el-card>
<!-- 复核问题 -->
<el-card shadow="hover" style="margin-top: 10px" v-if="!isAudit">
<el-card shadow="hover" style="margin-top: 10px" v-if="!isAudit && SecondReviewState > 0">
<!-- 复核问题 -->
<h3>{{ $t('trials:audit:title:resetQuestions') }}</h3>
<div style="overflow-y: auto">
@ -407,13 +407,13 @@
</el-card>
<!-- 复核问题查看 -->
<el-card shadow="hover" style="margin-top: 10px" v-else>
<el-tabs v-model="secondReviewActiveName" type="card" v-if="secondReviewTimeList.length > 0">
<el-tab-pane v-for="item in secondReviewTimeList" :key="item.SecondReviewTime"
:label="`${item.SecondReviewTime} ${item.UserName}(${item.FullName })`" :name="item.SecondReviewTime">
<el-tabs v-model="secondReviewActiveName" type="card" v-if="secondReviewList.length > 0">
<el-tab-pane v-for="item in secondReviewList" :key="item.SecondReviewTime"
:label="`${item.SecondReviewTime} ${item.UserName}(${item.FullName})`" :name="item.SecondReviewTime">
<h3>{{ $t('trials:audit:title:resetQuestions') }}</h3>
<div style="overflow-y: auto">
<QuestionForm :trial-id="trialId" :subject-visit-id="data.Id" :qc-process-enum="data.QCProcessEnum"
:current-q-c-enum="currentQCType" :is-audit="isAudit" :SecondReviewTime="item.SecondReviewTim" />
:current-q-c-enum="currentQCType" :is-audit="isAudit" :SecondReviewTime="item.SecondReviewTime" />
</div>
</el-tab-pane>
</el-tabs>
@ -800,7 +800,7 @@
<div class="function-wrapper">
<!-- 复核通过 -->
<el-button :disabled="isAudit || SecondReviewState <= 0" size="small" type="primary" round
@click="handleResetSave">
v-if="SecondReviewState > 0" @click="handleResetSave">
{{ $t('trials:audit:button:reviewTask') }}
</el-button>
<!-- 保存 -->
@ -1052,7 +1052,6 @@ export default {
)
}
if (type === 'noneDicom') {
console.log(this.selectTableNonedicom)
data.NoneDicomStudyIdList = this.selectTableNonedicom.map(
(item) => item.Id
)
@ -1169,7 +1168,7 @@ export default {
this.loading = true
getVisitQCInfo(this.data.Id, this.data.QCProcessEnum, this.currentQCType)
.then((res) => {
this.secondReviewList = res.Result.SecondReviewTimeList
this.secondReviewList = res.Result.SecondReviewList
if (this.secondReviewList.length > 0) {
this.secondReviewActiveName = this.secondReviewList[0].SecondReviewTime
if (!this.isAudit) {
@ -1209,7 +1208,8 @@ export default {
res.Result.RelationInfo.IsHaveFirstGiveMedicineDate
this.loading = false
})
.catch(() => {
.catch((err) => {
console.log(err)
this.loading = false
})
},
@ -1220,7 +1220,7 @@ export default {
this.trialId,
this.data.Id,
this.data.QCProcessEnum,
this.currentQCType
this.SecondReviewState > 0 ? 3 : this.currentQCType
)
.then((res) => {
this.loading = false
@ -1248,12 +1248,20 @@ export default {
}
var answerList = []
res.forEach((item) => {
var index = this.qCQuestionAnswerList.findIndex(
(v) => v.TrialQCQuestionConfigureId === item.Id
)
if (index > -1) {
if (this.SecondReviewState <= 0) {
var index = this.qCQuestionAnswerList.findIndex(
(v) => v.TrialQCQuestionConfigureId === item.Id
)
if (index > -1) {
answerList.push({
id: this.qCQuestionAnswerList[index].Id,
answer: item.answer,
trialQCQuestionConfigureId: item.Id,
})
}
} else {
answerList.push({
id: this.qCQuestionAnswerList[index].Id,
id: item.AnswerId,
answer: item.answer,
trialQCQuestionConfigureId: item.Id,
})
@ -1275,7 +1283,12 @@ export default {
this.$t('common:message:savedSuccessfully')
)
}
this.getCheckList()
if (this.SecondReviewState <= 0) {
this.getCheckList()
} else {
this.$refs[refKey].getQuestions()
}
resolve(true)
}
})
@ -1848,7 +1861,7 @@ export default {
data: {
TrialId: this.trialId,
SubjectVisitId: this.data.Id,
AuditState: this.auditState,
AuditState: this.signCode === 219 ? 1 : this.auditState,
IsSecondPass: this.signCode === 219 ? this.IsSecondPass : null
},
signInfo: signInfo,
@ -1862,6 +1875,10 @@ export default {
this.$message.success(this.$t('common:message:savedSuccessfully'))
// this.getQCInfo()
this.isAudit = true
if (this.signCode === 219) {
this.$emit('getList')
return this.getQCInfo()
}
this.$forceUpdate()
getNextIQCQuality({
trialId: this.trialId,

View File

@ -48,6 +48,7 @@ export default {
loading: false,
questions: [],
questionForm: {},
AnswerIdObj: {},
isRender: false
}
},
@ -68,7 +69,7 @@ export default {
trialId: this.trialId || this.$route.query.trialId,
subjectVisitId: this.subjectVisitId,
qcProcessEnum: this.qcProcessEnum,
currentQCEnum: this.currentQCEnum
currentQCEnum: this.SecondReviewTime ? 3 : this.currentQCEnum
}
if (this.SecondReviewTime) {
param.SecondReviewTime = this.SecondReviewTime
@ -76,6 +77,7 @@ export default {
getQCQuestionAnswer(param).then(res => {
res.Result.map((v) => {
this.$set(this.questionForm, v.Id, v.Answer)
this.$set(this.AnswerIdObj, v.Id, v.AnswerId)
if (v.Childrens.length > 0) {
this.setChild(v.Childrens)
}
@ -84,11 +86,12 @@ export default {
this.isRender = true
this.loading = false
}).catch(() => { this.loading = false })
}).catch((err) => { console.log(err); this.loading = false })
},
setChild(obj) {
obj.forEach(i => {
this.$set(this.questionForm, i.Id, i.Answer)
this.$set(this.AnswerIdObj, i.Id, i.AnswerId)
if (i.Childrens && i.Childrens.length > 0) {
this.setChild(i.Childrens)
}
@ -114,7 +117,7 @@ export default {
} else {
var answers = []
for (const k in this.questionForm) {
answers.push({ Id: k, answer: this.questionForm[k] })
answers.push({ Id: k, answer: this.questionForm[k], AnswerId: this.AnswerIdObj[k] })
}
resolve(answers)
// Answer
@ -132,7 +135,7 @@ export default {
return new Promise((resolve, reject) => {
var answers = []
for (const k in this.questionForm) {
answers.push({ Id: k, answer: this.questionForm[k] })
answers.push({ Id: k, answer: this.questionForm[k], AnswerId: this.AnswerIdObj[k] })
}
resolve(answers)
})

View File

@ -341,7 +341,7 @@
<template slot-scope="scope">
<div v-if="scope.row.AuditState * 1 >= 3">
<!--复核 -->
<el-button v-if="scope.row.SecondReviewState > 0"
<el-button v-if="scope.row.SecondReviewState === 1"
v-hasPermi="['trials:trials-panel:visit:qc-check:reviewTask']"
:title="$t('trials:qcCheck:button:reviewTask')" circle icon="el-icon-edit-outline" :disabled="scope.row.IsImageBackApplying
" @click="reviewTask(scope.row)" />