简历临床实验经历区分项目和系统
continuous-integration/drone/push Build is passing Details

uat_us
wangxiaoshuang 2024-10-29 16:57:10 +08:00
parent ae599f4ada
commit 2a11d3f012
3 changed files with 98 additions and 24 deletions

View File

@ -138,13 +138,11 @@ export function addOrUpdateResearchPublication(param) {
}) })
} }
export function getTrialExperience(doctorId) { export function getTrialExperience(data) {
return request({ return request({
url: `/trialExperience/getTrialExperience`, url: `/trialExperience/getTrialExperience`,
method: 'post', method: 'post',
data: { data
DoctorId: doctorId
}
}) })
} }

View File

@ -72,7 +72,16 @@
prop="EvaluationContent" prop="EvaluationContent"
:label="$t('system:TrialExperience:Indication')" :label="$t('system:TrialExperience:Indication')"
min-width="70" min-width="70"
/> >
<template slot-scope="scope">
<span v-if="scope.row.EvaluationContent">
{{ scope.row.EvaluationContent }}
</span>
<span v-else>
{{ $fd('Indication', scope.row.IndicationEnum) }}
</span>
</template>
</el-table-column>
<el-table-column <el-table-column
:label="$t('system:TrialExperience:Operation')" :label="$t('system:TrialExperience:Operation')"
min-width="200" min-width="200"
@ -189,9 +198,9 @@
v-model="clinicalTrialForm.EvaluationCriteriaIdList" v-model="clinicalTrialForm.EvaluationCriteriaIdList"
multiple multiple
> >
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> --> <!-- <el-option v-for="(key,value) of dictionaryList.CriterionType" :key="value" :label="key" :value="value" /> -->
<el-option <el-option
v-for="item in ReadingStandard" v-for="item in CriterionType"
:key="item.Id" :key="item.Id"
:label="item.Value" :label="item.Value"
:value="item.Id" :value="item.Id"
@ -243,9 +252,22 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('system:TrialExperience:Indication')" :label="$t('system:TrialExperience:Indication')"
prop="EvaluationContent" prop="IndicationEnum"
> >
<el-input v-model="clinicalTrialForm.EvaluationContent" /> <el-select v-model="clinicalTrialForm.IndicationEnum">
<el-option
v-for="item of $d.Indication"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item prop="EvaluationContent" v-if="IndicationEnum_isOther">
<el-input
v-model="clinicalTrialForm.EvaluationContent"
clearable
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@ -281,6 +303,7 @@ const getClinicalTrialDefault = () => {
EndTime: null, EndTime: null,
OtherStages: '', OtherStages: '',
OtherCriterion: '', OtherCriterion: '',
IndicationEnum: null,
} }
} }
export default { export default {
@ -320,6 +343,9 @@ export default {
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
{ max: 300, message: 'The maximum length is 300' }, { max: 300, message: 'The maximum length is 300' },
], ],
IndicationEnum: [
{ required: true, message: 'Please select', trigger: 'blur' },
],
StartTime: [ StartTime: [
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
], ],
@ -351,6 +377,13 @@ export default {
} }
}, },
computed: { computed: {
IndicationEnum_isOther() {
if (!this.clinicalTrialForm.IndicationEnum) return false
let value = this.$d.Indication.find(
(item) => item.value === this.clinicalTrialForm.IndicationEnum
).label
return value === '其它' || value === 'Other'
},
Trial_Phase_isOther() { Trial_Phase_isOther() {
if (!this.clinicalTrialForm.PhaseId) return false if (!this.clinicalTrialForm.PhaseId) return false
let value = this.dictionaryList.Trial_Phase.find( let value = this.dictionaryList.Trial_Phase.find(
@ -368,10 +401,10 @@ export default {
this.otherId this.otherId
) )
}, },
ReadingStandard() { CriterionType() {
if (!this.dictionaryList.ReadingStandard) return [] if (!this.dictionaryList.CriterionType) return []
return [ return [
...this.dictionaryList.ReadingStandard, ...this.dictionaryList.CriterionType,
{ {
Id: this.otherId, Id: this.otherId,
Value: 'Other', Value: 'Other',
@ -396,6 +429,11 @@ export default {
this.clinicalTrialForm.OtherCriterion = null this.clinicalTrialForm.OtherCriterion = null
} }
}, },
IndicationEnum_isOther() {
if (!this.IndicationEnum_isOther) {
this.form.EvaluationContent = null
}
},
}, },
created() { created() {
this.initForm() this.initForm()
@ -406,7 +444,13 @@ export default {
const id = this.$route.query.Id || this.reviewerId const id = this.$route.query.Id || this.reviewerId
if (id) { if (id) {
this.loading = true this.loading = true
getTrialExperience(id) let data = {
DoctorId: id,
}
if (this.$route.query.trialId) {
data.TrialId = this.$route.query.trialId
}
getTrialExperience(data)
.then((res) => { .then((res) => {
this.clinicalTrialList = res.Result.ClinicalTrialExperienceList this.clinicalTrialList = res.Result.ClinicalTrialExperienceList
this.GCP = res.Result.GCP this.GCP = res.Result.GCP
@ -422,7 +466,7 @@ export default {
} }
}, },
getDicData() { getDicData() {
getBasicDataSelects(['Trial_Phase', 'ReadingStandard']).then((res) => { getBasicDataSelects(['Trial_Phase', 'CriterionType']).then((res) => {
this.dictionaryList = { ...res.Result } this.dictionaryList = { ...res.Result }
}) })
}, },
@ -478,6 +522,9 @@ export default {
'YYYY' 'YYYY'
) + '-01' ) + '-01'
} }
if (this.$route.query.trialId) {
this.clinicalTrialForm.TrialId = this.$route.query.trialId
}
addOrUpdateTrialExperience(this.clinicalTrialForm) addOrUpdateTrialExperience(this.clinicalTrialForm)
.then((res) => { .then((res) => {
this.isDisabled = false this.isDisabled = false

View File

@ -48,6 +48,12 @@
prop="EvaluationContent" prop="EvaluationContent"
:label="$t('curriculumVitae:clinicalTrials:table:indication')" :label="$t('curriculumVitae:clinicalTrials:table:indication')"
> >
<span v-if="scope.row.EvaluationContent">
{{ scope.row.EvaluationContent }}
</span>
<span v-else>
{{ $fd('Indication', scope.row.IndicationEnum) }}
</span>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="VisitReadingCount" prop="VisitReadingCount"
@ -67,7 +73,13 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="date" :label="$t('common:action:action')"> <el-table-column prop="date" :label="$t('common:action:action')">
<template slot-scope="scope"> <template
slot-scope="scope"
v-if="
scope.row.ExperienceDataType != 2 &&
scope.row.ExperienceDataType != 3
"
>
<el-button <el-button
type="text" type="text"
class="editBtn" class="editBtn"
@ -194,7 +206,7 @@
placeholder="" placeholder=""
> >
<el-option <el-option
v-for="item in ReadingStandard" v-for="item in CriterionType"
:key="item.Id" :key="item.Id"
:label="item.Value" :label="item.Value"
:value="item.Id" :value="item.Id"
@ -241,10 +253,9 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('curriculumVitae:clinicalTrials:form:indication')" :label="$t('curriculumVitae:clinicalTrials:form:indication')"
prop="EvaluationContent" prop="IndicationEnum"
> >
<!-- <el-input v-model="form.EvaluationContent" clearable></el-input> --> <el-select v-model="form.IndicationEnum">
<el-select v-model="form.EvaluationContent">
<el-option <el-option
v-for="item of $d.Indication" v-for="item of $d.Indication"
:key="item.id" :key="item.id"
@ -253,6 +264,9 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="EvaluationContent" v-if="IndicationEnum_isOther">
<el-input v-model="form.EvaluationContent" clearable></el-input>
</el-form-item>
</el-form> </el-form>
</template> </template>
<template slot="dialog-footer"> <template slot="dialog-footer">
@ -436,7 +450,6 @@
import BaseModel from '@/components/BaseModel' import BaseModel from '@/components/BaseModel'
import { getBasicDataSelects } from '@/api/dictionary/dictionary' import { getBasicDataSelects } from '@/api/dictionary/dictionary'
import { import {
getTrialExperience,
addOrUpdateTrialExperience, addOrUpdateTrialExperience,
deleteTrialExperience, deleteTrialExperience,
updateOtherExperience, updateOtherExperience,
@ -457,6 +470,7 @@ const defaultForm = () => {
EndTime: null, EndTime: null,
OtherStages: '', OtherStages: '',
OtherCriterion: '', OtherCriterion: '',
IndicationEnum: null,
} }
} }
const defaultCertificateForm = () => { const defaultCertificateForm = () => {
@ -528,6 +542,9 @@ export default {
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
{ max: 300, message: 'The maximum length is 300' }, { max: 300, message: 'The maximum length is 300' },
], ],
IndicationEnum: [
{ required: true, message: 'Please select', trigger: 'blur' },
],
StartTime: [ StartTime: [
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
], ],
@ -600,6 +617,11 @@ export default {
this.form.OtherCriterion = null this.form.OtherCriterion = null
} }
}, },
IndicationEnum_isOther() {
if (!this.IndicationEnum_isOther) {
this.form.EvaluationContent = null
}
},
}, },
computed: { computed: {
GCPData() { GCPData() {
@ -618,6 +640,13 @@ export default {
}, },
] ]
}, },
IndicationEnum_isOther() {
if (!this.form.IndicationEnum) return false
let value = this.$d.Indication.find(
(item) => item.value === this.form.IndicationEnum
).label
return value === '其它' || value === 'Other'
},
Trial_Phase_isOther() { Trial_Phase_isOther() {
if (!this.form.PhaseId) return false if (!this.form.PhaseId) return false
let value = this.dictionaryList.Trial_Phase.find( let value = this.dictionaryList.Trial_Phase.find(
@ -633,10 +662,10 @@ export default {
return false return false
return this.form.EvaluationCriteriaIdList.includes(this.otherId) return this.form.EvaluationCriteriaIdList.includes(this.otherId)
}, },
ReadingStandard() { CriterionType() {
if (!this.dictionaryList.ReadingStandard) return [] if (!this.dictionaryList.CriterionType) return []
return [ return [
...this.dictionaryList.ReadingStandard, ...this.dictionaryList.CriterionType,
{ {
Id: this.otherId, Id: this.otherId,
Value: 'Other', Value: 'Other',
@ -880,7 +909,7 @@ export default {
return arr return arr
}, },
getDicData() { getDicData() {
getBasicDataSelects(['Trial_Phase', 'ReadingStandard']).then((res) => { getBasicDataSelects(['Trial_Phase', 'CriterionType']).then((res) => {
this.dictionaryList = { ...res.Result } this.dictionaryList = { ...res.Result }
}) })
}, },