简历临床试验经历添加适应症类型
continuous-integration/drone/push Build is passing Details

uat_us
wangxiaoshuang 2024-10-30 10:32:42 +08:00
parent 4400d31bca
commit 3633de8c35
2 changed files with 94 additions and 15 deletions

View File

@ -93,15 +93,16 @@
:disabled="$route.query.ReviewStatus === '1'" :disabled="$route.query.ReviewStatus === '1'"
@click="handleEdit(scope.row)" @click="handleEdit(scope.row)"
> >
{{ $t('common:button:edit') }}</el-button {{ $t('common:button:edit') }}
> </el-button>
<el-button <el-button
type="text" type="text"
size="small" size="small"
:disabled="$route.query.ReviewStatus === '1'" :disabled="$route.query.ReviewStatus === '1'"
@click="handleDel(scope.row)" @click="handleDel(scope.row)"
>{{ $t('common:button:delete') }}</el-button
> >
{{ $t('common:button:delete') }}
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -250,13 +251,33 @@
:min="0" :min="0"
/> />
</el-form-item> </el-form-item>
<!-- 适应症类型 IndicationType -->
<el-form-item
:label="$t('system:TrialExperience:indicationType')"
prop="IndicationTypeId"
>
<el-select
v-model="clinicalTrialForm.IndicationTypeId"
@change="handleIndicationTypeChange"
>
<el-option
v-for="item of $d.IndicationType"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item <el-form-item
:label="$t('system:TrialExperience:Indication')" :label="$t('system:TrialExperience:Indication')"
prop="IndicationEnum" prop="IndicationEnum"
> >
<el-select v-model="clinicalTrialForm.IndicationEnum"> <el-select
v-model="clinicalTrialForm.IndicationEnum"
:disabled="!clinicalTrialForm.IndicationTypeId"
>
<el-option <el-option
v-for="item of $d.Indication" v-for="item of IndicationOptions"
:key="item.id" :key="item.id"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
@ -304,6 +325,7 @@ const getClinicalTrialDefault = () => {
OtherStages: '', OtherStages: '',
OtherCriterion: '', OtherCriterion: '',
IndicationEnum: null, IndicationEnum: null,
IndicationTypeId: null,
} }
} }
export default { export default {
@ -377,6 +399,17 @@ export default {
} }
}, },
computed: { computed: {
IndicationOptions() {
if (!this.clinicalTrialForm.IndicationTypeId) return []
let indicationGrouping = this.$d.IndicationType.filter(
(item) => item.id === this.clinicalTrialForm.IndicationTypeId
)[0].raw.ChildGroup
let arr =
this.$d.Indication.filter(
(item) => indicationGrouping === item.raw.ChildGroup
) || []
return arr
},
IndicationEnum_isOther() { IndicationEnum_isOther() {
if (!this.clinicalTrialForm.IndicationEnum) return false if (!this.clinicalTrialForm.IndicationEnum) return false
let value = this.$d.Indication.find( let value = this.$d.Indication.find(
@ -431,7 +464,7 @@ export default {
}, },
IndicationEnum_isOther() { IndicationEnum_isOther() {
if (!this.IndicationEnum_isOther) { if (!this.IndicationEnum_isOther) {
this.form.EvaluationContent = null this.clinicalTrialForm.EvaluationContent = null
} }
}, },
}, },
@ -487,6 +520,8 @@ export default {
VisitReadingCount, VisitReadingCount,
OtherStages, OtherStages,
OtherCriterion, OtherCriterion,
IndicationEnum,
IndicationTypeId,
} = row } = row
this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault()) this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault())
this.clinicalTrialDialogTitle = 'Edit' this.clinicalTrialDialogTitle = 'Edit'
@ -500,6 +535,8 @@ export default {
this.clinicalTrialForm.EvaluationContent = EvaluationContent this.clinicalTrialForm.EvaluationContent = EvaluationContent
this.clinicalTrialForm.OtherStages = OtherStages this.clinicalTrialForm.OtherStages = OtherStages
this.clinicalTrialForm.OtherCriterion = OtherCriterion this.clinicalTrialForm.OtherCriterion = OtherCriterion
this.clinicalTrialForm.IndicationEnum = IndicationEnum
this.clinicalTrialForm.IndicationTypeId = IndicationTypeId
}, },
handleSave() { handleSave() {
this.$refs.clinicalTrialForm.validate((valid) => { this.$refs.clinicalTrialForm.validate((valid) => {
@ -583,6 +620,10 @@ export default {
} }
}) })
}, },
handleIndicationTypeChange(val) {
this.clinicalTrialForm.EvaluationContent = null
this.clinicalTrialForm.IndicationEnum = null
},
}, },
} }
</script> </script>

View File

@ -48,12 +48,14 @@
prop="EvaluationContent" prop="EvaluationContent"
:label="$t('curriculumVitae:clinicalTrials:table:indication')" :label="$t('curriculumVitae:clinicalTrials:table:indication')"
> >
<template slot-scope="scope">
<span v-if="scope.row.EvaluationContent"> <span v-if="scope.row.EvaluationContent">
{{ scope.row.EvaluationContent }} {{ scope.row.EvaluationContent }}
</span> </span>
<span v-else> <span v-else>
{{ $fd('Indication', scope.row.IndicationEnum) }} {{ $fd('Indication', scope.row.IndicationEnum) }}
</span> </span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="VisitReadingCount" prop="VisitReadingCount"
@ -170,7 +172,7 @@
v-loading="loading" v-loading="loading"
:model="form" :model="form"
:rules="rules" :rules="rules"
label-width="80px" label-width="120px"
size="small" size="small"
> >
<el-form-item <el-form-item
@ -251,13 +253,33 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<!-- 适应症类型 IndicationType -->
<el-form-item
:label="$t('curriculumVitae:clinicalTrials:form:indicationType')"
prop="IndicationTypeId"
>
<el-select
v-model="form.IndicationTypeId"
@change="handleIndicationTypeChange"
>
<el-option
v-for="item of $d.IndicationType"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item <el-form-item
:label="$t('curriculumVitae:clinicalTrials:form:indication')" :label="$t('curriculumVitae:clinicalTrials:form:indication')"
prop="IndicationEnum" prop="IndicationEnum"
> >
<el-select v-model="form.IndicationEnum"> <el-select
v-model="form.IndicationEnum"
:disabled="!form.IndicationTypeId"
>
<el-option <el-option
v-for="item of $d.Indication" v-for="item of IndicationOptions"
:key="item.id" :key="item.id"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
@ -471,6 +493,7 @@ const defaultForm = () => {
OtherStages: '', OtherStages: '',
OtherCriterion: '', OtherCriterion: '',
IndicationEnum: null, IndicationEnum: null,
IndicationTypeId: null,
} }
} }
const defaultCertificateForm = () => { const defaultCertificateForm = () => {
@ -624,6 +647,17 @@ export default {
}, },
}, },
computed: { computed: {
IndicationOptions() {
if (!this.form.IndicationTypeId) return []
let indicationGrouping = this.$d.IndicationType.filter(
(item) => item.id === this.form.IndicationTypeId
)[0].raw.ChildGroup
let arr =
this.$d.Indication.filter(
(item) => indicationGrouping === item.raw.ChildGroup
) || []
return arr
},
GCPData() { GCPData() {
if (!this.DATA) return [] if (!this.DATA) return []
return [ return [
@ -927,6 +961,10 @@ export default {
this.certificateForm = defaultCertificateForm() this.certificateForm = defaultCertificateForm()
} }
}, },
handleIndicationTypeChange(val) {
this.form.EvaluationContent = null
this.form.IndicationEnum = null
},
}, },
} }
</script> </script>