简历部分问题修复
continuous-integration/drone/push Build is passing Details

uat_us
wangxiaoshuang 2024-10-28 17:03:16 +08:00
parent 7360be1726
commit c1c6f5a6c7
6 changed files with 154 additions and 38 deletions

View File

@ -238,7 +238,7 @@ export default {
store.dispatch('user/setPermissions', permissions.Result) store.dispatch('user/setPermissions', permissions.Result)
// this.$router.push({ path: `/researchForm?trialId=${this.trialId}&trialSiteSurveyId=${res.Result.TrialSiteSurveyId}` }) // this.$router.push({ path: `/researchForm?trialId=${this.trialId}&trialSiteSurveyId=${res.Result.TrialSiteSurveyId}` })
this.$router.push({ this.$router.push({
path: `/ReviewersResearchForm?Id=${ path: `/curriculumVitae?Id=${
res.Result.DoctorId ? res.Result.DoctorId : '' res.Result.DoctorId ? res.Result.DoctorId : ''
}&tabActive=BasicInfo&ReviewStatus=${ }&tabActive=BasicInfo&ReviewStatus=${
res.Result.ReviewStatus res.Result.ReviewStatus

View File

@ -529,12 +529,12 @@
> >
<el-select <el-select
v-model="postgraduateForm.Training" v-model="postgraduateForm.Training"
placeholder="Please select" clearable
size="small" placeholder=""
> >
<el-option <el-option
v-for="item in TrainingOptions" v-for="item in $d.Training"
:key="item.value" :key="item.id"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
/> />
@ -565,22 +565,22 @@
:label="$t('system:EducationTraining:table:Hospital')" :label="$t('system:EducationTraining:table:Hospital')"
prop="Hospital" prop="Hospital"
> >
<el-row type="flex" justify="space-between"> <el-select
<el-col :span="11"> v-model="postgraduateForm.HospitalId"
<el-input filterable
v-model="postgraduateForm.Hospital" placeholder=""
placeholder="Please specify in English" >
size="small" <el-option
/> v-for="(item, index) in hospitalList"
</el-col> :key="index"
<el-col :span="11"> :label="item.HospitalName"
<el-input :value="item.Id"
v-model="postgraduateForm.HospitalCN" >
placeholder="请用中文注明" <span>
size="small" {{ item.HospitalName }}
/> </span>
</el-col> </el-option>
</el-row> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('system:EducationTraining:table:University')" :label="$t('system:EducationTraining:table:University')"
@ -688,6 +688,8 @@ import {
addOrUpdatePostgraduateInfo, addOrUpdatePostgraduateInfo,
deletePostgraduateInfo, deletePostgraduateInfo,
} from '@/api/reviewers' } from '@/api/reviewers'
import store from '@/store'
import { mapGetters } from 'vuex'
const getEducationDefault = () => { const getEducationDefault = () => {
return { return {
Id: '', Id: '',
@ -726,6 +728,7 @@ const getPostgraduateDefault = () => {
ProvinceCN: '', ProvinceCN: '',
Country: '', Country: '',
CountryCN: '', CountryCN: '',
HospitalId: null,
} }
} }
export default { export default {
@ -762,7 +765,6 @@ export default {
message: 'Please enter the degree', message: 'Please enter the degree',
trigger: 'blur', trigger: 'blur',
}, },
{ max: 100, message: 'The maximum length is 100' },
], ],
Major: [ Major: [
{ {
@ -860,7 +862,6 @@ export default {
message: 'Please enter the degree', message: 'Please enter the degree',
trigger: 'blur', trigger: 'blur',
}, },
{ max: 100, message: 'The maximum length is 100' },
], ],
Major: [ Major: [
{ {
@ -919,8 +920,12 @@ export default {
loading: false, loading: false,
} }
}, },
computed: {
...mapGetters(['hospitalList']),
},
mounted() { mounted() {
this.initPage() this.initPage()
store.dispatch('global/getHospital')
}, },
methods: { methods: {
initPage() { initPage() {
@ -949,6 +954,7 @@ export default {
this.educationDialogTitle = 'Edit' this.educationDialogTitle = 'Edit'
this.educationDialogVisible = true this.educationDialogVisible = true
this.educationForm = param this.educationForm = param
this.educationForm.Degree = Number(this.educationForm.Degree)
}, },
handleEducationSave() { handleEducationSave() {
@ -1016,6 +1022,7 @@ export default {
this.postgraduateDialogTitle = 'Edit' this.postgraduateDialogTitle = 'Edit'
this.postgraduateDialogVisible = true this.postgraduateDialogVisible = true
this.postgraduateForm = param this.postgraduateForm = param
this.postgraduateForm.Training = Number(this.postgraduateForm.Training)
}, },
handlePostgraduateSave() { handlePostgraduateSave() {
this.$refs.postgraduateForm.validate((valid) => { this.$refs.postgraduateForm.validate((valid) => {

View File

@ -23,7 +23,13 @@
prop="Phase" prop="Phase"
:label="$t('system:TrialExperience:title:Phase')" :label="$t('system:TrialExperience:title:Phase')"
min-width="50" min-width="50"
/> >
<template slot-scope="scope">
{{
scope.row.OtherStages ? scope.row.OtherStages : scope.row.Phase
}}
</template>
</el-table-column>
<el-table-column <el-table-column
prop="EvaluationCriteriaList" prop="EvaluationCriteriaList"
:label="$t('system:TrialExperience:title:Review Criteria')" :label="$t('system:TrialExperience:title:Review Criteria')"
@ -35,6 +41,13 @@
? scope.row.EvaluationCriteriaList.join(', ') ? scope.row.EvaluationCriteriaList.join(', ')
: '' : ''
}} }}
<span v-if="scope.row.OtherCriterion">
{{
scope.row.EvaluationCriteriaList.length > 0
? `, ${scope.row.OtherCriterion}`
: scope.row.OtherCriterion
}}
</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -146,13 +159,11 @@
:label="$t('system:TrialExperience:label:Phase')" :label="$t('system:TrialExperience:label:Phase')"
prop="PhaseId" prop="PhaseId"
> >
<el-select v-model="clinicalTrialForm.PhaseId"> <el-select
<!-- <el-option v-model="clinicalTrialForm.PhaseId"
v-for="(key,value) of dictionaryList.Phase" clearable
:key="value" placeholder=""
:label="key" >
:value="value"
/> -->
<el-option <el-option
v-for="item of dictionaryList.Trial_Phase" v-for="item of dictionaryList.Trial_Phase"
:key="item.Id" :key="item.Id"
@ -161,6 +172,15 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="OtherStages" v-if="Trial_Phase_isOther">
<el-input
v-model="clinicalTrialForm.OtherStages"
clearable
:placeholder="
$t('curriculumVitae:clinicalTrials:placeholder:byStagesOther')
"
></el-input>
</el-form-item>
<el-form-item <el-form-item
:label="$t('system:TrialExperience:label:Review Criteria')" :label="$t('system:TrialExperience:label:Review Criteria')"
prop="EvaluationCriteriaIdList" prop="EvaluationCriteriaIdList"
@ -171,13 +191,22 @@
> >
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> --> <!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> -->
<el-option <el-option
v-for="item of dictionaryList.ReadingStandard" v-for="item in ReadingStandard"
:key="item.Id" :key="item.Id"
:label="item.Value" :label="item.Value"
:value="item.Id" :value="item.Id"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="OtherCriterion" v-if="ReadingStandard_isOther">
<el-input
v-model="clinicalTrialForm.OtherCriterion"
clearable
:placeholder="
$t('curriculumVitae:clinicalTrials:placeholder:criterionOther')
"
></el-input>
</el-form-item>
<el-form-item <el-form-item
:label="$t('system:TrialExperience:label:Start Time')" :label="$t('system:TrialExperience:label:Start Time')"
prop="StartTime" prop="StartTime"
@ -250,6 +279,8 @@ const getClinicalTrialDefault = () => {
VisitReadingCount: 0, VisitReadingCount: 0,
StartTime: null, StartTime: null,
EndTime: null, EndTime: null,
OtherStages: '',
OtherCriterion: '',
} }
} }
export default { export default {
@ -292,6 +323,20 @@ export default {
StartTime: [ StartTime: [
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
], ],
OtherStages: [
{
required: true,
message: 'Please input',
trigger: ['blur', 'change'],
},
],
OtherCriterion: [
{
required: true,
message: 'Please input',
trigger: ['blur', 'change'],
},
],
}, },
GCP: 0, GCP: 0,
GCPID: '', GCPID: '',
@ -302,14 +347,54 @@ export default {
isBtnDisabled: false, isBtnDisabled: false,
selectId: '00000000-0000-0000-0000-000000000000', selectId: '00000000-0000-0000-0000-000000000000',
dictionaryList: {}, dictionaryList: {},
otherId: 'ef84e9cb-f1a6-49d7-b6da-34be2c12abd5',
} }
}, },
computed: {
Trial_Phase_isOther() {
if (!this.clinicalTrialForm.PhaseId) return false
let value = this.dictionaryList.Trial_Phase.find(
(item) => item.Id === this.clinicalTrialForm.PhaseId
).Value
return value === '其它' || value === 'Other'
},
ReadingStandard_isOther() {
if (
!this.clinicalTrialForm.EvaluationCriteriaIdList ||
this.clinicalTrialForm.EvaluationCriteriaIdList.length <= 0
)
return false
return this.clinicalTrialForm.EvaluationCriteriaIdList.includes(
this.otherId
)
},
ReadingStandard() {
if (!this.dictionaryList.ReadingStandard) return []
return [
...this.dictionaryList.ReadingStandard,
{
Id: this.otherId,
Value: 'Other',
},
]
},
},
watch: { watch: {
reviewerId() { reviewerId() {
if (this.reviewerId) { if (this.reviewerId) {
this.doctorId = this.reviewerId this.doctorId = this.reviewerId
} }
}, },
Trial_Phase_isOther() {
if (!this.Trial_Phase_isOther) {
this.clinicalTrialForm.OtherStages = null
}
},
ReadingStandard_isOther() {
if (!this.ReadingStandard_isOther) {
this.clinicalTrialForm.OtherCriterion = null
}
},
}, },
created() { created() {
this.initForm() this.initForm()
@ -355,6 +440,8 @@ export default {
StartTime, StartTime,
EndTime, EndTime,
VisitReadingCount, VisitReadingCount,
OtherStages,
OtherCriterion,
} = row } = row
this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault()) this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault())
this.clinicalTrialDialogTitle = 'Edit' this.clinicalTrialDialogTitle = 'Edit'
@ -366,6 +453,8 @@ export default {
this.clinicalTrialForm.VisitReadingCount = VisitReadingCount this.clinicalTrialForm.VisitReadingCount = VisitReadingCount
this.clinicalTrialForm.EvaluationCriteriaIdList = EvaluationCriteriaIdList this.clinicalTrialForm.EvaluationCriteriaIdList = EvaluationCriteriaIdList
this.clinicalTrialForm.EvaluationContent = EvaluationContent this.clinicalTrialForm.EvaluationContent = EvaluationContent
this.clinicalTrialForm.OtherStages = OtherStages
this.clinicalTrialForm.OtherCriterion = OtherCriterion
}, },
handleSave() { handleSave() {
this.$refs.clinicalTrialForm.validate((valid) => { this.$refs.clinicalTrialForm.validate((valid) => {

View File

@ -131,6 +131,7 @@
<el-button <el-button
type="text" type="text"
class="editBtn" class="editBtn"
:disabled="!reviewerId"
@click.stop="openEdit('', 'other')" @click.stop="openEdit('', 'other')"
> >
{{ $t('common:button:edit') }} {{ $t('common:button:edit') }}
@ -522,6 +523,20 @@ export default {
StartTime: [ StartTime: [
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
], ],
OtherStages: [
{
required: true,
message: 'Please input',
trigger: ['blur', 'change'],
},
],
OtherCriterion: [
{
required: true,
message: 'Please input',
trigger: ['blur', 'change'],
},
],
}, },
loading: false, loading: false,
daterange: [], daterange: [],
@ -674,7 +689,8 @@ export default {
async handleSave(key) { async handleSave(key) {
try { try {
if (key === 'clinicalTrials') { if (key === 'clinicalTrials') {
let validate = this.$refs.clinicalTrialsFrom.validate() let validate = await this.$refs.clinicalTrialsFrom.validate()
console.log(validate, 'validate')
if (!validate) return false if (!validate) return false
this.form.DoctorId = this.reviewerId this.form.DoctorId = this.reviewerId
this.loading = true this.loading = true
@ -686,7 +702,7 @@ export default {
} }
} }
if (key === 'certificate') { if (key === 'certificate') {
let validate = this.$refs.certificateFrom.validate() let validate = await this.$refs.certificateFrom.validate()
if (!validate) return false if (!validate) return false
this.certificateForm.Id = this.reviewerId this.certificateForm.Id = this.reviewerId
this.loading = true this.loading = true
@ -698,7 +714,7 @@ export default {
} }
} }
if (key === 'other') { if (key === 'other') {
let validate = this.$refs.otherAboutFrom.validate() let validate = await this.$refs.otherAboutFrom.validate()
if (!validate) return false if (!validate) return false
this.otherForm.DoctorId = this.reviewerId this.otherForm.DoctorId = this.reviewerId
this.loading = true this.loading = true

View File

@ -311,7 +311,10 @@ export default {
{ required: true, message: 'Please specify', trigger: 'blur' }, { required: true, message: 'Please specify', trigger: 'blur' },
{ max: 50, message: 'The maximum length is 50' }, { max: 50, message: 'The maximum length is 50' },
], ],
ReadingTypeOtherCN: [{ max: 50, message: 'The maximum length is 50' }], ReadingTypeOtherCN: [
{ required: true, message: 'Please specify', trigger: 'blur' },
{ max: 50, message: 'The maximum length is 50' },
],
SubspecialityIds: [ SubspecialityIds: [
{ {
required: true, required: true,
@ -324,6 +327,7 @@ export default {
{ max: 50, message: 'The maximum length is 50' }, { max: 50, message: 'The maximum length is 50' },
], ],
SubspecialityOtherCN: [ SubspecialityOtherCN: [
{ required: true, message: 'Please specify', trigger: 'blur' },
{ max: 50, message: 'The maximum length is 50' }, { max: 50, message: 'The maximum length is 50' },
], ],
}, },

View File

@ -243,8 +243,8 @@ export default {
if (sessionStorage.getItem('reviewerId')) { if (sessionStorage.getItem('reviewerId')) {
this.reviewerId = sessionStorage.getItem('reviewerId') this.reviewerId = sessionStorage.getItem('reviewerId')
this.getDetail() this.getDetail()
} else if (this.$route.query.id) { } else if (this.$route.query.Id) {
this.reviewerId = this.$route.query.id this.reviewerId = this.$route.query.Id
sessionStorage.setItem('reviewerId', this.reviewerId) sessionStorage.setItem('reviewerId', this.reviewerId)
this.getDetail() this.getDetail()
} }