当CRF表绑定标记以后,在阅片页面,当书包移动到CRF问题的答案上时,可以付款显示绑定的标记名称
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-06-30 18:02:28 +08:00
parent 3f6604eebf
commit 347fb3cde0
3 changed files with 130 additions and 135 deletions

View File

@ -73,8 +73,7 @@
<template v-else> <template v-else>
<el-form-item <el-form-item
v-if="(question.ShowQuestion === 1 && question.ParentTriggerValueList.includes(questionForm[question.ParentId])) || question.ShowQuestion === 0" v-if="(question.ShowQuestion === 1 && question.ParentTriggerValueList.includes(questionForm[question.ParentId])) || question.ShowQuestion === 0"
:title="question.Remark" :title="question.Remark" :label="`${question.QuestionName}`" :prop="question.Id" :rules="[
:label="`${question.QuestionName}`" :prop="question.Id" :rules="[
{ {
required: (question.IsRequired === 0 || (question.IsRequired === 1 && question.RelevanceId && (question.RelevanceValueList.includes(isNaN(parseFloat(questionForm[question.RelevanceId])) ? questionForm[question.RelevanceId] : questionForm[question.RelevanceId].toString())))) && question.Type !== 'group' && question.Type !== 'summary', required: (question.IsRequired === 0 || (question.IsRequired === 1 && question.RelevanceId && (question.RelevanceValueList.includes(isNaN(parseFloat(questionForm[question.RelevanceId])) ? questionForm[question.RelevanceId] : questionForm[question.RelevanceId].toString())))) && question.Type !== 'group' && question.Type !== 'summary',
message: $t('common:ruleMessage:specify'), trigger: ['blur', 'change'] message: $t('common:ruleMessage:specify'), trigger: ['blur', 'change']
@ -162,6 +161,7 @@
<el-input type="number" @change="(val) => { formItemNumberChange(val, question) }" <el-input type="number" @change="(val) => { formItemNumberChange(val, question) }"
@blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)" @blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:title="questionsMarkStatus[question.Id] ? questionsMarkStatus[question.Id].OrderMarkName : ''"
:disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1" :disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1"
style="width: 150px;"> style="width: 150px;">
<template v-if="question.Unit !== 0" slot="append"> <template v-if="question.Unit !== 0" slot="append">
@ -215,8 +215,9 @@
@blur="handleBlur(questionForm[question.Id], questionForm, question.Id)" v-model="questionForm[question.Id]" @blur="handleBlur(questionForm[question.Id], questionForm, question.Id)" v-model="questionForm[question.Id]"
:disabled="readingTaskState === 2"> :disabled="readingTaskState === 2">
<!-- <template slot="append">1</template> --> <!-- <template slot="append">1</template> -->
<template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : <template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit)
question.CustomUnit}}</template> :
question.CustomUnit }}</template>
<template slot="append" v-else-if="question.ValueType === 2">%</template> <template slot="append" v-else-if="question.ValueType === 2">%</template>
</el-input> </el-input>
@ -225,14 +226,16 @@
@blur="handleBlur(questionForm[question.Id], questionForm, question.Id)" @blur="handleBlur(questionForm[question.Id], questionForm, question.Id)"
:disabled="question.DataSource === 1 || readingTaskState === 2" v-model="questionForm[question.Id]"> :disabled="question.DataSource === 1 || readingTaskState === 2" v-model="questionForm[question.Id]">
<!-- <template slot="append">2</template> --> <!-- <template slot="append">2</template> -->
<template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit) : <template slot="append" v-if="question.Unit !== 0">{{ question.Unit !== 4 ? $fd('ValueUnit', question.Unit)
question.CustomUnit}}</template> :
question.CustomUnit }}</template>
<template slot="append" v-else-if="question.ValueType === 2">%</template> <template slot="append" v-else-if="question.ValueType === 2">%</template>
</el-input> </el-input>
</template> </template>
<!-- 上传图像 --> <!-- 上传图像 -->
<el-upload v-if="question.Type === 'upload'" :disabled="readingTaskState === 2" action :accept="question.FileType" <el-upload v-if="question.Type === 'upload'" :disabled="readingTaskState === 2" action
:limit="question.ImageCount === 0 ? 100 : question.ImageCount" :on-preview="handlePictureCardPreview" :accept="question.FileType" :limit="question.ImageCount === 0 ? 100 : question.ImageCount"
:on-preview="handlePictureCardPreview"
:before-upload="(file) => { return handleBeforeUpload(file, question.FileType) }" :before-upload="(file) => { return handleBeforeUpload(file, question.FileType) }"
:http-request="uploadScreenshot" :on-remove="handleRemove" :file-list="fileList" :http-request="uploadScreenshot" :on-remove="handleRemove" :file-list="fileList"
:class="{ disabled: question.ImageCount === 0 ? false : fileList.length >= question.ImageCount }"> :class="{ disabled: question.ImageCount === 0 ? false : fileList.length >= question.ImageCount }">

View File

@ -7,40 +7,21 @@
<span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span> <span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span>
</h3> </h3>
<div v-if="readingTaskState < 2"> <div v-if="readingTaskState < 2">
<el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')" placement="bottom"> <el-tooltip class="item" effect="dark" :content="$t('trials:dicomReading:message:confirmReset')"
<i placement="bottom">
class="el-icon-refresh-left" <i class="el-icon-refresh-left" @click="resetForm" />
@click="resetForm"
/>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<el-form <el-form v-if="taskInfo && rerender" ref="questions" size="small" :model="questionForm" class="ecrf-form">
v-if="taskInfo && rerender"
ref="questions"
size="small"
:model="questionForm"
class="ecrf-form"
>
<template v-if="rerender"> <template v-if="rerender">
<QuestionFormItem <QuestionFormItem v-for="question of questions" :key="question.Id" :visit-task-id="visitTaskId"
v-for="question of questions" :question="question" :question-form="questionForm" :reading-task-state="readingTaskState"
:key="question.Id" :criterion-id="criterionId" :calculation-list="calculationList"
:visit-task-id="visitTaskId" :question-mark-info-list="questionMarkInfoList" :questions-mark-status="questionsMarkStatus"
:question="question" :is-baseline="isBaseLineTask" @resetFormItemData="resetFormItemData" @setFormItemData="setFormItemData"
:question-form="questionForm" @getQuestions="getQuestions" @operateImageMarker="operateImageMarker"
:reading-task-state="readingTaskState" @unBindAnnotationToQuestion="unBindAnnotationToQuestion" />
:criterion-id="criterionId"
:calculation-list="calculationList"
:question-mark-info-list="questionMarkInfoList"
:questions-mark-status="questionsMarkStatus"
:is-baseline="isBaseLineTask"
@resetFormItemData="resetFormItemData"
@setFormItemData="setFormItemData"
@getQuestions="getQuestions"
@operateImageMarker="operateImageMarker"
@unBindAnnotationToQuestion="unBindAnnotationToQuestion"
/>
</template> </template>
<el-form-item v-if="readingTaskState < 2"> <el-form-item v-if="readingTaskState < 2">
@ -60,16 +41,11 @@
</div> </div>
<!-- 签名框 --> <!-- 签名框 -->
<el-dialog <el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px"
v-if="signVisible" custom-class="base-dialog-wrapper">
:visible.sync="signVisible"
:close-on-click-modal="false"
width="600px"
custom-class="base-dialog-wrapper"
>
<div slot="title"> <div slot="title">
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span> <span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${ currentUser })` }}</span> <span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${currentUser})` }}</span>
</div> </div>
<SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" /> <SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
</el-dialog> </el-dialog>
@ -178,9 +154,9 @@ export default {
this.questionsMarkStatus = {} this.questionsMarkStatus = {}
this.questionMarkInfoList = res.OtherInfo.QuestionMarkInfoList.map(i => { this.questionMarkInfoList = res.OtherInfo.QuestionMarkInfoList.map(i => {
if (i.RowId) { if (i.RowId) {
this.$set(this.questionsMarkStatus, `${i.RowId}_${i.TableQuestionId}`, {isMarked: i.MeasureData !== '', isSaved: true}) this.$set(this.questionsMarkStatus, `${i.RowId}_${i.TableQuestionId}`, { isMarked: i.MeasureData !== '', isSaved: true, OrderMarkName: i.OrderMarkName })
} else if (i.QuestionId) { } else if (i.QuestionId) {
this.$set(this.questionsMarkStatus, i.QuestionId, {isMarked: i.MeasureData !== '', isSaved: true}) this.$set(this.questionsMarkStatus, i.QuestionId, { isMarked: i.MeasureData !== '', isSaved: true, OrderMarkName: i.OrderMarkName })
} }
if (typeof i.MeasureData === 'string' && i.MeasureData) { if (typeof i.MeasureData === 'string' && i.MeasureData) {
i.MeasureData = JSON.parse(i.MeasureData) i.MeasureData = JSON.parse(i.MeasureData)
@ -206,7 +182,7 @@ export default {
i.TableQuestions.Questions.forEach(o => { i.TableQuestions.Questions.forEach(o => {
if (o.Type === 'number') { if (o.Type === 'number') {
i.TableQuestions.Answers.forEach((ite, index) => { i.TableQuestions.Answers.forEach((ite, index) => {
this.$set(i.TableQuestions.Answers[index], o.Id, isNaN(parseFloat(i.TableQuestions.Answers[index][o.Id])) ? i.TableQuestions.Answers[index][o.Id] : parseFloat(i.TableQuestions.Answers[index][o.Id]).toFixed(this.digitPlaces)) this.$set(i.TableQuestions.Answers[index], o.Id, isNaN(parseFloat(i.TableQuestions.Answers[index][o.Id])) ? i.TableQuestions.Answers[index][o.Id] : parseFloat(i.TableQuestions.Answers[index][o.Id]).toFixed(this.digitPlaces))
}) })
} }
}) })
@ -241,7 +217,7 @@ export default {
try { try {
var answers = [] var answers = []
for (const k in this.questionForm) { for (const k in this.questionForm) {
if (this.questionForm[k] instanceof Array) {} else { if (this.questionForm[k] instanceof Array) { } else {
answers.push({ id: k, answer: this.questionForm[k] }) answers.push({ id: k, answer: this.questionForm[k] })
} }
} }
@ -280,7 +256,7 @@ export default {
this.loading = true this.loading = true
var answers = [] var answers = []
for (const k in this.questionForm) { for (const k in this.questionForm) {
if (this.questionForm[k] instanceof Array) {} else { if (this.questionForm[k] instanceof Array) { } else {
answers.push({ readingQuestionTrialId: k, answer: this.questionForm[k] }) answers.push({ readingQuestionTrialId: k, answer: this.questionForm[k] })
} }
} }
@ -353,7 +329,7 @@ export default {
const o = list.find(v => { const o = list.find(v => {
return ( return (
parseFloat(obj.val) >= parseFloat(v.gt) && parseFloat(obj.val) >= parseFloat(v.gt) &&
parseFloat(obj.val) < parseFloat(v.lt) parseFloat(obj.val) < parseFloat(v.lt)
) )
}) })
answer = o ? o.label : null answer = o ? o.label : null
@ -543,13 +519,13 @@ export default {
const { Id, IsTableQuestion, ImageTool, ImageToolAttribute, ParentQsId, RowId } = question const { Id, IsTableQuestion, ImageTool, ImageToolAttribute, ParentQsId, RowId } = question
Object.assign(this, { Object.assign(this, {
operateStateEnum, operateStateEnum,
isTableQuestion: !!IsTableQuestion, isTableQuestion: !!IsTableQuestion,
imageTool: ImageTool, imageTool: ImageTool,
imageToolAttribute: ImageToolAttribute, imageToolAttribute: ImageToolAttribute,
operateQuestionId: Id, operateQuestionId: Id,
operateRowId: RowId, operateRowId: RowId,
operateParentQsId: ParentQsId operateParentQsId: ParentQsId
}) })
const stateHandlers = { const stateHandlers = {
[STATE.BIND]: () => this.$emit('setReadingToolPassive'), [STATE.BIND]: () => this.$emit('setReadingToolPassive'),
@ -570,8 +546,8 @@ export default {
if (index === -1) return if (index === -1) return
const annotation = this.questionMarkInfoList[index].MeasureData const annotation = this.questionMarkInfoList[index].MeasureData
this.$emit('viewCustomAnnotationSeries', { this.$emit('viewCustomAnnotationSeries', {
visitTaskId: this.visitTaskId, visitTaskId: this.visitTaskId,
annotation annotation
}) })
}, },
handleRemoveAnnotation(obj) { handleRemoveAnnotation(obj) {
@ -588,7 +564,7 @@ export default {
: obj.question.Id : obj.question.Id
this.$set(this.questionsMarkStatus, key, { this.$set(this.questionsMarkStatus, key, {
isMarked: false, isMarked: false,
isSaved: false isSaved: false,
}) })
}, },
async handleSaveOuterQuestions(obj) { async handleSaveOuterQuestions(obj) {
@ -614,7 +590,8 @@ export default {
}) })
this.$set(this.questionsMarkStatus, obj.question.Id, { this.$set(this.questionsMarkStatus, obj.question.Id, {
isMarked: !!this.questionMarkInfoList[index]?.MeasureData, isMarked: !!this.questionMarkInfoList[index]?.MeasureData,
isSaved: true isSaved: true,
OrderMarkName: this.questionMarkInfoList[index].OrderMarkName
}) })
} catch (e) { } catch (e) {
console.error('保存失败:', e) console.error('保存失败:', e)
@ -628,7 +605,7 @@ export default {
: obj.question.Id : obj.question.Id
this.$set(this.questionsMarkStatus, key, { this.$set(this.questionsMarkStatus, key, {
isMarked: false, isMarked: false,
isSaved: false isSaved: false,
}) })
}, },
async handleSaveTableQuestions(obj) { async handleSaveTableQuestions(obj) {
@ -671,10 +648,10 @@ export default {
}, -10) }, -10)
this.$set(this.questionsMarkStatus, this.$set(this.questionsMarkStatus,
`${this.operateRowId}_${this.operateQuestionId}`, `${this.operateRowId}_${this.operateQuestionId}`,
{ isMarked: !!annotation, isSaved: true } { isMarked: !!annotation, isSaved: true, OrderMarkName: annotation.data.label }
) )
this.resetOperateState() this.resetOperateState()
} catch(e) { } catch (e) {
console.error('表格保存失败:', e) console.error('表格保存失败:', e)
} finally { } finally {
loading.close() loading.close()
@ -685,9 +662,9 @@ export default {
if (this.isTableQuestion) { if (this.isTableQuestion) {
return RowId return RowId
? this.questionMarkInfoList.findIndex(i => ? this.questionMarkInfoList.findIndex(i =>
i.TableQuestionId === Id && i.RowId === RowId) i.TableQuestionId === Id && i.RowId === RowId)
: this.questionMarkInfoList.findIndex(i => : this.questionMarkInfoList.findIndex(i =>
i.TableQuestionId === Id && !i.RowId) i.TableQuestionId === Id && !i.RowId)
} }
return this.questionMarkInfoList.findIndex(i => i.QuestionId === Id) return this.questionMarkInfoList.findIndex(i => i.QuestionId === Id)
}, },
@ -731,7 +708,7 @@ export default {
if (currentState === 3) { if (currentState === 3) {
const conflictIndex = this.questionMarkInfoList.findIndex( const conflictIndex = this.questionMarkInfoList.findIndex(
item => item.MeasureData.annotationUID === annotation.annotationUID item => item.MeasureData.annotationUID === annotation.annotationUID
&& item.RowId !== this.operateRowId && this.operateRowId && item.RowId !== this.operateRowId && this.operateRowId
) )
if (conflictIndex > -1) { if (conflictIndex > -1) {
this.$alert('该标记已绑定到其他行,不能更改绑定!') this.$alert('该标记已绑定到其他行,不能更改绑定!')
@ -740,8 +717,8 @@ export default {
} }
const message = currentState === 0 ? '是否确认绑定?' : '是否确认更改?' const message = currentState === 0 ? '是否确认绑定?' : '是否确认更改?'
const result = await this.$confirm(message, { const result = await this.$confirm(message, {
type: 'warning', type: 'warning',
distinguishCancelAndClose: true distinguishCancelAndClose: true
}) })
const isConfirmed = result === 'confirm' const isConfirmed = result === 'confirm'
if (!isConfirmed) return if (!isConfirmed) return
@ -751,6 +728,7 @@ export default {
this.questionMarkInfoList.push({ this.questionMarkInfoList.push({
InstanceId: annotation.instanceId, InstanceId: annotation.instanceId,
SeriesId: annotation.seriesId, SeriesId: annotation.seriesId,
OrderMarkName: annotation.data.label,
StudyId: annotation.studyId, StudyId: annotation.studyId,
MarkTool: annotation.metadata.toolName, MarkTool: annotation.metadata.toolName,
PicturePath: '', PicturePath: '',
@ -770,6 +748,7 @@ export default {
InstanceId: annotation.instanceId, InstanceId: annotation.instanceId,
SeriesId: annotation.seriesId, SeriesId: annotation.seriesId,
StudyId: annotation.studyId, StudyId: annotation.studyId,
OrderMarkName: annotation.data.label,
MarkTool: annotation.metadata.toolName, MarkTool: annotation.metadata.toolName,
PicturePath: '', PicturePath: '',
NumberOfFrames: annotation.numberOfFrames, NumberOfFrames: annotation.numberOfFrames,
@ -794,18 +773,18 @@ export default {
qsArr.push({ ...item, ImageToolAttribute: this.imageToolAttribute }) qsArr.push({ ...item, ImageToolAttribute: this.imageToolAttribute })
const keyId = item.RowId const keyId = item.RowId
? `${item.RowId}_${item.TableQuestionId}` ? `${item.RowId}_${item.TableQuestionId}`
: item.TableQuestionId : item.TableQuestionId
this.$set(this.questionsMarkStatus, keyId, { this.$set(this.questionsMarkStatus, keyId, {
isMarked: true, isMarked: true,
isSaved: false isSaved: false,
}) })
} else { } else {
this.setAnswerToQuestion(annotation, item.QuestionId) this.setAnswerToQuestion(annotation, item.QuestionId)
this.$set(this.questionsMarkStatus, item.QuestionId, { this.$set(this.questionsMarkStatus, item.QuestionId, {
isMarked: true, isMarked: true,
isSaved: false isSaved: false,
}) })
} }
} }
@ -817,12 +796,12 @@ export default {
if (this.isTableQuestion && this.operateRowId) { if (this.isTableQuestion && this.operateRowId) {
return this.questionMarkInfoList.findIndex( return this.questionMarkInfoList.findIndex(
item => item.TableQuestionId === this.operateQuestionId item => item.TableQuestionId === this.operateQuestionId
&& item.RowId === this.operateRowId && item.RowId === this.operateRowId
) )
} else if (this.isTableQuestion) { } else if (this.isTableQuestion) {
return this.questionMarkInfoList.findIndex( return this.questionMarkInfoList.findIndex(
item => item.TableQuestionId === this.operateQuestionId item => item.TableQuestionId === this.operateQuestionId
&& !item.RowId && !item.RowId
) )
} }
return this.questionMarkInfoList.findIndex( return this.questionMarkInfoList.findIndex(
@ -836,8 +815,8 @@ export default {
const keyId = index > -1 && this.questionMarkInfoList[index].RowId const keyId = index > -1 && this.questionMarkInfoList[index].RowId
? `${this.questionMarkInfoList[index].RowId}_${this.questionMarkInfoList[index].TableQuestionId}` ? `${this.questionMarkInfoList[index].RowId}_${this.questionMarkInfoList[index].TableQuestionId}`
: this.operateRowId : this.operateRowId
? `${this.operateRowId}_${this.operateQuestionId}` ? `${this.operateRowId}_${this.operateQuestionId}`
: this.operateQuestionId : this.operateQuestionId
this.$set(this.questionsMarkStatus, keyId, status) this.$set(this.questionsMarkStatus, keyId, status)
store.dispatch('dicom3d/setOperateInfo', [{ store.dispatch('dicom3d/setOperateInfo', [{
@ -896,12 +875,12 @@ export default {
const cacheKey = `imageId:${referencedImageId}` const cacheKey = `imageId:${referencedImageId}`
const cachedStats = annotation.data?.cachedStats?.[cacheKey] const cachedStats = annotation.data?.cachedStats?.[cacheKey]
const hasProp = cachedStats const hasProp = cachedStats
&& Object.prototype.hasOwnProperty.call(cachedStats, prop) && Object.prototype.hasOwnProperty.call(cachedStats, prop)
if (!hasProp) return null if (!hasProp) return null
const value = cachedStats[prop] const value = cachedStats[prop]
return value !== null return value !== null
? parseFloat(value).toFixed(this.digitPlaces) ? parseFloat(value).toFixed(this.digitPlaces)
: value : value
}, },
unBindAnnotationToQuestion(obj) { unBindAnnotationToQuestion(obj) {
const { markTableQuestions = [], questionId } = obj || {} const { markTableQuestions = [], questionId } = obj || {}
@ -999,32 +978,38 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.questionList-wrapper{ .questionList-wrapper {
height: 100%; height: 100%;
overflow-y: auto; overflow-y: auto;
.container{
.container {
padding: 10px; padding: 10px;
.basic-info{
.basic-info {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
h3{
h3 {
color: #ddd; color: #ddd;
padding: 5px 0px; padding: 5px 0px;
margin: 0; margin: 0;
} }
i{
i {
color: #fff; color: #fff;
font-size: 22px; font-size: 22px;
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
} }
} }
.ecrf-form{
::v-deep .el-form-item__label{ .ecrf-form {
::v-deep .el-form-item__label {
color: #ddd; color: #ddd;
} }
} }
::v-deep .el-table, ::v-deep .el-table,
.el-table__expanded-cell { .el-table__expanded-cell {
background-color: #000; background-color: #000;
@ -1038,43 +1023,51 @@ export default {
color: #fff; color: #fff;
border-color: #444444; border-color: #444444;
} }
::v-deep .el-table__body tr > td {
::v-deep .el-table__body tr>td {
background-color: #000 !important; background-color: #000 !important;
color: #fff; color: #fff;
border-color: #444444; border-color: #444444;
} }
::v-deep .el-table__body tr:hover > td {
::v-deep .el-table__body tr:hover>td {
background-color: #858282 !important; background-color: #858282 !important;
color: #fff; color: #fff;
border-color: #444444; border-color: #444444;
} }
::v-deep .el-table--border th.gutter:last-of-type { ::v-deep .el-table--border th.gutter:last-of-type {
border: none; border: none;
} }
::v-deep .el-dialog{
::v-deep .el-dialog {
background: #1e1e1e; background: #1e1e1e;
border: 1px solid #ddd; border: 1px solid #ddd;
color: #ddd; color: #ddd;
.el-dialog__title{
color:#fff; .el-dialog__title {
color: #fff;
} }
.el-input .el-input__inner{
.el-input .el-input__inner {
background-color: transparent; background-color: transparent;
color: #ddd; color: #ddd;
border: 1px solid #5e5e5e; border: 1px solid #5e5e5e;
} }
.el-input.is-disabled .el-input__inner{
.el-input.is-disabled .el-input__inner {
background-color: #646464a1; background-color: #646464a1;
} }
.el-form-item__label{
.el-form-item__label {
color: #dfdfdf color: #dfdfdf
} }
} }
} }
} }
// .ecrf-list-container{ // .ecrf-list-container{
// min-height:400px; // min-height:400px;
// color: #ddd; // color: #ddd;
// } // }</style>
</style>

View File

@ -2,8 +2,7 @@
<div class="criterion-table-form-item"> <div class="criterion-table-form-item">
<el-form-item <el-form-item
v-if="(question.ShowQuestion === 1 && !!~question.ParentTriggerValueList.indexOf(questionForm[question.ParentId])) || question.ShowQuestion === 0" v-if="(question.ShowQuestion === 1 && !!~question.ParentTriggerValueList.indexOf(questionForm[question.ParentId])) || question.ShowQuestion === 0"
:title="question.Remark" :title="question.Remark" :label="`${question.QuestionName}`" :prop="question.Id" :rules="[
:label="`${question.QuestionName}`" :prop="question.Id" :rules="[
{ {
required: (question.IsRequired === 0 || (question.IsRequired === 1 && question.RelevanceId && !!~question.RelevanceValueList.indexOf(questionForm[question.RelevanceId]))) && question.Type !== 'group' && question.Type !== 'summary', required: (question.IsRequired === 0 || (question.IsRequired === 1 && question.RelevanceId && !!~question.RelevanceValueList.indexOf(questionForm[question.RelevanceId]))) && question.Type !== 'group' && question.Type !== 'summary',
message: $t('common:ruleMessage:select'), trigger: ['blur', 'change'] message: $t('common:ruleMessage:select'), trigger: ['blur', 'change']
@ -84,6 +83,7 @@
<el-input type="number" @change="(val) => { formItemNumberChange(val, question) }" <el-input type="number" @change="(val) => { formItemNumberChange(val, question) }"
@blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)" @blur="questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked ? () => { } : handleMarkedQsBlur(questionForm[question.Id], questionForm, question.Id, question)"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:title="questionsMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id] ? questionsMarkStatus[rowId ? `${rowId}_${question.Id}` : question.Id].OrderMarkName : ''"
:disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1" :disabled="(questionsMarkStatus[question.Id] && questionsMarkStatus[question.Id].isMarked && question.ImageMarkEnum === 2) || question.ImageMarkEnum === 1"
style="width: 150px;"> style="width: 150px;">
<template v-if="question.Unit !== 0" slot="append"> <template v-if="question.Unit !== 0" slot="append">
@ -188,7 +188,6 @@
</div> </div>
</template> </template>
<script> <script>
import { submitTableQuestion } from '@/api/trials'
export default { export default {
name: 'QuestionTableFormItem', name: 'QuestionTableFormItem',
props: { props: {