简历部分问题修复
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)
// this.$router.push({ path: `/researchForm?trialId=${this.trialId}&trialSiteSurveyId=${res.Result.TrialSiteSurveyId}` })
this.$router.push({
path: `/ReviewersResearchForm?Id=${
path: `/curriculumVitae?Id=${
res.Result.DoctorId ? res.Result.DoctorId : ''
}&tabActive=BasicInfo&ReviewStatus=${
res.Result.ReviewStatus

View File

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

View File

@ -23,7 +23,13 @@
prop="Phase"
:label="$t('system:TrialExperience:title:Phase')"
min-width="50"
/>
>
<template slot-scope="scope">
{{
scope.row.OtherStages ? scope.row.OtherStages : scope.row.Phase
}}
</template>
</el-table-column>
<el-table-column
prop="EvaluationCriteriaList"
:label="$t('system:TrialExperience:title:Review Criteria')"
@ -35,6 +41,13 @@
? scope.row.EvaluationCriteriaList.join(', ')
: ''
}}
<span v-if="scope.row.OtherCriterion">
{{
scope.row.EvaluationCriteriaList.length > 0
? `, ${scope.row.OtherCriterion}`
: scope.row.OtherCriterion
}}
</span>
</template>
</el-table-column>
<el-table-column
@ -146,13 +159,11 @@
:label="$t('system:TrialExperience:label:Phase')"
prop="PhaseId"
>
<el-select v-model="clinicalTrialForm.PhaseId">
<!-- <el-option
v-for="(key,value) of dictionaryList.Phase"
:key="value"
:label="key"
:value="value"
/> -->
<el-select
v-model="clinicalTrialForm.PhaseId"
clearable
placeholder=""
>
<el-option
v-for="item of dictionaryList.Trial_Phase"
:key="item.Id"
@ -161,6 +172,15 @@
/>
</el-select>
</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
:label="$t('system:TrialExperience:label:Review Criteria')"
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="item of dictionaryList.ReadingStandard"
v-for="item in ReadingStandard"
:key="item.Id"
:label="item.Value"
:value="item.Id"
/>
</el-select>
</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
:label="$t('system:TrialExperience:label:Start Time')"
prop="StartTime"
@ -250,6 +279,8 @@ const getClinicalTrialDefault = () => {
VisitReadingCount: 0,
StartTime: null,
EndTime: null,
OtherStages: '',
OtherCriterion: '',
}
}
export default {
@ -292,6 +323,20 @@ export default {
StartTime: [
{ 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,
GCPID: '',
@ -302,14 +347,54 @@ export default {
isBtnDisabled: false,
selectId: '00000000-0000-0000-0000-000000000000',
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: {
reviewerId() {
if (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() {
this.initForm()
@ -355,6 +440,8 @@ export default {
StartTime,
EndTime,
VisitReadingCount,
OtherStages,
OtherCriterion,
} = row
this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault())
this.clinicalTrialDialogTitle = 'Edit'
@ -366,6 +453,8 @@ export default {
this.clinicalTrialForm.VisitReadingCount = VisitReadingCount
this.clinicalTrialForm.EvaluationCriteriaIdList = EvaluationCriteriaIdList
this.clinicalTrialForm.EvaluationContent = EvaluationContent
this.clinicalTrialForm.OtherStages = OtherStages
this.clinicalTrialForm.OtherCriterion = OtherCriterion
},
handleSave() {
this.$refs.clinicalTrialForm.validate((valid) => {

View File

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

View File

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

View File

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