Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is running Details

main
caiyiling 2026-05-21 13:52:42 +08:00
commit 3a546e6e89
9 changed files with 317 additions and 111 deletions

View File

@ -2,39 +2,101 @@
<el-form ref="equipmentForm" :model="form" :rules="rules" label-width="150px"> <el-form ref="equipmentForm" :model="form" :rules="rules" label-width="150px">
<div class="base-dialog-body"> <div class="base-dialog-body">
<!-- 扫描设备 --> <!-- 扫描设备 -->
<el-form-item :label="$t('trials:equiptResearch:form:equipment')" prop="EquipmentTypeId"> <el-form-item :label="$t('trials:equiptResearch:form:equipment')" prop="EquipmentTypeId"
<el-select v-if="EquipmentControlFieldList.includes('EquipmentTypeEnum')">
v-model="form.EquipmentTypeId" <div style="display: flex;align-items: center;">
style="width:100%" <el-select v-model="form.EquipmentTypeEnum" style="width:100%" @change="form.OtherEquipmentType = null">
> <el-option v-for="item of $d.SiteSurvey_ScanEquipmentType" :key="item.id" :label="item.label"
<!-- <el-option :value="item.value" />
v-for="item of dictionaryList.SiteSurvey_ScanEquipmentType" </el-select>
:key="item.Id" <el-input placeholder="" v-model="form.OtherEquipmentType" style="margin-left: 10px;"
:label="item.Value" v-if="form.EquipmentTypeEnum == '-1'" clearable>
:value="item.Id" </el-input>
/> --> </div>
<el-option
v-for="item of $d.SiteSurvey_ScanEquipmentType"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<!-- 扫描参数 --> <!-- 扫描参数 -->
<el-form-item v-if="isShowParameters" :label="$t('trials:equiptResearch:form:param')"> <el-form-item :label="$t('trials:equiptResearch:form:param')"
v-if="EquipmentControlFieldList.includes('Parameters')">
<el-input v-model="form.Parameters" /> <el-input v-model="form.Parameters" />
</el-form-item> </el-form-item>
<!-- 扫描仪器制造商名称 --> <!-- 扫描仪器制造商名称 -->
<el-form-item :label="$t('trials:equiptResearch:form:manufacturer')"> <el-form-item :label="$t('trials:equiptResearch:form:manufacturer')"
<el-input v-model="form.ManufacturerName" /> v-if="EquipmentControlFieldList.includes('ManufacturerType')">
<div style="display: flex;align-items: center;">
<el-select v-model="form.ManufacturerType" style="width:100%" @change="form.ManufacturerName = null">
<el-option v-for="item of $d.ManufacturerType" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
<el-input placeholder="" v-model="form.ManufacturerName" style="margin-left: 10px;"
v-if="form.ManufacturerType == '-1'" clearable>
</el-input>
</div>
</el-form-item> </el-form-item>
<!-- 扫描仪型号 --> <!-- 扫描仪型号 -->
<el-form-item :label="$t('trials:equiptResearch:form:model')"> <el-form-item :label="$t('trials:equiptResearch:form:model')"
v-if="EquipmentControlFieldList.includes('ScannerType')">
<el-input v-model="form.ScannerType" /> <el-input v-model="form.ScannerType" />
</el-form-item> </el-form-item>
<!-- 磁场强度 -->
<el-form-item :label="$t('trials:equiptResearch:form:MagneticFieldStrengthType')"
v-if="EquipmentControlFieldList.includes('MagneticFieldStrengthType')">
<el-select v-model="form.MagneticFieldStrengthType" style="width:100%">
<el-option v-for="item of $d.MagneticFieldStrengthType" :key="item.id" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<!-- 体部线圈通道数 -->
<el-form-item :label="$t('trials:equiptResearch:form:BodyCoilChannelCount')"
v-if="EquipmentControlFieldList.includes('BodyCoilChannelCount')">
<el-select v-model="form.BodyCoilChannelCount" style="width:100%">
<el-option v-for="item of $d.BodyCoilChannelCount" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<!-- 是否具备专用的PDFF脂肪定量序列CSE-MRI序列 -->
<el-form-item :label="$t('trials:equiptResearch:form:HasDedicatedPdfFatQuantificationSequence')"
v-if="EquipmentControlFieldList.includes('HasDedicatedPdfFatQuantificationSequence')">
<el-select v-model="form.HasDedicatedPdfFatQuantificationSequence" style="width:100%">
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<!-- 是否具备专用的PDFF脂肪定量序列CSE-MRI序列 -->
<el-form-item :label="$t('trials:equiptResearch:form:HasDedicatedPdfFatQuantificationSequence')"
v-if="EquipmentControlFieldList.includes('HasDedicatedPdfFatQuantificationSequence')">
<el-select v-model="form.HasDedicatedPdfFatQuantificationSequence" style="width:100%"
@change="form.PdfFatQuantificationSequenceType = null, form.OtherSequenceSpecification = null">
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<!-- PDFF脂肪定量序列 -->
<el-form-item :label="$t('trials:equiptResearch:form:PdfFatQuantificationSequenceType')"
v-if="form.HasDedicatedPdfFatQuantificationSequence && EquipmentControlFieldList.includes('PdfFatQuantificationSequenceType')">
<div style="display: flex;align-items: center;">
<el-select v-model="form.PdfFatQuantificationSequenceType" style="width:100%"
@change="form.OtherSequenceSpecification = null">
<el-option v-for="item of $d.PdfFatQuantificationSequenceType" :key="item.id" :label="item.label"
:value="item.value" />
</el-select>
<el-input placeholder="" v-model="form.OtherSequenceSpecification" style="margin-left: 10px;"
v-if="form.PdfFatQuantificationSequenceType == '-1'" clearable>
</el-input>
</div>
</el-form-item>
<!-- 是否包含 T2/R2 校正用于铁沉积校正 -->
<el-form-item :label="$t('trials:equiptResearch:form:HasT2R2Correction')"
v-if="EquipmentControlFieldList.includes('HasT2R2Correction')">
<el-select v-model="form.HasT2R2Correction" style="width:100%">
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<!-- 是否可完整导出 PDFF 参数图及全部原始 DICOM 数据 -->
<el-form-item :label="$t('trials:equiptResearch:form:CanFullyExportPdfParameterMapsAndRawDicom')"
v-if="EquipmentControlFieldList.includes('CanFullyExportPdfParameterMapsAndRawDicom')">
<el-select v-model="form.CanFullyExportPdfParameterMapsAndRawDicom" style="width:100%">
<el-option v-for="item of $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<!-- 备注 --> <!-- 备注 -->
<el-form-item :label="$t('trials:equiptResearch:form:remark')"> <el-form-item :label="$t('trials:equiptResearch:form:remark')"
v-if="EquipmentControlFieldList.includes('Note')">
<el-input v-model="form.Note" /> <el-input v-model="form.Note" />
</el-form-item> </el-form-item>
</div> </div>
@ -69,24 +131,35 @@ export default {
type: String, type: String,
default: '' default: ''
}, },
isShowParameters: { EquipmentControlFieldList: {
type: Boolean, type: Array,
default: false default: () => {
return []
}
} }
}, },
data() { data() {
return { return {
form: { form: {
Id: '', Id: '',
EquipmentTypeId: '', EquipmentTypeEnum: null,
Parameters: '', OtherEquipmentType: null,
ManufacturerName: '', Parameters: null,
ScannerType: '', Note: null,
Note: '', ManufacturerType: null,
ManufacturerName: null,
ScannerType: null,
MagneticFieldStrengthType: null,
BodyCoilChannelCount: null,
HasDedicatedPdfFatQuantificationSequence: null,
PdfFatQuantificationSequenceType: null,
OtherSequenceSpecification: null,
HasT2R2Correction: null,
CanFullyExportPdfParameterMapsAndRawDicom: null,
TrialSiteSurveyId: '' TrialSiteSurveyId: ''
}, },
rules: { rules: {
EquipmentTypeId: [ EquipmentTypeEnum: [
{ required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] } { required: true, message: this.$t('trials:researchForm:formRule:select'), trigger: ['blur', 'change'] }
] ]
}, },

View File

@ -2,63 +2,88 @@
<div class="equipment-wrapper"> <div class="equipment-wrapper">
<div class="header-wrapper"> <div class="header-wrapper">
<!-- 新增 --> <!-- 新增 -->
<el-button <el-button v-if="state === 0 && userTypeEnumInt === 0 && !isHistory && EquipmentControlFieldList.length > 0"
v-if="state === 0 && userTypeEnumInt === 0 && !isHistory" size="small" type="primary" @click="handleAdd">
size="small"
type="primary"
@click="handleAdd"
>
{{ $t('common:button:add') }} {{ $t('common:button:add') }}
</el-button> </el-button>
</div> </div>
<el-table <el-table v-loading="loading" :data="list" border style="width: 100%">
v-loading="loading"
:data="list"
border
style="width: 100%"
>
<!-- 扫描设备 --> <!-- 扫描设备 -->
<el-table-column <el-table-column v-if="EquipmentControlFieldList.includes('EquipmentTypeEnum')" prop="EquipmentTypeEnum"
prop="EquipmentType" :label="$t('trials:equiptResearch:form:equipment')" min-width="120" show-overflow-tooltip>
:label="$t('trials:equiptResearch:form:equipment')" <template slot-scope="scope">
min-width="120" {{ scope.row.OtherEquipmentType ? scope.row.OtherEquipmentType :
show-overflow-tooltip $fd('SiteSurvey_ScanEquipmentType', scope.row.EquipmentTypeEnum) }}
/> </template>
</el-table-column>
<!-- 扫描参数 --> <!-- 扫描参数 -->
<el-table-column <el-table-column v-if="EquipmentControlFieldList.includes('Parameters')" prop="Parameters"
v-if="isShowParameters" :label="$t('trials:equiptResearch:form:param')" min-width="100" show-overflow-tooltip />
prop="Parameters"
:label="$t('trials:equiptResearch:form:param')"
min-width="100"
show-overflow-tooltip
/>
<!-- 扫描仪器制造商名称 --> <!-- 扫描仪器制造商名称 -->
<el-table-column <el-table-column v-if="EquipmentControlFieldList.includes('ManufacturerType')" min-width="120"
min-width="120" prop="ManufacturerType" :label="$t('trials:equiptResearch:form:manufacturer')" show-overflow-tooltip>
prop="ManufacturerName" <template slot-scope="scope">
:label="$t('trials:equiptResearch:form:manufacturer')" {{ scope.row.ManufacturerName ? scope.row.ManufacturerName : $fd('ManufacturerType',
show-overflow-tooltip scope.row.ManufacturerType) }}
/> </template>
</el-table-column>
<!-- 扫描仪型号 --> <!-- 扫描仪型号 -->
<el-table-column <el-table-column v-if="EquipmentControlFieldList.includes('ScannerType')" min-width="120" prop="ScannerType"
min-width="120" :label="$t('trials:equiptResearch:form:model')" show-overflow-tooltip />
prop="ScannerType" <!-- 磁场强度 -->
:label="$t('trials:equiptResearch:form:model')" <el-table-column v-if="EquipmentControlFieldList.includes('MagneticFieldStrengthType')" min-width="120"
show-overflow-tooltip prop="MagneticFieldStrengthType" :label="$t('trials:equiptResearch:form:MagneticFieldStrengthType')"
/> show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('MagneticFieldStrengthType', scope.row.MagneticFieldStrengthType) }}
</template>
</el-table-column>
<!-- 体部线圈通道数 -->
<el-table-column v-if="EquipmentControlFieldList.includes('BodyCoilChannelCount')" min-width="120"
prop="BodyCoilChannelCount" :label="$t('trials:equiptResearch:form:BodyCoilChannelCount')"
show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('BodyCoilChannelCount', scope.row.BodyCoilChannelCount) }}
</template>
</el-table-column>
<!-- 是否具备专用的PDFF脂肪定量序列CSE-MRI序列 -->
<el-table-column v-if="EquipmentControlFieldList.includes('HasDedicatedPdfFatQuantificationSequence')"
min-width="120" prop="HasDedicatedPdfFatQuantificationSequence"
:label="$t('trials:equiptResearch:form:HasDedicatedPdfFatQuantificationSequence')" show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.HasDedicatedPdfFatQuantificationSequence) }}
</template>
</el-table-column>
<!-- 专用的PDFF脂肪定量序列类型 -->
<el-table-column v-if="EquipmentControlFieldList.includes('PdfFatQuantificationSequenceType')" min-width="120"
prop="PdfFatQuantificationSequenceType"
:label="$t('trials:equiptResearch:form:PdfFatQuantificationSequenceType')" show-overflow-tooltip><template
slot-scope="scope">
{{ scope.row.OtherSequenceSpecification ? scope.row.OtherSequenceSpecification :
$fd('PdfFatQuantificationSequenceType', scope.row.PdfFatQuantificationSequenceType) }}
</template>
</el-table-column>
<!-- 是否包含 T2/R2 校正用于铁沉积校正 -->
<el-table-column v-if="EquipmentControlFieldList.includes('HasT2R2Correction')" min-width="120"
prop="HasT2R2Correction" :label="$t('trials:equiptResearch:form:HasT2R2Correction')" show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.HasT2R2Correction) }}
</template>
</el-table-column>
<!-- 是否可完整导出 PDFF 参数图及全部原始 DICOM 数据 -->
<el-table-column v-if="EquipmentControlFieldList.includes('CanFullyExportPdfParameterMapsAndRawDicom')"
prop="CanFullyExportPdfParameterMapsAndRawDicom"
:label="$t('trials:equiptResearch:form:CanFullyExportPdfParameterMapsAndRawDicom')" min-width="120"
show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.CanFullyExportPdfParameterMapsAndRawDicom) }}
</template>
</el-table-column>
<!-- 备注 --> <!-- 备注 -->
<el-table-column <el-table-column v-if="EquipmentControlFieldList.includes('Note')" min-width="120" prop="Note"
min-width="120" :label="$t('trials:equiptResearch:form:precautions')" show-overflow-tooltip />
prop="Note" <el-table-column v-if="state === 0 && userTypeEnumInt === 0 && !isHistory" fixed="right"
:label="$t('trials:equiptResearch:form:precautions')" :label="$t('common:action:action')" width="100">
show-overflow-tooltip
/>
<el-table-column
v-if="state === 0 && userTypeEnumInt === 0 && !isHistory"
fixed="right"
:label="$t('common:action:action')"
width="100"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 编辑 --> <!-- 编辑 -->
<el-button type="text" size="small" @click="handleEdit(scope.row)"> <el-button type="text" size="small" @click="handleEdit(scope.row)">
@ -73,16 +98,10 @@
</el-table> </el-table>
<!-- 新增/编辑人员信息 --> <!-- 新增/编辑人员信息 -->
<el-dialog <el-dialog v-if="editVisible" :visible.sync="editVisible" :close-on-click-modal="false" :title="title" width="600px"
v-if="editVisible" custom-class="base-dialog-wrapper" :append-to-body="userTypeEnumInt !== 0">
:visible.sync="editVisible" <EquipmentForm :data="rowData" :trial-site-survey-equipment-type="trialSiteSurveyEquipmentType"
:close-on-click-modal="false" :EquipmentControlFieldList="EquipmentControlFieldList" @getList="getList" @close="closeDialog" />
:title="title"
width="600px"
custom-class="base-dialog-wrapper"
:append-to-body="userTypeEnumInt !== 0"
>
<EquipmentForm :data="rowData" :trial-site-survey-equipment-type="trialSiteSurveyEquipmentType" :is-show-parameters="isShowParameters" @getList="getList" @close="closeDialog" />
</el-dialog> </el-dialog>
</div> </div>
@ -115,7 +134,7 @@ export default {
state: null, state: null,
trialSiteSurveyId: '', trialSiteSurveyId: '',
trialId: '', trialId: '',
isShowParameters: false EquipmentControlFieldList: []
} }
}, },
mounted() { mounted() {
@ -160,10 +179,14 @@ export default {
this.$message.success(this.$t('trials:equiptResearch:message:delSuccessfully')) this.$message.success(this.$t('trials:equiptResearch:message:delSuccessfully'))
} }
}).catch(() => { this.loading = false }) }).catch(() => { this.loading = false })
}).catch(() => {}) }).catch(() => { })
}, },
initList(TrialSiteEquipmentSurveyList, trialSiteSurvey, isShowParameters) { initList(TrialSiteEquipmentSurveyList, trialSiteSurvey, EquipmentControlFieldList) {
this.isShowParameters = isShowParameters this.EquipmentControlFieldList = []
EquipmentControlFieldList.forEach(item => {
this.EquipmentControlFieldList.push(item.FiledName)
})
console.log(this.EquipmentControlFieldList, 'this.EquipmentControlFieldList')
this.list = TrialSiteEquipmentSurveyList this.list = TrialSiteEquipmentSurveyList
this.state = trialSiteSurvey.State this.state = trialSiteSurvey.State
this.$forceUpdate() this.$forceUpdate()
@ -176,8 +199,8 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.equipment-wrapper{ .equipment-wrapper {
.header-wrapper{ .header-wrapper {
text-align: right; text-align: right;
margin-bottom: 10px; margin-bottom: 10px;
} }

View File

@ -175,7 +175,7 @@ export default {
this.$refs['historicalParticipant'].initList(historicalArr, res.Result.TrialSiteSurvey) this.$refs['historicalParticipant'].initList(historicalArr, res.Result.TrialSiteSurvey)
this.$refs['researchParticipants'].initList(newArr, res.Result.TrialSiteSurvey) this.$refs['researchParticipants'].initList(newArr, res.Result.TrialSiteSurvey)
// this.$refs['researchParticipants'].initList(res.Result.TrialSiteUserSurveyList, res.Result.TrialSiteSurvey) // this.$refs['researchParticipants'].initList(res.Result.TrialSiteUserSurveyList, res.Result.TrialSiteSurvey)
this.$refs['researchEquipments'].initList(res.Result.TrialSiteEquipmentSurveyList, res.Result.TrialSiteSurvey, !(res.Result.SiteSurveyFiledConfig && res.Result.SiteSurveyFiledConfig.ModifyFiledList.length > 0)) this.$refs['researchEquipments'].initList(res.Result.TrialSiteEquipmentSurveyList, res.Result.TrialSiteSurvey, res.Result.SiteSurveyFiledConfig.EquipmentControlFieldList)
this.isExistIncorrect = res.Result.TrialSiteUserSurveyList.every(item => item.IsCorrect === false) this.isExistIncorrect = res.Result.TrialSiteUserSurveyList.every(item => item.IsCorrect === false)
} }
this.loading = false this.loading = false

View File

@ -8,7 +8,7 @@
<!-- <TopLang style="position: fixed;top: 40px;right: 40px" /> --> <!-- <TopLang style="position: fixed;top: 40px;right: 40px" /> -->
<div style="display: flex;justify-content: space-between;" v-if="!isPreview"> <div style="display: flex;justify-content: space-between;" v-if="!isPreview">
<div>{{ $t('trials:researchForm:title:researchSurveyStatus') }} <el-tag>{{ $fd('ResearchRecord', state) <div>{{ $t('trials:researchForm:title:researchSurveyStatus') }} <el-tag>{{ $fd('ResearchRecord', state)
}}</el-tag></div> }}</el-tag></div>
<div> <div>
<!-- 提交 --> <!-- 提交 -->
<el-button v-if="(state === 0 && userTypeEnumInt === 0)" type="primary" size="small" <el-button v-if="(state === 0 && userTypeEnumInt === 0)" type="primary" size="small"
@ -209,7 +209,7 @@ export default {
this.$refs['historicalParticipant'].initList(historicalArr, res.Result.TrialSiteSurvey) this.$refs['historicalParticipant'].initList(historicalArr, res.Result.TrialSiteSurvey)
this.$refs['researchParticipants'].initList(newArr, res.Result.TrialSiteSurvey) this.$refs['researchParticipants'].initList(newArr, res.Result.TrialSiteSurvey)
this.$refs['researchEquipments'].initList(res.Result.TrialSiteEquipmentSurveyList, res.Result.TrialSiteSurvey, !(res.Result.SiteSurveyFiledConfig && res.Result.SiteSurveyFiledConfig.ModifyFiledList.length > 0)) this.$refs['researchEquipments'].initList(res.Result.TrialSiteEquipmentSurveyList, res.Result.TrialSiteSurvey, res.Result.SiteSurveyFiledConfig.EquipmentControlFieldList)
this.isExistIncorrect = res.Result.TrialSiteUserSurveyList.every(item => item.IsCorrect === false) this.isExistIncorrect = res.Result.TrialSiteUserSurveyList.every(item => item.IsCorrect === false)
} }
this.loading = false this.loading = false

View File

@ -33,17 +33,83 @@
</div> </div>
<el-form size="small" :model="form" style="width:80%"> <el-form size="small" :model="form" style="width:80%">
<el-form-item :label="$t('trials:researchRecord:ImageManual:Equipment')"> <el-form-item :label="$t('trials:researchRecord:ImageManual:Equipment')">
<el-radio-group v-model="form.IsCloseEquipmentSurvey"> <el-radio-group v-model="form.IsCloseEquipmentSurvey" @input="handleInput">
<el-radio :label="item.value" v-for="item in $d.YesOrNo" :key="item.id">{{ item.label <el-radio :label="item.value" v-for="item in $d.YesOrNo" :key="item.id">{{ item.label
}}</el-radio> }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div style="margin-bottom: 20px;font-weight: bold;">
{{ $t("trials:researchRecord:ImageManual:EquipmentConfig") }}
</div>
<el-form size="small" :model="EquipmentForm" style="width:80%" v-if="form.IsCloseEquipmentSurvey">
<el-form-item>
<el-checkbox v-model="EquipmentForm.EquipmentTypeEnum">
{{ $t('trials:researchForm:form:EquipmentTypeEnum') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.Parameters">
{{ $t('trials:researchForm:form:Parameters') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.ManufacturerType">
{{ $t('trials:researchForm:form:ManufacturerType') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.ScannerType">
{{ $t('trials:researchForm:form:ScannerType') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.MagneticFieldStrengthType">
{{ $t('trials:researchForm:form:MagneticFieldStrengthType') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.BodyCoilChannelCount">
{{ $t('trials:researchForm:form:BodyCoilChannelCount') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.HasDedicatedPdfFatQuantificationSequence"
@change="EquipmentForm.PdfFatQuantificationSequenceType = false">
{{ $t('trials:researchForm:form:HasDedicatedPdfFatQuantificationSequence') }}
</el-checkbox>
</el-form-item>
<el-form-item v-if="EquipmentForm.HasDedicatedPdfFatQuantificationSequence">
<el-checkbox v-model="EquipmentForm.PdfFatQuantificationSequenceType">
{{ $t('trials:researchForm:form:PdfFatQuantificationSequenceType') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.HasT2R2Correction">
{{ $t('trials:researchForm:form:HasT2R2Correction') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.CanFullyExportPdfParameterMapsAndRawDicom">
{{ $t('trials:researchForm:form:CanFullyExportPdfParameterMapsAndRawDicom') }}
</el-checkbox>
</el-form-item>
<el-form-item>
<el-checkbox v-model="EquipmentForm.Note">
{{ $t('trials:researchForm:form:Note') }}
</el-checkbox>
</el-form-item>
</el-form>
<div style="margin-bottom: 20px;font-weight: bold;"> <div style="margin-bottom: 20px;font-weight: bold;">
{{ $t("trials:researchRecord:ImageManual:Precautions") }} {{ $t("trials:researchRecord:ImageManual:Precautions") }}
</div> </div>
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 99 }" placeholder="" <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 99 }" placeholder=""
v-model="form.ReplaceContent" @input="handleInput" style="width: 70%;" /> v-model="form.ReplaceContentCN" style="width: 70%;" />
<div style="margin: 20px 0;font-weight: bold;">
{{ $t("trials:researchRecord:ImageManual:PrecautionsUS") }}
</div>
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 99 }" placeholder=""
v-model="form.ReplaceContent" style="width: 70%;" />
<div style="text-align: right;margin: 20px;" class="btnBox"> <div style="text-align: right;margin: 20px;" class="btnBox">
<el-button type="primary" :loading="loading" size="small" @click="handleSave"> <el-button type="primary" :loading="loading" size="small" @click="handleSave">
{{ $t('common:button:save') }} {{ $t('common:button:save') }}
@ -82,6 +148,19 @@ export default {
IsSupportQCDownloadImage: false, IsSupportQCDownloadImage: false,
IsCloseEquipmentSurvey: true IsCloseEquipmentSurvey: true
}, },
EquipmentForm: {
Parameters: false,
Note: false,
EquipmentTypeEnum: false,
ManufacturerType: false,
ScannerType: false,
MagneticFieldStrengthType: false,
BodyCoilChannelCount: false,
HasDedicatedPdfFatQuantificationSequence: false,
PdfFatQuantificationSequenceType: false,
HasT2R2Correction: false,
CanFullyExportPdfParameterMapsAndRawDicom: false,
},
obj: { obj: {
AverageEngravingCycle: false, AverageEngravingCycle: false,
IsConfirmImagingTechnologist: false, IsConfirmImagingTechnologist: false,
@ -102,7 +181,9 @@ export default {
if (key === 'IsFollowStudyParameters') this.form.NotFollowReson = val if (key === 'IsFollowStudyParameters') this.form.NotFollowReson = val
}, },
handleInput(val) { handleInput(val) {
this.form.ReplaceContentCN = val Object.keys(this.EquipmentForm).forEach(key => {
this.EquipmentForm[key] = false
})
}, },
async getInfo() { async getInfo() {
try { try {
@ -115,6 +196,14 @@ export default {
this.form[key] = true this.form[key] = true
if (key === 'ReplaceContent' || key === 'ReplaceContentCN') this.form[key] = '' if (key === 'ReplaceContent' || key === 'ReplaceContentCN') this.form[key] = ''
}) })
Object.keys(this.EquipmentForm).forEach(key => {
this.EquipmentForm[key] = false
})
res.Result.EquipmentControlFieldList.forEach(item => {
if (this.EquipmentForm.hasOwnProperty(item.FiledName)) {
this.EquipmentForm[item.FiledName] = true
}
})
this.form.IsOpenLostVistRead = res.Result.IsOpenLostVistRead this.form.IsOpenLostVistRead = res.Result.IsOpenLostVistRead
this.form.IsSupportQCDownloadImage = res.Result.IsSupportQCDownloadImage this.form.IsSupportQCDownloadImage = res.Result.IsSupportQCDownloadImage
this.form.IsCloseEquipmentSurvey = !res.Result.IsCloseEquipmentSurvey this.form.IsCloseEquipmentSurvey = !res.Result.IsCloseEquipmentSurvey
@ -128,7 +217,7 @@ export default {
this.form.ReplaceContentCN = res.Result.ModifyFiledList[0].ReplaceContentCN.split('<p>').join('').split('</p>').filter(item => isNaN(item)).join("\n") this.form.ReplaceContentCN = res.Result.ModifyFiledList[0].ReplaceContentCN.split('<p>').join('').split('</p>').filter(item => isNaN(item)).join("\n")
} else { } else {
let arr = [this.$t('trials:equiptResearch:form:item1'), this.$t('trials:equiptResearch:form:item2'), this.$t('trials:equiptResearch:form:item3'), this.$t('trials:equiptResearch:form:item4')] let arr = [this.$t('trials:equiptResearch:form:item1'), this.$t('trials:equiptResearch:form:item2'), this.$t('trials:equiptResearch:form:item3'), this.$t('trials:equiptResearch:form:item4')]
this.form.ReplaceContent = arr.join("\n") // this.form.ReplaceContent = arr.join("\n")
this.form.ReplaceContentCN = arr.join("\n") this.form.ReplaceContentCN = arr.join("\n")
} }
} }
@ -168,7 +257,8 @@ export default {
IsSupportQCDownloadImage: this.form.IsSupportQCDownloadImage, IsSupportQCDownloadImage: this.form.IsSupportQCDownloadImage,
IsCloseEquipmentSurvey: !this.form.IsCloseEquipmentSurvey, IsCloseEquipmentSurvey: !this.form.IsCloseEquipmentSurvey,
ModifyFiledList: [], ModifyFiledList: [],
NotShowFieldList: [] NotShowFieldList: [],
EquipmentControlFieldList: []
} }
Object.keys(this.obj).forEach(key => { Object.keys(this.obj).forEach(key => {
if (!this.form[key]) data.NotShowFieldList.push(key) if (!this.form[key]) data.NotShowFieldList.push(key)
@ -187,6 +277,16 @@ export default {
ReplaceContentCN: ReplaceContentCN, ReplaceContentCN: ReplaceContentCN,
} }
data.ModifyFiledList.push(obj) data.ModifyFiledList.push(obj)
Object.keys(this.EquipmentForm).forEach((key, index) => {
if (this.EquipmentForm[key]) {
let obj = {
FiledName: key,
IsView: true,
ShowOrder: index,
}
data.EquipmentControlFieldList.push(obj)
}
})
this.loading = true this.loading = true
let res = await updateTrialExtralConfig(param, data) let res = await updateTrialExtralConfig(param, data)
this.loading = false this.loading = false

View File

@ -127,7 +127,7 @@ export default {
} }
if (this.visitInfo.operateStateEnum === 22) { if (this.visitInfo.operateStateEnum === 22) {
let o = {} let o = {}
if (this.isTableQuestion) { if (this.visitInfo.isTableQuestion) {
o.TableQuestionId = this.visitInfo.operateQuestionId o.TableQuestionId = this.visitInfo.operateQuestionId
o.RowId = this.visitInfo.operateRowId o.RowId = this.visitInfo.operateRowId
} else { } else {

View File

@ -647,7 +647,7 @@ export default {
let res = await submitTableQuestion(params) let res = await submitTableQuestion(params)
if (res.IsSuccess) { if (res.IsSuccess) {
this.QuestionsForm.RowId = res.Result.RowId this.QuestionsForm.RowId = res.Result.RowId
obj.rowId = res.Result.RowId // obj.rowId = res.Result.RowId
data.RowId = res.Result.RowId data.RowId = res.Result.RowId
this.AnswersList.push(this.QuestionsForm) this.AnswersList.push(this.QuestionsForm)
this.$emit('setFormItemData', { key: this.question.Id, val: this.AnswersList, question: this.question }) this.$emit('setFormItemData', { key: this.question.Id, val: this.AnswersList, question: this.question })
@ -1375,7 +1375,7 @@ export default {
// //
this.$set(this.questionForm, obj.question.Id, null) this.$set(this.questionForm, obj.question.Id, null)
} }
if (obj.question.IsTableQuestion && obj.operateStateEnum === 4) { if (obj.question.IsTableQuestion && (obj.operateStateEnum === 4 || obj.operateStateEnum === 24)) {
// //
this.$set(this.QuestionsForm, obj.question.Id, null) this.$set(this.QuestionsForm, obj.question.Id, null)
} else if (obj.question.IsTableQuestion && obj.operateStateEnum === 7 && this.question.Id === obj.question.ParentQsId) { } else if (obj.question.IsTableQuestion && obj.operateStateEnum === 7 && this.question.Id === obj.question.ParentQsId) {

View File

@ -545,7 +545,16 @@ export default {
const { question } = obj const { question } = obj
let confirm = await this.$confirm(this.$t('segment:confirm:sureDelete')) let confirm = await this.$confirm(this.$t('segment:confirm:sureDelete'))
if (!confirm) return false if (!confirm) return false
this.$set(this.questionForm, question.Id, '') if (this.isTableQuestion) {
this.questionForm[question.ParentQsId].some((item, index) => {
if (item.RowId === question.RowId) {
this.$set(this.questionForm[question.ParentQsId][index], question.Id, '')
}
return item.RowId === question.RowId
})
} else {
this.$set(this.questionForm, question.Id, '')
}
let o = { let o = {
Answer: '', Answer: '',
SegmentId: null, SegmentId: null,
@ -1555,4 +1564,5 @@ export default {
// min-height:400px; // min-height:400px;
// color: #ddd; // color: #ddd;
// }</style> // }
</style>

View File

@ -416,7 +416,7 @@ export default {
}, },
validatorNumberInput(rule, value, callback) { validatorNumberInput(rule, value, callback) {
let reg = new RegExp(/^(?:-?(?:(?:0|[1-9]\d*)(?:\.\d+)?|\.\d+)|NE)$/, 'g') let reg = new RegExp(/^(?:-?(?:(?:0|[1-9]\d*)(?:\.\d+)?|\.\d+)|NE)$/, 'g')
if (value === '') { if (value === '' || value == null) {
callback(); callback();
} else { } else {
if (!reg.test(value)) { if (!reg.test(value)) {