1751 lines
		
	
	
		
			77 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			1751 lines
		
	
	
		
			77 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | ||
|   <el-form
 | ||
|     v-if="isRender"
 | ||
|     ref="measurementForm"
 | ||
|     v-loading="loading"
 | ||
|     :model="questionForm"
 | ||
|     size="mini"
 | ||
|     class="measurement-form"
 | ||
|   >
 | ||
|     <div class="base-dialog-body">
 | ||
|       <div style="display: flex;justify-content: space-between;">
 | ||
|         <h3 v-if="questionName" style="color: #ddd;padding: 5px 0px;margin: 0;">
 | ||
|           <!-- {{ `${questionName} (${orderMark}${String(rowIndex).padStart(2, '0')})` }} -->
 | ||
|           {{ lesionName }}
 | ||
|         </h3>
 | ||
|         <!-- 关闭 -->
 | ||
|         <div>
 | ||
|           <i class="el-icon-circle-close" style="font-size: 25px;cursor: pointer;" @click="handleClose" />
 | ||
|         </div>
 | ||
|       </div>
 | ||
| 
 | ||
|       <el-form-item
 | ||
|         :label="$t('trials:reading:title:lesionType')"
 | ||
|         prop="LesionType"
 | ||
|         :rules="[
 | ||
|           { required:true,message: $t('common:ruleMessage:select'), trigger: ['blur']},
 | ||
|         ]"
 | ||
|       >
 | ||
|         <!-- 下拉框 -->
 | ||
|         <el-select
 | ||
|           v-model="questionForm.LesionType"
 | ||
|           filterable
 | ||
|           :disabled="!isCurrentTask || readingTaskState>=2 || !isBaseLineTask"
 | ||
|           @change="((val)=>{lesionTypeChange(val)})"
 | ||
|         >
 | ||
| 
 | ||
|           <el-option
 | ||
|             v-for="item of $d.LesionType"
 | ||
|             v-show="!(isBaseLineTask && item.value === 2)"
 | ||
|             :key="item.id"
 | ||
|             :value="item.value"
 | ||
|             :label="item.label"
 | ||
|           />
 | ||
| 
 | ||
|         </el-select>
 | ||
|       </el-form-item>
 | ||
|       <el-form-item
 | ||
|         v-for="qs in questions"
 | ||
|         v-show="qs.ShowQuestion!==2"
 | ||
|         :key="qs.Id"
 | ||
|         :label="`${qs.QuestionName}`"
 | ||
|         :prop="qs.Id"
 | ||
|         :rules="[
 | ||
|           { required: (qs.IsRequired === 0 || (qs.IsRequired ===1 && qs.RelevanceId && (qs.RelevanceValue.includes(questionForm[qs.RelevanceId]))) || (qs.QuestionMark === 6 && questionForm.IsCanEditPosition === true) || (questionForm.IsCanEditPosition && qs.QuestionMark === 10)) && qs.Type!=='group' && qs.Type!=='summary',
 | ||
|             message:['radio', 'select', 'checkbox'].includes(qs.Type) ? $t('common:ruleMessage:select') : $t('common:ruleMessage:specify'), trigger: ['blur','change']},
 | ||
|         ]"
 | ||
|       >
 | ||
| 
 | ||
|         <!-- 输入框 -->
 | ||
|         <template v-if="qs.Type==='input' || qs.Type==='number'">
 | ||
|           <!-- {{ ((qs.QuestionMark === 6 && isCurrentTaskAdd === 'False') || (qs.QuestionMark === 6 && isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition)) }} -->
 | ||
|           <el-input
 | ||
|             v-if="qs.Type==='input' || qs.Type==='number'"
 | ||
|             v-model="questionForm[qs.Id]"
 | ||
|             :disabled="!isCurrentTask || readingTaskState>=2 || qs.QuestionMark === 0 || qs.QuestionMark === 1 || qs.QuestionMark === 2 || qs.QuestionMark === 5 || (qs.QuestionMark === 6 && (isCurrentTaskAdd === 'False' || (isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition) || !!answers.SplitOrMergeLesionName))|| (qs.QuestionMark === 8 && (isCurrentTaskAdd === 'False' || !!answers.SplitOrMergeLesionName) && lesionType !== 2) || (qs.QuestionMark === 10 && (isCurrentTaskAdd === 'False' || !!answers.SplitOrMergeLesionName))"
 | ||
|             @change="((val)=>{formItemChange(val, qs)})"
 | ||
|           >
 | ||
|             <template v-if="(qs.QuestionMark===0 || qs.QuestionMark===1) && qs.Unit" slot="append">
 | ||
|               {{ $fd('ValueUnit', parseInt(qs.Unit)) }}
 | ||
|             </template>
 | ||
|           </el-input>
 | ||
|         </template>
 | ||
|         <!-- 多行文本输入框 -->
 | ||
|         <el-input
 | ||
|           v-if="qs.Type==='textarea'"
 | ||
|           v-model="questionForm[qs.Id]"
 | ||
|           type="textarea"
 | ||
|           :autosize="{ minRows: 2, maxRows: 4}"
 | ||
|           :disabled="!isCurrentTask || readingTaskState>=2"
 | ||
|           @change="((val)=>{formItemChange(val, qs)})"
 | ||
|         />
 | ||
|         <!-- 下拉框 -->
 | ||
|         <!-- :disabled="!isCurrentTask || readingTaskState>=2 || (!isBaseLineTask && qs.QuestionMark === 5 && isCurrentTaskAdd === 'False') || qs.QuestionMark === 2 || (qs.QuestionMark === 8 && !isBaseLineTask && isCurrentTaskAdd === 'False')" -->
 | ||
| 
 | ||
|         <el-select
 | ||
|           v-if="qs.Type==='select'"
 | ||
|           v-model="questionForm[qs.Id]"
 | ||
|           filterable
 | ||
|           :placeholder="qs.QuestionMark === 8 ? $t('common:placeholder:selectorsearch') : $t('common:placeholder:select')"
 | ||
|           :disabled="!isCurrentTask || readingTaskState>=2 || qs.QuestionMark === 0 || qs.QuestionMark === 1 || qs.QuestionMark === 2 || qs.QuestionMark === 5 || (qs.QuestionMark === 6 && (isCurrentTaskAdd === 'False' || (isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition) || !!answers.SplitOrMergeLesionName))|| (qs.QuestionMark === 8 && (isCurrentTaskAdd === 'False'|| !!answers.SplitOrMergeLesionName)) || (qs.QuestionMark === 10 && (isCurrentTaskAdd === 'False' || (isCurrentTaskAdd === 'True' && !questionForm.IsCanEditPosition) || !!answers.SplitOrMergeLesionName)) || (qs.QuestionMark === 7 && stateDisabled)"
 | ||
|           @change="((val)=>{formItemChange(val, qs)})"
 | ||
|         >
 | ||
|           <template v-if="qs.QuestionMark === 8" #prefix>
 | ||
|             <span style="padding-left: 5px;">
 | ||
|               <i class="el-icon-search" />
 | ||
|             </span>
 | ||
|           </template>
 | ||
|           <template v-if="qs.TableQuestionType === 1">
 | ||
|             <el-option
 | ||
|               v-for="item in organList"
 | ||
|               :key="item.Id"
 | ||
|               :label="item[qs.DataTableColumn]"
 | ||
|               :value="item[qs.DataTableColumn]"
 | ||
|             />
 | ||
|           </template>
 | ||
|           <template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && isBaseLineTask">
 | ||
|             <el-option
 | ||
|               v-for="item of $d[qs.DictionaryCode]"
 | ||
|               v-show="(lesionType === 0 && item.value ===0) || (lesionType === 1 && (item.value ===0))"
 | ||
|               :key="item.id"
 | ||
|               :value="item.value"
 | ||
|               :label="item.label"
 | ||
|             />
 | ||
|           </template>
 | ||
|           <template v-else-if="qs.DictionaryCode && qs.QuestionMark === 7 && !isBaseLineTask">
 | ||
|             <!-- 首次分裂的病灶只能选择存在 -->
 | ||
|             <template v-if="answers.IsFristAdd=== 'True' && answers.SplitOrMergeType === '0'">
 | ||
|               <el-option
 | ||
|                 v-for="item of $d[qs.DictionaryCode]"
 | ||
|                 v-show="item.value === 0"
 | ||
|                 :key="item.id"
 | ||
|                 :value="item.value"
 | ||
|                 :label="item.label"
 | ||
|               />
 | ||
|             </template>
 | ||
|             <!-- 首次添加的新病灶不能为无法评估和消失 -->
 | ||
|             <template v-else-if="isCurrentTaskAdd=== 'True' && lesionType === 2">
 | ||
|               <el-option
 | ||
|                 v-for="item of $d[qs.DictionaryCode]"
 | ||
|                 v-show="item.value === 0 || item.value === 1"
 | ||
|                 :key="item.id"
 | ||
|                 :value="item.value"
 | ||
|                 :label="item.label"
 | ||
|               />
 | ||
|             </template>
 | ||
|             <template v-else>
 | ||
|               <el-option
 | ||
|                 v-for="item of filterState($d[qs.DictionaryCode])"
 | ||
|                 :key="item.id"
 | ||
|                 :value="item.value"
 | ||
|                 :label="item.label"
 | ||
|               />
 | ||
|             </template>
 | ||
|           </template>
 | ||
|           <template v-else-if="qs.DictionaryCode && qs.QuestionMark !== 7">
 | ||
|             <el-option
 | ||
|               v-for="item of $d[qs.DictionaryCode]"
 | ||
|               :key="item.id"
 | ||
|               :value="item.value"
 | ||
|               :label="item.label"
 | ||
|             />
 | ||
|           </template>
 | ||
|           <template v-else>
 | ||
|             <el-option
 | ||
|               v-for="val in qs.TypeValue.split('|')"
 | ||
|               :key="val"
 | ||
|               :label="val"
 | ||
|               :value="val"
 | ||
|             />
 | ||
|           </template>
 | ||
| 
 | ||
|         </el-select>
 | ||
|         <!-- 单选 -->
 | ||
|         <el-radio-group
 | ||
|           v-if="qs.Type==='radio'"
 | ||
|           v-model="questionForm[qs.id]"
 | ||
|           :disabled="!isCurrentTask || readingTaskState>=2"
 | ||
|         >
 | ||
|           <el-radio
 | ||
|             v-for="val in qs.options.split('|')"
 | ||
|             :key="val"
 | ||
|             :label="val"
 | ||
|             @change="((val)=>{formItemChange(val, qs)})"
 | ||
|           >
 | ||
|             {{ val }}
 | ||
|           </el-radio>
 | ||
|         </el-radio-group>
 | ||
|         <el-input
 | ||
|           v-if="qs.Type==='calculation'"
 | ||
|           v-model="questionForm[qs.Id]"
 | ||
|           disabled
 | ||
|           @change="((val)=>{formItemChange(val, qs)})"
 | ||
|         >
 | ||
|           <template v-if="qs.Unit" slot="append">
 | ||
|             {{ $fd('ValueUnit', parseInt(qs.Unit)) }}
 | ||
|           </template>
 | ||
|         </el-input>
 | ||
|       </el-form-item>
 | ||
| 
 | ||
|     </div>
 | ||
| 
 | ||
|     <div
 | ||
|       v-if="isCurrentTask && readingTaskState<2"
 | ||
|       class="base-dialog-footer"
 | ||
|       style="text-align:right;margin-top:10px;"
 | ||
|     >
 | ||
| 
 | ||
|       <!-- 清除标记 -->
 | ||
|       <el-button
 | ||
|         v-if="questionForm.MeasureData"
 | ||
|         size="mini"
 | ||
|         @click="handleDeleteMeasureData"
 | ||
|       >
 | ||
|         {{ $t('trials:reading:button:removeMark') }}
 | ||
|       </el-button>
 | ||
|       <!-- 删除 -->
 | ||
|       <el-button
 | ||
|         v-if="isCurrentTaskAdd !== 'False'"
 | ||
|         size="mini"
 | ||
|         @click="handleDelete"
 | ||
|       >
 | ||
|         {{ $t('common:button:delete') }}
 | ||
|       </el-button>
 | ||
|       <!-- 保存 -->
 | ||
|       <el-button
 | ||
|         size="mini"
 | ||
|         @click="handleSave"
 | ||
|       >
 | ||
|         {{ $t('common:button:save') }}
 | ||
|       </el-button>
 | ||
|     </div>
 | ||
|   </el-form>
 | ||
| </template>
 | ||
| <script>
 | ||
| import { submitTableQuestion, deleteReadingRowAnswer } from '@/api/trials'
 | ||
| // import { uploadPrintscreen } from '@/api/reading'
 | ||
| import DicomEvent from './../DicomEvent'
 | ||
| import store from '@/store'
 | ||
| export default {
 | ||
|   name: 'MeasurementForm',
 | ||
|   props: {
 | ||
|     questions: {
 | ||
|       type: Array,
 | ||
|       default() { return [] }
 | ||
|     },
 | ||
|     answers: {
 | ||
|       type: Object,
 | ||
|       default() { return {} }
 | ||
|     },
 | ||
|     lesionType: {
 | ||
|       type: Number,
 | ||
|       required: true
 | ||
|     },
 | ||
|     visitTaskId: {
 | ||
|       type: String,
 | ||
|       required: true
 | ||
|     },
 | ||
|     parentQsId: {
 | ||
|       type: String,
 | ||
|       required: true
 | ||
|     },
 | ||
|     isCurrentTask: {
 | ||
|       type: Boolean,
 | ||
|       required: true
 | ||
|     },
 | ||
|     readingTaskState: {
 | ||
|       type: Number,
 | ||
|       required: true
 | ||
|     },
 | ||
|     isBaseLineTask: {
 | ||
|       type: Boolean,
 | ||
|       required: true
 | ||
|     },
 | ||
|     orderMark: {
 | ||
|       type: String,
 | ||
|       default: ''
 | ||
|     },
 | ||
|     questionName: {
 | ||
|       type: String,
 | ||
|       required: true
 | ||
|     },
 | ||
|     rowIndex: {
 | ||
|       type: String,
 | ||
|       required: true
 | ||
|     },
 | ||
|     tableQuestions: {
 | ||
|       type: Array,
 | ||
|       default() { return [] }
 | ||
|     }
 | ||
|   },
 | ||
|   data() {
 | ||
|     return {
 | ||
|       questionForm: {},
 | ||
|       loading: false,
 | ||
|       trialId: '',
 | ||
|       organList: [],
 | ||
|       originalQuestionForm: {},
 | ||
|       isRender: false,
 | ||
|       toolType: '',
 | ||
|       lesionName: '',
 | ||
|       isCurrentTaskAdd: 'False',
 | ||
|       splitOrMergeLesionName: '',
 | ||
|       lesionMark: '',
 | ||
|       deleteInfo: null,
 | ||
|       pictureBaseStr: '',
 | ||
|       currentMarkTool: '',
 | ||
|       digitPlaces: 2,
 | ||
|       stateDisabled: false
 | ||
|     }
 | ||
|   },
 | ||
|   mounted() {
 | ||
|     this.trialId = this.$route.query.trialId
 | ||
|     this.initForm()
 | ||
|     DicomEvent.$on('handleImageQualityAbnormal', () => {
 | ||
|       this.setState()
 | ||
|     })
 | ||
|     var digitPlaces = Number(localStorage.getItem('digitPlaces'))
 | ||
|     this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces
 | ||
|   },
 | ||
|   beforeDestroy() {
 | ||
|     DicomEvent.$off('handleImageQualityAbnormal')
 | ||
|   },
 | ||
|   methods: {
 | ||
|     async initForm() {
 | ||
|       const loading = this.$loading({ fullscreen: true })
 | ||
|       this.questions.forEach(item => {
 | ||
|         var val = this.answers[item.Id]
 | ||
|         if (item.DictionaryCode) {
 | ||
|           val = isNaN(parseInt(this.answers[item.Id])) ? this.answers[item.Id] : parseInt(this.answers[item.Id])
 | ||
|         }
 | ||
|         if (this.isBaseLineTask && item.QuestionMark === 7 && this.lesionType === 0) {
 | ||
|           val = 0
 | ||
|         }
 | ||
|         if (this.isBaseLineTask && item.QuestionMark === 7 && this.lesionType === 1) {
 | ||
|           val = 0
 | ||
|         }
 | ||
|         // 最低点PPD(13)、PPD最低点所在访视(14)、PPD最低点LDi(15)、PPD最低点SDi(16)
 | ||
|         if (this.isBaseLineTask && (item.QuestionMark === 13 || item.QuestionMark === 14 || item.QuestionMark === 15 || item.QuestionMark === 16)) {
 | ||
|           val = 'NA'
 | ||
|         }
 | ||
|         // PPD(12)、相比最低点PPD增加百分比(17)、相比PPD最低点LDi增加值(18)、相比PPD最低点SDi增加值(19)为空是,默认值为NA
 | ||
|         if (!val && (item.QuestionMark === 12 || item.QuestionMark === 17 || item.QuestionMark === 18 || item.QuestionMark === 19)) {
 | ||
|           val = 'NA'
 | ||
|         }
 | ||
| 
 | ||
|         this.$set(this.questionForm, item.Id, val)
 | ||
|       })
 | ||
|       this.$set(this.questionForm, 'MeasureData', this.answers.MeasureData ? JSON.parse(this.answers.MeasureData) : '')
 | ||
|       this.$set(this.questionForm, 'RowIndex', this.answers.RowIndex ? this.answers.RowIndex : '')
 | ||
|       this.$set(this.questionForm, 'RowId', this.answers.RowId ? this.answers.RowId : '')
 | ||
|       this.$set(this.questionForm, 'OrganInfoId', this.answers.OrganInfoId ? this.answers.OrganInfoId : '')
 | ||
| 
 | ||
|       // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整
 | ||
|       var lesionState = this.getQuestionVal(7)
 | ||
|       if (this.questionForm.RowId) {
 | ||
|         this.$set(this.questionForm, 'saveTypeEnum', isNaN(parseInt(lesionState)) ? 1 : 2)
 | ||
|       } else {
 | ||
|         this.$set(this.questionForm, 'saveTypeEnum', 0)
 | ||
|       }
 | ||
|       this.$set(this.questionForm, 'IsCanEditPosition', this.answers.IsCanEditPosition === 'True')
 | ||
|       this.$set(this.questionForm, 'IsDicomReading', this.answers.IsDicomReading !== 'False')
 | ||
| 
 | ||
|       this.toolType = this.questionForm.MeasureData ? this.questionForm.MeasureData.type : ''
 | ||
|       this.currentMarkTool = this.questionForm.MeasureData ? this.questionForm.MeasureData.type : this.answers.MarkTool
 | ||
|       if (!this.questionForm.LesionType) {
 | ||
|         this.$set(this.questionForm, 'LesionType', this.lesionType)
 | ||
|       }
 | ||
|       this.lesionName = this.getLesionInfo(this.orderMark, this.rowIndex)
 | ||
|       this.isCurrentTaskAdd = this.answers.IsCurrentTaskAdd ? this.answers.IsCurrentTaskAdd : 'True'
 | ||
|       this.lesionMark = this.getLesionName(this.orderMark, this.questionForm.RowIndex)
 | ||
|       this.originalQuestionForm = { ...this.questionForm }
 | ||
|       // this.lesionType === 0 && this.questionForm.MeasureData
 | ||
|       if (this.answers.measureObj) {
 | ||
|         await this.setMeasureData(this.answers.measureObj, true)
 | ||
|       } else {
 | ||
|         // let isLymphLesion = this.getQuestionVal(2)
 | ||
|         // isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|         // if (isLymphLesion === 1) {
 | ||
|         //   // 淋巴结类型
 | ||
|         //   this.organList = []
 | ||
|         //   await this.getOrganInfoList(1)
 | ||
|         // } else if (isLymphLesion === 0) {
 | ||
|         //   this.organList = []
 | ||
|         //   await this.getOrganInfoList(0)
 | ||
|         // } else {
 | ||
|         //   this.organList = []
 | ||
|         //   await this.getOrganInfoList()
 | ||
|         // }
 | ||
|         this.organList = []
 | ||
|         await this.getOrganInfoList()
 | ||
|       }
 | ||
| 
 | ||
|       // 首次分裂的病灶默认状态为空时,设置默认值为存在
 | ||
|       if (this.answers.IsFristAdd === 'True' && this.answers.SplitOrMergeType === '0' && isNaN(parseInt(this.getQuestionVal(7)))) {
 | ||
|         const stateId = this.getQuestionId(7)
 | ||
|         this.$set(this.questionForm, stateId, 0)
 | ||
|         var isLymphLesion = this.getQuestionVal(2)
 | ||
|         isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|         const lesionPart = this.getQuestionVal(8)
 | ||
|         const lesionOrgan = this.getQuestionVal(6)
 | ||
|         const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
 | ||
|         const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
 | ||
|         const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
 | ||
|         this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
 | ||
|       }
 | ||
|       this.isRender = true
 | ||
|       loading.close()
 | ||
|     },
 | ||
|     getLesionName(orderMark, rowIndex) {
 | ||
|       var lessionName = ''
 | ||
|       var rowIndexArr = rowIndex.split('.')
 | ||
|       var x = parseInt(rowIndexArr[0])
 | ||
|       var y = parseInt(rowIndexArr[1])
 | ||
|       if (y > 0) {
 | ||
|         y = String.fromCharCode(parseInt(rowIndexArr[1]) - 1 + 65 + 32)
 | ||
|         lessionName = `${orderMark}${String(x).padStart(2, '0')}${y}`
 | ||
|       } else {
 | ||
|         lessionName = `${orderMark}${String(x).padStart(2, '0')}`
 | ||
|       }
 | ||
| 
 | ||
|       return lessionName
 | ||
|     },
 | ||
|     getLesionInfo(orderMark, rowIndex) {
 | ||
|       var arr = []
 | ||
|       var lessionName = ''
 | ||
|       var rowIndexArr = rowIndex.split('.')
 | ||
|       var x = parseInt(rowIndexArr[0])
 | ||
|       var y = parseInt(rowIndexArr[1])
 | ||
|       if (y > 0) {
 | ||
|         y = String.fromCharCode(parseInt(rowIndexArr[1]) - 1 + 65 + 32)
 | ||
|         lessionName = `${orderMark}${String(x).padStart(2, '0')}${y}`
 | ||
|         arr.push(lessionName)
 | ||
|       } else {
 | ||
|         lessionName = `${orderMark}${String(x).padStart(2, '0')}`
 | ||
|         arr.push(lessionName)
 | ||
|       }
 | ||
|       if (this.answers.SplitOrMergeLesionName && parseInt(this.answers.SplitOrMergeType) === 0) {
 | ||
|         arr.push(`(Split from ${this.answers.SplitOrMergeLesionName})`)
 | ||
|       }
 | ||
|       return arr.join(' ')
 | ||
|     },
 | ||
|     getQuestionId(questionMark) {
 | ||
|       var idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
 | ||
|       if (idx > -1) {
 | ||
|         return this.questions[idx].Id
 | ||
|       } else {
 | ||
|         return ''
 | ||
|       }
 | ||
|     },
 | ||
|     getOrganInfoList(isLymphNodes = null) {
 | ||
|       return new Promise(async resolve => {
 | ||
|         // var param = {
 | ||
|         //   trialId: this.trialId,
 | ||
|         //   visitTaskId: this.visitTaskId,
 | ||
|         //   lesionType: this.lesionType,
 | ||
|         //   isEnable: true
 | ||
|         // }
 | ||
|         // if (isLymphNodes !== undefined && isLymphNodes !== null) {
 | ||
|         //   param.isLymphNodes = isLymphNodes
 | ||
|         // }
 | ||
|         // getTrialOrganList(param).then(res => {
 | ||
|         //   this.organList = res.Result
 | ||
|         //   resolve()
 | ||
|         // })
 | ||
|         if (!sessionStorage.getItem('organList')) {
 | ||
|           await store.dispatch('reading/getOrganInfo', this.visitTaskId)
 | ||
|         }
 | ||
|         var organList = sessionStorage.getItem('organList') ? JSON.parse(sessionStorage.getItem('organList')) : []
 | ||
|         var idx = organList.findIndex(i => i.LesionType === this.lesionType)
 | ||
|         if (idx > -1) {
 | ||
|           organList = organList[idx].OrganList
 | ||
| 
 | ||
|           if (!isNaN(parseInt(isLymphNodes))) {
 | ||
|             this.organList = organList.filter((item) => item.IsLymphNodes === parseInt(isLymphNodes))
 | ||
|           } else {
 | ||
|             this.organList = organList
 | ||
|           }
 | ||
|         }
 | ||
|         resolve()
 | ||
|       })
 | ||
|     },
 | ||
|     async lesionTypeChange(v) {
 | ||
|       this.$emit('determineExistsUnsavedLession', async val => {
 | ||
|         if (val) {
 | ||
|           // 基线时,靶病灶只能用直径和长短径标注,非dicom文件的标注不能作为靶病灶
 | ||
|           //
 | ||
|           if ((this.isBaseLineTask || this.questionForm.IsDicomReading === false) && this.questionForm.MeasureData && this.questionForm.MeasureData.type === 'ArrowAnnotate' && v === 0) {
 | ||
|             // 当前病灶不允许设置为靶病灶
 | ||
|             this.$confirm(this.$t(' trials:reading:warnning:msg15'), {
 | ||
|               type: 'warning',
 | ||
|               distinguishCancelAndClose: true
 | ||
|             })
 | ||
|               .then(() => {})
 | ||
|               .catch(() => {})
 | ||
|             this.$set(this.questionForm, 'LesionType', this.originalQuestionForm.LesionType)
 | ||
|             return
 | ||
|           }
 | ||
|           // 判断是否超过该病灶类型个数的最大值
 | ||
|           var idx = this.tableQuestions.findIndex(item => item.LesionType === v)
 | ||
|           if (idx > -1 && !!this.tableQuestions[idx].MaxQuestionCount && this.tableQuestions[idx].MaxQuestionCount <= this.tableQuestions[idx].TableQuestions.Answers.length) {
 | ||
|             let msg = this.$t('trials:reading:warnning:msg14')
 | ||
|             // msg = msg.replace('xxx', this.tableQuestions[idx].QuestionName)
 | ||
|             msg = msg.replace('xxx', this.tableQuestions[idx].MaxQuestionCount)
 | ||
|             this.$confirm(msg, {
 | ||
|               type: 'warning',
 | ||
|               showCancelButton: false,
 | ||
|               callback: action => {}
 | ||
|             })
 | ||
|             this.$set(this.questionForm, 'LesionType', this.originalQuestionForm.LesionType)
 | ||
|             return
 | ||
|           }
 | ||
| 
 | ||
|           var arr = []
 | ||
|           this.questionForm[this.getQuestionId(8)] = ''
 | ||
|           this.questionForm[this.getQuestionId(5)] = ''
 | ||
|           this.questionForm[this.getQuestionId(10)] = ''// 部位描述
 | ||
|           this.questionForm[this.getQuestionId(4)] = ''
 | ||
|           this.questionForm[this.getQuestionId(6)] = ''
 | ||
|           this.questionForm[this.getQuestionId(2)] = ''
 | ||
|           this.questions.forEach(item => {
 | ||
|             item.Answer = this.questionForm[item.Id] ? this.questionForm[item.Id] : ''
 | ||
|             arr.push(item)
 | ||
|           })
 | ||
|           var obj = { questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex, visitTaskId: this.visitTaskId, lesionType: this.lesionType }
 | ||
|           DicomEvent.$emit('imageLocation', obj)
 | ||
|           var type = null
 | ||
|           if (this.questionForm.RowId) {
 | ||
|             type = 1
 | ||
|           } else {
 | ||
|             type = 0
 | ||
|           }
 | ||
|           DicomEvent.$emit('changeLesionType', { questionForm: arr, oldLesionType: this.lesionType, newLesionType: v, rowIndex: this.questionForm.RowIndex, questionId: this.parentQsId, measureData: this.questionForm.MeasureData, type, rowId: this.questionForm.RowId })
 | ||
|         } else {
 | ||
|           this.$set(this.questionForm, 'LesionType', this.originalQuestionForm.LesionType)
 | ||
|         }
 | ||
|       })
 | ||
|     },
 | ||
|     deleteLesionInfo() {
 | ||
|       return new Promise((resolve, reject) => {
 | ||
|         const loading = this.$loading({ fullscreen: true })
 | ||
|         var param = {
 | ||
|           visitTaskId: this.visitTaskId,
 | ||
|           questionId: this.parentQsId,
 | ||
|           rowId: this.questionForm.RowId
 | ||
|         }
 | ||
|         deleteReadingRowAnswer(param)
 | ||
|           .then(async res => {
 | ||
|             if (res.IsSuccess) {
 | ||
|               DicomEvent.$emit('getReportInfo', true)
 | ||
|             }
 | ||
|             loading.close()
 | ||
|             resolve()
 | ||
|           }).catch(() => {
 | ||
|             loading.close()
 | ||
|             reject()
 | ||
|           })
 | ||
|       })
 | ||
|     },
 | ||
|     async formItemChange(v, question) {
 | ||
|       if (question.QuestionMark === 8 && question.RelationQuestions.length > 0) {
 | ||
|         // 当选择部位时,联动器官、位置、是否淋巴结问题答案
 | ||
|         var index = this.organList.findIndex(item => item[question.DataTableColumn] === v)
 | ||
|         if (index > -1) {
 | ||
|           var selected = this.organList[index]
 | ||
|           question.RelationQuestions.map(qs => {
 | ||
|             var val = selected[qs.DataTableColumn]
 | ||
|             this.$set(this.questionForm, qs.Id, val)
 | ||
|           })
 | ||
|           this.$set(this.questionForm, 'OrganInfoId', selected.OrganInfoId)
 | ||
|           this.$set(this.questionForm, 'IsCanEditPosition', selected['IsCanEditPosition'])
 | ||
|         } else {
 | ||
|           question.RelationQuestions.map(qs => {
 | ||
|             this.$set(this.questionForm, qs.Id, '')
 | ||
|           })
 | ||
|         }
 | ||
|       }
 | ||
| 
 | ||
|       // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整
 | ||
|       if (this.questionForm.RowId) {
 | ||
|         this.$set(this.questionForm, 'saveTypeEnum', 1)
 | ||
|       } else {
 | ||
|         this.$set(this.questionForm, 'saveTypeEnum', 0)
 | ||
|       }
 | ||
|       var isLymphLesion = this.getQuestionVal(2)
 | ||
|       isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|       const lesionPart = this.getQuestionVal(8)
 | ||
|       const lesionOrgan = this.getQuestionVal(6)
 | ||
|       const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
 | ||
|       const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
 | ||
|       const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
 | ||
|       this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
 | ||
| 
 | ||
|       if (question.QuestionMark === 7) {
 | ||
|         var status = ''
 | ||
|         if (this.lesionType === 0 && lesionState === 1) {
 | ||
|           status = 'T'
 | ||
|         }
 | ||
|         if ((this.lesionType === 0 && lesionState === 3) || (this.lesionType === 1 && lesionState === 3) || (this.lesionType === 2 && lesionState === 3)) {
 | ||
|           status = 'D'
 | ||
|         }
 | ||
|         if (this.questionForm.MeasureData) {
 | ||
|           this.questionForm.MeasureData.status = status
 | ||
|         }
 | ||
|         await store.dispatch('reading/updateMeasureDataStatus', { visitTaskId: this.visitTaskId, rowIndex: this.rowIndex, questionId: this.parentQsId, status })
 | ||
|         DicomEvent.$emit('getMeasureData')
 | ||
|       }
 | ||
|     },
 | ||
|     setMeasureData(measureData, isInit = false) {
 | ||
|       console.log('setMeasureData')
 | ||
|       return new Promise(resolve => {
 | ||
|         if (measureData) {
 | ||
|           if (measureData.pictureBaseStr) {
 | ||
|             this.pictureBaseStr = measureData.pictureBaseStr
 | ||
|             measureData.pictureBaseStr = ''
 | ||
|           }
 | ||
|           // 获取长径(0)
 | ||
|           // const loading = this.$loading({ fullscreen: true })
 | ||
|           var lengthObj = this.questions.find(i => i.QuestionMark === 0)
 | ||
|           var shortObj = this.questions.find(i => i.QuestionMark === 1)
 | ||
| 
 | ||
|           if (measureData.type === 'Length' || measureData.type === 'Bidirectional') {
 | ||
|             var length = ''
 | ||
|             if (measureData.type === 'Length') {
 | ||
|               length = measureData.data.length
 | ||
|             } else if (measureData.type === 'Bidirectional') {
 | ||
|               length = measureData.data.longestDiameter
 | ||
|             }
 | ||
|             this.$set(this.questionForm, lengthObj.Id, length)
 | ||
|             // 获取短径(1)
 | ||
| 
 | ||
|             var short = ''
 | ||
|             if (measureData.type === 'Bidirectional') {
 | ||
|               short = measureData.data.shortestDiameter
 | ||
|             }
 | ||
|             this.$set(this.questionForm, shortObj.Id, short)
 | ||
|           } else if (measureData.type === 'ArrowAnnotate') {
 | ||
|             this.$set(this.questionForm, lengthObj.Id, '')
 | ||
|             this.$set(this.questionForm, shortObj.Id, '')
 | ||
|           }
 | ||
|           // if (this.toolType !== measureData.type) {
 | ||
|           // 获取器官问题
 | ||
|           // var organ = this.getQuestionVal(5)
 | ||
| 
 | ||
|           // 十字线工具 器官只能是淋巴结类型
 | ||
| 
 | ||
|           // if (measureData.type === 'Bidirectional') {
 | ||
|           //   this.organList = []
 | ||
|           //   this.getOrganInfoList(1)
 | ||
|           // } else if (measureData.type === 'Length') {
 | ||
|           //   // 直径测量工具 且是靶病灶  器官只能是非淋巴结类型
 | ||
|           //   this.organList = []
 | ||
|           //   this.getOrganInfoList(0)
 | ||
|           // } else {
 | ||
|           //   this.organList = []
 | ||
|           //   this.getOrganInfoList()
 | ||
|           // }
 | ||
|           var isLymphLesion = this.getQuestionVal(2)
 | ||
|           isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|           // if (isLymphLesion === 1) {
 | ||
|           // // 淋巴结类型
 | ||
|           //   this.organList = []
 | ||
|           //   this.getOrganInfoList(1)
 | ||
|           // } else if (isLymphLesion === 0) {
 | ||
|           //   this.organList = []
 | ||
|           //   this.getOrganInfoList(0)
 | ||
|           // } else {
 | ||
|           //   this.organList = []
 | ||
|           //   this.getOrganInfoList()
 | ||
|           // }
 | ||
|           this.organList = []
 | ||
|           this.getOrganInfoList()
 | ||
| 
 | ||
|           // if (this.toolType) {
 | ||
|           //   this.questionForm[this.getQuestionId(8)] = ''
 | ||
|           //   this.questionForm[this.getQuestionId(5)] = ''
 | ||
|           //   this.questionForm[this.getQuestionId(6)] = ''
 | ||
|           //   this.questionForm[this.getQuestionId(2)] = ''
 | ||
|           // }
 | ||
| 
 | ||
|           var data = {}
 | ||
|           if (measureData.isDicomReading === false) {
 | ||
|             this.$set(this.questionForm, 'IsDicomReading', false)
 | ||
|             data = {
 | ||
|               Id: '',
 | ||
|               IsDicomReading: false,
 | ||
|               StudyId: measureData.studyId,
 | ||
|               InstanceId: measureData.instanceId,
 | ||
|               SeriesId: measureData.seriesId,
 | ||
|               MeasureData: measureData,
 | ||
|               QuestionId: this.parentQsId,
 | ||
|               RowIndex: this.questionForm.RowIndex,
 | ||
|               RowId: this.questionForm.RowId,
 | ||
|               VisitTaskId: this.visitTaskId
 | ||
|             }
 | ||
|             measureData.data.uuid = `${measureData.instanceId}-${measureData.data.remark}`
 | ||
|           } else {
 | ||
|             this.$set(this.questionForm, 'IsDicomReading', true)
 | ||
| 
 | ||
|             // 基线时,默认状态都为存在
 | ||
|             if (this.isBaseLineTask && !lesionState) {
 | ||
|               const stateId = this.getQuestionId(7)
 | ||
|               this.$set(this.questionForm, stateId, 0)
 | ||
|             }
 | ||
| 
 | ||
|             // var isLymphLesion = this.getQuestionVal(2)
 | ||
|             // isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|             var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
 | ||
|             // var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
 | ||
|             // 当前添加的新病灶不做处理
 | ||
|             if (!(this.isCurrentTaskAdd === 'True') && this.lesionType === 0 && !this.isBaseLineTask && measureData.type === 'Bidirectional') {
 | ||
|               if (isLymphLesion) {
 | ||
|                 // 淋巴结靶病灶
 | ||
|                 if (lesionLength > 15) {
 | ||
|                   // 长径大于15mm,自动给“存在”状态
 | ||
|                   const stateId = this.getQuestionId(7)
 | ||
|                   this.$set(this.questionForm, stateId, 0)
 | ||
|                 } else {
 | ||
|                   // 长径小于或等于15mm,自动给“消失”状态
 | ||
|                   const stateId = this.getQuestionId(7)
 | ||
|                   this.$set(this.questionForm, stateId, 3)
 | ||
|                 }
 | ||
|               } else {
 | ||
|                 // 非淋巴结靶病灶
 | ||
|                 if (lesionLength > 10) {
 | ||
|                   // 长径大于10mm,自动给“存在”状态
 | ||
|                   const stateId = this.getQuestionId(7)
 | ||
|                   this.$set(this.questionForm, stateId, 0)
 | ||
|                 }
 | ||
|               }
 | ||
|             }
 | ||
|             if (this.lesionType === 0) {
 | ||
|               this.calculatePPD()
 | ||
|             }
 | ||
|             const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
 | ||
|             var status = ''
 | ||
|             if (lesionState) {
 | ||
|               if (this.lesionType === 0 && lesionState === 1) {
 | ||
|                 status = 'T'
 | ||
|               }
 | ||
|               if ((this.lesionType === 0 && lesionState === 3) || (this.lesionType === 1 && lesionState === 3) || (this.lesionType === 2 && lesionState === 3)) {
 | ||
|                 status = 'D'
 | ||
|               }
 | ||
|             }
 | ||
|             measureData.data.status = status
 | ||
| 
 | ||
|             measureData.data.remark = this.getLesionName(this.orderMark, this.questionForm.RowIndex)
 | ||
|             data = {
 | ||
|               Id: '',
 | ||
|               IsDicomReading: true,
 | ||
|               StudyId: measureData.studyId,
 | ||
|               InstanceId: measureData.instanceId,
 | ||
|               SeriesId: measureData.seriesId,
 | ||
|               MeasureData: measureData,
 | ||
|               QuestionId: this.parentQsId,
 | ||
|               RowIndex: this.questionForm.RowIndex,
 | ||
|               RowId: this.questionForm.RowId,
 | ||
|               VisitTaskId: this.visitTaskId,
 | ||
|               OrderMarkName: measureData.data.remark,
 | ||
|               frame: isNaN(parseInt(measureData.frame)) ? 0 : measureData.frame
 | ||
|             }
 | ||
|           }
 | ||
|           // Store.$emit('addTemporaryMeasuredData', data)
 | ||
|           store.dispatch('reading/addMeasuredData', { visitTaskId: this.visitTaskId, data: data })
 | ||
|           if (!this.questionForm.IsDicomReading) {
 | ||
|             DicomEvent.$emit('addNoneDicomMeasureData', measureData)
 | ||
|           }
 | ||
|           DicomEvent.$emit('getMeasureData')
 | ||
|         }
 | ||
|         if (!isInit) {
 | ||
|           // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断)
 | ||
|           if (this.questionForm.RowId) {
 | ||
|             this.$set(this.questionForm, 'saveTypeEnum', 1)
 | ||
|           } else {
 | ||
|             this.$set(this.questionForm, 'saveTypeEnum', 0)
 | ||
|           }
 | ||
|         }
 | ||
|         this.$set(this.questionForm, 'MeasureData', measureData)
 | ||
|         var isLymph = this.getQuestionVal(2)
 | ||
|         isLymph = !isNaN(parseInt(isLymph)) ? parseInt(isLymph) : null
 | ||
|         const lesionPart = this.getQuestionVal(8)
 | ||
|         const lesionOrgan = this.getQuestionVal(6)
 | ||
|         // const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
 | ||
|         // const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
 | ||
|         const lesionL = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
 | ||
|         const lesionS = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
 | ||
|         var lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
 | ||
|         // // 状态为空时,非淋巴结靶病灶长径>0mm,自动给“存在”状态,如果淋巴结靶病灶短径>=10mm,自动给“存在”状态。淋巴结靶病灶在短径小于10mm时,用十字线标记测量时标记为消失
 | ||
|         // if (!this.isBaseLineTask && this.lesionType === 0 && ((isLymphLesion === 0 && lesionLength > 0) || (isLymphLesion === 1 && lesionShort >= 10))) {
 | ||
|         //   const stateId = this.getQuestionId(7)
 | ||
|         //   this.$set(this.questionForm, stateId, 0)
 | ||
|         //   lesionState = 0
 | ||
|         // }
 | ||
| 
 | ||
|         // if (!this.isBaseLineTask && this.lesionType === 0 && (isLymphLesion === 1 && measureData.type === 'Bidirectional' && lesionShort < 10)) {
 | ||
|         //   const stateId = this.getQuestionId(7)
 | ||
|         //   this.$set(this.questionForm, stateId, 3)
 | ||
|         //   lesionState = 3
 | ||
|         // }
 | ||
|         // // 基线时,默认状态都为存在
 | ||
|         // if (this.isBaseLineTask && !lesionState) {
 | ||
|         //   const stateId = this.getQuestionId(7)
 | ||
|         //   this.$set(this.questionForm, stateId, 0)
 | ||
|         //   lesionState = 0
 | ||
|         // }
 | ||
| 
 | ||
|         this.$emit('resetQuestions', { isLymphLesion: isLymph, lesionPart, lesionOrgan, lesionShort: lesionS, lesionLength: lesionL, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
 | ||
|         this.toolType = measureData.type
 | ||
|         DicomEvent.$emit('refreshStudyListMeasureData')
 | ||
|         resolve()
 | ||
|       })
 | ||
| 
 | ||
|       // loading.close()
 | ||
|       // this.handleSave()
 | ||
|     },
 | ||
|     calculatePPD() {
 | ||
|       // 最低点PPD(13)、PPD最低点LDi(15)、	PPD最低点SDi(16)
 | ||
|       // 长径(0)/短径(1)发生改变,计算PPD(12)、相比最低点PPD增加百分比(17)、相比PPD最低点LDi增加值(18)、相比PPD最低点SDi增加值(19)
 | ||
|       var ldi = this.getQuestionVal(0)
 | ||
|       var sdi = this.getQuestionVal(1)
 | ||
|       var ppd = null
 | ||
|       if (!isNaN(parseFloat(ldi)) && !isNaN(parseFloat(sdi))) {
 | ||
|         ldi = parseFloat(ldi)
 | ||
|         sdi = parseFloat(sdi)
 | ||
|         ppd = (ldi * sdi).toFixed(this.digitPlaces)
 | ||
|       } else {
 | ||
|         ppd = 'NA'
 | ||
|       }
 | ||
|       var ppdObj = this.questions.find(i => i.QuestionMark === 12)
 | ||
|       this.$set(this.questionForm, ppdObj.Id, ppd)
 | ||
|       // if(isNaN(parseFloat(ppd))){
 | ||
| 
 | ||
|       // }
 | ||
|       var minPPD = this.getQuestionVal(13)
 | ||
|       var pddIncrease = null
 | ||
|       // 相比最低点PPD增加百分比
 | ||
|       var ppdIncreaseObj = this.questions.find(i => i.QuestionMark === 17)
 | ||
|       if (!isNaN(parseFloat(minPPD)) && !isNaN(parseFloat(ppd))) {
 | ||
|         minPPD = parseFloat(minPPD)
 | ||
|         pddIncrease = (((ppd - minPPD) / minPPD).toFixed(this.digitPlaces)) * 100
 | ||
|         this.$set(this.questionForm, ppdIncreaseObj.Id, pddIncrease + '%')
 | ||
|       } else {
 | ||
|         this.$set(this.questionForm, ppdIncreaseObj.Id, 'NA')
 | ||
|       }
 | ||
|       var minLDi = this.getQuestionVal(15)
 | ||
|       var ldiIncrease = null
 | ||
|       // 相比PPD最低点LDi增加值
 | ||
|       var ldiIncreaseObj = this.questions.find(i => i.QuestionMark === 18)
 | ||
|       if (!isNaN(parseFloat(minLDi)) && !isNaN(parseFloat(ldi))) {
 | ||
|         minLDi = parseFloat(minLDi)
 | ||
|         ldiIncrease = ldi - minLDi
 | ||
|         this.$set(this.questionForm, ldiIncreaseObj.Id, ldiIncrease.toFixed(this.digitPlaces))
 | ||
|       } else {
 | ||
|         this.$set(this.questionForm, ldiIncreaseObj.Id, 'NA')
 | ||
|       }
 | ||
|       var minSDi = this.getQuestionVal(16)
 | ||
|       var sdiIncrease = null
 | ||
|       // 相比PPD最低点SDi增加值
 | ||
|       var sdiIncreaseObj = this.questions.find(i => i.QuestionMark === 19)
 | ||
|       if (!isNaN(parseFloat(minSDi)) && !isNaN(parseFloat(sdi))) {
 | ||
|         minSDi = parseFloat(minSDi)
 | ||
|         sdiIncrease = sdi - minSDi
 | ||
|         this.$set(this.questionForm, sdiIncreaseObj.Id, sdiIncrease.toFixed(this.digitPlaces))
 | ||
|       } else {
 | ||
|         this.$set(this.questionForm, sdiIncreaseObj.Id, 'NA')
 | ||
|       }
 | ||
| 
 | ||
|       /** 疾病进展* **/
 | ||
|       if (!this.isBaseLineTask && ldi && pddIncrease && ldiIncrease && sdiIncrease) {
 | ||
|         /** 疾病进展
 | ||
|          * 15mm<当前靶病灶LDi≤20mm
 | ||
|          * 相比最低点PPD增加百分比 ≥50%
 | ||
|          * 相比PPD最低点LDi增加值 ≥5 mm
 | ||
|          * 并且相比PPD最低点SDi增加值≥5 mm
 | ||
|         **/
 | ||
|         if ((ldi > 15 && ldi <= 20) && (pddIncrease >= 50) && (ldiIncrease >= 5) && (sdiIncrease >= 5)) {
 | ||
|           const stateId = this.getQuestionId(7)
 | ||
|           console.log(stateId)
 | ||
|           this.$set(this.questionForm, stateId, 4)
 | ||
|           this.stateDisabled = true
 | ||
|         } else if ((ldi > 20) && (pddIncrease >= 50) && (ldiIncrease >= 10) && (sdiIncrease >= 10)) {
 | ||
|           /** 疾病进展
 | ||
|            * 当前靶病灶LDi>20 mm
 | ||
|            * 相比最低点PPD增加百分比 ≥50%
 | ||
|            * 相比PPD最低点LDi增加值 ≥10 mm
 | ||
|            * 并且相比PPD最低点SDi增加值Sdi ≥10 mm
 | ||
|           **/
 | ||
|           const stateId = this.getQuestionId(7)
 | ||
|           console.log(stateId)
 | ||
|           this.$set(this.questionForm, stateId, 4)
 | ||
|           this.stateDisabled = true
 | ||
|         } else {
 | ||
|           this.stateDisabled = false
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     returnFloat(num) {
 | ||
|       if (num) return
 | ||
|       var value = Math.round(parseFloat(num) * 100) / 100
 | ||
|       var s = value.toString().split('.')
 | ||
|       if (s.length === 1) {
 | ||
|         value = value.toString() + '.00'
 | ||
|         return value
 | ||
|       }
 | ||
|       if (s.length > 1) {
 | ||
|         if (s[1].length < 2) {
 | ||
|           value = value.toString() + '0'
 | ||
|         }
 | ||
|         return value
 | ||
|       }
 | ||
|     },
 | ||
|     getQuestionVal(questionMark) {
 | ||
|       var idx = this.questions.findIndex(i => i.QuestionMark === questionMark)
 | ||
|       if (idx > -1) {
 | ||
|         var questionId = this.questions[idx].Id
 | ||
|         return this.questionForm[questionId]
 | ||
|       } else {
 | ||
|         return ''
 | ||
|       }
 | ||
|     },
 | ||
|     filterState(arr) {
 | ||
|       if (!this.isBaseLineTask) {
 | ||
|         var isLymphLesion = this.getQuestionVal(2)
 | ||
|         isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|         const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : 0
 | ||
|         const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : 0
 | ||
|         const lastLesionL = !isNaN(parseInt(this.answers.LastTaskMajorAxis)) ? parseInt(this.answers.LastTaskMajorAxis) : 0
 | ||
|         const lastLesionS = !isNaN(parseInt(this.answers.LastTaskShortAxis)) ? parseInt(this.answers.LastTaskShortAxis) : 0
 | ||
|         if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort < lastLesionS) {
 | ||
|           arr = arr.filter(i => i.value !== 1)
 | ||
|         } else if (this.lesionType === 1 && isLymphLesion === 1 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionShort >= 10 && lesionShort > lastLesionS) {
 | ||
|           arr = arr.filter(i => i.value === 0 || i.value === 1)
 | ||
|         } else if (this.lesionType === 1 && isLymphLesion === 0 && this.questionForm.MeasureData && (this.questionForm.MeasureData.type === 'Length' || this.questionForm.MeasureData.type === 'Bidirectional') && lesionLength < lastLesionL) {
 | ||
|           arr = arr.filter(i => i.value !== 1)
 | ||
|         }
 | ||
|         return arr
 | ||
|       } else {
 | ||
|         return arr
 | ||
|       }
 | ||
|     },
 | ||
|     setDeleteInfo(deleteInfo) {
 | ||
|       this.deleteInfo = deleteInfo
 | ||
|     },
 | ||
|     deleteOldLesion(questionId, rowId) {
 | ||
|       return new Promise((resolve, reject) => {
 | ||
|         var param = {
 | ||
|           visitTaskId: this.visitTaskId,
 | ||
|           questionId: questionId,
 | ||
|           rowId: rowId
 | ||
|         }
 | ||
|         deleteReadingRowAnswer(param)
 | ||
|           .then(async res => {
 | ||
|             resolve()
 | ||
|           }).catch(() => {
 | ||
|           })
 | ||
|       })
 | ||
|     },
 | ||
|     // async uploadScreenshots(fileName, file) {
 | ||
|     //   try {
 | ||
|     //     file = this.convertBase64ToBlob(file)
 | ||
|     //     const formData = new FormData()
 | ||
|     //     formData.append('file', file)
 | ||
|     //     const result = await uploadPrintscreen(formData, this.$route.query.subjectId)
 | ||
|     //     result.url = result.Result.Path
 | ||
|     //     // const result = await this.OSSclient.put(`${fileName}.png`, file)
 | ||
|     //     return { isSuccess: true, result: result }
 | ||
|     //   } catch (e) {
 | ||
|     //     console.log(e)
 | ||
|     //     return { isSuccess: false, result: e }
 | ||
|     //   }
 | ||
|     // },
 | ||
|     async uploadScreenshots(fileName, file) {
 | ||
|       try {
 | ||
|         file = this.convertBase64ToBlob(file)
 | ||
|         var trialId = this.$route.query.trialId
 | ||
|         var subjectId = this.$route.query.trialId
 | ||
|         const result = await this.OSSclient.put(`/${trialId}/Read/${subjectId}/Visit/${fileName}.png`, file)
 | ||
|         return { isSuccess: true, result: result }
 | ||
|       } catch (e) {
 | ||
|         console.log(e)
 | ||
|         return { isSuccess: false, result: e }
 | ||
|       }
 | ||
|     },
 | ||
|     convertBase64ToBlob(imageEditorBase64) {
 | ||
|       var base64Arr = imageEditorBase64.split(',')
 | ||
|       var imgtype = ''
 | ||
|       var base64String = ''
 | ||
|       if (base64Arr.length > 1) {
 | ||
|         // 如果是图片base64,去掉头信息
 | ||
|         base64String = base64Arr[1]
 | ||
|         imgtype = base64Arr[0].substring(
 | ||
|           base64Arr[0].indexOf(':') + 1,
 | ||
|           base64Arr[0].indexOf(';')
 | ||
|         )
 | ||
|       }
 | ||
|       // 将base64解码
 | ||
|       var bytes = atob(base64String)
 | ||
|       // var bytes = base64;
 | ||
|       var bytesCode = new ArrayBuffer(bytes.length)
 | ||
|       // 转换为类型化数组
 | ||
|       var byteArray = new Uint8Array(bytesCode)
 | ||
| 
 | ||
|       // 将base64转换为ascii码
 | ||
|       for (var i = 0; i < bytes.length; i++) {
 | ||
|         byteArray[i] = bytes.charCodeAt(i)
 | ||
|       }
 | ||
| 
 | ||
|       // 生成Blob对象(文件对象)
 | ||
|       return new Blob([bytesCode], { type: imgtype })
 | ||
|     },
 | ||
|     handleSave() {
 | ||
|       this.$refs.measurementForm.validate(async valid => {
 | ||
|         if (!valid) return
 | ||
|         const loading = this.$loading({ fullscreen: true })
 | ||
|         var measureData = this.questionForm.MeasureData
 | ||
|         var lesionState = this.getQuestionVal(7)
 | ||
|         // var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? Number(this.getQuestionVal(0)) : ''
 | ||
|         // var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? Number(this.getQuestionVal(1)) : ''
 | ||
|         var lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
 | ||
|         var lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
 | ||
|         var lymphNodes = this.getQuestionVal(2)
 | ||
|         lymphNodes = (lymphNodes !== null && lymphNodes !== undefined) ? parseInt(lymphNodes) : null
 | ||
|         if (this.isBaseLineTask) {
 | ||
|           // 基线
 | ||
|           // 靶病灶且状态为存在(0)
 | ||
|           if (this.lesionType === 0 && lesionState === 0) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               //  评估状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。
 | ||
|               if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15 && lesionLength >= 2 * measureData.thick)) {
 | ||
|                 this.$confirm('状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 评估状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。
 | ||
|               if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10 && lesionLength >= 2 * measureData.thick)) {
 | ||
|                 this.$confirm('评估状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 非靶病灶且状态为存在(0)
 | ||
|           if (this.lesionType === 1 && lesionState === 0) {
 | ||
|             if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
 | ||
|               // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记
 | ||
|               this.$confirm(this.$t('trials:reading:warnning:msg21'), {
 | ||
|                 type: 'warning',
 | ||
|                 showCancelButton: false,
 | ||
|                 callback: action => {}
 | ||
|               })
 | ||
|               loading.close()
 | ||
|               return
 | ||
|             }
 | ||
|           }
 | ||
|         } else {
 | ||
|           // 非基线
 | ||
|           // 靶病灶且状态为存在(0)
 | ||
|           if (this.lesionType === 0 && lesionState === 0) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15)) {
 | ||
|                 // 状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。
 | ||
|                 this.$confirm('状态为“存在”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结靶病灶 直径测量工具
 | ||
|               if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10)) {
 | ||
|                 // 状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。
 | ||
|                 this.$confirm('状态为“存在”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
|           // 靶病灶且状态为太小(1)
 | ||
|           if (this.lesionType === 0 && lesionState === 1) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 必须使用箭头工具,长径、短径记录为5mm
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为太小的淋巴结靶病灶需使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg25'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               } else if (measureData && measureData.type === 'ArrowAnnotate') {
 | ||
|                 const shortId = this.getQuestionId(1)
 | ||
|                 this.$set(this.questionForm, shortId, 5)
 | ||
|                 lesionShort = 5
 | ||
|                 const lengthId = this.getQuestionId(0)
 | ||
|                 this.$set(this.questionForm, lengthId, 5)
 | ||
|                 lesionLength = 5
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结靶病灶 箭头工具,长径记录为5mm
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为太小的非淋巴结靶病灶需使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg26'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               } else if (measureData && measureData.type === 'ArrowAnnotate') {
 | ||
|                 const shortId = this.getQuestionId(1)
 | ||
|                 this.$set(this.questionForm, shortId, 5)
 | ||
|                 lesionShort = 5
 | ||
|                 const lengthId = this.getQuestionId(0)
 | ||
|                 this.$set(this.questionForm, lengthId, 5)
 | ||
|                 lesionLength = 5
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 靶病灶且状态为无法评估(2)
 | ||
|           if (this.lesionType === 0 && lesionState === 2) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 不需要添加标记
 | ||
|               if (measureData) {
 | ||
|                 // 评估状态为无法评估的淋巴结靶病灶不需要添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg27'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结靶病灶 不需要添加标记
 | ||
|               if (measureData) {
 | ||
|                 // 状态为无法评估的非淋巴结靶病灶不需要添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg28'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 靶病灶且状态为消失(3)
 | ||
|           if (this.lesionType === 0 && lesionState === 3) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 使用箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate' || measureData.type === 'Bidirectional'))) {
 | ||
|                 this.$confirm(`评估状态为消失的淋巴结靶病灶需使用箭头工具或长短径工具添加标记!`, {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               } else if (measureData && measureData.type === 'Bidirectional' && lesionShort > 15) {
 | ||
|                 this.$confirm(`评估状态为消失的淋巴结靶病灶,短径应不大于15mm!`, {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|               // if (!(measureData && (measureData.type === 'Bidirectional' && lesionShort < 10))) {
 | ||
|               //   // `评估状态为消失的淋巴结靶病灶需使用长短径工具添加标记,且短径需小于10mm!`
 | ||
|               //   this.$confirm(this.$t('trials:reading:warnning:msg29'), {
 | ||
|               //     type: 'warning',
 | ||
|               //     showCancelButton: false,
 | ||
|               //     callback: action => {}
 | ||
|               //   })
 | ||
|               //   loading.close()
 | ||
|               //   return
 | ||
|               // }
 | ||
|             } else {
 | ||
|               // 非淋巴结靶病灶 箭头工具
 | ||
|               if (!(measureData && measureData.type === 'ArrowAnnotate')) {
 | ||
|                 // 评估状态为消失的非淋巴结靶病灶只能使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg30'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|               //  else if (measureData && measureData.type === 'ArrowAnnotate') {
 | ||
|               //   const lId = this.getQuestionId(0)
 | ||
|               //   this.$set(this.questionForm, lId, 0)
 | ||
|               //   lesionLength = 0
 | ||
|               // }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 靶病灶且状态为疾病进展(4)
 | ||
|           if (this.lesionType === 0 && lesionState === 4) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 15)) {
 | ||
|                 // 状态为“疾病进展”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。
 | ||
|                 this.$confirm('状态为“疾病进展”的淋巴结靶病灶,长径应大于15 mm,请使用长短径测量工具添加标记。', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结靶病灶 直径测量工具
 | ||
|               if (!(measureData && measureData.type === 'Bidirectional' && lesionLength > 10)) {
 | ||
|                 // 状态为“疾病进展”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。
 | ||
|                 this.$confirm('状态为“疾病进展”的非淋巴结靶病灶,长径应大于10 mm,请使用长短径测量工具添加标记。', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 非靶病灶且状态为存在(0)
 | ||
|           if (this.lesionType === 1 && lesionState === 0) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结非靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
 | ||
|                 // 评估状态为存在的淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg31'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结非靶病灶 直径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
 | ||
|                 // 评估状态为存在的非淋巴结非靶病灶需使用长短径测量工具或箭头工具添加标记!
 | ||
|                 this.$confirm('评估状态为存在的非淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记!', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 非靶病灶且状态为显著增大(1)
 | ||
|           if (this.lesionType === 1 && lesionState === 1) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
 | ||
|                 // `评估状态为显著增大的淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记!`
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg33'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结非靶病灶 矩形工具
 | ||
|               if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'RectangleRoi'))) {
 | ||
|                 // 评估状态为显著增大的非淋巴结非靶病灶需使用矩形工具添加标记!
 | ||
|                 this.$confirm('评估状态为显著增大的非淋巴结非靶病灶需使用长短径测量工具或矩形工具添加标记!', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 非靶病灶且状态为无法评估(2)
 | ||
|           if (this.lesionType === 1 && lesionState === 2) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 无标记
 | ||
|               if (measureData) {
 | ||
|                 // 评估状态为无法评估的淋巴结非靶病灶不需要添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg35'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结非靶病灶 无标记
 | ||
|               if (measureData) {
 | ||
|                 // 评估状态为无法评估的非淋巴结非靶病灶不需要添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg36'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 非靶病灶且状态为消失(3)
 | ||
|           if (this.lesionType === 1 && lesionState === 3) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为消失的淋巴结非靶病灶需使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg37'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结非靶病灶 箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为消失的非淋巴结非靶病灶需使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg38'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 新病灶且状态为存在(0)
 | ||
|           if (this.lesionType === 2 && lesionState === 0) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为存在的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg39'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结非靶病灶 直径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为存在的非淋巴结新病灶需使用长短径测量工具或箭头工具添加标记!
 | ||
|                 this.$confirm('评估状态为存在的非淋巴结新病灶需使用长短径测量工具或箭头工具添加标记!', {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 新病灶且状态为疑似  不限制(1)
 | ||
|           // if (this.lesionType === 2 && lesionState === 1) {
 | ||
|           //   if (lymphNodes === 1) {
 | ||
|           //     // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|           //     if (!(measureData && (measureData.type === 'Bidirectional' || measureData.type === 'ArrowAnnotate'))) {
 | ||
|           //       // 评估状态为疑似的淋巴结新病灶需使用长短径测量工具或箭头工具添加标记!
 | ||
|           //       this.$confirm(this.$t('trials:reading:warnning:msg41'), {
 | ||
|           //         type: 'warning',
 | ||
|           //         showCancelButton: false,
 | ||
|           //         callback: action => {}
 | ||
|           //       })
 | ||
|           //       loading.close()
 | ||
|           //       return
 | ||
|           //     }
 | ||
|           //   } else {
 | ||
|           //     // 非淋巴结非靶病灶 直径测量工具、箭头工具
 | ||
|           //     if (!(measureData && (measureData.type === 'Length' || measureData.type === 'ArrowAnnotate'))) {
 | ||
|           //       // `评估状态为疑似的非淋巴结新病灶需使用直径测量工具或箭头工具添加标记!`
 | ||
|           //       this.$confirm(this.$t('trials:reading:warnning:msg42'), {
 | ||
|           //         type: 'warning',
 | ||
|           //         showCancelButton: false,
 | ||
|           //         callback: action => {}
 | ||
|           //       })
 | ||
|           //       loading.close()
 | ||
|           //       return
 | ||
|           //     }
 | ||
|           //   }
 | ||
|           // }
 | ||
| 
 | ||
|           // 新病灶且状态为无法评估(2)
 | ||
|           if (this.lesionType === 2 && lesionState === 2) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|               if (measureData) {
 | ||
|                 // `评估状态为无法评估的淋巴结新病灶不需要添加标记!`
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg43'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 非淋巴结非靶病灶 直径测量工具、箭头工具
 | ||
|               if (measureData) {
 | ||
|                 // 评估状态为无法评估的非淋巴结新病灶不需要添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg44'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           // 新病灶且状态为消失(3)
 | ||
|           if (this.lesionType === 2 && lesionState === 3) {
 | ||
|             if (lymphNodes === 1) {
 | ||
|               // 淋巴结靶病灶 必须使用长短径测量工具、箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为消失的淋巴结新病灶需使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg45'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             } else {
 | ||
|               // 箭头工具
 | ||
|               if (!(measureData && (measureData.type === 'ArrowAnnotate'))) {
 | ||
|                 // 评估状态为消失的非淋巴结新病灶需使用箭头工具添加标记!
 | ||
|                 this.$confirm(this.$t('trials:reading:warnning:msg46'), {
 | ||
|                   type: 'warning',
 | ||
|                   showCancelButton: false,
 | ||
|                   callback: action => {}
 | ||
|                 })
 | ||
|                 loading.close()
 | ||
|                 return
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
| 
 | ||
|         DicomEvent.$emit('getScreenshots', async val => {
 | ||
|           // 靶病灶状态为0(存在)时,一定存在长径或者长短径(长径、十字线 )
 | ||
|           // 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
 | ||
|           // 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
 | ||
|           var picturePath = ''
 | ||
|           if (val) {
 | ||
|             var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
 | ||
| 
 | ||
|             picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
 | ||
| 
 | ||
|             var answers = []
 | ||
|             var reg = new RegExp(/^[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}$/)
 | ||
|             for (const k in this.questionForm) {
 | ||
|               if (reg.test(k)) {
 | ||
|                 if (answers.findIndex(i => i.tableQuestionId === k) === -1) {
 | ||
|                   answers.push({ tableQuestionId: k, answer: this.questionForm[k] })
 | ||
|                 }
 | ||
|               }
 | ||
|             }
 | ||
| 
 | ||
|             var params = {
 | ||
|               questionId: this.parentQsId,
 | ||
|               rowId: this.questionForm.RowId,
 | ||
|               rowIndex: this.answers.RowIndex,
 | ||
|               visitTaskId: this.visitTaskId,
 | ||
|               trialId: this.trialId,
 | ||
|               measureData: measureData ? JSON.stringify(measureData) : '',
 | ||
|               answerList: answers,
 | ||
|               isCanEditPosition: this.questionForm.IsCanEditPosition,
 | ||
|               studyId: measureData ? this.questionForm.MeasureData.studyId : '',
 | ||
|               seriesId: measureData ? this.questionForm.MeasureData.seriesId : '',
 | ||
|               instanceId: measureData ? this.questionForm.MeasureData.instanceId : '',
 | ||
|               numberOfFrames: measureData && !isNaN(parseInt(this.questionForm.MeasureData.frame)) ? parseInt(this.questionForm.MeasureData.frame) : 0,
 | ||
|               picturePath: picturePath,
 | ||
|               organInfoId: this.questionForm.OrganInfoId,
 | ||
|               markTool: measureData ? measureData.type : ''
 | ||
|             }
 | ||
|             if (this.questionForm.IsDicomReading === false) {
 | ||
|               params.isDicomReading = false
 | ||
|             }
 | ||
|             if (this.deleteInfo) {
 | ||
|               await this.deleteOldLesion(this.deleteInfo.questionId, this.deleteInfo.rowId)
 | ||
|               this.deleteInfo = null
 | ||
|               params.rowId = ''
 | ||
|             }
 | ||
|             submitTableQuestion(params).then(async res => {
 | ||
|               // 保存成功!
 | ||
|               this.$message.success(this.$t('common:message:savedSuccessfully'))
 | ||
|               this.currentMarkTool = measureData ? measureData.type : ''
 | ||
|               // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断);2:已保存,信息完整
 | ||
| 
 | ||
|               this.$set(this.questionForm, 'saveTypeEnum', 2)
 | ||
|               this.originalQuestionForm = { ...this.questionForm }
 | ||
|               loading.close()
 | ||
|               var isLymphLesion = this.getQuestionVal(2)
 | ||
|               isLymphLesion = isLymphLesion ? parseInt(isLymphLesion) : null
 | ||
|               var lesionOrgan = this.getQuestionVal(6)
 | ||
|               this.$set(this.questionForm, 'RowId', res.Result.RowId)
 | ||
|               const lesionPart = this.getQuestionVal(8)
 | ||
|               const lesionState = Number(this.getQuestionVal(7))
 | ||
|               this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, lesionState, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
 | ||
| 
 | ||
|               // await store.dispatch('reading/refreshMeasuredData', this.visitTaskId)
 | ||
|               // DicomEvent.$emit('getMeasureData')
 | ||
|               this.$emit('close')
 | ||
|               DicomEvent.$emit('readingPageUpdate', {})
 | ||
|               DicomEvent.$emit('getReportInfo', true)
 | ||
|               DicomEvent.$emit('setMeasuredToolsPassive')
 | ||
|             }).catch(() => { loading.close() })
 | ||
|           }
 | ||
|         })
 | ||
|       })
 | ||
|     },
 | ||
|     handleDeleteMeasureData() {
 | ||
|       // 是否确认清除标记?
 | ||
|       this.$confirm(this.$t('trials:reading:warnning:msg47'), {
 | ||
|         type: 'warning',
 | ||
|         distinguishCancelAndClose: true
 | ||
|       })
 | ||
|         .then(async() => {
 | ||
|           this.stateDisabled = false
 | ||
|           this.organList = []
 | ||
|           await this.getOrganInfoList()
 | ||
|           // 重置长短径 和 状态
 | ||
|           var lengId = this.getQuestionId(0)
 | ||
|           this.$set(this.questionForm, lengId, '')
 | ||
|           var shortId = this.getQuestionId(1)
 | ||
|           this.$set(this.questionForm, shortId, '')
 | ||
| 
 | ||
|           var stateId = this.getQuestionId(7)
 | ||
|           this.$set(this.questionForm, stateId, '')
 | ||
|           // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断)
 | ||
|           if (this.questionForm.RowId) {
 | ||
|             this.$set(this.questionForm, 'saveTypeEnum', 1)
 | ||
|           } else {
 | ||
|             this.$set(this.questionForm, 'saveTypeEnum', 0)
 | ||
|           }
 | ||
|           await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
 | ||
|           DicomEvent.$emit('getMeasureData')
 | ||
|           // Store.$emit('updateImage', this.questionForm.MeasureData.instanceId)
 | ||
|           var isLymphLesion = this.getQuestionVal(2)
 | ||
|           isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|           const lesionPart = this.getQuestionVal(8)
 | ||
|           const lesionOrgan = this.getQuestionVal(6)
 | ||
|           const lesionLength = ''
 | ||
|           const lesionShort = ''
 | ||
|           const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
 | ||
| 
 | ||
|           if (!this.questionForm.IsDicomReading) {
 | ||
|             DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
 | ||
|           }
 | ||
|           this.$set(this.questionForm, 'IsDicomReading', true)
 | ||
| 
 | ||
|           this.$set(this.questionForm, 'MeasureData', '')
 | ||
|           let anwsers = null
 | ||
|           if (this.answers.measureObj) {
 | ||
|             anwsers = Object.assign({ measureObj: '' }, this.questionForm)
 | ||
|           } else {
 | ||
|             anwsers = Object.assign({}, this.questionForm)
 | ||
|           }
 | ||
|           this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: anwsers })
 | ||
|           if (this.lesionType === 0) {
 | ||
|             this.calculatePPD()
 | ||
|           }
 | ||
|           DicomEvent.$emit('refreshStudyListMeasureData')
 | ||
|         })
 | ||
|         .catch(() => {})
 | ||
|     },
 | ||
|     handleDelete() {
 | ||
|       // 是否确认删除?
 | ||
|       this.$confirm(this.$t('trials:reading:warnning:msg48'), {
 | ||
|         type: 'warning',
 | ||
|         distinguishCancelAndClose: true
 | ||
|       })
 | ||
|         .then(async() => {
 | ||
|           if (this.questionForm.RowId) {
 | ||
|             const loading = this.$loading({ fullscreen: true })
 | ||
|             var param = {
 | ||
|               visitTaskId: this.visitTaskId,
 | ||
|               questionId: this.parentQsId,
 | ||
|               rowId: this.questionForm.RowId
 | ||
|             }
 | ||
|             deleteReadingRowAnswer(param)
 | ||
|               .then(async res => {
 | ||
|                 loading.close()
 | ||
|                 if (res.IsSuccess) {
 | ||
|                 // this.$emit('getReadingQuestionAndAnswer')
 | ||
|                   if (this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
 | ||
|                     await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
 | ||
|                   }
 | ||
|                   // await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
 | ||
|                   // DicomEvent.$emit('getMeasureData')
 | ||
|                   if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
 | ||
|                     DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
 | ||
|                   }
 | ||
|                   this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
 | ||
|                   DicomEvent.$emit('getReportInfo', true)
 | ||
|                   DicomEvent.$emit('readingPageUpdate', {})
 | ||
|                   // if (!this.questionForm.IsDicomReading) {
 | ||
|                   //   DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
 | ||
|                   // }
 | ||
|                   // '删除成功!'
 | ||
|                   this.$message.success(this.$t('common:message:deletedSuccessfully'))
 | ||
|                   loading.close()
 | ||
|                 }
 | ||
|               }).catch(() => { loading.close() })
 | ||
|           } else {
 | ||
|             // const loading = this.$loading({ fullscreen: true })
 | ||
|             // 移除新建病灶并关闭窗口
 | ||
|             if (this.questionForm.MeasureData && this.questionForm.IsDicomReading) {
 | ||
|               await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
 | ||
|             }
 | ||
|             // DicomEvent.$emit('getMeasureData')
 | ||
|             if (!this.questionForm.IsDicomReading && this.questionForm.MeasureData) {
 | ||
|               DicomEvent.$emit('removeNoneDicomMeasureData', this.questionForm.MeasureData)
 | ||
|             }
 | ||
|             this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
 | ||
|             // loading.close()
 | ||
|           }
 | ||
|           DicomEvent.$emit('refreshStudyListMeasureData')
 | ||
|         })
 | ||
|     },
 | ||
|     handleClose() {
 | ||
|       if (!this.questionForm.RowId) {
 | ||
|         // '当前病灶为新建病灶,未保存。如果关闭窗口,将会删除病灶信息,是否继续?'
 | ||
|         this.$confirm(this.$t('trials:reading:warnning:msg49'), {
 | ||
|           type: 'warning',
 | ||
|           distinguishCancelAndClose: true
 | ||
|         })
 | ||
|           .then(async() => {
 | ||
|             // 移除新建病灶并关闭窗口
 | ||
|             if (this.questionForm.MeasureData) {
 | ||
|               await store.dispatch('reading/removeMeasuredData', { visitTaskId: this.visitTaskId, measureData: this.questionForm.MeasureData, questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex })
 | ||
|             }
 | ||
|             // await store.dispatch('reading/removeReadingQuestionAndAnswer', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
 | ||
|             DicomEvent.$emit('getMeasureData')
 | ||
|             this.$emit('close', { lesionType: this.lesionType, rowIndex: this.rowIndex, visitTaskId: this.visitTaskId })
 | ||
|           })
 | ||
|           .catch(() => {})
 | ||
|       } else {
 | ||
|         // saveTypeEnum 0:未保存过(新建病灶);1:已保存,信息不完整(随访初始化病灶/分裂病灶,通过状态判断)
 | ||
| 
 | ||
|         if (this.questionForm.saveTypeEnum === 1) {
 | ||
|           // // 当前病灶信息有更新,未保存,是否继续?
 | ||
|           // this.$confirm(this.$t('trials:reading:warnning:msg50'), {
 | ||
|           //   type: 'warning',
 | ||
|           //   distinguishCancelAndClose: true
 | ||
|           // })
 | ||
|           //   .then(() => {
 | ||
|           //     this.$emit('close')
 | ||
|           //   })
 | ||
|           //   .catch(() => {})
 | ||
|           this.$emit('close')
 | ||
|         } else {
 | ||
|           this.$emit('close')
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     setState() {
 | ||
|       this.$nextTick(() => {
 | ||
|         if (this.isCurrentTask && this.readingTaskState < 2) {
 | ||
|           var lesionState = this.getQuestionVal(7)
 | ||
|           if (isNaN(parseInt(lesionState)) && this.answers.IsFristAdd === 'False') {
 | ||
|             const stateId = this.getQuestionId(7)
 | ||
|             this.$set(this.questionForm, stateId, 2)
 | ||
|             var isLymphLesion = this.getQuestionVal(2)
 | ||
|             isLymphLesion = !isNaN(parseInt(isLymphLesion)) ? parseInt(isLymphLesion) : null
 | ||
|             const lesionPart = this.getQuestionVal(8)
 | ||
|             const lesionOrgan = this.getQuestionVal(6)
 | ||
|             const lesionLength = !isNaN(parseInt(this.getQuestionVal(0))) ? this.getQuestionVal(0) : ''
 | ||
|             const lesionShort = !isNaN(parseInt(this.getQuestionVal(1))) ? this.getQuestionVal(1) : ''
 | ||
|             const lesionState = !isNaN(parseInt(this.getQuestionVal(7))) ? parseInt(this.getQuestionVal(7)) : ''
 | ||
|             this.$emit('resetQuestions', { isLymphLesion, lesionPart, lesionOrgan, lesionShort, lesionState, saveTypeEnum: this.questionForm.saveTypeEnum, lesionLength, rowIndex: this.rowIndex, questionId: this.parentQsId, anwsers: this.questionForm })
 | ||
|           }
 | ||
|         }
 | ||
|       })
 | ||
|     }
 | ||
|   }
 | ||
| }
 | ||
| </script>
 | ||
| <style lang="scss" scoped>
 | ||
| .measurement-form{
 | ||
|   /deep/ .el-form-item__label{
 | ||
|     color: #c3c3c3;
 | ||
|   }
 | ||
|   /deep/ .el-input .el-input__inner{
 | ||
|     background-color: transparent;
 | ||
|     color: #ddd;
 | ||
|     border: 1px solid #5e5e5e;
 | ||
|   }
 | ||
|   /deep/ .el-form-item{
 | ||
|     display: flex;
 | ||
|     flex-direction: row;
 | ||
|     justify-content: flex-start;
 | ||
|     flex-wrap: wrap;
 | ||
|   }
 | ||
|   /deep/ .el-form-item__content{
 | ||
|     flex: 1;
 | ||
|   }
 | ||
|   /deep/ .el-input.is-disabled .el-input__inner{
 | ||
|     background-color: #646464a1;
 | ||
|   }
 | ||
|   /deep/ .el-input-group__append, .el-input-group__prepend{
 | ||
|     padding: 0 10px;
 | ||
|   }
 | ||
|   /deep/ .el-select.is-disabled .el-input__inner{
 | ||
|     background-color: #646464a1;
 | ||
|   }
 | ||
|   /deep/ .el-button--mini, .el-button--mini.is-round {
 | ||
|     padding: 7px 10px;
 | ||
|   }
 | ||
|   .el-form-item__content
 | ||
|   .el-select{
 | ||
|     width: 100%;
 | ||
|   }
 | ||
|   .input-width1{
 | ||
|     width: calc(100% -60px)!important;
 | ||
|   }
 | ||
|   .input-width2{
 | ||
|     width: 100% !important;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| </style>
 |