Merge branch 'main' into uat_us
commit
d7e85aa766
|
@ -149,6 +149,7 @@ export default {
|
|||
return isShow
|
||||
},
|
||||
goBack() {
|
||||
zzSessionStorage.removeItem('lastWorkbench')
|
||||
this.$router.push({ path: '/trials/trials-list' })
|
||||
},
|
||||
selectTrials(v) {
|
||||
|
|
|
@ -92,6 +92,7 @@ export default {
|
|||
try {
|
||||
if (!this.form.userRoleId)
|
||||
return this.$message.warning(this.$t('toggleRole:ruleMessage:select'))
|
||||
zzSessionStorage.removeItem('lastWorkbench')
|
||||
this.$emit('save', this.form.userRoleId)
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
|
|
|
@ -109,6 +109,15 @@
|
|||
{{ scope.row.FileName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="EnFileName"
|
||||
label="模板英文名称"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.EnFileName }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="IsEnable"
|
||||
label="状态"
|
||||
|
@ -136,10 +145,20 @@
|
|||
问题配置
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="$i18n.locale === 'zh'"
|
||||
type="primary"
|
||||
size="mini"
|
||||
:disabled="!scope.row.FileName"
|
||||
@click="handleDownloadTpl(scope.row)"
|
||||
@click="handleDownloadTpl(scope.row.Path)"
|
||||
>
|
||||
下载
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="primary"
|
||||
size="mini"
|
||||
:disabled="!scope.row.EnFileName"
|
||||
@click="handleDownloadTpl(scope.row.EnPath)"
|
||||
>
|
||||
下载
|
||||
</el-button>
|
||||
|
@ -258,8 +277,8 @@ export default {
|
|||
}).catch(() => { this.loading = false })
|
||||
})
|
||||
},
|
||||
handleDownloadTpl(row) {
|
||||
window.open(this.OSSclientConfig.basePath + row.Path, '_blank')
|
||||
handleDownloadTpl(path) {
|
||||
window.open(this.OSSclientConfig.basePath + path, '_blank')
|
||||
},
|
||||
// 排序
|
||||
handleSortByColumn(column) {
|
||||
|
|
|
@ -113,6 +113,34 @@
|
|||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="form.ClinicalUploadType === 1" label="英文模板: ">
|
||||
<div class="upload-container">
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
action
|
||||
accept=".doc,.docx"
|
||||
:before-upload="beforeUploadEnFile"
|
||||
:http-request="handleUploadEnFile"
|
||||
:on-preview="handlePreview"
|
||||
:on-remove="handleRemoveEnFile"
|
||||
:show-file-list="true"
|
||||
:file-list="enFileList"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
:disabled="form.Type === ''"
|
||||
>
|
||||
<el-button size="small" type="primary">选择</el-button>
|
||||
<span
|
||||
slot="tip"
|
||||
style="margin-left:10px;"
|
||||
class="el-upload__tip"
|
||||
>
|
||||
(必须是doc/docx格式)
|
||||
</span>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="form.Id !== ''" label="是否启用">
|
||||
<el-switch v-model="form.IsEnable" />
|
||||
</el-form-item>
|
||||
|
@ -160,6 +188,8 @@ export default {
|
|||
UploadRole: null,
|
||||
FileName: '',
|
||||
Path: '',
|
||||
EnFileName: '',
|
||||
EnPath: '',
|
||||
IsEnable: true,
|
||||
CriterionEnumList: []
|
||||
},
|
||||
|
@ -173,6 +203,7 @@ export default {
|
|||
loading: false,
|
||||
btnLoading: false,
|
||||
fileList: [],
|
||||
enFileList: [],
|
||||
systemCriterionSelectList: []
|
||||
}
|
||||
},
|
||||
|
@ -195,6 +226,14 @@ export default {
|
|||
}
|
||||
]
|
||||
}
|
||||
if (this.data.EnPath) {
|
||||
this.enFileList = [
|
||||
{
|
||||
name: this.data.EnFileName,
|
||||
path: this.data.EnPath
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
save() {
|
||||
|
@ -249,6 +288,32 @@ export default {
|
|||
handleExceed(files, fileList) {
|
||||
this.$message.warning(`只允许上传一个文件`)
|
||||
},
|
||||
beforeUploadEnFile(file) {
|
||||
// 检测文件类型是否符合要求
|
||||
if (this.checkFileSuffix(file.name)) {
|
||||
this.enFileList = []
|
||||
return true
|
||||
} else {
|
||||
this.$alert('(必须是doc/docx格式)')
|
||||
|
||||
return false
|
||||
}
|
||||
},
|
||||
async handleUploadEnFile(param) {
|
||||
this.loading = true
|
||||
var fileBlob = await this.fileToBlob(param.file)
|
||||
const res = await this.OSSclient.put(`/System/ClinicalDataTemplate/${param.file.name}`, fileBlob)
|
||||
this.form.EnFileName = res.name
|
||||
this.form.EnPath = this.$getObjectName(res.url)
|
||||
let file = { name: res.name, path: this.$getObjectName(res.url), url:this.$getObjectName(res.url) }
|
||||
this.enFileList.push(file)
|
||||
this.loading = false
|
||||
},
|
||||
handleRemoveEnFile() {
|
||||
this.enFileList = []
|
||||
this.form.EnPath = ''
|
||||
this.form.EnFileName = ''
|
||||
},
|
||||
checkFileSuffix(fileName) {
|
||||
var typeArr = ['doc', 'docx']
|
||||
var extendName = fileName.substring(fileName.lastIndexOf('.') + 1).toLocaleLowerCase()
|
||||
|
|
|
@ -231,6 +231,7 @@ export default {
|
|||
this.$store
|
||||
.dispatch('user/loginByRole', { userRoleId: this.userRoleId })
|
||||
.then((res) => {
|
||||
zzSessionStorage.removeItem('lastWorkbench')
|
||||
window.location.reload()
|
||||
})
|
||||
.catch(() => {
|
||||
|
|
|
@ -194,6 +194,7 @@
|
|||
</el-table-column>
|
||||
<!-- DICOM AE -->
|
||||
<el-table-column
|
||||
v-if="isPACSConnect"
|
||||
prop="CallingAEList"
|
||||
:label="$t('trials:sitesList:table:AE')"
|
||||
show-overflow-tooltip
|
||||
|
@ -254,6 +255,7 @@
|
|||
@click="handleEdit(scope.row)"
|
||||
/>
|
||||
<el-button
|
||||
v-if="isPACSConnect"
|
||||
circle
|
||||
:title="$t('common:button:config')"
|
||||
icon="el-icon-setting"
|
||||
|
@ -635,6 +637,7 @@ export default {
|
|||
},
|
||||
trialId: '',
|
||||
TrialSiteSelectList: [],
|
||||
isPACSConnect: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
@ -709,6 +712,7 @@ export default {
|
|||
this.listLoading = false
|
||||
this.list = res.Result.CurrentPageData
|
||||
this.total = res.Result.TotalCount
|
||||
this.isPACSConnect = res.OtherInfo.IsPACSConnectAndIsTrialPACSConfirmed
|
||||
})
|
||||
.catch(() => {
|
||||
this.listLoading = false
|
||||
|
|
|
@ -23,11 +23,11 @@
|
|||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-collapse v-model="activeNames">
|
||||
<el-collapse v-model="activeNames" style="border-top:none;">
|
||||
<el-collapse-item
|
||||
v-for="(item, index) of QuestionList"
|
||||
:key="item.ReadingQuestionTrialId"
|
||||
style="position: relative"
|
||||
style="position: relative;padding:0 10px;"
|
||||
:name="item.ReadingQuestionTrialId"
|
||||
>
|
||||
<div slot="title">
|
||||
|
|
|
@ -145,6 +145,37 @@
|
|||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- 英文模板 -->
|
||||
<el-form-item
|
||||
v-if="form.ClinicalUploadType === 1"
|
||||
:label="$t('trials:processCfg:title:enModule')"
|
||||
>
|
||||
<div class="upload-container">
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
action
|
||||
accept=".doc,.docx"
|
||||
:before-upload="beforeUploadEnFile"
|
||||
:http-request="handleUploadEnFile"
|
||||
:on-preview="handlePreview"
|
||||
:on-remove="handleRemoveEnFile"
|
||||
:show-file-list="true"
|
||||
:file-list="enFileList"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
:disabled="form.Type === ''"
|
||||
>
|
||||
<!-- 选择 -->
|
||||
<el-button size="small" type="primary">{{
|
||||
$t('trials:processCfg:button:select')
|
||||
}}</el-button>
|
||||
<span slot="tip" style="margin-left: 10px" class="el-upload__tip">
|
||||
<!-- (必须是doc/docx格式) -->
|
||||
{{ $t('system:tip:file:docx') }}
|
||||
</span>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
||||
<el-form-item>
|
||||
|
@ -204,6 +235,8 @@ export default {
|
|||
UploadRole: null,
|
||||
FileName: '',
|
||||
Path: '',
|
||||
EnFileName: '',
|
||||
EnPath: '',
|
||||
TrialCriterionIdList: [],
|
||||
},
|
||||
rules: {
|
||||
|
@ -253,6 +286,7 @@ export default {
|
|||
loading: false,
|
||||
btnLoading: false,
|
||||
fileList: [],
|
||||
enFileList: [],
|
||||
trialCriterionSelectList: [],
|
||||
criterionList: [],
|
||||
}
|
||||
|
@ -287,13 +321,22 @@ export default {
|
|||
this.form[k] = this.data[k]
|
||||
}
|
||||
}
|
||||
if (!this.data.Path) return
|
||||
this.fileList = [
|
||||
{
|
||||
name: this.data.FileName,
|
||||
path: this.data.Path,
|
||||
},
|
||||
]
|
||||
if (this.data.Path) {
|
||||
this.fileList = [
|
||||
{
|
||||
name: this.data.FileName,
|
||||
path: this.data.Path,
|
||||
},
|
||||
]
|
||||
}
|
||||
if (this.data.EnPath) {
|
||||
this.enFileList = [
|
||||
{
|
||||
name: this.data.EnFileName,
|
||||
path: this.data.EnPath,
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
save() {
|
||||
|
@ -356,6 +399,40 @@ export default {
|
|||
handleExceed(files, fileList) {
|
||||
this.$message.warning(this.$t('trials:processCfg:title:onlyOneFile')) // `只允许上传一个文件`
|
||||
},
|
||||
async handleUploadEnFile(param) {
|
||||
this.loading = true
|
||||
const file = await this.fileToBlob(param.file)
|
||||
const res = await this.OSSclient.put(
|
||||
`/TrialConfig/${this.trialId}/ClinicalData/${param.file.name}`,
|
||||
file
|
||||
)
|
||||
// console.log(res)
|
||||
const file1 = {
|
||||
name: param.file.name,
|
||||
path: this.form.Path,
|
||||
url: this.$getObjectName(res.url),
|
||||
}
|
||||
this.enFileList.push(file1)
|
||||
this.form.EnPath = this.$getObjectName(res.url)
|
||||
this.form.EnFileName = param.file.name
|
||||
this.loading = false
|
||||
},
|
||||
beforeUploadEnFile(file) {
|
||||
// 检测文件类型是否符合要求
|
||||
if (this.checkFileSuffix(file.name)) {
|
||||
this.enFileList = []
|
||||
return true
|
||||
} else {
|
||||
this.$alert(this.$t('trials:processCfg:title:docFormat')) // '(必须是doc/docx格式)'
|
||||
|
||||
return false
|
||||
}
|
||||
},
|
||||
handleRemoveEnFile() {
|
||||
this.enFileList = []
|
||||
this.form.EnPath = ''
|
||||
this.form.EnFileName = ''
|
||||
},
|
||||
checkFileSuffix(fileName) {
|
||||
var typeArr = ['doc', 'docx']
|
||||
var extendName = fileName
|
||||
|
|
|
@ -769,11 +769,18 @@
|
|||
<template slot-scope="scope">
|
||||
<!-- 下载 -->
|
||||
<el-button
|
||||
v-if="scope.row.FileName && scope.row.ClinicalUploadType"
|
||||
v-if="scope.row.FileName && scope.row.ClinicalUploadType && $i18n.locale === 'zh'"
|
||||
circle
|
||||
:title="$t('common:button:download')"
|
||||
icon="el-icon-download"
|
||||
@click="handleDownloadTpl(scope.row)"
|
||||
@click="handleDownloadTpl(scope.row.Path)"
|
||||
>
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.FileName && scope.row.ClinicalUploadType && $i18n.locale === 'en'"
|
||||
circle
|
||||
icon="el-icon-download"
|
||||
@click="handleDownloadTpl(scope.row.EnPath)"
|
||||
>
|
||||
</el-button>
|
||||
<el-button
|
||||
|
@ -1713,8 +1720,8 @@ export default {
|
|||
})
|
||||
})
|
||||
},
|
||||
handleDownloadTpl(row) {
|
||||
window.open(this.OSSclientConfig.basePath + row.Path)
|
||||
handleDownloadTpl(path) {
|
||||
window.open(this.OSSclientConfig.basePath + path)
|
||||
// this.listLoading = true
|
||||
// DownloadTrialClinicalFile(row.Id).then(data => {
|
||||
// this.listLoading = false
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
:model="form"
|
||||
size="small"
|
||||
:rules="rules"
|
||||
label-width="110px"
|
||||
:inline="true"
|
||||
>
|
||||
<div class="base-dialog-body">
|
||||
|
@ -39,7 +38,6 @@
|
|||
</el-col>
|
||||
</el-form-item>
|
||||
<!-- 数据内容:label="$t('trials:readingPeriod:cd:form:data')" -->
|
||||
<el-form-item>
|
||||
<!-- 多文件上传 -->
|
||||
<form id="inputForm" ref="uploadForm">
|
||||
<div class="form-group">
|
||||
|
@ -52,7 +50,7 @@
|
|||
display: inline-block;
|
||||
"
|
||||
>
|
||||
<el-button type="primary" style="width: 56px" size="small">
|
||||
<el-button type="primary" size="small">
|
||||
{{ $t('trials:uploadClinicalData:button:selectFile') }}
|
||||
</el-button>
|
||||
<input
|
||||
|
@ -83,7 +81,7 @@
|
|||
:data="fileList"
|
||||
class="dicomFiles-table"
|
||||
height="300"
|
||||
style="width: 100%"
|
||||
style="width: 100%;margin-top:5px;"
|
||||
border
|
||||
>
|
||||
<el-table-column type="index" width="40" />
|
||||
|
@ -108,7 +106,7 @@
|
|||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('common:action:action')" width="100">
|
||||
<el-table-column :label="$t('common:action:action')">
|
||||
<template slot-scope="scope">
|
||||
<!-- 删除 -->
|
||||
<el-button
|
||||
|
@ -128,7 +126,6 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
||||
<el-form-item>
|
||||
|
|
|
@ -93,11 +93,13 @@
|
|||
<el-table-column
|
||||
prop="ClinicalDataSetName"
|
||||
:label="$t('trials:readingPeriod:cd:table:clinicalDataName')"
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="UploadRole"
|
||||
:label="$t('trials:studyList:table:uploader')"
|
||||
show-overflow-tooltip
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ $fd("ClinicalDataUploadRole", scope.row.UploadRole) }}
|
||||
|
@ -107,6 +109,7 @@
|
|||
<el-table-column
|
||||
prop="ClinicalDataLevel"
|
||||
:label="$t('trials:readingPeriod:cd:table:dataLevel')"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ $fd("ClinicalLevel", scope.row.ClinicalDataLevel) }}
|
||||
|
@ -116,6 +119,7 @@
|
|||
<el-table-column
|
||||
prop="ClinicalUploadType"
|
||||
:label="$t('trials:readingPeriod:cd:table:transferType')"
|
||||
min-width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{ $fd("ClinicalUploadType", scope.row.ClinicalUploadType) }}
|
||||
|
@ -125,6 +129,7 @@
|
|||
<el-table-column
|
||||
prop="FileCount"
|
||||
:label="$t('trials:readingPeriod:cd:table:fileCount')"
|
||||
min-width="120"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{
|
||||
|
@ -247,7 +252,7 @@
|
|||
:visible.sync="addOrUpdateCD.visible"
|
||||
:close-on-click-modal="false"
|
||||
:title="addOrUpdateCD.title"
|
||||
width="500px"
|
||||
width="600px"
|
||||
append-to-body
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
|
@ -503,7 +508,7 @@
|
|||
:visible.sync="addOrUpdateCD.visible"
|
||||
:close-on-click-modal="false"
|
||||
:title="addOrUpdateCD.title"
|
||||
width="500px"
|
||||
width="600px"
|
||||
append-to-body
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
|
|
|
@ -136,7 +136,6 @@
|
|||
:prop="`Plan${i-1}`"
|
||||
label=""
|
||||
width="240"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="i<=scope.row.Data.length">
|
||||
|
@ -162,7 +161,7 @@
|
|||
</div>
|
||||
<div style="display: flex;justify-content: space-between;border-bottom: 1px solid #d9d9d9;margin-bottom: 8px;padding-bottom: 8px">
|
||||
<div>{{ $fd('ModuleTypeEnum',scope.row.Data[i-1].ModuleType) }}</div>
|
||||
<div style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width: 110px;text-align: right;">
|
||||
<div style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width: 110px;text-align: right;" :title="$fd('ReadModuleEnum',scope.row.Data[i-1].ReadingStatus)">
|
||||
{{ $fd('ReadModuleEnum',scope.row.Data[i-1].ReadingStatus) }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -322,6 +321,7 @@
|
|||
:visible.sync="clinicalDataVisible"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
width="70%"
|
||||
>
|
||||
<ClinicalData :trial-reading-criterion-id="TrialReadingCriterionId" :trial-id="trialId" :data="currentData" @getList="getList"/>
|
||||
</el-dialog>
|
||||
|
|
|
@ -154,21 +154,23 @@
|
|||
v-else-if="scope.row.CheckChallengeState === 1"
|
||||
type="danger"
|
||||
>
|
||||
{{
|
||||
{{ $fd('CheckChallengeState', 1) }}
|
||||
<!-- {{
|
||||
userTypeEnumInt === 2
|
||||
? $fd('CheckChallengeState', 1)
|
||||
: $fd('CheckChallengeState', 2)
|
||||
}}
|
||||
}} -->
|
||||
</el-tag>
|
||||
<el-tag
|
||||
v-else-if="scope.row.CheckChallengeState === 2"
|
||||
type="danger"
|
||||
>
|
||||
{{
|
||||
{{ $fd('CheckChallengeState', 2) }}
|
||||
<!-- {{
|
||||
userTypeEnumInt === 2
|
||||
? $fd('CheckChallengeState', 2)
|
||||
: $fd('CheckChallengeState', 1)
|
||||
}}
|
||||
}} -->
|
||||
</el-tag>
|
||||
<el-tag v-else-if="scope.row.CheckChallengeState === 3">{{
|
||||
$fd('CheckChallengeState', scope.row.CheckChallengeState)
|
||||
|
|
|
@ -1459,7 +1459,7 @@ export default {
|
|||
</div>`
|
||||
this.$alert(
|
||||
content,
|
||||
this.$t('trials:uploadDicomList:label:prompt'),
|
||||
'',
|
||||
{
|
||||
confirmButtonText: this.$t(
|
||||
'trials:uploadDicomList:label:confirm'
|
||||
|
|
Loading…
Reference in New Issue