Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2024-10-12 09:14:15 +08:00
commit 98c42c7b6a
14 changed files with 2271 additions and 141 deletions

1951
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,7 @@
"i18n:en": "node i18nGenerate.js lang=en keyCol=5 valCol=7" "i18n:en": "node i18nGenerate.js lang=en keyCol=5 valCol=7"
}, },
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.370.0",
"@cornerstonejs/calculate-suv": "^1.1.0", "@cornerstonejs/calculate-suv": "^1.1.0",
"@cornerstonejs/core": "^1.27.4", "@cornerstonejs/core": "^1.27.4",
"@cornerstonejs/dicom-image-loader": "^1.27.4", "@cornerstonejs/dicom-image-loader": "^1.27.4",
@ -23,11 +24,13 @@
"@ffmpeg/ffmpeg": "^0.10.1", "@ffmpeg/ffmpeg": "^0.10.1",
"@microsoft/signalr": "^6.0.8", "@microsoft/signalr": "^6.0.8",
"@riophae/vue-treeselect": "0.4.0", "@riophae/vue-treeselect": "0.4.0",
"@vue-office/docx": "^1.6.2",
"@vue-office/excel": "^1.7.11",
"@vue/composition-api": "^1.7.2",
"ali-oss": "^6.17.1", "ali-oss": "^6.17.1",
"axios": "0.18.1", "axios": "0.18.1",
"babel-eslint": "7.2.3", "babel-eslint": "7.2.3",
"copy-webpack-plugin": "^4.5.2", "copy-webpack-plugin": "^4.5.2",
"@aws-sdk/client-s3": "^3.370.0",
"core-js": "^3.8.3", "core-js": "^3.8.3",
"cornerstone-core": "^2.6.1", "cornerstone-core": "^2.6.1",
"cornerstone-math": "^0.1.10", "cornerstone-math": "^0.1.10",
@ -65,6 +68,7 @@
"vue-clipboard2": "^0.3.1", "vue-clipboard2": "^0.3.1",
"vue-contextmenujs": "^1.3.13", "vue-contextmenujs": "^1.3.13",
"vue-count-to": "^1.0.13", "vue-count-to": "^1.0.13",
"vue-demi": "^0.14.6",
"vue-i18n": "^8.7.0", "vue-i18n": "^8.7.0",
"vue-pdf": "^4.3.0", "vue-pdf": "^4.3.0",
"vue-puzzle-vcode": "^1.1.10", "vue-puzzle-vcode": "^1.1.10",

View File

@ -187,3 +187,30 @@ export function qCVisitList_Export(data) {
data data
}) })
} }
// 导出下载记录
export function getTrialDownloadList_Export(data) {
return requestDownload({
url: `/ExcelExport/getTrialDownloadList_Export`,
responseType: 'blob',
method: 'post',
data
})
}
// 导出接收记录
export function getSCPImageUploadList_Export(data) {
return requestDownload({
url: `/ExcelExport/getSCPImageUploadList_Export`,
responseType: 'blob',
method: 'post',
data
})
}
// 导出接收检查影像记录
export function getPatientList_Export(data) {
return requestDownload({
url: `/ExcelExport/getPatientList_Export`,
responseType: 'blob',
method: 'post',
data
})
}

View File

@ -67,7 +67,7 @@
<span>{{ <span>{{
scope.row.FileSize && scope.row.FileSize > 0 scope.row.FileSize && scope.row.FileSize > 0
? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -139,7 +139,7 @@
<span>{{ <span>{{
scope.row.FileSize && scope.row.FileSize > 0 scope.row.FileSize && scope.row.FileSize > 0
? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -321,7 +321,7 @@
<span>{{ <span>{{
scope.row.size && scope.row.size > 0 scope.row.size && scope.row.size > 0
? `${(scope.row.size / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.size / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -26,7 +26,7 @@
<el-form-item> <el-form-item>
<!-- 查询 --> <!-- 查询 -->
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t("common:button:search") }} {{ $t('common:button:search') }}
</el-button> </el-button>
<!-- 重置 --> <!-- 重置 -->
<el-button <el-button
@ -34,7 +34,7 @@
icon="el-icon-refresh-left" icon="el-icon-refresh-left"
@click="handleReset" @click="handleReset"
> >
{{ $t("common:button:reset") }} {{ $t('common:button:reset') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-button <el-button
@ -44,7 +44,7 @@
size="small" size="small"
@click="handleAdd" @click="handleAdd"
> >
{{ $t("common:button:new") }} {{ $t('common:button:new') }}
</el-button> </el-button>
</el-form> </el-form>
</template> </template>
@ -74,7 +74,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
$fd( $fd(
"Common_File_BusinessScenario", 'Common_File_BusinessScenario',
scope.row.BusinessScenarioEnum scope.row.BusinessScenarioEnum
) )
}} }}
@ -106,10 +106,10 @@
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsDeleted" type="danger">{{ <el-tag v-if="scope.row.IsDeleted" type="danger">{{
$fd("YesOrNo", scope.row.IsDeleted) $fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag> }}</el-tag>
<el-tag v-else type="primary">{{ <el-tag v-else type="primary">{{
$fd("YesOrNo", scope.row.IsDeleted) $fd('YesOrNo', scope.row.IsDeleted)
}}</el-tag> }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
@ -122,14 +122,17 @@
<el-table-column :label="$t('common:action:action')"> <el-table-column :label="$t('common:action:action')">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="PreviewFile(scope.row)">
{{ $t('common:button:preview') }}
</el-button>
<el-button type="text" @click="handleDownload(scope.row)"> <el-button type="text" @click="handleDownload(scope.row)">
{{ $t("common:button:download") }} {{ $t('common:button:download') }}
</el-button> </el-button>
<el-button type="text" @click="handleEdit(scope.row)"> <el-button type="text" @click="handleEdit(scope.row)">
{{ $t("common:button:edit") }} {{ $t('common:button:edit') }}
</el-button> </el-button>
<el-button type="text" @click="handleDelete(scope.row)"> <el-button type="text" @click="handleDelete(scope.row)">
{{ $t("common:button:delete") }} {{ $t('common:button:delete') }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -166,22 +169,22 @@ import {
getCommonDocumentList, getCommonDocumentList,
DownloadCommonDoc, DownloadCommonDoc,
deleteCommonDocument, deleteCommonDocument,
} from "@/api/dictionary"; } from '@/api/dictionary'
import BaseContainer from "@/components/BaseContainer"; import BaseContainer from '@/components/BaseContainer'
import Pagination from "@/components/Pagination"; import Pagination from '@/components/Pagination'
import TemplateForm from "./TemplateForm"; import TemplateForm from './TemplateForm'
const FileTypeEnum = 2; const FileTypeEnum = 2
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
FileTypeEnum: FileTypeEnum, FileTypeEnum: FileTypeEnum,
BusinessScenarioEnum: null, BusinessScenarioEnum: null,
Name: "", Name: '',
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
}; }
}; }
export default { export default {
name: "ExportTemplate", name: 'ExportTemplate',
components: { BaseContainer, Pagination, TemplateForm }, components: { BaseContainer, Pagination, TemplateForm },
data() { data() {
return { return {
@ -189,86 +192,97 @@ export default {
list: [], list: [],
total: 0, total: 0,
currentRow: {}, currentRow: {},
editDialog: { title: "", visible: false }, editDialog: { title: '', visible: false },
loading: false, loading: false,
}; }
}, },
mounted() { mounted() {
this.getList(); this.getList()
}, },
methods: { methods: {
PreviewFile(row) {
let basePath = window.location.origin
if (window.location.protocol !== 'https:') {
basePath = 'https://irc.test.extimaging.com'
}
let data = {
name: row.NameCN,
path: basePath + row.Path,
}
this.$emit('PreviewFile', data)
},
handleDelete(row) { handleDelete(row) {
this.$confirm( this.$confirm(
this.$t("dictionary:attachment:export:confirm:delete") this.$t('dictionary:attachment:export:confirm:delete')
).then(() => { ).then(() => {
deleteCommonDocument(row.Id).then(() => { deleteCommonDocument(row.Id).then(() => {
this.$message.success(this.$t("common:message:deletedSuccessfully")); this.$message.success(this.$t('common:message:deletedSuccessfully'))
this.getList(); this.getList()
}); })
}); })
}, },
getList() { getList() {
this.loading = true; this.loading = true
getCommonDocumentList(this.searchData) getCommonDocumentList(this.searchData)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
this.list = res.Result.CurrentPageData; this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount; this.total = res.Result.TotalCount
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}, },
// //
handleAdd() { handleAdd() {
this.editDialog.title = "Add"; this.editDialog.title = 'Add'
this.currentRow = { FileTypeEnum: FileTypeEnum }; this.currentRow = { FileTypeEnum: FileTypeEnum }
this.editDialog.visible = true; this.editDialog.visible = true
}, },
// //
handleDownload(row) { handleDownload(row) {
this.loading = true; this.loading = true
DownloadCommonDoc(row.Code) DownloadCommonDoc(row.Code)
.then((data) => { .then((data) => {
this.loading = false; this.loading = false
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}, },
// //
handleEdit(row) { handleEdit(row) {
this.editDialog.title = "Edit"; this.editDialog.title = 'Edit'
this.currentRow = { ...row }; this.currentRow = { ...row }
this.editDialog.visible = true; this.editDialog.visible = true
}, },
handleSearch() { handleSearch() {
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1
this.getList(); this.getList()
}, },
handleReset() { handleReset() {
this.searchData = searchDataDefault(); this.searchData = searchDataDefault()
this.getList(); this.getList()
}, },
closeDialog() { closeDialog() {
this.editDialog.visible = false; this.editDialog.visible = false
}, },
// //
handleSortChange(column) { handleSortChange(column) {
if (column.order === "ascending") { if (column.order === 'ascending') {
this.searchData.Asc = true; this.searchData.Asc = true
} else { } else {
this.searchData.Asc = false; this.searchData.Asc = false
} }
this.searchData.SortField = column.prop; this.searchData.SortField = column.prop
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1
this.getList(); this.getList()
}, },
}, },
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .search{ ::v-deep .search {
display: block; display: block;
} }
</style> </style>

View File

@ -118,6 +118,9 @@
<el-table-column label="Action"> <el-table-column label="Action">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="PreviewFile(scope.row)">
{{ $t('common:button:preview') }}
</el-button>
<el-button type="text" @click="handleDownload(scope.row)"> <el-button type="text" @click="handleDownload(scope.row)">
下载 下载
</el-button> </el-button>
@ -201,6 +204,17 @@ export default {
}) })
}) })
}, },
PreviewFile(row) {
let basePath = window.location.origin
if (window.location.protocol !== 'https:') {
basePath = 'https://irc.test.extimaging.com'
}
let data = {
name: row.NameCN,
path: basePath + row.Path,
}
this.$emit('PreviewFile', data)
},
getList() { getList() {
this.loading = true this.loading = true
getCommonDocumentList(this.searchData) getCommonDocumentList(this.searchData)

View File

@ -1,14 +1,54 @@
<template> <template>
<div class="attachment-wrapper"> <div class="attachment-wrapper">
<el-tabs v-model="activeTab" @tab-click="clickTab"> <el-tabs v-model="activeTab" @tab-click="clickTab">
<el-tab-pane v-for="item in $d.Common_File_Type" :key="item.value" :label="item.label" :name="String(item.value)"> <el-tab-pane
<UploadTemplate v-if="activeTab === '1'" /> v-for="item in $d.Common_File_Type"
<ExportTemplate v-if="activeTab === '2'" /> :key="item.value"
<EmailTemplate v-if="activeTab === '3'" /> :label="item.label"
<CommonTemplate v-if="activeTab === '4'" /> :name="String(item.value)"
<SignatureTemplate v-if="activeTab === '5'" /> >
<UploadTemplate
v-if="activeTab === '1' && item.value == activeTab"
@PreviewFile="PreviewFile"
/>
<ExportTemplate
v-if="activeTab === '2' && item.value == activeTab"
@PreviewFile="PreviewFile"
/>
<EmailTemplate v-if="activeTab === '3' && item.value == activeTab" />
<CommonTemplate v-if="activeTab === '4' && item.value == activeTab" />
<SignatureTemplate
v-if="activeTab === '5' && item.value == activeTab"
/>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<!-- 预览 -->
<el-dialog
v-if="Preview.visible"
:visible.sync="Preview.visible"
:close-on-click-modal="false"
:fullscreen="true"
:title="Preview.title"
width="600px"
custom-class="base-dialog-wrapper"
>
<vue-office-docx
v-if="docxTypes.includes(Preview.type)"
:src="Preview.path"
style="height: calc(100vh - 70px)"
@rendered="renderedHandler"
@error="errorHandler"
/>
<vue-office-excel
v-else-if="excelTypes.includes(Preview.type)"
:src="Preview.path"
:options="options"
style="height: calc(100vh - 70px)"
@rendered="renderedHandler"
@error="errorHandler"
/>
<PreviewFile v-else :file-path="Preview.path" :file-type="Preview.type" />
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
@ -17,6 +57,11 @@ import ExportTemplate from './components/ExportTemplate'
import EmailTemplate from './components/EmailTemplate' import EmailTemplate from './components/EmailTemplate'
import CommonTemplate from './components/CommonTemplate' import CommonTemplate from './components/CommonTemplate'
import SignatureTemplate from './components/SignatureTemplate' import SignatureTemplate from './components/SignatureTemplate'
import VueOfficeDocx from '@vue-office/docx'
import '@vue-office/docx/lib/index.css'
import VueOfficeExcel from '@vue-office/excel'
import '@vue-office/excel/lib/index.css'
import PreviewFile from '@/components/PreviewFile/index'
export default { export default {
name: 'Attachment', name: 'Attachment',
components: { components: {
@ -24,11 +69,35 @@ export default {
ExportTemplate, ExportTemplate,
EmailTemplate, EmailTemplate,
CommonTemplate, CommonTemplate,
SignatureTemplate SignatureTemplate,
VueOfficeDocx,
VueOfficeExcel,
PreviewFile,
}, },
data() { data() {
return { return {
activeTab: null activeTab: null,
Preview: {
visible: false,
title: '',
type: null,
path: null,
},
excelTypes: ['xlsx', 'xls'],
docxTypes: ['docx', 'doc'],
options: {
xls: false, //xlsxfalsexlstrue
minColLength: 0, // excelxlsx0.
minRowLength: 0, // excelxlsx0.
widthOffset: 10, // Npx
heightOffset: 10, // Npx
beforeTransformData: (workbookData) => {
return workbookData
}, //exceljsexcelexcelvalue
transformData: (workbookData) => {
return workbookData
}, //exceltransformDatatext
},
} }
}, },
mounted() { mounted() {
@ -40,25 +109,46 @@ export default {
}, },
methods: { methods: {
clickTab(tab, event) { clickTab(tab, event) {
this.$router.push({ path: `/dictionary/attachment?tabActive=${tab.name}` }) this.$router.push({
} path: `/dictionary/attachment?tabActive=${tab.name}`,
} })
},
PreviewFile(data) {
if (!data.path) return false
let type = data.path
.substring(data.path.lastIndexOf('.') + 1)
.toLocaleLowerCase()
this.Preview.path = data.path
this.Preview.type = type
this.Preview.title = data.name
if (this.excelTypes.includes(type)) {
this.options.xls = type === 'xls'
}
this.Preview.visible = true
},
renderedHandler() {
console.log('渲染完成')
},
errorHandler() {
console.log('渲染失败')
},
},
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.attachment-wrapper{ .attachment-wrapper {
.el-tabs{ .el-tabs {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.el-tabs__header { .el-tabs__header {
height: 40px; height: 40px;
margin-bottom:5px; margin-bottom: 5px;
} }
.el-tabs__content{ .el-tabs__content {
flex: 1; flex: 1;
.el-tab-pane{ .el-tab-pane {
height: 100%; height: 100%;
} }
} }

View File

@ -104,7 +104,7 @@
? `${(scope.row.size / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.size / 1024 / 1024).toFixed(2)}MB`
: scope.row.Size && scope.row.Size > 0 : scope.row.Size && scope.row.Size > 0
? `${(scope.row.Size / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.Size / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -82,13 +82,14 @@
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!--导出--> <!--导出-->
<!-- <el-button <el-button
type="primary" type="primary"
icon="el-icon-download" icon="el-icon-download"
:disabled="list.length <= 0"
@click="handleExport" @click="handleExport"
> >
{{ $t('common:button:export') }} {{ $t('common:button:export') }}
</el-button> --> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -263,6 +264,7 @@
import { getTrialDownloadList } from '@/api/load' import { getTrialDownloadList } from '@/api/load'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import BaseContainer from '@/components/BaseContainer' import BaseContainer from '@/components/BaseContainer'
import { getTrialDownloadList_Export } from '@/api/export'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
SortField: 'DownloadStartTime', SortField: 'DownloadStartTime',
@ -352,6 +354,14 @@ export default {
this.searchData.DownloadEndTime = '' this.searchData.DownloadEndTime = ''
} }
}, },
//
async handleExport() {
try {
return getTrialDownloadList_Export(this.searchData)
} catch (err) {
consol.log(err)
}
},
}, },
} }
</script> </script>

View File

@ -92,7 +92,7 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t("common:button:search") }} {{ $t('common:button:search') }}
</el-button> </el-button>
<!-- 重置 --> <!-- 重置 -->
<el-button <el-button
@ -100,7 +100,16 @@
icon="el-icon-refresh-left" icon="el-icon-refresh-left"
@click="handleReset" @click="handleReset"
> >
{{ $t("common:button:reset") }} {{ $t('common:button:reset') }}
</el-button>
<!--导出-->
<el-button
type="primary"
icon="el-icon-download"
:disabled="list.length <= 0"
@click="handleExport"
>
{{ $t('common:button:export') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -155,7 +164,7 @@
min-width="90" min-width="90"
show-overflow-tooltip show-overflow-tooltip
><template slot-scope="scope"> ><template slot-scope="scope">
{{ scope.row.CalledAEList.join(", ") }} {{ scope.row.CalledAEList.join(', ') }}
</template> </template>
</el-table-column> </el-table-column>
<!--发送端AE--> <!--发送端AE-->
@ -166,7 +175,7 @@
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.CallingAEList.join(", ") }} {{ scope.row.CallingAEList.join(', ') }}
</template> </template>
</el-table-column> </el-table-column>
<!--检查--> <!--检查-->
@ -240,11 +249,12 @@ import {
getPatientList, getPatientList,
getDicomCalledAEList, getDicomCalledAEList,
getDicomCallingAEList, getDicomCallingAEList,
} from "@/api/trials"; } from '@/api/trials'
import BaseContainer from "@/components/BaseContainer"; import BaseContainer from '@/components/BaseContainer'
import Pagination from "@/components/Pagination"; import Pagination from '@/components/Pagination'
import moment from "moment"; import moment from 'moment'
import viewStudy from "./components/view-study"; import viewStudy from './components/view-study'
import { getPatientList_Export } from '@/api/export'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
PatientIdStr: null, PatientIdStr: null,
@ -258,9 +268,9 @@ const searchDataDefault = () => {
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
Asc: false, Asc: false,
SortField: "LatestPushTime", SortField: 'LatestPushTime',
}; }
}; }
export default { export default {
components: { BaseContainer, Pagination, viewStudy }, components: { BaseContainer, Pagination, viewStudy },
data() { data() {
@ -275,33 +285,33 @@ export default {
callingAEList: [], callingAEList: [],
visible: false, visible: false,
selectPatient: {}, selectPatient: {},
}; }
}, },
created() { created() {
this.getCalledAEList(); this.getCalledAEList()
this.getCallingAEList(); this.getCallingAEList()
}, },
mounted() { mounted() {
this.getList(); this.getList()
}, },
methods: { methods: {
// //
handleOpenDialog(item) { handleOpenDialog(item) {
this.visible = true; this.visible = true
this.selectPatient = item; this.selectPatient = item
}, },
// AE // AE
async getCalledAEList() { async getCalledAEList() {
try { try {
let params = { let params = {
TrialId: this.$route.query.trialId, TrialId: this.$route.query.trialId,
}; }
let res = await getDicomCalledAEList(params); let res = await getDicomCalledAEList(params)
if (res.IsSuccess) { if (res.IsSuccess) {
this.calledAEList = res.Result; this.calledAEList = res.Result
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err)
} }
}, },
// AE // AE
@ -309,60 +319,68 @@ export default {
try { try {
let params = { let params = {
TrialId: this.$route.query.trialId, TrialId: this.$route.query.trialId,
}; }
let res = await getDicomCallingAEList(params); let res = await getDicomCallingAEList(params)
if (res.IsSuccess) { if (res.IsSuccess) {
this.callingAEList = res.Result; this.callingAEList = res.Result
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err)
} }
}, },
getList() { getList() {
this.loading = true; this.loading = true
this.searchData.TrialId = this.$route.query.trialId; this.searchData.TrialId = this.$route.query.trialId
getPatientList(this.searchData) getPatientList(this.searchData)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
this.list = res.Result.CurrentPageData; this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount; this.total = res.Result.TotalCount
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}, },
handleDatetimeChange(val) { handleDatetimeChange(val) {
if (val) { if (val) {
this.searchData.BeginPushTime = val[0]; this.searchData.BeginPushTime = val[0]
this.searchData.EndPushTime = val[1]; this.searchData.EndPushTime = val[1]
} else { } else {
this.searchData.BeginPushTime = ""; this.searchData.BeginPushTime = ''
this.searchData.EndPushTime = ""; this.searchData.EndPushTime = ''
} }
}, },
handleSearch() { handleSearch() {
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1
this.getList(); this.getList()
}, },
// //
handleReset() { handleReset() {
this.datetimerange = null; this.datetimerange = null
this.handleDatetimeChange(); this.handleDatetimeChange()
this.searchData = searchDataDefault(); this.searchData = searchDataDefault()
this.getList(); this.getList()
}, },
// //
handleSortByColumn(column) { handleSortByColumn(column) {
if (column.order === "ascending") { if (column.order === 'ascending') {
this.searchData.Asc = true; this.searchData.Asc = true
} else { } else {
this.searchData.Asc = false; this.searchData.Asc = false
}
this.searchData.SortField = column.prop
this.searchData.PageIndex = 1
this.getList()
},
//
async handleExport() {
try {
return getPatientList_Export(this.searchData)
} catch (err) {
consol.log(err)
} }
this.searchData.SortField = column.prop;
this.searchData.PageIndex = 1;
this.getList();
}, },
}, },
}; }
</script> </script>

View File

@ -75,6 +75,15 @@
> >
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!--导出-->
<el-button
type="primary"
icon="el-icon-download"
:disabled="list.length <= 0"
@click="handleExport"
>
{{ $t('common:button:export') }}
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
@ -156,7 +165,7 @@
<span>{{ <span>{{
scope.row.FileSize && scope.row.FileSize > 0 scope.row.FileSize && scope.row.FileSize > 0
? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -208,6 +217,7 @@ import {
import BaseContainer from '@/components/BaseContainer' import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import moment from 'moment' import moment from 'moment'
import { getSCPImageUploadList_Export } from '@/api/export'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
CallingAE: null, CallingAE: null,
@ -315,6 +325,14 @@ export default {
this.searchData.PageIndex = 1 this.searchData.PageIndex = 1
this.getList() this.getList()
}, },
//
async handleExport() {
try {
return getSCPImageUploadList_Export(this.searchData)
} catch (err) {
consol.log(err)
}
},
}, },
} }
</script> </script>

View File

@ -324,7 +324,7 @@
<span>{{ <span>{{
scope.row.Size && scope.row.Size > 0 scope.row.Size && scope.row.Size > 0
? `${(scope.row.Size / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.Size / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -75,7 +75,7 @@
<span>{{ <span>{{
scope.row.FileSize && scope.row.FileSize > 0 scope.row.FileSize && scope.row.FileSize > 0
? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.FileSize / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -409,7 +409,7 @@
<span>{{ <span>{{
scope.row.size && scope.row.size > 0 scope.row.size && scope.row.size > 0
? `${(scope.row.size / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.size / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>

View File

@ -329,7 +329,7 @@
<span>{{ <span>{{
scope.row.Size && scope.row.Size > 0 scope.row.Size && scope.row.Size > 0
? `${(scope.row.Size / 1024 / 1024).toFixed(2)}MB` ? `${(scope.row.Size / 1024 / 1024).toFixed(2)}MB`
: 0 : ''
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>