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-09-20 16:46:13 +08:00
commit d67bc1e02d
3 changed files with 270 additions and 189 deletions

View File

@ -17,11 +17,7 @@
</el-form-item> </el-form-item>
<!-- 用户名称 --> <!-- 用户名称 -->
<el-form-item :label="$t('trials:downloadMonitor:table:userName')"> <el-form-item :label="$t('trials:downloadMonitor:table:userName')">
<el-input <el-input v-model="searchData.Name" style="width: 120px" clearable />
v-model="searchData.Name"
style="width: 120px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 用户类型 --> <!-- 用户类型 -->
<el-form-item <el-form-item
@ -150,7 +146,7 @@
<!-- 用户类型 --> <!-- 用户类型 -->
<el-table-column <el-table-column
prop="VisitName" prop="VisitName"
min-width="80" min-width="100"
:label="$t('trials:downloadMonitor:table:userType')" :label="$t('trials:downloadMonitor:table:userType')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
@ -164,7 +160,7 @@
<!-- 检查数量 --> <!-- 检查数量 -->
<el-table-column <el-table-column
prop="VisitName" prop="VisitName"
min-width="80" min-width="100"
:label="$t('trials:downloadMonitor:table:studyNum')" :label="$t('trials:downloadMonitor:table:studyNum')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
@ -212,7 +208,7 @@
<!-- 状态 --> <!-- 状态 -->
<el-table-column <el-table-column
prop="IsSuccess" prop="IsSuccess"
min-width="130" min-width="100"
:label="$t('trials:downloadMonitor:table:status')" :label="$t('trials:downloadMonitor:table:status')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
@ -239,6 +235,17 @@
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!-- 总共用时 -->
<el-table-column
prop="UploadIntervalStr"
min-width="100"
:label="$t('trials:downloadMonitor:table:totalTime')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.UploadIntervalStr }}
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination
@ -270,7 +277,7 @@ const searchDataDefault = () => {
Ip: null, Ip: null,
ImageType: null, ImageType: null,
UserType: null, UserType: null,
Name:null Name: null,
} }
} }
export default { export default {

View File

@ -65,7 +65,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
@ -73,7 +73,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-form> </el-form>
@ -176,6 +176,17 @@
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!-- 总共用时 -->
<el-table-column
prop="UploadIntervalStr"
min-width="100"
:label="$t('trials:pushRecord:table:totalTime')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.UploadIntervalStrs }}
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination
@ -193,10 +204,10 @@ import {
getSCPImageUploadList, getSCPImageUploadList,
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'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
CallingAE: null, CallingAE: null,
@ -207,9 +218,9 @@ const searchDataDefault = () => {
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
Asc: false, Asc: false,
SortField: "StartTime", SortField: 'StartTime',
}; }
}; }
export default { export default {
components: { BaseContainer, Pagination }, components: { BaseContainer, Pagination },
data() { data() {
@ -222,14 +233,14 @@ export default {
datetimerange: [], datetimerange: [],
calledAEList: [], calledAEList: [],
callingAEList: [], callingAEList: [],
}; }
}, },
created() { created() {
this.getCalledAEList(); this.getCalledAEList()
this.getCallingAEList(); this.getCallingAEList()
}, },
mounted() { mounted() {
this.getList(); this.getList()
}, },
methods: { methods: {
// AE // AE
@ -237,13 +248,13 @@ export default {
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
@ -251,60 +262,60 @@ 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
getSCPImageUploadList(this.searchData) getSCPImageUploadList(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.StartTime = val[0]; this.searchData.StartTime = val[0]
this.searchData.EndTime = val[1]; this.searchData.EndTime = val[1]
} else { } else {
this.searchData.StartTime = ""; this.searchData.StartTime = ''
this.searchData.EndTime = ""; this.searchData.EndTime = ''
} }
}, },
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.SortField = column.prop
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1
this.getList(); this.getList()
}, },
}, },
}; }
</script> </script>

View File

@ -5,9 +5,14 @@
<el-form :inline="true"> <el-form :inline="true">
<!-- 中心编号 --> <!-- 中心编号 -->
<el-form-item :label="$t('trials:uploadMonitor:table:siteId')"> <el-form-item :label="$t('trials:uploadMonitor:table:siteId')">
<el-select v-model="searchData.SiteId" clearable filterable style="width:120px;"> <el-select
v-model="searchData.SiteId"
clearable
filterable
style="width: 120px"
>
<el-option <el-option
v-for="(item,index) of siteOptions" v-for="(item, index) of siteOptions"
:key="index" :key="index"
:label="item.TrialSiteCode" :label="item.TrialSiteCode"
:value="item.SiteId" :value="item.SiteId"
@ -18,15 +23,18 @@
<el-form-item :label="$t('trials:uploadMonitor:table:subjectId')"> <el-form-item :label="$t('trials:uploadMonitor:table:subjectId')">
<el-input <el-input
v-model="searchData.SubjectInfo" v-model="searchData.SubjectInfo"
style="width:120px;" style="width: 120px"
clearable clearable
/> />
</el-form-item> </el-form-item>
<!-- 访视名称 --> <!-- 访视名称 -->
<el-form-item class="my_multiple" :label="$t('trials:uploadMonitor:table:visitName')"> <el-form-item
class="my_multiple"
:label="$t('trials:uploadMonitor:table:visitName')"
>
<el-select <el-select
v-model="searchData.VisitPlanArray" v-model="searchData.VisitPlanArray"
style="width:140px" style="width: 140px"
clearable clearable
multiple multiple
> >
@ -38,11 +46,7 @@
> >
<span style="float: left">{{ item.VisitName }}</span> <span style="float: left">{{ item.VisitName }}</span>
</el-option> </el-option>
<el-option <el-option key="Other" label="Out of Plan" value="1.11" />
key="Other"
label="Out of Plan"
value="1.11"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 检查编号 --> <!-- 检查编号 -->
@ -50,33 +54,70 @@
<el-input v-model="searchData.StudyCode" /> <el-input v-model="searchData.StudyCode" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('trials:uploadMonitor:table:imageType')"> <el-form-item :label="$t('trials:uploadMonitor:table:imageType')">
<el-select v-model="searchData.IsDicom" style="width:120px" clearable> <el-select
<el-option v-for="item of $d.IsDicom" :label="item.label" :value="item.value" :key="`RoleName${item.value}`"/> v-model="searchData.IsDicom"
style="width: 120px"
clearable
>
<el-option
v-for="item of $d.IsDicom"
:label="item.label"
:value="item.value"
:key="`RoleName${item.value}`"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('trials:uploadMonitor:table:uploader')"> <el-form-item :label="$t('trials:uploadMonitor:table:uploader')">
<el-input <el-input
v-model="searchData.Uploader" v-model="searchData.Uploader"
style="width:120px;" style="width: 120px"
clearable clearable
/> />
</el-form-item> </el-form-item>
<el-form-item :label="$t('trials:uploadMonitor:table:uploadStatus')"> <el-form-item :label="$t('trials:uploadMonitor:table:uploadStatus')">
<el-select v-model="searchData.IsSuccess" style="width:120px" clearable> <el-select
<el-option v-for="item of $d.YesOrNo" :label="item.label" :value="item.value" :key="`RoleName${item.value}`"/> v-model="searchData.IsSuccess"
style="width: 120px"
clearable
>
<el-option
v-for="item of $d.YesOrNo"
:label="item.label"
:value="item.value"
:key="`RoleName${item.value}`"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('trials:uploadMonitor:table:uploadTime')">
<el-date-picker
v-model="datetimerange"
type="datetimerange"
:default-time="['00:00:00', '23:59:59']"
:start-placeholder="$t('trials:loginLog:table:beginTime')"
:end-placeholder="$t('trials:loginLog:table:endTime')"
value-format="yyyy-MM-dd HH:mm:ss"
@change="handleDatetimeChange"
/>
</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 type="primary" icon="el-icon-refresh-left" @click="handleReset"> <el-button
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!--导出--> <!--导出-->
<el-button type="primary" icon="el-icon-download" @click="handleExport"> <el-button
type="primary"
icon="el-icon-download"
@click="handleExport"
>
{{ $t('common:button:export') }} {{ $t('common:button:export') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -84,13 +125,13 @@
</template> </template>
<template slot="main-container"> <template slot="main-container">
<el-table <el-table
v-adaptive="{bottomOffset:60}" v-adaptive="{ bottomOffset: 60 }"
v-loading="loading" v-loading="loading"
:data="list" :data="list"
stripe stripe
height="100" height="100"
@sort-change="handleSortByColumn" @sort-change="handleSortByColumn"
:default-sort ="{prop: 'ArchiveFinishedTime', order: 'descending'}" :default-sort="{ prop: 'ArchiveFinishedTime', order: 'descending' }"
> >
<el-table-column type="index" width="40" align="left" /> <el-table-column type="index" width="40" align="left" />
<!-- 中心编号 --> <!-- 中心编号 -->
@ -133,9 +174,9 @@
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{$fd('IsDicom', scope.row.IsDicom)}} {{ $fd('IsDicom', scope.row.IsDicom) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 上传人 --> <!-- 上传人 -->
<el-table-column <el-table-column
@ -153,63 +194,6 @@
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
<!-- 开始时间 -->
<el-table-column
prop="UploadStartTime"
min-width="140"
:label="$t('trials:uploadMonitor:table:beginTime')"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
{{scope.row.UploadStartTimeStr}}
</template>
</el-table-column>
<!-- 结束时间 -->
<el-table-column
prop="ArchiveFinishedTime"
min-width="140"
:label="$t('trials:uploadMonitor:table:endTime')"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
{{scope.row.ArchiveFinishedTime}}
</template>
</el-table-column>
<!-- 上传用时 -->
<el-table-column
prop="UploadIntervalStr"
min-width="120"
:label="$t('trials:uploadMonitor:table:uploadInterval')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{scope.row.UploadIntervalStr}}
</template>
</el-table-column>
<!-- 归档用时 -->
<el-table-column
prop="ArchiveIntervalStr"
min-width="120"
:label="$t('trials:uploadMonitor:table:archiveInterval')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{scope.row.ArchiveIntervalStr}}
</template>
</el-table-column>
<!-- 总共用时 -->
<el-table-column
prop="TotalMillisecondsInterval"
min-width="100"
:label="$t('trials:uploadMonitor:table:totalTime')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{scope.row.TimeInterval}}
</template>
</el-table-column>
<!-- 文件数 --> <!-- 文件数 -->
<el-table-column <el-table-column
prop="FileCount" prop="FileCount"
@ -222,12 +206,12 @@
<el-table-column <el-table-column
prop="FileSize" prop="FileSize"
min-width="130" min-width="130"
:label="$t('trials:uploadMonitor:table:fileSize')" :label="$t('trials:uploadMonitor:table:fileSize')"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{fileSizeFormatter(scope.row.FileSize)}} {{ fileSizeFormatter(scope.row.FileSize) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 是否有重复文件 --> <!-- 是否有重复文件 -->
@ -238,9 +222,9 @@
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.IsDicomReUpload) }} {{ $fd('YesOrNo', scope.row.IsDicomReUpload) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 是否上传成功 --> <!-- 是否上传成功 -->
<el-table-column <el-table-column
@ -251,16 +235,49 @@
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsSuccess" type="primary"> {{ $fd('YesOrNo', scope.row.IsSuccess) }}</el-tag> <el-tag v-if="scope.row.IsSuccess" type="primary">
<el-tag v-else type="danger"> {{ $fd('YesOrNo', scope.row.IsSuccess) }}</el-tag> {{ $fd('YesOrNo', scope.row.IsSuccess) }}</el-tag
>
<el-tag v-else type="danger">
{{ $fd('YesOrNo', scope.row.IsSuccess) }}</el-tag
>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column <!-- 开始时间 -->
prop="Note" <el-table-column
min-width="110" prop="UploadStartTime"
:label="$t('trials:uploadMonitor:table:remark')" min-width="140"
:label="$t('trials:uploadMonitor:table:beginTime')"
show-overflow-tooltip show-overflow-tooltip
/> --> sortable="custom"
>
<template slot-scope="scope">
{{ scope.row.UploadStartTimeStr }}
</template>
</el-table-column>
<!-- 结束时间 -->
<el-table-column
prop="ArchiveFinishedTime"
min-width="140"
:label="$t('trials:uploadMonitor:table:endTime')"
show-overflow-tooltip
sortable="custom"
>
<template slot-scope="scope">
{{ scope.row.ArchiveFinishedTime }}
</template>
</el-table-column>
<!-- 总共用时 -->
<el-table-column
prop="TotalMillisecondsInterval"
min-width="100"
:label="$t('trials:uploadMonitor:table:totalTime')"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.TimeInterval }}
</template>
</el-table-column>
<el-table-column <el-table-column
:label="$t('common:action:action')" :label="$t('common:action:action')"
width="80" width="80"
@ -279,7 +296,13 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" /> <pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</template> </template>
<el-dialog <el-dialog
v-if="lookVisible" v-if="lookVisible"
@ -290,28 +313,49 @@
:close-on-click-modal="false" :close-on-click-modal="false"
custom-class="base-dialog-wrapper" custom-class="base-dialog-wrapper"
> >
<div style="max-height: 500px;overflow-y: auto;padding: 0 20px"> <div style="max-height: 500px; overflow-y: auto; padding: 0 20px">
<div style="display: flex;justify-content: space-around;margin-bottom: 20px"> <div
<span>{{$t('trials:uploadDicomList:table:FailedNumber')}}: {{lookText.Failed.length}}</span> style="
<span>{{$t('trials:uploadDicomList:table:ExistedNumber')}}: {{lookText.Existed.length}}</span> display: flex;
<span>{{$t('trials:uploadDicomList:table:UploadedNumber')}}: {{lookText.Uploaded.length}}</span> justify-content: space-around;
margin-bottom: 20px;
"
>
<span
>{{ $t('trials:uploadDicomList:table:FailedNumber') }}:
{{ lookText.Failed.length }}</span
>
<span
>{{ $t('trials:uploadDicomList:table:ExistedNumber') }}:
{{ lookText.Existed.length }}</span
>
<span
>{{ $t('trials:uploadDicomList:table:UploadedNumber') }}:
{{ lookText.Uploaded.length }}</span
>
</div> </div>
<div style="margin-bottom: 10px;font-size:12px"> <div style="margin-bottom: 10px; font-size: 12px">
<div style="font-size: 14px;margin-bottom: 5px">{{$t('trials:uploadDicomList:table:Failed')}}</div> <div style="font-size: 14px; margin-bottom: 5px">
{{ $t('trials:uploadDicomList:table:Failed') }}
</div>
<div v-if="lookText.Failed.length"> <div v-if="lookText.Failed.length">
<div v-for="item of lookText.Failed" :key="item">{{item}}</div> <div v-for="item of lookText.Failed" :key="item">{{ item }}</div>
</div> </div>
</div> </div>
<div style="margin-bottom: 10px;font-size:12px"> <div style="margin-bottom: 10px; font-size: 12px">
<div style="font-size: 14px;margin-bottom: 5px">{{$t('trials:uploadDicomList:table:Existed')}}</div> <div style="font-size: 14px; margin-bottom: 5px">
{{ $t('trials:uploadDicomList:table:Existed') }}
</div>
<div v-if="lookText.Existed.length"> <div v-if="lookText.Existed.length">
<div v-for="item of lookText.Existed" :key="item">{{item}}</div> <div v-for="item of lookText.Existed" :key="item">{{ item }}</div>
</div> </div>
</div> </div>
<div style="margin-bottom: 10px;font-size:12px"> <div style="margin-bottom: 10px; font-size: 12px">
<div style="font-size: 14px;margin-bottom: 5px">{{$t('trials:uploadDicomList:table:Uploaded')}}</div> <div style="font-size: 14px; margin-bottom: 5px">
{{ $t('trials:uploadDicomList:table:Uploaded') }}
</div>
<div v-if="lookText.Uploaded.length"> <div v-if="lookText.Uploaded.length">
<div v-for="item of lookText.Uploaded" :key="item">{{item}}</div> <div v-for="item of lookText.Uploaded" :key="item">{{ item }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -326,28 +370,34 @@
</template> </template>
<script> <script>
import {getDicomAndNoneDicomStudyMonitorList,getTrialSiteSelect,getTrialVisitStageSelect} from '@/api/trials' import {
getDicomAndNoneDicomStudyMonitorList,
getTrialSiteSelect,
getTrialVisitStageSelect,
} from '@/api/trials'
import { getStudyUploadMonitor_Export } from '@/api/export' import { getStudyUploadMonitor_Export } from '@/api/export'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import BaseContainer from '@/components/BaseContainer' import BaseContainer from '@/components/BaseContainer'
import BaseModel from '@/components/BaseModel' import BaseModel from '@/components/BaseModel'
import axios from "axios"; import axios from 'axios'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
SortField: 'ArchiveFinishedTime', SortField: 'ArchiveFinishedTime',
Asc: false, Asc: false,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
TrialId:'', TrialId: '',
SiteId:'', SiteId: '',
SubjectId:'', SubjectId: '',
SubjectVisitId:'', SubjectVisitId: '',
SubjectInfo:'', SubjectInfo: '',
VisitPlanArray: [], VisitPlanArray: [],
IsDicom: null, IsDicom: null,
Uploader: null, Uploader: null,
IsSuccess: null, IsSuccess: null,
StudyCode: null StudyCode: null,
UploadFinishedTime: null,
UploadStartTime: null,
} }
} }
export default { export default {
@ -359,10 +409,11 @@ export default {
loading: false, loading: false,
searchData: searchDataDefault(), searchData: searchDataDefault(),
trialId: this.$route.query.trialId, trialId: this.$route.query.trialId,
siteOptions:[], siteOptions: [],
visitPlanOptions:[], visitPlanOptions: [],
lookVisible: false, lookVisible: false,
lookText: null lookText: null,
datetimerange: [],
} }
}, },
mounted() { mounted() {
@ -384,33 +435,35 @@ export default {
getList() { getList() {
this.loading = true this.loading = true
this.searchData.TrialId = this.trialId this.searchData.TrialId = this.trialId
getDicomAndNoneDicomStudyMonitorList(this.searchData).then((res) => { getDicomAndNoneDicomStudyMonitorList(this.searchData)
this.list = res.Result.CurrentPageData .then((res) => {
this.total = res.Result.TotalCount this.list = res.Result.CurrentPageData
this.loading = false this.total = res.Result.TotalCount
}).catch(() => { this.loading = false
this.loading = false })
}) .catch(() => {
this.loading = false
})
}, },
// site // site
getSite() { getSite() {
getTrialSiteSelect(this.trialId).then(res => { getTrialSiteSelect(this.trialId).then((res) => {
this.siteOptions = res.Result this.siteOptions = res.Result
}) })
}, },
// 访 // 访
getVisitPlanOptions() { getVisitPlanOptions() {
getTrialVisitStageSelect(this.trialId) getTrialVisitStageSelect(this.trialId).then((res) => {
.then((res) => { this.visitPlanOptions = res.Result
this.visitPlanOptions = res.Result })
})
}, },
fileSizeFormatter(size){ fileSizeFormatter(size) {
if(!size) return if (!size) return
return (size / Math.pow(1024, 2)).toFixed(3) + "M" return (size / Math.pow(1024, 2)).toFixed(3) + 'M'
}, },
handleReset() { handleReset() {
this.searchData = searchDataDefault() this.searchData = searchDataDefault()
this.datetimerange = []
this.getList() this.getList()
}, },
handleSearch() { handleSearch() {
@ -428,9 +481,19 @@ export default {
this.getList() this.getList()
}, },
handleExport() { handleExport() {
getStudyUploadMonitor_Export(this.searchData).then(res => { getStudyUploadMonitor_Export(this.searchData)
}).catch(() => {}) .then((res) => {})
.catch(() => {})
}, },
} handleDatetimeChange(val) {
if (val) {
this.searchData.UploadStartTime = val[0]
this.searchData.UploadFinishedTime = val[1]
} else {
this.searchData.UploadStartTime = ''
this.searchData.UploadFinishedTime = ''
}
},
},
} }
</script> </script>