简历临床实验经历区分项目和系统
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({
url: `/trialExperience/getTrialExperience`,
method: 'post',
data: {
DoctorId: doctorId
}
data
})
}

View File

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

View File

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