From fb1d87e84bcfd3cf49ae6d727a0433b084823c80 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Tue, 4 Mar 2025 10:56:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9Edicom=E9=98=85=E7=89=87=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/getters.js | 3 +- src/store/modules/noneDicomReview.js | 6 +- .../visit-review/components/EcrfList.vue | 18 +- .../visit-review/components/FileViewer.vue | 957 ++++++++++++++++++ .../visit-review/components/PDFViewer.vue | 8 +- .../visit-review/components/ReadPage.vue | 114 ++- .../visit-review/components/ReportPage.vue | 4 +- .../visit-review/components/StudyList.vue | 7 +- 8 files changed, 1097 insertions(+), 20 deletions(-) create mode 100644 src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue diff --git a/src/store/getters.js b/src/store/getters.js index 3f0bc257..2d0a5744 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -49,6 +49,7 @@ const getters = { TotalNeedSignTrialDocCount: state => state.user.TotalNeedSignTrialDocCount, IsFirstSysDocNeedSign: state => state.user.IsFirstSysDocNeedSign, TrialStatusStr: state => state.user.TrialStatusStr, - lastViewportTaskId: state => state.noneDicomReview.lastViewportTaskId + lastViewportTaskId: state => state.noneDicomReview.lastViewportTaskId, + currentTaskState: state => state.noneDicomReview.currentTaskState } export default getters diff --git a/src/store/modules/noneDicomReview.js b/src/store/modules/noneDicomReview.js index 990f2fe0..702e2b2e 100644 --- a/src/store/modules/noneDicomReview.js +++ b/src/store/modules/noneDicomReview.js @@ -1,6 +1,7 @@ const getDefaultState = () => { return { - lastViewportTaskId: null + lastViewportTaskId: null, + currentTaskState: 0 } } const state = getDefaultState @@ -12,6 +13,9 @@ const mutations = { const actions = { setLastViewportTaskId({ state }, id) { state.lastViewportTaskId = id + }, + setCurrentTaskState({ state }, taskState) { + state.currentTaskState = taskState } } diff --git a/src/views/trials/trials-panel/reading/visit-review/components/EcrfList.vue b/src/views/trials/trials-panel/reading/visit-review/components/EcrfList.vue index 25c1f1a1..18b0ae79 100644 --- a/src/views/trials/trials-panel/reading/visit-review/components/EcrfList.vue +++ b/src/views/trials/trials-panel/reading/visit-review/components/EcrfList.vue @@ -56,6 +56,8 @@ import { getTrialReadingQuestion, saveVisitTaskQuestions, submitVisitTaskQuestionsInDto, getQuestionCalculateRelation } from '@/api/trials' import { setSkipReadingCache } from '@/api/reading' import const_ from '@/const/sign-code' +import store from '@/store' +import { mapGetters } from 'vuex' import FormItem from './FormItem' import SignForm from '@/views/trials/components/newSignForm' export default { @@ -89,6 +91,9 @@ export default { taskInfo: null } }, + computed: { + ...mapGetters(['currentTaskState']) + }, watch: { 'visitTaskInfo.VisitTaskId': { immediate: true, @@ -100,6 +105,14 @@ export default { this.getQuestionCalculateRelation() this.getQuestions() } + }, + currentTaskState: { + immediate: true, + handler(state) { + if (state === 2) { + this.readingTaskState = 2 + } + } } }, mounted() { @@ -220,7 +233,10 @@ export default { this.$refs['signForm'].btnLoading = false this.signVisible = false this.readingTaskState = 2 - // window.opener.postMessage('refreshTaskList', window.location) + this.taskInfo.ReadingTaskState = 2 + localStorage.setItem('taskInfo', JSON.stringify(this.taskInfo)) + store.dispatch('noneDicomReview/setCurrentTaskState', 2) + window.opener.postMessage('refreshTaskList', window.location) const confirm = await this.$confirm( this.$t('trials:noneDicoms:message:msg1'), { diff --git a/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue b/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue new file mode 100644 index 00000000..8ef584a6 --- /dev/null +++ b/src/views/trials/trials-panel/reading/visit-review/components/FileViewer.vue @@ -0,0 +1,957 @@ +