diff --git a/src/api/reviewers.js b/src/api/reviewers.js index d840a2ca..3819b1b8 100644 --- a/src/api/reviewers.js +++ b/src/api/reviewers.js @@ -304,9 +304,9 @@ export function addOrUpdateDoctorBasicInfoAndEmployment(param) { }) } // 新增或编辑概述 -export function updateGneralSituation(param) { +export function addOrUpdateGneralSituation(param) { return request({ - url: `/Doctor/updateGneralSituation`, + url: `/Doctor/addOrUpdateGneralSituation`, method: 'post', data: param }) @@ -342,4 +342,28 @@ export function getIsVacation(param) { method: 'post', data: param }) +} +// 获取概述 +export function getSummarizeInfo(param) { + return request({ + url: `/Doctor/getSummarizeInfo`, + method: 'post', + data: param + }) +} +// 删除概述 +export function deleteSummarizeInfo(param) { + return request({ + url: `/Doctor/deleteSummarizeInfo`, + method: 'post', + data: param + }) +} +// pm通过邮箱新建或查询简历 +export function useEmialGetDoctorInfo(param) { + return request({ + url: `/TrialSiteSurvey/useEmialGetDoctorInfo`, + method: 'post', + data: param + }) } \ No newline at end of file diff --git a/src/api/trials.js b/src/api/trials.js index a07d282a..26fd4bb2 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -286,10 +286,11 @@ export function trialSiteUserSummaryListExport(param) { }) } -export function getVisitStageList(trialId) { +export function getVisitStageList(data) { return request({ - url: `/visitPlan/getVisitStageList/${trialId}`, - method: 'get' + url: `/visitPlan/getVisitStageList`, + method: 'post', + data }) } @@ -3905,4 +3906,12 @@ export function setTaskValid(data) { method: 'post', data }) +} +// 一致性分析临床数据设置任务为有效 +export function getVisitClinicalDataName(data) { + return request({ + url: `/ReadingClinicalData/getVisitClinicalDataName`, + method: 'post', + data + }) } \ No newline at end of file diff --git a/src/components/BaseModel/index.vue b/src/components/BaseModel/index.vue index d8d55449..fcd8db04 100644 --- a/src/components/BaseModel/index.vue +++ b/src/components/BaseModel/index.vue @@ -8,10 +8,11 @@ :visible.sync="config.visible" :close-on-click-modal="false" :show-close="config.showClose" + :top="config.top" :width="config.width" :fullscreen="config.fullscreen" > -
+
-
- {{ isEN ? DATA.SummarizeEn : DATA.Summarize }} -
+
{{ $t('curriculumVitae:noData') }}
@@ -155,6 +264,7 @@ export default { align-items: center; justify-content: space-between; margin-bottom: 10px; + font-weight: bold; } .message { width: 100%; diff --git a/src/views/reviewers/curriculumVitae/components/info/treatise.vue b/src/views/reviewers/curriculumVitae/components/info/treatise.vue index 73a33394..7e449186 100644 --- a/src/views/reviewers/curriculumVitae/components/info/treatise.vue +++ b/src/views/reviewers/curriculumVitae/components/info/treatise.vue @@ -11,9 +11,11 @@ {{ $t('common:button:edit') }}
-
- {{ DATA.Publications }} -
+
{{ $t('curriculumVitae:noData') }}
@@ -340,13 +402,14 @@ export default { line-height: 50px; background-color: #fff; text-align: center; + font-weight: bold; } .leftMenu { position: absolute; left: 0; top: 0; - width: 100px; - height: 100vh; + width: 300px; + height: 100%; background-color: #eee; border-right: 1px solid #eee; ::v-deep .el-menu { @@ -368,10 +431,10 @@ export default { } } .main { - width: calc(100% - 100px); + width: calc(100% - 300px); height: 100%; overflow: auto; - margin-left: 100px; + margin-left: 300px; display: flex; align-items: flex-start; } @@ -403,6 +466,7 @@ export default { line-height: 50px; background-color: #fff; text-align: left; + font-weight: bold; } ::v-deep .fileBox { background-color: #eee; @@ -412,6 +476,7 @@ export default { } ::v-deep .file_title { line-height: 40px; + font-weight: bold; } ::v-deep .btnBox { display: flex; diff --git a/src/views/reviewers/curriculumVitae/preview.vue b/src/views/reviewers/curriculumVitae/preview.vue index ac510f20..512ad9e9 100644 --- a/src/views/reviewers/curriculumVitae/preview.vue +++ b/src/views/reviewers/curriculumVitae/preview.vue @@ -40,7 +40,7 @@ }} {{ reviewerData.BasicInfoView.HospitalNameCN }} - + {{ $t('system:Setting:title:Vacation') }} {{ InHoliday }} @@ -80,21 +80,15 @@ }} -
+
{{ $t('curriculumVitae:summarize:title') }}
- - {{ - isEN - ? reviewerData.SummarizeInfo.SummarizeEn - : reviewerData.SummarizeInfo.Summarize - }} - + +
{{ $t('curriculumVitae:noData') }}
@@ -217,7 +211,7 @@ @@ -408,9 +452,8 @@ import store from '@/store' import { mapGetters } from 'vuex' import { getSelectionReviewerList, selectReviewers } from '@/api/trials' import BaseModel from '@/components/BaseModel' -import reviewerAdd from '@/views/reviewers/new' -import reviewerEdit from '@/views/reviewers/edit' -import { doctorSendEmail } from '@/api/reviewers' +import curriculumVitae from '@/views/reviewers/curriculumVitae' +import { doctorSendEmail, useEmialGetDoctorInfo } from '@/api/reviewers' const getListQueryDefault = () => { return { TrialId: '', @@ -435,8 +478,7 @@ export default { BaseContainer, Pagination, BaseModel, - reviewerAdd, - reviewerEdit, + curriculumVitae, }, dicts: ['ReadingType', 'Subspeciality', 'Position', 'Rank'], data() { @@ -449,13 +491,40 @@ export default { selectIdArr: [], otherId: 'ef84e9cb-f1a6-49d7-b6da-34be2c12abd5', token: store.getters.token, - share_model: { visible: false, title: '', width: '500px' }, + share_model: { + visible: false, + title: this.$t('curriculumVitae:share:title'), + width: '500px', + }, shareLink: null, email: null, - emailLoading: false, visible: false, - resumeType: 'add', reviewerId: null, + + emailVisible: false, + emailLoading: false, + emailForm: { + EmailOrPhone: null, + }, + emailRule: { + EmailOrPhone: [ + { + required: true, + message: this.$t('passwordReset:formRule:email'), + trigger: 'blur', + }, + { + type: 'email', + message: this.$t('rules:email'), + trigger: 'blur,change', + }, + { + max: 400, + message: this.$t('form:rules:maxLength:400'), + trigger: 'blur', + }, + ], + }, } }, computed: { @@ -465,6 +534,31 @@ export default { this.initPage() }, methods: { + handleCancle() { + Object.keys(this.emailForm).forEach((key) => { + this.emailForm[key] = null + }) + this.emailVisible = false + }, + async handleSave() { + try { + let validate = await this.$refs.emailForm.validate() + if (!validate) return false + this.emailLoading = true + this.emailForm.trialId = this.$route.query.trialId + let res = await useEmialGetDoctorInfo(this.emailForm) + this.emailLoading = false + if (res.IsSuccess) { + this.handleCancle() + sessionStorage.setItem('reviewerId', res.Result.DoctorId) + zzSessionStorage.setItem('trialId', this.$route.query.trialId) + this.visible = true + } + } catch (err) { + this.emailLoading = false + console.log(err) + } + }, copyCode() { this.$copyText( `${this.$t('reviewers-list:button:copyCode')}: ${this.shareLink}` @@ -484,20 +578,26 @@ export default { }, // 简历采集 resumeCollection() { - this.shareLink = `${location.protocol}//${location.host}/ReviewersResearch?lang=${this.$store.getters.language}` + this.shareLink = `${location.protocol}//${location.host}/ReviewersResearch?lang=${this.$store.getters.language}&trialId=${this.$route.query.trialId}` this.email = null this.share_model.visible = true }, // 发送邮件 async sendEmail() { - var pattern = - /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/ - if (!pattern.test(this.email)) - return this.$message.warning(this.$t('rules:email')) + let emailList = this.email.split('|') + let isError = false + emailList.forEach((item) => { + var pattern = + /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/ + if (!pattern.test(item)) { + isError = true + } + }) + if (isError) return this.$message.warning(this.$t('rules:email')) this.emailLoading = true let res = await doctorSendEmail({ - Email: this.email, - Url: `ReviewersResearch?lang=${this.$store.getters.language}`, + Email: emailList, + Url: `ReviewersResearch?lang=${this.$store.getters.language}&trialId=${this.$route.query.trialId}`, }) this.emailLoading = false if (res.IsSuccess) { @@ -509,10 +609,13 @@ export default { }, // 打开新增或修改简历弹框 openViewer(type, row) { - this.resumeType = type - if (row) { - this.reviewerId = row.Id + if (type === 'add') { + return (this.emailVisible = true) } + if (row) { + sessionStorage.setItem('reviewerId', row.Id) + } + zzSessionStorage.setItem('trialId', this.$route.query.trialId) this.visible = true }, go(path) { diff --git a/src/views/trials/trials-panel/attachments/site-research/index.vue b/src/views/trials/trials-panel/attachments/site-research/index.vue index 9a88c920..7b665215 100644 --- a/src/views/trials/trials-panel/attachments/site-research/index.vue +++ b/src/views/trials/trials-panel/attachments/site-research/index.vue @@ -96,7 +96,7 @@ - {{ $t("common:button:search") }} + {{ $t('common:button:search') }} - {{ $t("common:button:reset") }} + {{ $t('common:button:reset') }} - {{ $t("trials:researchRecord:button:questionStaffs") }} + {{ $t('trials:researchRecord:button:questionStaffs') }} - {{ $t("trials:researchRecord:button:questionLink") }} + {{ $t('trials:researchRecord:button:questionLink') }} @@ -148,6 +148,7 @@ prop="TrialSiteCode" :label="$t('trials:researchRecord:table:siteId')" min-width="100" + sortable="custom" show-overflow-tooltip /> @@ -155,6 +156,7 @@ prop="SiteName" :label="$t('trials:researchRecord:table:siteName')" min-width="100" + sortable="custom" show-overflow-tooltip /> @@ -162,6 +164,7 @@ prop="UserName" :label="$t('trials:researchRecord:table:contactor')" min-width="100" + sortable="custom" show-overflow-tooltip /> @@ -189,7 +192,7 @@ {{ scope.row.PreliminaryUser ? scope.row.PreliminaryUser.RealName - : "" + : '' }} @@ -201,7 +204,7 @@ show-overflow-tooltip > @@ -209,20 +212,21 @@ prop="State" :label="$t('trials:researchRecord:table:status')" min-width="150" + sortable="custom" show-overflow-tooltip > @@ -231,14 +235,15 @@ prop="IsDeleted" :label="$t('trials:researchRecord:table:isDeleted')" min-width="100" + sortable="custom" show-overflow-tooltip > @@ -248,6 +253,7 @@ :label="$t('trials:researchRecord:table:updateTime')" min-width="150" show-overflow-tooltip + sortable="custom" />