阅片跟踪页报表导出更改
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2025-01-02 13:49:43 +08:00
parent 2b987fb1ae
commit 98502230c3
4 changed files with 175 additions and 139 deletions

View File

@ -0,0 +1,106 @@
<template>
<div style="text-align: right">
<el-tabs v-model="exportType">
<el-tab-pane
label="报表导出"
name="report"
>
<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"
>
<exportList
v-if="trialReadingCriterionId === i.TrialReadingCriterionId && exportType === 'report'"
:trialReadingCriterionId="i.TrialReadingCriterionId"
:data="data"
/>
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane
label="CDISC导出"
name="CDISC"
>
</el-tab-pane>
<el-tab-pane
label="报表导出配置"
name="reportConfig"
>
<el-tabs type="border-card" v-model="configTrialReadingCriterionId">
<el-tab-pane
:label="i.TrialReadingCriterionName"
:name="i.TrialReadingCriterionId"
v-for="i of trialCriterionList"
:key="i.TrialReadingCriterionId"
>
<configList
v-if="configTrialReadingCriterionId === i.TrialReadingCriterionId && exportType === 'reportConfig'"
:trialReadingCriterionId="i.TrialReadingCriterionId"
/>
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane
label="CDISC导出配置"
name="CDISCConfig"
>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { getTrialCriterionList } from '@/api/trials/reading'
import exportList from './exportList'
import configList from './configList'
export default {
name: 'ReviewResults',
components: {
exportList,
configList
},
data() {
return {
loading: false,
trialCriterionList: [],
trialReadingCriterionId: null,
trialId: null,
exportType:'report',
configTrialReadingCriterionId: ''
}
},
props: {
data: {
type: Object,
default() {
return {}
},
},
},
mounted() {
this.trialId = this.$route.query.trialId
this.getTrialCriterionList()
},
methods: {
async getTrialCriterionList() {
try {
let res = await getTrialCriterionList(this.trialId)
if (res.IsSuccess) {
this.trialCriterionList = res.Result
this.trialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
this.configTrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
}
} catch(e) {
console.log(e)
}
},
},
}
</script>
<style scoped>
</style>

View File

@ -10,7 +10,7 @@
default-expand-all
:tree-props="{ children: 'Children', hasChildren: 'hasChildren' }"
>
<el-table-column prop="QuestionName" label="问题" width="300">
<el-table-column prop="QuestionName" label="问题名称" width="300">
</el-table-column>
<el-table-column :key="item.Code" v-for="item in exportInfo.DicList" :label="item.ValueCN" >
<template v-slot="scope">

View File

@ -1,94 +1,41 @@
<template>
<div style="text-align: right">
<!--导出-->
<!-- <el-button
type="primary"
:disabled="!(trialCriterionList.length > 0)"
icon="el-icon-download"
size="mini"
@click="handleExport(0)"
style="margin-bottom: 10px"
<el-table
v-loading="loading"
:data="list"
border
stripe
height="500">
<el-table-column label="" :min-width="50">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<!-- 文件名称 -->
<el-table-column
:label="$t('trials:reviewTrack:title:fileName')"
:min-width="50"
>
{{ $t('common:button:export') }}
</el-button> -->
<el-tabs v-model="exportType">
<el-tab-pane
label="报表导出"
name="report"
>
<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-table v-if="TrialReadingCriterionId === i.TrialReadingCriterionId" v-loading="loading" :data="list" border stripe height="500">
<el-table-column label="" :min-width="50">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<!-- 文件名称 -->
<el-table-column
:label="$t('trials:reviewTrack:title:fileName')"
:min-width="50"
>
<template slot-scope="scope">
{{ scope.row.FileName }}
</template>
</el-table-column>
<el-table-column
prop=""
:label="$t('common:action:action')"
min-width="80"
>
<template slot-scope="scope">
<!-- 下载 -->
<el-button
icon="el-icon-download"
circle
:title="$t('trials:reviewTrack:title:download')"
size="mini"
@click="handleExport(scope.row.ExportCatogory)"
/>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane
label="CDISC导出"
name="CDISC"
>
</el-tab-pane>
<el-tab-pane
label="报表导出配置"
name="reportConfig"
>
<el-tabs type="border-card" v-model="configTrialReadingCriterionId">
<el-tab-pane
:label="i.TrialReadingCriterionName"
:name="i.TrialReadingCriterionId"
v-for="i of trialCriterionList"
:key="i.TrialReadingCriterionId"
>
<configList
v-if="configTrialReadingCriterionId === i.TrialReadingCriterionId && exportType === 'reportConfig'"
:trialReadingCriterionId="i.TrialReadingCriterionId"
/>
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane
label="CDISC导出配置"
name="CDISCConfig"
>
</el-tab-pane>
</el-tabs>
</div>
<template slot-scope="scope">
{{ scope.row.FileName }}
</template>
</el-table-column>
<el-table-column
prop=""
:label="$t('common:action:action')"
min-width="80"
>
<template slot-scope="scope">
<!-- 下载 -->
<el-button
icon="el-icon-download"
circle
:title="$t('trials:reviewTrack:title:download')"
size="mini"
@click="handleExport(scope.row.ExportCatogory)"
/>
</template>
</el-table-column>
</el-table>
</template>
<script>
@ -101,56 +48,49 @@ import {
getEvaluationOfTumorEfficacy_Export,
getDetailedOfEvaluatedLesion_Export,
} from '@/api/export'
import { getTrialCriterionList } from '@/api/trials/reading'
import configList from './configList'
export default {
name: 'exportList',
components: {
configList
},
data() {
return {
loading: false,
trialCriterionList: [],
TrialReadingCriterionId: null,
trialId: null,
list: [],
exportType:'report',
configTrialReadingCriterionId: ''
}
},
props: {
trialReadingCriterionId: {
type: String,
required: true
},
data: {
type: Object,
default() {
return {}
},
},
}
}
},
watch: {
TrialReadingCriterionId(v) {
if (v === '0') return
this.loading = true
getTrialReadingCriterionCanExportDocumentList({
TrialReadingCriterionId: v,
})
.then((res) => {
this.list = res.Result
this.loading = false
})
.catch(() => {
this.loading = true
})
},
data() {
return {
loading: false,
trialId: null,
list: []
}
},
mounted() {
this.trialId = this.$route.query.trialId
this.getTrialCriterionList()
this.getList()
},
methods: {
async getList() {
this.loading = true
try {
let res = await getTrialReadingCriterionCanExportDocumentList({
TrialReadingCriterionId: this.trialReadingCriterionId,
})
if (res.IsSuccess) {
this.list = res.Result
}
this.loading = false
} catch(e) {
console.log(e)
this.loading = false
}
},
handleExport(type) {
var searchData = { ...this.data }
searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
searchData.TrialReadingCriterionId = this.trialReadingCriterionId
switch (type) {
case 0:
getReadingTaskList_Export(searchData)
@ -224,16 +164,6 @@ export default {
break
}
},
getTrialCriterionList() {
getTrialCriterionList(this.trialId)
.then((res) => {
this.trialCriterionList = res.Result
this.TrialReadingCriterionId =
this.trialCriterionList[0].TrialReadingCriterionId
this.configTrialReadingCriterionId = this.trialCriterionList[0].TrialReadingCriterionId
})
.catch(() => {})
},
},
}
</script>

View File

@ -839,7 +839,7 @@
:close-on-click-modal="false"
width="80%"
append-to-body>
<exportList :trial-reading-criterion-id="TrialReadingCriterionId" :data="searchData" />
<ReviewResults :data="searchData" />
</el-dialog>
@ -948,7 +948,7 @@ import { changeURLStatic } from '@/utils/history.js'
import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination'
import RefereeRules from './components/RefereeRules.vue'
import exportList from './components/exportList.vue'
import ReviewResults from './components/ReviewResults'
import ClinicalData from "../../subject/reading-period/components/ClinicalData"
import RecordList from './components/RecordList.vue'
const searchDataDefault = () => {
@ -980,7 +980,7 @@ const searchDataDefault = () => {
}
export default {
name: 'TrialsNotice',
components: { BaseContainer, Pagination, RefereeRules, ClinicalData, exportList, RecordList },
components: { BaseContainer, Pagination, RefereeRules, ClinicalData, ReviewResults, RecordList },
props: {
AllocationReadingCategory: {
type: String