Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
07b23fce1d
|
|
@ -1712,6 +1712,7 @@ export default {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
lineLengthInPx: this.fusionCrosshairStyle.lineLength,
|
lineLengthInPx: this.fusionCrosshairStyle.lineLength,
|
||||||
},
|
},
|
||||||
|
mipViewportIds: ['viewport-fusion-3'],
|
||||||
})
|
})
|
||||||
|
|
||||||
toolGroup.setToolActive(VolumeRotateTool.toolName, {
|
toolGroup.setToolActive(VolumeRotateTool.toolName, {
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ class FusionJumpToPointTool extends AnnotationDisplayTool {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
lineLengthInPx: 20,
|
lineLengthInPx: 20,
|
||||||
},
|
},
|
||||||
|
mipViewportIds: [],
|
||||||
},
|
},
|
||||||
}) {
|
}) {
|
||||||
super(toolProps, defaultToolProps)
|
super(toolProps, defaultToolProps)
|
||||||
|
|
@ -77,7 +78,10 @@ class FusionJumpToPointTool extends AnnotationDisplayTool {
|
||||||
|
|
||||||
const annotation = this._getViewportCrosshairAnnotation(viewport)
|
const annotation = this._getViewportCrosshairAnnotation(viewport)
|
||||||
const sourceViewportId = this.dragSourceViewportId || annotation?.data?.sourceViewportId || viewport.id
|
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?.()
|
evt.preventDefault?.()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -497,6 +501,11 @@ class FusionJumpToPointTool extends AnnotationDisplayTool {
|
||||||
return fallbackColor || '#6fb9ff'
|
return fallbackColor || '#6fb9ff'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_isMipViewportId(viewportId) {
|
||||||
|
const mipViewportIds = this.configuration?.mipViewportIds
|
||||||
|
return Array.isArray(mipViewportIds) && mipViewportIds.includes(viewportId)
|
||||||
|
}
|
||||||
|
|
||||||
_normalizeAppearance(appearance = {}, sourceViewportId) {
|
_normalizeAppearance(appearance = {}, sourceViewportId) {
|
||||||
const lineWidth = Number.isFinite(appearance.lineWidth) ? appearance.lineWidth : 2
|
const lineWidth = Number.isFinite(appearance.lineWidth) ? appearance.lineWidth : 2
|
||||||
const lineLength = Number.isFinite(appearance.lineLength) ? appearance.lineLength : 9
|
const lineLength = Number.isFinite(appearance.lineLength) ? appearance.lineLength : 9
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,15 @@
|
||||||
<template slot="search-container">
|
<template slot="search-container">
|
||||||
<el-form :inline="true">
|
<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-input v-model="searchData.FileName" size="small" clearable style="width: 120px" />
|
||||||
</el-form-item>
|
</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-input v-model="searchData.FileType" size="small" clearable style="width: 120px" />
|
||||||
</el-form-item>
|
</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-select v-model="searchData.UploadRegion" style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in regionOptions"
|
v-for="item in regionOptions"
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 源可用时间 -->
|
<!-- 源可用时间 -->
|
||||||
<el-form-item label="源可用时间">
|
<el-form-item :label="$t('trials:data-sync:fileList:uploadTimeRange')">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="uploadTimeRange"
|
v-model="uploadTimeRange"
|
||||||
:default-time="['00:00:00', '23:59:59']"
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</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-select v-model="searchData.TargetRegion" style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in regionOptions"
|
v-for="item in regionOptions"
|
||||||
|
|
@ -44,7 +44,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 目标可用时间 -->
|
<!-- 目标可用时间 -->
|
||||||
<el-form-item label="目标可用时间">
|
<el-form-item :label="$t('trials:data-sync:fileList:syncTimeRange')">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="SyncTimeRange"
|
v-model="SyncTimeRange"
|
||||||
:default-time="['00:00:00', '23:59:59']"
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
|
@ -55,11 +55,11 @@
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</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-input v-model="searchData.Priority" clearable style="width: 120px"></el-input>
|
||||||
</el-form-item>
|
</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-select v-model="searchData.IsSync" clearable style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.YesOrNo"
|
v-for="item of $d.YesOrNo"
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 批量编辑 -->
|
<!-- 批量编辑 -->
|
||||||
<el-button type="primary" icon="el-icon-edit" :disabled="selectedRows.length === 0" @click="handleBatchEdit">
|
<el-button type="primary" icon="el-icon-edit" :disabled="selectedRows.length === 0" @click="handleBatchEdit">
|
||||||
批量编辑
|
{{ $t('trials:data-sync:fileList:batchEdit') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
@ -89,21 +89,21 @@
|
||||||
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }" @selection-change="handleSelectionChange">
|
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="index" width="50" />
|
||||||
<el-table-column type="selection" width="50" :selectable="selectableRow"/>
|
<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>
|
||||||
<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">
|
<template slot-scope="scope">
|
||||||
{{ fileSizeFormatter(scope.row.FileSize) }}
|
{{ fileSizeFormatter(scope.row.FileSize) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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>
|
||||||
|
|
||||||
<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="$t('trials:data-sync:fileList:createTime')" 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="$t('trials:data-sync:fileList:filePath')" 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:isNeedSync')" prop="IsNeedSync" min-width="120" show-overflow-tooltip sortable="custom">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsNeedSync" type="success">
|
<el-tag v-if="scope.row.IsNeedSync" type="success">
|
||||||
{{ $fd('YesOrNo', scope.row.IsNeedSync) }}
|
{{ $fd('YesOrNo', scope.row.IsNeedSync) }}
|
||||||
|
|
@ -113,10 +113,10 @@
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="目标区域" prop="TargetRegion" min-width="100" 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="目标可用时间" prop="SyncFinishedTime" min-width="120" 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="优先级" prop="Priority" min-width="80" 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="是否同步完成" prop="IsSync" min-width="120" 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">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsSync" type="success">
|
<el-tag v-if="scope.row.IsSync" type="success">
|
||||||
{{ $fd('YesOrNo', scope.row.IsSync) }}
|
{{ $fd('YesOrNo', scope.row.IsSync) }}
|
||||||
|
|
@ -126,17 +126,19 @@
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="更新时间" prop="UpdateTime" min-width="120" show-overflow-tooltip sortable="custom" />
|
<el-table-column :label="$t('trials:data-sync:fileList:updateTime')" 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('common:action:action')" width="240" show-overflow-tooltip fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<!-- 详情 -->
|
||||||
<el-button type="primary" size="mini" @click="handleOpenTaskTable(scope.row)">
|
<el-button type="primary" size="mini" @click="handleOpenTaskTable(scope.row)">
|
||||||
详情
|
{{ $t('trials:data-sync:fileList:detail') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!-- 重新同步 -->
|
||||||
<el-button type="primary" size="mini" :disabled="!scope.row.IsNeedSync || !scope.row.IsSync" @click="execute(scope.row)">
|
<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>
|
||||||
<el-button type="primary" size="mini" :disabled="scope.row.IsSync" @click="handleEdit(scope.row)">
|
<el-button type="primary" size="mini" :disabled="scope.row.IsSync" @click="handleEdit(scope.row)">
|
||||||
编辑
|
{{ $t('common:action:edit') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -145,24 +147,24 @@
|
||||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
|
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
|
||||||
@pagination="getList" />
|
@pagination="getList" />
|
||||||
</template>
|
</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 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-input v-model="editForm.FileName" disabled />
|
||||||
</el-form-item>
|
</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-input :value="fileSizeFormatter(editForm.FileSize)" disabled />
|
||||||
</el-form-item>
|
</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-input v-model="editForm.FileType" disabled />
|
||||||
</el-form-item>
|
</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-input v-model="editForm.UploadRegion" disabled />
|
||||||
</el-form-item>
|
</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-input v-model="editForm.TargetRegion" disabled />
|
||||||
</el-form-item>
|
</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-select v-model="editForm.IsNeedSync" style="width: 100%">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.YesOrNo"
|
v-for="item of $d.YesOrNo"
|
||||||
|
|
@ -173,16 +175,16 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</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-input v-model="editForm.UpdateTime" disabled />
|
||||||
</el-form-item>
|
</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-input v-model="editForm.Path" type="textarea" :rows="2" disabled />
|
||||||
</el-form-item>
|
</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-input-number v-model="editForm.Priority" :min="0" :controls="true" style="width: 100%" />
|
||||||
</el-form-item>
|
</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-select v-model="editForm.IsSync" style="width: 100%" disabled>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.YesOrNo"
|
v-for="item of $d.YesOrNo"
|
||||||
|
|
@ -194,19 +196,19 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="editDialogVisible = false">取消</el-button>
|
<el-button @click="editDialogVisible = false">{{ $t('common:button:cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="handleSaveEdit">保存</el-button>
|
<el-button type="primary" @click="handleSaveEdit">{{ $t('common:button:save') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</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 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-input-number v-model="batchEditForm.Priority" :min="0" :controls="true" style="width: 100%" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="batchEditDialogVisible = false">取消</el-button>
|
<el-button @click="batchEditDialogVisible = false">{{ $t('common:button:cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="handleSaveBatchEdit">保存</el-button>
|
<el-button type="primary" @click="handleSaveBatchEdit">{{ $t('common:button:save') }}</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</BaseContainer>
|
</BaseContainer>
|
||||||
|
|
@ -277,8 +279,8 @@ export default {
|
||||||
// IsSync: null,
|
// IsSync: null,
|
||||||
},
|
},
|
||||||
editRules: {
|
editRules: {
|
||||||
Priority: [{ required: true, message: '请输入', trigger: 'change' }],
|
Priority: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'change' }],
|
||||||
IsSync: [{ required: true, message: '请选择', trigger: 'change' }],
|
IsSync: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'change' }],
|
||||||
},
|
},
|
||||||
formLoading: false,
|
formLoading: false,
|
||||||
selectedRows: [],
|
selectedRows: [],
|
||||||
|
|
@ -287,7 +289,7 @@ export default {
|
||||||
Priority: null,
|
Priority: null,
|
||||||
},
|
},
|
||||||
batchEditRules: {
|
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)
|
let res = await batchAddSyncFileTask(params)
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message.success('执行成功!')
|
this.$message.success(this.$t('trials:data-sync:msg:executeSuccessfully'))
|
||||||
}
|
}
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.getList()
|
this.getList()
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,11 @@
|
||||||
<template slot="search-container">
|
<template slot="search-container">
|
||||||
<el-form :inline="true">
|
<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-input v-model="searchData.SubjectCode" size="small" clearable style="width: 120px" />
|
||||||
</el-form-item>
|
</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-select v-model="searchData.VisitName" style="width: 140px" clearable>
|
||||||
<el-option v-for="(item, index) of visitPlanOptions" :key="index" :label="item.VisitName"
|
<el-option v-for="(item, index) of visitPlanOptions" :key="index" :label="item.VisitName"
|
||||||
:value="item.VisitNum">
|
:value="item.VisitNum">
|
||||||
|
|
@ -17,11 +17,11 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</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-input v-model="searchData.StudyCode" size="small" clearable style="width: 120px" />
|
||||||
</el-form-item>
|
</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-select v-model="searchData.UploadRegion" style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in regionOptions"
|
v-for="item in regionOptions"
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item> -->
|
</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-select v-model="searchData.TargetRegion" style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in regionOptions"
|
v-for="item in regionOptions"
|
||||||
|
|
@ -65,7 +65,7 @@
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item> -->
|
</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-select v-model="searchData.IsSync" clearable style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.YesOrNo"
|
v-for="item of $d.YesOrNo"
|
||||||
|
|
@ -90,15 +90,15 @@
|
||||||
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 60 }" height="100" :data="list"
|
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 60 }" height="100" :data="list"
|
||||||
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }">
|
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }">
|
||||||
<el-table-column type="index" width="50" />
|
<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="$t('trials:data-sync:studyList:subjectCode')" 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="$t('trials:data-sync:studyList:visitName')" 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="$t('trials:data-sync:studyList:studyCode')" 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="$t('trials:data-sync:studyList:fileCount')" prop="FileCount" min-width="90" show-overflow-tooltip/>
|
||||||
<el-table-column label="源区域" prop="UploadRegion" min-width="60" 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="源可用时间" prop="CreateTime" min-width="90" 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="目标区域" prop="TargetRegion" min-width="60" 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="目标可用时间" prop="SyncFinishedTime" min-width="90" 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="是否同步完成" prop="IsSync" min-width="90" show-overflow-tooltip sortable="custom">
|
<el-table-column :label="$t('trials:data-sync:studyList:isSync')" prop="IsSync" min-width="90" show-overflow-tooltip sortable="custom">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.IsSync" type="success">
|
<el-tag v-if="scope.row.IsSync" type="success">
|
||||||
{{ $fd('YesOrNo', scope.row.IsSync) }}
|
{{ $fd('YesOrNo', scope.row.IsSync) }}
|
||||||
|
|
@ -108,10 +108,11 @@
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<template slot-scope="scope">
|
||||||
|
<!-- 详情 -->
|
||||||
<el-button type="primary" size="small" @click="openDetailTable(scope.row)">
|
<el-button type="primary" size="small" @click="openDetailTable(scope.row)">
|
||||||
详情
|
{{ $t('trials:data-sync:studyList:detail') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -129,9 +130,11 @@
|
||||||
class="detail-dialog"
|
class="detail-dialog"
|
||||||
>
|
>
|
||||||
<span slot="title">{{ detailDialog.title }}</span>
|
<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-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
|
<FileList
|
||||||
v-if="detailDialog.activeTab === 'file'"
|
v-if="detailDialog.activeTab === 'file'"
|
||||||
:dataFileType="1"
|
:dataFileType="1"
|
||||||
|
|
@ -139,7 +142,8 @@
|
||||||
@openTaskTable="openTaskTable"
|
@openTaskTable="openTaskTable"
|
||||||
/>
|
/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="任务级别" name="task">
|
<!-- 任务级别 -->
|
||||||
|
<el-tab-pane :label="$t('trials:data-sync:label:taskList')" name="task">
|
||||||
<TaskList
|
<TaskList
|
||||||
v-if="detailDialog.activeTab === 'task'"
|
v-if="detailDialog.activeTab === 'task'"
|
||||||
:rowInfo="detailDialog.currentRow"
|
:rowInfo="detailDialog.currentRow"
|
||||||
|
|
@ -191,7 +195,7 @@ export default {
|
||||||
visitPlanOptions: [],
|
visitPlanOptions: [],
|
||||||
detailDialog: {
|
detailDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
title: '详情',
|
title: this.$t('trials:data-sync:studyList:detail'),
|
||||||
activeTab: 'file',
|
activeTab: 'file',
|
||||||
currentRow: null
|
currentRow: null
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,15 @@
|
||||||
<template slot="search-container">
|
<template slot="search-container">
|
||||||
<el-form :inline="true">
|
<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-input v-model="searchData.FileName" size="small" clearable style="width: 120px" />
|
||||||
</el-form-item>
|
</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-input v-model="searchData.Path" size="small" clearable />
|
||||||
</el-form-item>
|
</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-select v-model="searchData.JobState" clearable style="width: 120px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.JobState"
|
v-for="item of $d.JobState"
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 任务开始日期 -->
|
<!-- 任务开始日期 -->
|
||||||
<el-form-item label="任务开始日期">
|
<el-form-item :label="$t('trials:data-sync:table:startTime')">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="searchData.StartTime"
|
v-model="searchData.StartTime"
|
||||||
type="date"
|
type="date"
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 任务结束日期 -->
|
<!-- 任务结束日期 -->
|
||||||
<el-form-item label="任务结束日期">
|
<el-form-item :label="$t('trials:data-sync:table:endTime')">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="searchData.EndTime"
|
v-model="searchData.EndTime"
|
||||||
type="date"
|
type="date"
|
||||||
|
|
@ -58,11 +58,11 @@
|
||||||
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 70 }" height="100" :data="list"
|
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 70 }" height="100" :data="list"
|
||||||
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }">
|
class="table" @sort-change="handleSortByColumn" :default-sort="{ prop: 'CreateTime', order: 'descending' }">
|
||||||
<el-table-column type="index" width="50" />
|
<el-table-column type="index" width="50" />
|
||||||
<el-table-column label="Job编号" prop="Id" min-width="90" show-overflow-tooltip/>
|
<el-table-column :label="$t('trials:data-sync:table:jobCode')" 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:fileName')" prop="FileName" min-width="90" show-overflow-tooltip sortable="custom">
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="路径" prop="Path" min-width="90" show-overflow-tooltip/>
|
<el-table-column :label="$t('trials:data-sync:table:filePath')" 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:jobState')" prop="JobState" min-width="90" show-overflow-tooltip sortable="custom">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag v-if="scope.row.JobState === 1" type="infoinf0">
|
<el-tag v-if="scope.row.JobState === 1" type="infoinf0">
|
||||||
{{ $fd('JobState', scope.row.JobState) }}
|
{{ $fd('JobState', scope.row.JobState) }}
|
||||||
|
|
@ -79,15 +79,16 @@
|
||||||
<el-tag v-else>{{ $fd('JobState', scope.row.JobState) }}</el-tag>
|
<el-tag v-else>{{ $fd('JobState', scope.row.JobState) }}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="任务开始时间" prop="StartTime" 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="任务结束时间" prop="EndTime" 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="创建时间" prop="CreateTime" 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">
|
<template slot-scope="scope">
|
||||||
|
<!-- 再次执行 -->
|
||||||
<el-button type="primary" size="mini" :disabled="scope.row.JobState !== 3" @click="execute(scope.row)">
|
<el-button type="primary" size="mini" :disabled="scope.row.JobState !== 3" @click="execute(scope.row)">
|
||||||
再次执行
|
{{ $t('trials:data-sync:button:execute') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
@ -201,7 +202,7 @@ export default {
|
||||||
}
|
}
|
||||||
let res = await batchAddSyncFileTask(params)
|
let res = await batchAddSyncFileTask(params)
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message.success('执行成功!')
|
this.$message.success(this.$t('trials:data-sync:msg:executeSuccessfully')) //'执行成功!'
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,22 @@
|
||||||
<template>
|
<template>
|
||||||
<el-tabs class="data-sync-tabs" type="border-card" tab-position="left" v-model="activeTab" >
|
<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'"/>
|
<StudyList v-if="activeTab === 'study'"/>
|
||||||
</el-tab-pane>
|
</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-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
|
<FileList
|
||||||
v-if="tabInfo.activeTab === 'file'"
|
v-if="tabInfo.activeTab === 'file'"
|
||||||
:dataFileType="2"
|
:dataFileType="2"
|
||||||
@openTaskTable="openTaskTable"
|
@openTaskTable="openTaskTable"
|
||||||
/>
|
/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="任务级别" name="task">
|
<!-- 任务级别 -->
|
||||||
|
<el-tab-pane :label="$t('trials:data-sync:label:taskList')" name="task">
|
||||||
<TaskList
|
<TaskList
|
||||||
v-if="tabInfo.activeTab === 'task'"
|
v-if="tabInfo.activeTab === 'task'"
|
||||||
:rowInfo="tabInfo.currentRow"
|
:rowInfo="tabInfo.currentRow"
|
||||||
|
|
@ -24,22 +26,6 @@
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-tab-pane>
|
</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>
|
</el-tabs>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -57,7 +43,6 @@ export default {
|
||||||
return {
|
return {
|
||||||
activeTab: 'study',
|
activeTab: 'study',
|
||||||
tabInfo: {
|
tabInfo: {
|
||||||
title: '详情',
|
|
||||||
activeTab: 'file',
|
activeTab: 'file',
|
||||||
currentRow: null
|
currentRow: null
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue