非必填的CRF问题,影像标记为非必选。如果画了标记,没有保存时,访视可以提交。提交后,值存在,标记不存在
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2026-01-22 17:36:33 +08:00
parent 86a1312b60
commit 5a0cc41d5a
2 changed files with 39 additions and 6 deletions

View File

@ -486,6 +486,11 @@ export default {
} }
} }
},
'addOrEdit.visible': {
handler() {
DicomEvent.$emit('opentableCol', { visible: this.addOrEdit.visible })
}
} }
}, },
@ -1077,7 +1082,7 @@ export default {
} }
}) })
} }
} }
// this.$emit('formItemNumberChange') // this.$emit('formItemNumberChange')
}, },
@ -1336,7 +1341,7 @@ export default {
} }
} }
const val = this.getAnnotationProp(item.MeasureData, item.ImageToolAttribute) const val = this.getAnnotationProp(item.MeasureData, item.ImageToolAttribute)
this.setFormTableItemData({key: item.TableQuestionId, val}) this.setFormTableItemData({ key: item.TableQuestionId, val })
// this.$set(this.QuestionsForm, item.TableQuestionId, val) // this.$set(this.QuestionsForm, item.TableQuestionId, val)
this.formItemTableNumberChange() this.formItemTableNumberChange()
}) })

View File

@ -26,13 +26,15 @@
<el-form-item v-if="readingTaskState < 2"> <el-form-item v-if="readingTaskState < 2">
<div style="text-align:center;"> <div style="text-align:center;">
<el-button v-if="taskInfo && taskInfo.IseCRFShowInDicomReading" type="primary" @click="skipTask"> <el-button v-if="taskInfo && taskInfo.IseCRFShowInDicomReading" :disabled="isTableVisible" type="primary"
@click="skipTask">
{{ $t('trials:readingReport:button:skip') }} {{ $t('trials:readingReport:button:skip') }}
</el-button> </el-button>
<el-button type="primary" @click="handleSave"> <el-button type="primary" :disabled="isTableVisible" @click="handleSave">
{{ $t('common:button:save') }} {{ $t('common:button:save') }}
</el-button> </el-button>
<el-button v-if="taskInfo && taskInfo.IseCRFShowInDicomReading" type="primary" @click="handleSubmit"> <el-button v-if="taskInfo && taskInfo.IseCRFShowInDicomReading" :disabled="isTableVisible" type="primary"
@click="handleSubmit">
{{ $t('common:button:submit') }} {{ $t('common:button:submit') }}
</el-button> </el-button>
</div> </div>
@ -115,7 +117,8 @@ export default {
questionsMarkStatus: {}, questionsMarkStatus: {},
digitPlaces: 2, digitPlaces: 2,
questionImageToolAttributeInfo: {}, questionImageToolAttributeInfo: {},
unSaveTargets: [] unSaveTargets: [],
isTableVisible: false
} }
}, },
mounted() { mounted() {
@ -129,6 +132,10 @@ export default {
this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces
this.getQuestionCalculateRelation() this.getQuestionCalculateRelation()
this.getQuestions(true) this.getQuestions(true)
DicomEvent.$on('opentableCol', (data) => {
let { visible } = data
this.isTableVisible = visible
})
}, },
methods: { methods: {
handleReadingChart(e) { handleReadingChart(e) {
@ -241,6 +248,13 @@ export default {
async handleSave(isMsg) { async handleSave(isMsg) {
const valid = await this.$refs['questions'].validate() const valid = await this.$refs['questions'].validate()
if (!valid) return if (!valid) return
let isSaved = this.verifyAnnotationIsSave()
if (isSaved) {
let confirm = this.$confirm(this.$t('trials:reading:confirm:AnnotationNotSave'), this.$t('system:menu:confirm:title:warning'), {
type: 'warning'
})
if (!confirm) return false
}
this.loading = true this.loading = true
try { try {
var answers = [] var answers = []
@ -271,6 +285,13 @@ export default {
async handleSubmit() { async handleSubmit() {
const valid = await this.$refs['questions'].validate() const valid = await this.$refs['questions'].validate()
if (!valid) return if (!valid) return
let isSaved = this.verifyAnnotationIsSave()
if (isSaved) {
let confirm = this.$confirm(this.$t('trials:reading:confirm:AnnotationNotSave'), this.$t('system:menu:confirm:title:warning'), {
type: 'warning'
})
if (!confirm) return false
}
await this.handleSave(false) await this.handleSave(false)
await verifyVisitTaskQuestions({ visitTaskId: this.visitTaskId }) await verifyVisitTaskQuestions({ visitTaskId: this.visitTaskId })
const { ImageAssessmentReportConfirmation } = const_.processSignature const { ImageAssessmentReportConfirmation } = const_.processSignature
@ -334,6 +355,13 @@ export default {
}, },
async skipTask() { async skipTask() {
try { try {
let isSaved = this.verifyAnnotationIsSave()
if (isSaved) {
let confirm = this.$confirm(this.$t('trials:reading:confirm:AnnotationNotSave'), this.$t('system:menu:confirm:title:warning'), {
type: 'warning'
})
if (!confirm) return false
}
// //
const confirm = await this.$confirm( const confirm = await this.$confirm(
this.$t('trials:readingReport:message:skipConfirm'), this.$t('trials:readingReport:message:skipConfirm'),