Merge branch 'main' into uat_us

uat_us
wangxiaoshuang 2025-02-10 14:18:22 +08:00
commit d7e85aa766
14 changed files with 210 additions and 31 deletions

View File

@ -149,6 +149,7 @@ export default {
return isShow
},
goBack() {
zzSessionStorage.removeItem('lastWorkbench')
this.$router.push({ path: '/trials/trials-list' })
},
selectTrials(v) {

View File

@ -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)

View File

@ -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) {

View File

@ -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()

View File

@ -231,6 +231,7 @@ export default {
this.$store
.dispatch('user/loginByRole', { userRoleId: this.userRoleId })
.then((res) => {
zzSessionStorage.removeItem('lastWorkbench')
window.location.reload()
})
.catch(() => {

View File

@ -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

View File

@ -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">

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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"
>

View File

@ -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>

View File

@ -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)

View File

@ -1459,7 +1459,7 @@ export default {
</div>`
this.$alert(
content,
this.$t('trials:uploadDicomList:label:prompt'),
'',
{
confirmButtonText: this.$t(
'trials:uploadDicomList:label:confirm'