阅片跟踪添加导出功能

main
caiyiling 2024-11-25 13:27:21 +08:00
parent 76bc1bac16
commit 5c1248ff93
2 changed files with 138 additions and 44 deletions

View File

@ -1,23 +1,27 @@
<template> <template>
<div style="text-align: right"> <div style="text-align: right">
<!--导出--> <!--导出-->
<el-button type="primary" icon="el-icon-download" size="mini" :disabled="trialCriterionList.length === 0" @click="handleExport(0)" style="margin-bottom: 10px"> <el-button
type="primary"
:disabled="!(trialCriterionList.length > 0)"
icon="el-icon-download"
size="mini"
@click="handleExport(0)"
style="margin-bottom: 10px"
>
{{ $t('common:button:export') }} {{ $t('common:button:export') }}
</el-button> </el-button>
<el-tabs type="border-card" v-model="TrialReadingCriterionId"> <el-tabs type="border-card" v-model="TrialReadingCriterionId">
<el-tab-pane :label="i.TrialReadingCriterionName" :name="i.TrialReadingCriterionId" v-for="i of trialCriterionList" :key="i.TrialReadingCriterionId"> <el-tab-pane
<el-table :label="i.TrialReadingCriterionName"
v-loading="loading" :name="i.TrialReadingCriterionId"
:data="list" v-for="i of trialCriterionList"
border :key="i.TrialReadingCriterionId"
stripe >
> <el-table v-loading="loading" :data="list" border stripe>
<el-table-column <el-table-column label="" :min-width="50">
label=""
:min-width="50"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.$index + 1}} {{ scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 文件名称 --> <!-- 文件名称 -->
@ -52,74 +56,145 @@
</template> </template>
<script> <script>
import { getReadingTaskList_Export, getTrialReadingCriterionCanExportDocumentList, getOverallTumorEvaluationList_Export, getEvaluationOfTumorEfficacy_Export, getDetailedOfEvaluatedLesion_Export } from '@/api/export' import {
getCommonEvaluationList_Export,
getCommonJudgeRatioList_Export,
getReadingTaskList_Export,
getTrialReadingCriterionCanExportDocumentList,
getOverallTumorEvaluationList_Export,
getEvaluationOfTumorEfficacy_Export,
getDetailedOfEvaluatedLesion_Export,
} from '@/api/export'
import { getTrialCriterionList } from '@/api/trials/reading' import { getTrialCriterionList } from '@/api/trials/reading'
export default { export default {
name: "exportList", name: 'exportList',
data() { data() {
return { return {
loading: false, loading: false,
trialCriterionList: [], trialCriterionList: [],
TrialReadingCriterionId: null, TrialReadingCriterionId: null,
trialId: null, trialId: null,
list: [] list: [],
} }
}, },
props: { props: {
data: { data: {
type: Object, type: Object,
default() { return {} } default() {
return {}
},
} }
}, },
watch: { watch: {
TrialReadingCriterionId(v) { TrialReadingCriterionId(v) {
if (v === '0') return if (v === '0') return
this.loading = true this.loading = true
getTrialReadingCriterionCanExportDocumentList({TrialReadingCriterionId: v}).then(res => { getTrialReadingCriterionCanExportDocumentList({
this.list = res.Result TrialReadingCriterionId: v,
this.loading = false })
}).catch(() => { this.loading = true }) .then((res) => {
} this.list = res.Result
this.loading = false
})
.catch(() => {
this.loading = true
})
},
}, },
mounted() { mounted() {
this.trialId =this.$route.query.trialId this.trialId = this.$route.query.trialId
this.getTrialCriterionList() this.getTrialCriterionList()
}, },
methods: { methods: {
handleExport(type) { handleExport(type) {
if (this.trialCriterionList === 0) return var searchData = { ...this.data }
var searchData = {...this.data}
searchData.TrialReadingCriterionId = this.TrialReadingCriterionId searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
switch (type) { switch (type) {
case 0: case 0:
getReadingTaskList_Export(searchData).then(res => { getReadingTaskList_Export(searchData)
}).catch(() => { this.loading = false }) .then((res) => {})
break; .catch(() => {
this.loading = false
})
break
case 1: case 1:
getOverallTumorEvaluationList_Export(searchData).then(res => { searchData.ReadingExportType = 1
}).catch(() => { this.loading = false }) getCommonEvaluationList_Export(searchData)
break; .then((res) => {})
.catch(() => {
this.loading = false
})
break
case 2: case 2:
getEvaluationOfTumorEfficacy_Export(searchData).then(res => { searchData.ReadingExportType = 2
}).catch(() => { this.loading = false }) getCommonEvaluationList_Export(searchData)
.then((res) => {})
.catch(() => {
this.loading = false
})
break break
case 3: case 3:
getDetailedOfEvaluatedLesion_Export(searchData).then(res => { searchData.ReadingExportType = 3
}).catch(() => { this.loading = false }) getCommonEvaluationList_Export(searchData)
break; .then((res) => {})
.catch(() => {
this.loading = false
})
break
case 4:
searchData.ReadingExportType = 4
getCommonEvaluationList_Export(searchData)
.then((res) => {})
.catch(() => {
this.loading = false
})
break
case 7:
searchData.ReadingExportType = 7
getCommonEvaluationList_Export(searchData)
.then((res) => {})
.catch(() => {
this.loading = false
})
break
case 8:
getCommonJudgeRatioList_Export(searchData)
.then((res) => {})
.catch(() => {
this.loading = false
})
break
case 17:
searchData.ReadingExportType = 17
getCommonJudgeRatioList_Export(searchData)
.then((res) => {})
.catch(() => {
this.loading = false
})
break
case 18:
searchData.ReadingExportType = 18
getCommonJudgeRatioList_Export(searchData)
.then((res) => {})
.catch(() => {
this.loading = false
})
break
} }
}, },
getTrialCriterionList() { getTrialCriterionList() {
getTrialCriterionList(this.trialId).then(res => { getTrialCriterionList(this.trialId)
this.trialCriterionList = res.Result .then((res) => {
this.TrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId this.trialCriterionList = res.Result
}).catch(() => {}) this.TrialReadingCriterionId =
} this.trialCriterionList[0].TrialReadingCriterionId
} })
.catch(() => {})
},
},
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

View File

@ -114,6 +114,10 @@
> >
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!--导出-->
<el-button type="primary" icon="el-icon-download" @click="handleExport">
{{ $t('common:button:export') }}
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -307,12 +311,22 @@
:limit.sync="searchData.PageSize" :limit.sync="searchData.PageSize"
@pagination="getList" @pagination="getList"
/> />
<el-dialog
v-if="exportVisible"
:title="$t('trials:reviewTrack:button:export')"
:visible.sync="exportVisible"
:close-on-click-modal="false"
append-to-body>
<exportList :data="searchData" />
</el-dialog>
</template> </template>
</BaseContainer> </BaseContainer>
</template> </template>
<script> <script>
import BaseContainer from '@/components/BaseContainer' import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import exportList from './components/exportList.vue'
import { getPatientVisitTaskList } from '@/api/readManagenent.js' import { getPatientVisitTaskList } from '@/api/readManagenent.js'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
// import { getSystemConfirmedCreiterionList } from "@/api/trials"; // import { getSystemConfirmedCreiterionList } from "@/api/trials";
@ -348,7 +362,7 @@ const defaultSearchData = () => {
} }
export default { export default {
name: 'readManagenent', name: 'readManagenent',
components: { BaseContainer, Pagination }, components: { BaseContainer, Pagination, exportList },
data() { data() {
return { return {
// //
@ -366,6 +380,7 @@ export default {
// //
downloading: false, downloading: false,
downloadId: null, downloadId: null,
exportVisible: false
} }
}, },
created() { created() {
@ -377,6 +392,10 @@ export default {
handleCommand(command, item) { handleCommand(command, item) {
this[command](item) this[command](item)
}, },
//
handleExport() {
this.exportVisible = true
},
// //
async showReport(item) { async showReport(item) {
if (this.reportFlag[item.Id]) return if (this.reportFlag[item.Id]) return