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

uat_us
wangxiaoshuang 2026-04-28 11:44:34 +08:00
commit 07b23fce1d
6 changed files with 108 additions and 106 deletions

View File

@ -1712,6 +1712,7 @@ export default {
enabled: true,
lineLengthInPx: this.fusionCrosshairStyle.lineLength,
},
mipViewportIds: ['viewport-fusion-3'],
})
toolGroup.setToolActive(VolumeRotateTool.toolName, {

View File

@ -25,6 +25,7 @@ class FusionJumpToPointTool extends AnnotationDisplayTool {
enabled: true,
lineLengthInPx: 20,
},
mipViewportIds: [],
},
}) {
super(toolProps, defaultToolProps)
@ -77,7 +78,10 @@ class FusionJumpToPointTool extends AnnotationDisplayTool {
const annotation = this._getViewportCrosshairAnnotation(viewport)
const sourceViewportId = this.dragSourceViewportId || annotation?.data?.sourceViewportId || viewport.id
this.setPoint(worldPoint, sourceViewportId, renderingEngine.id)
const sourceIsMip = this._isMipViewportId(viewport.id)
this.setPoint(worldPoint, sourceViewportId, renderingEngine.id, {
jumpToTargetViewports: sourceIsMip,
})
evt.preventDefault?.()
}
@ -497,6 +501,11 @@ class FusionJumpToPointTool extends AnnotationDisplayTool {
return fallbackColor || '#6fb9ff'
}
_isMipViewportId(viewportId) {
const mipViewportIds = this.configuration?.mipViewportIds
return Array.isArray(mipViewportIds) && mipViewportIds.includes(viewportId)
}
_normalizeAppearance(appearance = {}, sourceViewportId) {
const lineWidth = Number.isFinite(appearance.lineWidth) ? appearance.lineWidth : 2
const lineLength = Number.isFinite(appearance.lineLength) ? appearance.lineLength : 9

View File

@ -3,15 +3,15 @@
<template slot="search-container">
<el-form :inline="true">
<!-- 文件名称 -->
<el-form-item label="文件名称" prop="FileName">
<el-form-item :label="$t('trials:data-sync:fileList:fileName')" prop="FileName">
<el-input v-model="searchData.FileName" size="small" clearable style="width: 120px" />
</el-form-item>
<!-- 文件类型 -->
<el-form-item label="文件类型" prop="FileType">
<el-form-item :label="$t('trials:data-sync:fileList:fileType')" prop="FileType">
<el-input v-model="searchData.FileType" size="small" clearable style="width: 120px" />
</el-form-item>
<!-- 源区域 -->
<el-form-item label="源区域" prop="UploadRegion">
<el-form-item :label="$t('trials:data-sync:fileList:uploadRegion')" prop="UploadRegion">
<el-select v-model="searchData.UploadRegion" style="width: 120px">
<el-option
v-for="item in regionOptions"
@ -22,7 +22,7 @@
</el-select>
</el-form-item>
<!-- 源可用时间 -->
<el-form-item label="源可用时间">
<el-form-item :label="$t('trials:data-sync:fileList:uploadTimeRange')">
<el-date-picker
v-model="uploadTimeRange"
:default-time="['00:00:00', '23:59:59']"
@ -33,7 +33,7 @@
</el-date-picker>
</el-form-item>
<!-- 目标区域 -->
<el-form-item label="目标区域" prop="TargetRegion">
<el-form-item :label="$t('trials:data-sync:fileList:targetRegion')" prop="TargetRegion">
<el-select v-model="searchData.TargetRegion" style="width: 120px">
<el-option
v-for="item in regionOptions"
@ -44,7 +44,7 @@
</el-select>
</el-form-item>
<!-- 目标可用时间 -->
<el-form-item label="目标可用时间">
<el-form-item :label="$t('trials:data-sync:fileList:syncTimeRange')">
<el-date-picker
v-model="SyncTimeRange"
:default-time="['00:00:00', '23:59:59']"
@ -55,11 +55,11 @@
</el-date-picker>
</el-form-item>
<!-- 优先级 -->
<el-form-item label="优先级">
<el-form-item :label="$t('trials:data-sync:fileList:priority')">
<el-input v-model="searchData.Priority" clearable style="width: 120px"></el-input>
</el-form-item>
<!-- 是否同步完成 -->
<el-form-item label="是否同步完成" prop="IsSync">
<el-form-item :label="$t('trials:data-sync:fileList:isSync')" prop="IsSync">
<el-select v-model="searchData.IsSync" clearable style="width: 120px">
<el-option
v-for="item of $d.YesOrNo"
@ -79,7 +79,7 @@
</el-button>
<!-- 批量编辑 -->
<el-button type="primary" icon="el-icon-edit" :disabled="selectedRows.length === 0" @click="handleBatchEdit">
批量编辑
{{ $t('trials:data-sync:fileList:batchEdit') }}
</el-button>
</el-form-item>
</el-form>
@ -89,21 +89,21 @@
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }" @selection-change="handleSelectionChange">
<el-table-column type="index" width="50" />
<el-table-column type="selection" width="50" :selectable="selectableRow"/>
<el-table-column label="文件名称" prop="FileName" min-width="90" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:fileList:fileName')" prop="FileName" min-width="90" show-overflow-tooltip sortable="custom">
</el-table-column>
<el-table-column label="文件大小" prop="FileSize" min-width="90" show-overflow-tooltip>
<el-table-column :label="$t('trials:data-sync:fileList:fileSize')" prop="FileSize" min-width="90" show-overflow-tooltip>
<template slot-scope="scope">
{{ fileSizeFormatter(scope.row.FileSize) }}
</template>
</el-table-column>
<el-table-column label="文件类型" prop="FileType" min-width="90" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:fileList:fileType')" prop="FileType" min-width="90" show-overflow-tooltip sortable="custom">
</el-table-column>
<el-table-column label="源区域" prop="UploadRegion" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:fileList:uploadRegion')" prop="UploadRegion" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column label="源可用时间" prop="CreateTime" min-width="120" show-overflow-tooltip sortable="custom" />
<el-table-column label="路径" prop="Path" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column label="是否需要同步" prop="IsNeedSync" min-width="120" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:fileList:createTime')" prop="CreateTime" min-width="120" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:fileList:filePath')" prop="Path" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:fileList:isNeedSync')" prop="IsNeedSync" min-width="120" show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<el-tag v-if="scope.row.IsNeedSync" type="success">
{{ $fd('YesOrNo', scope.row.IsNeedSync) }}
@ -113,10 +113,10 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="目标区域" prop="TargetRegion" min-width="100" show-overflow-tooltip sortable="custom" />
<el-table-column label="目标可用时间" prop="SyncFinishedTime" min-width="120" show-overflow-tooltip sortable="custom" />
<el-table-column label="优先级" prop="Priority" min-width="80" show-overflow-tooltip sortable="custom" />
<el-table-column label="是否同步完成" prop="IsSync" min-width="120" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:fileList:targetRegion')" prop="TargetRegion" min-width="100" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:fileList:syncFinishedTime')" prop="SyncFinishedTime" min-width="120" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:fileList:priority')" prop="Priority" min-width="80" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:fileList:isSync')" prop="IsSync" min-width="120" show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<el-tag v-if="scope.row.IsSync" type="success">
{{ $fd('YesOrNo', scope.row.IsSync) }}
@ -126,17 +126,19 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="更新时间" prop="UpdateTime" min-width="120" show-overflow-tooltip sortable="custom" />
<el-table-column label="操作" width="240" show-overflow-tooltip fixed="right">
<el-table-column :label="$t('trials:data-sync:fileList:updateTime')" prop="UpdateTime" min-width="120" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('common:action:action')" width="240" show-overflow-tooltip fixed="right">
<template slot-scope="scope">
<!-- 详情 -->
<el-button type="primary" size="mini" @click="handleOpenTaskTable(scope.row)">
详情
{{ $t('trials:data-sync:fileList:detail') }}
</el-button>
<!-- 重新同步 -->
<el-button type="primary" size="mini" :disabled="!scope.row.IsNeedSync || !scope.row.IsSync" @click="execute(scope.row)">
重新同步
{{ $t('trials:data-sync:fileList:reExecute') }}
</el-button>
<el-button type="primary" size="mini" :disabled="scope.row.IsSync" @click="handleEdit(scope.row)">
编辑
{{ $t('common:action:edit') }}
</el-button>
</template>
</el-table-column>
@ -145,24 +147,24 @@
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
@pagination="getList" />
</template>
<el-dialog v-if="editDialogVisible" title="编辑" :visible.sync="editDialogVisible" width="600px" :close-on-click-modal="false" append-to-body>
<el-dialog v-if="editDialogVisible" :title="$t('trials:data-sync:fileList:edit')" :visible.sync="editDialogVisible" width="600px" :close-on-click-modal="false" append-to-body>
<el-form ref="editFormRef" :model="editForm" :rules="editRules" label-width="110px" v-loading="formLoading">
<el-form-item label="文件名称">
<el-form-item :label="$t('trials:data-sync:fileList:fileName')">
<el-input v-model="editForm.FileName" disabled />
</el-form-item>
<el-form-item label="文件大小">
<el-form-item :label="$t('trials:data-sync:fileList:fileSize')">
<el-input :value="fileSizeFormatter(editForm.FileSize)" disabled />
</el-form-item>
<el-form-item label="文件类型">
<el-form-item :label="$t('trials:data-sync:fileList:fileType')">
<el-input v-model="editForm.FileType" disabled />
</el-form-item>
<el-form-item label="源区域">
<el-form-item :label="$t('trials:data-sync:fileList:uploadRegion')">
<el-input v-model="editForm.UploadRegion" disabled />
</el-form-item>
<el-form-item label="目标区域">
<el-form-item :label="$t('trials:data-sync:fileList:targetRegion')">
<el-input v-model="editForm.TargetRegion" disabled />
</el-form-item>
<el-form-item label="是否需要同步" prop="IsNeedSync">
<el-form-item :label="$t('trials:data-sync:fileList:isNeedSync')" prop="IsNeedSync">
<el-select v-model="editForm.IsNeedSync" style="width: 100%">
<el-option
v-for="item of $d.YesOrNo"
@ -173,16 +175,16 @@
</el-select>
</el-form-item>
<el-form-item label="更新时间">
<el-form-item :label="$t('trials:data-sync:fileList:updateTime')">
<el-input v-model="editForm.UpdateTime" disabled />
</el-form-item>
<el-form-item label="路径">
<el-form-item :label="$t('trials:data-sync:fileList:filePath')">
<el-input v-model="editForm.Path" type="textarea" :rows="2" disabled />
</el-form-item>
<el-form-item label="优先级" prop="Priority">
<el-form-item :label="$t('trials:data-sync:fileList:priority')" prop="Priority">
<el-input-number v-model="editForm.Priority" :min="0" :controls="true" style="width: 100%" />
</el-form-item>
<el-form-item label="是否同步完成" prop="IsSync">
<el-form-item :label="$t('trials:data-sync:fileList:isSync')" prop="IsSync">
<el-select v-model="editForm.IsSync" style="width: 100%" disabled>
<el-option
v-for="item of $d.YesOrNo"
@ -194,19 +196,19 @@
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="editDialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveEdit"></el-button>
<el-button @click="editDialogVisible = false">{{ $t('common:button:cancel') }}</el-button>
<el-button type="primary" @click="handleSaveEdit">{{ $t('common:button:save') }}</el-button>
</span>
</el-dialog>
<el-dialog v-if="batchEditDialogVisible" title="批量编辑" :visible.sync="batchEditDialogVisible" width="300px" :close-on-click-modal="false" append-to-body>
<el-dialog v-if="batchEditDialogVisible" :title="$t('trials:data-sync:fileList:batchEdit')" :visible.sync="batchEditDialogVisible" width="300px" :close-on-click-modal="false" append-to-body>
<el-form ref="batchEditFormRef" :model="batchEditForm" :rules="batchEditRules" label-width="80px" v-loading="formLoading">
<el-form-item label="优先级" prop="Priority">
<el-form-item :label="$t('trials:data-sync:fileList:priority')" prop="Priority">
<el-input-number v-model="batchEditForm.Priority" :min="0" :controls="true" style="width: 100%" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="batchEditDialogVisible = false">取消</el-button>
<el-button type="primary" @click="handleSaveBatchEdit"></el-button>
<el-button @click="batchEditDialogVisible = false">{{ $t('common:button:cancel') }}</el-button>
<el-button type="primary" @click="handleSaveBatchEdit">{{ $t('common:button:save') }}</el-button>
</span>
</el-dialog>
</BaseContainer>
@ -277,8 +279,8 @@ export default {
// IsSync: null,
},
editRules: {
Priority: [{ required: true, message: '请输入', trigger: 'change' }],
IsSync: [{ required: true, message: '请选择', trigger: 'change' }],
Priority: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'change' }],
IsSync: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'change' }],
},
formLoading: false,
selectedRows: [],
@ -287,7 +289,7 @@ export default {
Priority: null,
},
batchEditRules: {
Priority: [{ required: true, message: '请输入', trigger: 'change' }],
Priority: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'change' }],
},
}
},
@ -350,7 +352,7 @@ export default {
}
let res = await batchAddSyncFileTask(params)
if (res.IsSuccess) {
this.$message.success('执行成功!')
this.$message.success(this.$t('trials:data-sync:msg:executeSuccessfully'))
}
this.loading = false
this.getList()

View File

@ -3,11 +3,11 @@
<template slot="search-container">
<el-form :inline="true">
<!-- 受试者编号 -->
<el-form-item label="受试者编号" prop="SubjectCode">
<el-form-item :label="$t('trials:data-sync:studyList:subjectCode')" prop="SubjectCode">
<el-input v-model="searchData.SubjectCode" size="small" clearable style="width: 120px" />
</el-form-item>
<!-- 访视名称 -->
<el-form-item label="访视名称">
<el-form-item :label="$t('trials:data-sync:studyList:visitName')">
<el-select v-model="searchData.VisitName" style="width: 140px" clearable>
<el-option v-for="(item, index) of visitPlanOptions" :key="index" :label="item.VisitName"
:value="item.VisitNum">
@ -17,11 +17,11 @@
</el-select>
</el-form-item>
<!-- 检查编号 -->
<el-form-item label="检查编号" prop="StudyCode">
<el-form-item :label="$t('trials:data-sync:studyList:studyCode')" prop="StudyCode">
<el-input v-model="searchData.StudyCode" size="small" clearable style="width: 120px" />
</el-form-item>
<!-- 源区域 -->
<el-form-item label="源区域" prop="UploadRegion">
<el-form-item :label="$t('trials:data-sync:studyList:uploadRegion')" prop="UploadRegion">
<el-select v-model="searchData.UploadRegion" style="width: 120px">
<el-option
v-for="item in regionOptions"
@ -43,7 +43,7 @@
</el-date-picker>
</el-form-item> -->
<!-- 目标区域 -->
<el-form-item label="目标区域" prop="TargetRegion">
<el-form-item :label="$t('trials:data-sync:studyList:targetRegion')" prop="TargetRegion">
<el-select v-model="searchData.TargetRegion" style="width: 120px">
<el-option
v-for="item in regionOptions"
@ -65,7 +65,7 @@
</el-date-picker>
</el-form-item> -->
<!-- 是否同步完成 -->
<el-form-item label="是否同步完成" prop="IsSync">
<el-form-item :label="$t('trials:data-sync:studyList:visitName')" prop="IsSync">
<el-select v-model="searchData.IsSync" clearable style="width: 120px">
<el-option
v-for="item of $d.YesOrNo"
@ -90,15 +90,15 @@
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 60 }" height="100" :data="list"
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }">
<el-table-column type="index" width="50" />
<el-table-column label="受试者编号" prop="SubjectCode" min-width="90" show-overflow-tooltip sortable="custom"/>
<el-table-column label="访视名称" prop="VisitName" min-width="90" show-overflow-tooltip sortable="custom"/>
<el-table-column label="检查编号" prop="StudyCode" min-width="90" show-overflow-tooltip sortable="custom"/>
<el-table-column label="文件数" prop="FileCount" min-width="90" show-overflow-tooltip/>
<el-table-column label="源区域" prop="UploadRegion" min-width="60" show-overflow-tooltip />
<el-table-column label="源可用时间" prop="CreateTime" min-width="90" show-overflow-tooltip />
<el-table-column label="目标区域" prop="TargetRegion" min-width="60" show-overflow-tooltip />
<el-table-column label="目标可用时间" prop="SyncFinishedTime" min-width="90" show-overflow-tooltip/>
<el-table-column label="是否同步完成" prop="IsSync" min-width="90" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:studyList:subjectCode')" prop="SubjectCode" min-width="90" show-overflow-tooltip sortable="custom"/>
<el-table-column :label="$t('trials:data-sync:studyList:visitName')" prop="VisitName" min-width="90" show-overflow-tooltip sortable="custom"/>
<el-table-column :label="$t('trials:data-sync:studyList:studyCode')" prop="StudyCode" min-width="90" show-overflow-tooltip sortable="custom"/>
<el-table-column :label="$t('trials:data-sync:studyList:fileCount')" prop="FileCount" min-width="90" show-overflow-tooltip/>
<el-table-column :label="$t('trials:data-sync:studyList:uploadRegion')" prop="UploadRegion" min-width="60" show-overflow-tooltip />
<el-table-column :label="$t('trials:data-sync:studyList:createTime')" prop="CreateTime" min-width="90" show-overflow-tooltip />
<el-table-column :label="$t('trials:data-sync:studyList:targetRegion')" prop="TargetRegion" min-width="60" show-overflow-tooltip />
<el-table-column :label="$t('trials:data-sync:studyList:syncFinishedTime')" prop="SyncFinishedTime" min-width="90" show-overflow-tooltip/>
<el-table-column :label="$t('trials:data-sync:studyList:isSync')" prop="IsSync" min-width="90" show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<el-tag v-if="scope.row.IsSync" type="success">
{{ $fd('YesOrNo', scope.row.IsSync) }}
@ -108,10 +108,11 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" min-width="80" show-overflow-tooltip>
<el-table-column :label="$t('common:action:action')" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<!-- 详情 -->
<el-button type="primary" size="small" @click="openDetailTable(scope.row)">
详情
{{ $t('trials:data-sync:studyList:detail') }}
</el-button>
</template>
</el-table-column>
@ -129,9 +130,11 @@
class="detail-dialog"
>
<span slot="title">{{ detailDialog.title }}</span>
<span v-if="detailDialog.currentRow">{{`${detailDialog.currentRow.SubjectCode} / ${detailDialog.currentRow.VisitName} ${detailDialog.currentRow.StudyCode ? ' / ' + detailDialog.currentRow.StudyCode : ''} ${detailDialog.currentRow.UploadRegion} -> 目标${detailDialog.currentRow.TargetRegion}`}}</span>
<!-- ${detailDialog.currentRow.UploadRegion} -> 目标${detailDialog.currentRow.TargetRegion} -->
<span v-if="detailDialog.currentRow">{{`${detailDialog.currentRow.SubjectCode} / ${detailDialog.currentRow.VisitName} ${detailDialog.currentRow.StudyCode ? ' / ' + detailDialog.currentRow.StudyCode : ''} ${$t('trials:data-sync:studyList:msg1').replace('xxx', detailDialog.currentRow.UploadRegion).replace('yyy', detailDialog.currentRow.TargetRegion)}`}}</span>
<el-tabs class="detail-tabs" v-model="detailDialog.activeTab" @tab-click="handleDetailTabClick">
<el-tab-pane label="文件级别" name="file">
<!-- 文件级别 -->
<el-tab-pane :label="$t('trials:data-sync:label:fileList')" name="file">
<FileList
v-if="detailDialog.activeTab === 'file'"
:dataFileType="1"
@ -139,7 +142,8 @@
@openTaskTable="openTaskTable"
/>
</el-tab-pane>
<el-tab-pane label="任务级别" name="task">
<!-- 任务级别 -->
<el-tab-pane :label="$t('trials:data-sync:label:taskList')" name="task">
<TaskList
v-if="detailDialog.activeTab === 'task'"
:rowInfo="detailDialog.currentRow"
@ -191,7 +195,7 @@ export default {
visitPlanOptions: [],
detailDialog: {
visible: false,
title: '详情',
title: this.$t('trials:data-sync:studyList:detail'),
activeTab: 'file',
currentRow: null
},

View File

@ -3,15 +3,15 @@
<template slot="search-container">
<el-form :inline="true">
<!-- 文件名称 -->
<el-form-item label="文件名称" prop="FileName">
<el-form-item :label="$t('trials:data-sync:table:fileName')" prop="FileName">
<el-input v-model="searchData.FileName" size="small" clearable style="width: 120px" />
</el-form-item>
<!-- 文件路径 -->
<el-form-item label="文件路径" prop="Path">
<el-form-item :label="$t('trials:data-sync:table:filePath')" prop="Path">
<el-input v-model="searchData.Path" size="small" clearable />
</el-form-item>
<!-- 任务状态 -->
<el-form-item label="任务状态" prop="JobState">
<el-form-item :label="$t('trials:data-sync:table:jobState')" prop="JobState">
<el-select v-model="searchData.JobState" clearable style="width: 120px">
<el-option
v-for="item of $d.JobState"
@ -22,7 +22,7 @@
</el-select>
</el-form-item>
<!-- 任务开始日期 -->
<el-form-item label="任务开始日期">
<el-form-item :label="$t('trials:data-sync:table:startTime')">
<el-date-picker
v-model="searchData.StartTime"
type="date"
@ -33,7 +33,7 @@
/>
</el-form-item>
<!-- 任务结束日期 -->
<el-form-item label="任务结束日期">
<el-form-item :label="$t('trials:data-sync:table:endTime')">
<el-date-picker
v-model="searchData.EndTime"
type="date"
@ -58,11 +58,11 @@
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 70 }" height="100" :data="list"
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }">
<el-table-column type="index" width="50" />
<el-table-column label="Job编号" prop="Id" min-width="90" show-overflow-tooltip/>
<el-table-column label="文件名称" prop="FileName" min-width="90" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:table:jobCode')" prop="Id" min-width="90" show-overflow-tooltip/>
<el-table-column :label="$t('trials:data-sync:table:fileName')" prop="FileName" min-width="90" show-overflow-tooltip sortable="custom">
</el-table-column>
<el-table-column label="路径" prop="Path" min-width="90" show-overflow-tooltip/>
<el-table-column label="任务状态" prop="JobState" min-width="90" show-overflow-tooltip sortable="custom">
<el-table-column :label="$t('trials:data-sync:table:filePath')" prop="Path" min-width="90" show-overflow-tooltip/>
<el-table-column :label="$t('trials:data-sync:table:jobState')" prop="JobState" min-width="90" show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<el-tag v-if="scope.row.JobState === 1" type="infoinf0">
{{ $fd('JobState', scope.row.JobState) }}
@ -79,15 +79,16 @@
<el-tag v-else>{{ $fd('JobState', scope.row.JobState) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="任务开始时间" prop="StartTime" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column label="任务结束时间" prop="EndTime" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column label="创建时间" prop="CreateTime" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:table:startTime')" prop="StartTime" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:table:endTime')" prop="EndTime" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('trials:data-sync:table:createTime')" prop="CreateTime" min-width="90" show-overflow-tooltip sortable="custom" />
<el-table-column label="操作" min-width="80" show-overflow-tooltip>
<el-table-column :label="$t('common:action:action')" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<!-- 再次执行 -->
<el-button type="primary" size="mini" :disabled="scope.row.JobState !== 3" @click="execute(scope.row)">
再次执行
{{ $t('trials:data-sync:button:execute') }}
</el-button>
</template>
</el-table-column>
@ -201,7 +202,7 @@ export default {
}
let res = await batchAddSyncFileTask(params)
if (res.IsSuccess) {
this.$message.success('执行成功!')
this.$message.success(this.$t('trials:data-sync:msg:executeSuccessfully')) //''
}
this.loading = false

View File

@ -1,20 +1,22 @@
<template>
<el-tabs class="data-sync-tabs" type="border-card" tab-position="left" v-model="activeTab" >
<el-tab-pane label="检查列表" name="study">
<!-- 检查列表 -->
<el-tab-pane :label="$t('trials:data-sync:label:studyList')" name="study">
<StudyList v-if="activeTab === 'study'"/>
</el-tab-pane>
<el-tab-pane label="其他" name="other">
<!-- <FileList v-if="activeTab === 'other'" :dataFileType="2" @openTaskTable="openTaskTable"/> -->
<!-- 其他 -->
<el-tab-pane :label="$t('trials:data-sync:label:otherList')" name="other">
<el-tabs v-if="activeTab === 'other'" class="detail-tabs" v-model="tabInfo.activeTab" @tab-click="handleDetailTabClick">
<el-tab-pane label="文件级别" name="file">
<!-- v-if="tabInfo.activeTab === 'file'" -->
<!-- 文件级别 -->
<el-tab-pane :label="$t('trials:data-sync:label:fileList')" name="file">
<FileList
v-if="tabInfo.activeTab === 'file'"
:dataFileType="2"
@openTaskTable="openTaskTable"
/>
</el-tab-pane>
<el-tab-pane label="任务级别" name="task">
<!-- 任务级别 -->
<el-tab-pane :label="$t('trials:data-sync:label:taskList')" name="task">
<TaskList
v-if="tabInfo.activeTab === 'task'"
:rowInfo="tabInfo.currentRow"
@ -24,22 +26,6 @@
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<!-- <el-dialog
v-if="detailDialog.visible"
:visible.sync="detailDialog.visible"
fullscreen
append-to-body
:close-on-click-modal="false"
class="detail-dialog"
>
<span slot="title">{{ detailDialog.title }}</span>
<span v-if="detailDialog.currentRow">{{`${detailDialog.currentRow.SubjectCode} / ${detailDialog.currentRow.VisitName} ${detailDialog.currentRow.StudyCode ? ' / ' + detailDialog.currentRow.StudyCode : ''} ${detailDialog.currentRow.UploadRegion} -> 目标${detailDialog.currentRow.TargetRegion}`}}</span>
<TaskList
:rowInfo="detailDialog.currentRow"
:fileUploadRecordId="detailDialog.currentRow.Id"
:path="detailDialog.currentRow.Path"
/>
</el-dialog> -->
</el-tabs>
</template>
<script>
@ -57,7 +43,6 @@ export default {
return {
activeTab: 'study',
tabInfo: {
title: '详情',
activeTab: 'file',
currentRow: null
},