From c1c6f5a6c7c80d192d1483e2282cb711d753465a Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 28 Oct 2024 17:03:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8E=86=E9=83=A8=E5=88=86=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/reviewers/ReviewersResearch.vue | 2 +- .../components/EducationTraining.vue | 51 +++++---- .../reviewers/components/TrialExperience.vue | 107 ++++++++++++++++-- .../components/info/clinicalTrials.vue | 22 +++- .../components/info/specialty.vue | 6 +- src/views/reviewers/curriculumVitae/index.vue | 4 +- 6 files changed, 154 insertions(+), 38 deletions(-) diff --git a/src/views/reviewers/ReviewersResearch.vue b/src/views/reviewers/ReviewersResearch.vue index faf999b7..3c18be08 100644 --- a/src/views/reviewers/ReviewersResearch.vue +++ b/src/views/reviewers/ReviewersResearch.vue @@ -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 diff --git a/src/views/reviewers/components/EducationTraining.vue b/src/views/reviewers/components/EducationTraining.vue index 63e3e3b8..cbdaac83 100644 --- a/src/views/reviewers/components/EducationTraining.vue +++ b/src/views/reviewers/components/EducationTraining.vue @@ -529,12 +529,12 @@ > @@ -565,22 +565,22 @@ :label="$t('system:EducationTraining:table:Hospital')" prop="Hospital" > - - - - - - - - + + + + {{ item.HospitalName }} + + + { 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) => { diff --git a/src/views/reviewers/components/TrialExperience.vue b/src/views/reviewers/components/TrialExperience.vue index f4b95177..0ffaa9d2 100644 --- a/src/views/reviewers/components/TrialExperience.vue +++ b/src/views/reviewers/components/TrialExperience.vue @@ -23,7 +23,13 @@ prop="Phase" :label="$t('system:TrialExperience:title:Phase')" min-width="50" - /> + > + + + {{ + scope.row.EvaluationCriteriaList.length > 0 + ? `, ${scope.row.OtherCriterion}` + : scope.row.OtherCriterion + }} + - - + + + + + + + { 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) => { diff --git a/src/views/reviewers/curriculumVitae/components/info/clinicalTrials.vue b/src/views/reviewers/curriculumVitae/components/info/clinicalTrials.vue index 9e05c0ba..71d91b75 100644 --- a/src/views/reviewers/curriculumVitae/components/info/clinicalTrials.vue +++ b/src/views/reviewers/curriculumVitae/components/info/clinicalTrials.vue @@ -131,6 +131,7 @@ {{ $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 diff --git a/src/views/reviewers/curriculumVitae/components/info/specialty.vue b/src/views/reviewers/curriculumVitae/components/info/specialty.vue index 1b97bac1..ebfbbe03 100644 --- a/src/views/reviewers/curriculumVitae/components/info/specialty.vue +++ b/src/views/reviewers/curriculumVitae/components/info/specialty.vue @@ -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' }, ], }, diff --git a/src/views/reviewers/curriculumVitae/index.vue b/src/views/reviewers/curriculumVitae/index.vue index 35685927..e3435eab 100644 --- a/src/views/reviewers/curriculumVitae/index.vue +++ b/src/views/reviewers/curriculumVitae/index.vue @@ -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() }