Compare commits
13 Commits
b16e351779
...
v1.9.0
| Author | SHA1 | Date | |
|---|---|---|---|
| dba4466ac2 | |||
| 9187bbe64f | |||
| a0f593a22f | |||
| 89f7aee973 | |||
| ced57cbfe4 | |||
| 99d099496e | |||
| d3afa7b676 | |||
| c08d701143 | |||
| a2d06ba72f | |||
| 148aa4908b | |||
| 53738c2da4 | |||
| 3513c08adf | |||
| 9eb3f2f322 |
+3
-3
@@ -209,9 +209,9 @@ export default {
|
|||||||
[],
|
[],
|
||||||
this.arr.filter(
|
this.arr.filter(
|
||||||
(v) =>
|
(v) =>
|
||||||
~v.Code.indexOf(this.key) ||
|
~v.Code.toLowerCase().indexOf(this.key.toLowerCase()) ||
|
||||||
~v.Value.indexOf(this.key) ||
|
~v.Value.toLowerCase().indexOf(this.key.toLowerCase()) ||
|
||||||
~v.ValueCN.indexOf(this.key)
|
~v.ValueCN.toLowerCase().indexOf(this.key.toLowerCase())
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -882,13 +882,13 @@ const actions = {
|
|||||||
// }
|
// }
|
||||||
series.InstanceInfoList.forEach(instance => {
|
series.InstanceInfoList.forEach(instance => {
|
||||||
if (instance.NumberOfFrames && instance.NumberOfFrames > 1) {
|
if (instance.NumberOfFrames && instance.NumberOfFrames > 1) {
|
||||||
if (study.IsCriticalSequence && instance.KeyFramesList.length > 0 && instance.KeyFramesList[0] !== null) {
|
if (study.IsCriticalSequence && instance.KeyFramesList.length > 0) {
|
||||||
instance.KeyFramesList.map(i => {
|
instance.KeyFramesList.map(i => {
|
||||||
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? Vue.prototype.OSSclientConfig.basePath : Vue.prototype.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${obj.visitTaskId}&idx=${studyIndex}|${seriesIndex}|${index}`
|
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? Vue.prototype.OSSclientConfig.basePath : Vue.prototype.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${obj.visitTaskId}&idx=${studyIndex}|${seriesIndex}|${index}`
|
||||||
imageIds.push(imageId)
|
imageIds.push(imageId)
|
||||||
})
|
})
|
||||||
} else if (study.IsCriticalSequence && instance.KeyFramesList.length === 0) {
|
} else if (study.IsCriticalSequence && instance.KeyFramesList.length === 0) {
|
||||||
console.log(111)
|
// 兼容保存标记数据未存NumberOfFrames的情况,按序列展示
|
||||||
for (let i = 0; i < instance.NumberOfFrames; i++) {
|
for (let i = 0; i < instance.NumberOfFrames; i++) {
|
||||||
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? Vue.prototype.OSSclientConfig.basePath : Vue.prototype.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${obj.visitTaskId}&idx=${studyIndex}|${seriesIndex}|${index}`
|
const imageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? Vue.prototype.OSSclientConfig.basePath : Vue.prototype.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${obj.visitTaskId}&idx=${studyIndex}|${seriesIndex}|${index}`
|
||||||
imageIds.push(imageId)
|
imageIds.push(imageId)
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
:label="$t('dictionary:signature:table:SignViewMinimumMinutes')"
|
:label="$t('dictionary:signature:table:SignViewMinimumMinutes')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
min-width="110"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="NeedConfirmedUserTypes"
|
prop="NeedConfirmedUserTypes"
|
||||||
@@ -103,6 +104,7 @@
|
|||||||
:label="$t('dictionary:signature:table:DocUserSignType')"
|
:label="$t('dictionary:signature:table:DocUserSignType')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
|
min-width="90"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ $fd('ReadingYesOrNo', Number(scope.row.DocUserSignType)) }}
|
{{ $fd('ReadingYesOrNo', Number(scope.row.DocUserSignType)) }}
|
||||||
@@ -115,7 +117,7 @@
|
|||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column :label="$t('common:action:action')">
|
<el-table-column :label="$t('common:action:action')" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" @click="handlePreview(scope.row)">
|
<el-button type="text" @click="handlePreview(scope.row)">
|
||||||
{{ $t('common:button:preview') }}
|
{{ $t('common:button:preview') }}
|
||||||
|
|||||||
@@ -10,12 +10,16 @@
|
|||||||
<el-input v-model="searchData.Version" style="width: 100px" />
|
<el-input v-model="searchData.Version" style="width: 100px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">{{
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
$t("dictionary:browser:button:reset")
|
{{ $t('common:button:search') }}
|
||||||
}}</el-button>
|
</el-button>
|
||||||
<el-button type="primary" @click="handleSearch">{{
|
<el-button
|
||||||
$t("dictionary:browser:button:search")
|
type="primary"
|
||||||
}}</el-button>
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left: auto">
|
<span style="margin-left: auto">
|
||||||
|
|||||||
@@ -16,8 +16,16 @@
|
|||||||
<el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" />
|
<el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">Search</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto">
|
<span style="margin-left:auto">
|
||||||
|
|||||||
@@ -27,8 +27,16 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">重置</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto">
|
<span style="margin-left:auto">
|
||||||
|
|||||||
@@ -8,9 +8,16 @@
|
|||||||
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
|
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">重置</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -57,8 +57,16 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">重置</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto">
|
<span style="margin-left:auto">
|
||||||
|
|||||||
@@ -16,8 +16,16 @@
|
|||||||
<el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" />
|
<el-input v-model="searchData.TagDescriptionCN" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">Search</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto">
|
<span style="margin-left:auto">
|
||||||
|
|||||||
@@ -38,8 +38,16 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">重置</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto">
|
<span style="margin-left:auto">
|
||||||
|
|||||||
@@ -26,8 +26,16 @@
|
|||||||
<el-input v-model="searchData.Type" clearable style="width:120px;" />
|
<el-input v-model="searchData.Type" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">Search</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto">
|
<span style="margin-left:auto">
|
||||||
|
|||||||
@@ -123,8 +123,16 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleReset">重置</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left: auto">
|
<span style="margin-left: auto">
|
||||||
|
|||||||
@@ -3,15 +3,23 @@
|
|||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<el-form :inline="true" size="mini" class="base-search-form">
|
<el-form :inline="true" size="mini" class="base-search-form">
|
||||||
<el-form-item label="编号:">
|
<el-form-item label="Code:">
|
||||||
<el-input v-model="searchData.Code" style="width:100px;" />
|
<el-input v-model="searchData.Code" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="模板:">
|
<el-form-item label="模板:">
|
||||||
<el-input v-model="searchData.Name" style="width:100px;" />
|
<el-input v-model="searchData.Name" style="width:100px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="handleReset">Reset</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
<el-button type="primary" @click="handleSearch">Search</el-button>
|
{{ $t('common:button:search') }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left:auto;">
|
<span style="margin-left:auto;">
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let lang = zzSessionStorage.getItem('lang') || 'zh'
|
let lang = zzSessionStorage.getItem('lang') || 'zh'
|
||||||
zzSessionStorage.clear()
|
// zzSessionStorage.clear()
|
||||||
this.loginType = this.$route.query.loginType
|
this.loginType = this.$route.query.loginType
|
||||||
this.location = this.$route.query.location
|
this.location = this.$route.query.location
|
||||||
zzSessionStorage.setItem('loginType', this.loginType)
|
zzSessionStorage.setItem('loginType', this.loginType)
|
||||||
@@ -421,6 +421,8 @@ export default {
|
|||||||
)
|
)
|
||||||
return
|
return
|
||||||
} else if (res.IsMFA) {
|
} else if (res.IsMFA) {
|
||||||
|
zzSessionStorage.removeItem('userId')
|
||||||
|
zzSessionStorage.removeItem('identityUserId')
|
||||||
this.$MFA({
|
this.$MFA({
|
||||||
UserId: res.BasicInfo.IdentityUserId,
|
UserId: res.BasicInfo.IdentityUserId,
|
||||||
EMail: res.BasicInfo.EMail,
|
EMail: res.BasicInfo.EMail,
|
||||||
|
|||||||
@@ -437,7 +437,7 @@ export default {
|
|||||||
},
|
},
|
||||||
handlePreview3(row) {
|
handlePreview3(row) {
|
||||||
return this.$preview({
|
return this.$preview({
|
||||||
path: row.FilePath,
|
path: row.Path || row.FilePath,
|
||||||
type: 'pdf',
|
type: 'pdf',
|
||||||
title: row.FileName,
|
title: row.FileName,
|
||||||
})
|
})
|
||||||
@@ -447,7 +447,7 @@ export default {
|
|||||||
},
|
},
|
||||||
handlePreview2(row, r2) {
|
handlePreview2(row, r2) {
|
||||||
return this.$preview({
|
return this.$preview({
|
||||||
path: row.fullPath,
|
path: row.Path || row.fullPath,
|
||||||
type: 'pdf',
|
type: 'pdf',
|
||||||
title: row.FileName,
|
title: row.FileName,
|
||||||
})
|
})
|
||||||
@@ -537,7 +537,7 @@ export default {
|
|||||||
handlePreview(row) {
|
handlePreview(row) {
|
||||||
console.log(row)
|
console.log(row)
|
||||||
return this.$preview({
|
return this.$preview({
|
||||||
path: row.FullPath,
|
path: row.Path || row.FullPath,
|
||||||
type: 'pdf',
|
type: 'pdf',
|
||||||
title: row.FileName,
|
title: row.FileName,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ export default {
|
|||||||
},
|
},
|
||||||
preview(row) {
|
preview(row) {
|
||||||
this.$preview({
|
this.$preview({
|
||||||
path: row.FullPath,
|
path: row.Path || row.FullPath,
|
||||||
type: 'pdf',
|
type: 'pdf',
|
||||||
title: row.FileName,
|
title: row.FileName,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ export default {
|
|||||||
},
|
},
|
||||||
preview(row) {
|
preview(row) {
|
||||||
this.$preview({
|
this.$preview({
|
||||||
path: row.FullPath,
|
path: row.Path || row.FullPath,
|
||||||
type: 'pdf',
|
type: 'pdf',
|
||||||
title: row.FileName,
|
title: row.FileName,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1015,7 +1015,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
preview(row) {
|
preview(row) {
|
||||||
let path = row.FullPath || row.FilePath
|
let path = row.Path || row.FullPath || row.FilePath
|
||||||
this.$preview({
|
this.$preview({
|
||||||
path: path,
|
path: path,
|
||||||
type: 'pdf',
|
type: 'pdf',
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item :label="$t('system:userlist:table:Email')" prop="EMail">
|
<el-form-item :label="$t('system:userlist:table:Email')" prop="EMail">
|
||||||
<el-input v-model="user.EMail" :disabled="user.UserCode" />
|
<el-input v-model="user.EMail" :disabled="!!user.UserCode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('system:userlist:table:Phone')" prop="Phone">
|
<el-form-item :label="$t('system:userlist:table:Phone')" prop="Phone">
|
||||||
<el-input v-model="user.Phone" />
|
<el-input v-model="user.Phone" />
|
||||||
|
|||||||
@@ -165,6 +165,7 @@ export default {
|
|||||||
this.$emit('update:visible', false)
|
this.$emit('update:visible', false)
|
||||||
},
|
},
|
||||||
openAdd() {
|
openAdd() {
|
||||||
|
this.form.roles = []
|
||||||
this.addVisible = true
|
this.addVisible = true
|
||||||
},
|
},
|
||||||
async save() {
|
async save() {
|
||||||
|
|||||||
@@ -392,15 +392,17 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
searchHandle: [
|
searchHandle: [
|
||||||
{
|
|
||||||
label: this.$t('common:button:reset'),
|
|
||||||
type: 'primary',
|
|
||||||
emitKey: 'reset',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
label: this.$t('common:button:search'),
|
label: this.$t('common:button:search'),
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
emitKey: 'search',
|
emitKey: 'search',
|
||||||
|
icon: 'el-icon-search'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: this.$t('common:button:reset'),
|
||||||
|
type: 'primary',
|
||||||
|
emitKey: 'reset',
|
||||||
|
icon: 'el-icon-refresh-left'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('common:button:new'),
|
label: this.$t('common:button:new'),
|
||||||
|
|||||||
@@ -332,13 +332,12 @@
|
|||||||
<template slot="dialog-body">
|
<template slot="dialog-body">
|
||||||
<div style="width: 100%; display: flex">
|
<div style="width: 100%; display: flex">
|
||||||
<div class="shareLink">
|
<div class="shareLink">
|
||||||
<div>
|
<!-- <div>
|
||||||
<i style="color: #428bca" class="el-icon-success" />
|
<i style="color: #428bca" class="el-icon-success" />
|
||||||
<!-- 成功创建调查表链接 -->
|
|
||||||
<span>{{
|
<span>{{
|
||||||
$t('trials:researchRecord:message:createLinkSuccessfully')
|
$t('trials:researchRecord:message:createLinkSuccessfully')
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div> -->
|
||||||
<div style="margin: 10px 0">
|
<div style="margin: 10px 0">
|
||||||
<!-- 链接: -->
|
<!-- 链接: -->
|
||||||
{{ $t('trials:researchRecord:label:link') }}
|
{{ $t('trials:researchRecord:label:link') }}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
style="margin:0 10px;"
|
style="margin:0 10px;"
|
||||||
:images="[`${OSSclientConfig.basePath}${file.ImagePath}`]"
|
:images="[`${OSSclientConfig.basePath}${file.ImagePath}`]"
|
||||||
>
|
>
|
||||||
<el-button type="text" @click="previewImage(file.ImagePath)">
|
<el-button type="text" @click="previewImage(file.ImagePath)" style="width: 400px;white-space: normal; word-wrap: break-word;text-align: left;">
|
||||||
{{ file.FileName }}
|
{{ file.FileName }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<img
|
<img
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
style="margin:0 10px;"
|
style="margin:0 10px;"
|
||||||
:images="[`${OSSclientConfig.basePath}${file.ImagePath}`]"
|
:images="[`${OSSclientConfig.basePath}${file.ImagePath}`]"
|
||||||
>
|
>
|
||||||
<el-button type="text" @click="previewImage(file.ImagePath)">
|
<el-button type="text" @click="previewImage(file.ImagePath)" style="width: 400px;white-space: normal; word-wrap: break-word;text-align: left;">
|
||||||
{{ file.FileName }}
|
{{ file.FileName }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<img
|
<img
|
||||||
|
|||||||
@@ -771,6 +771,7 @@
|
|||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.FileName && scope.row.ClinicalUploadType"
|
v-if="scope.row.FileName && scope.row.ClinicalUploadType"
|
||||||
circle
|
circle
|
||||||
|
:title="$t('common:button:download')"
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
@click="handleDownloadTpl(scope.row)"
|
@click="handleDownloadTpl(scope.row)"
|
||||||
>
|
>
|
||||||
@@ -778,6 +779,7 @@
|
|||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.FileName && !scope.row.ClinicalUploadType"
|
v-if="scope.row.FileName && !scope.row.ClinicalUploadType"
|
||||||
circle
|
circle
|
||||||
|
:title="$t('common:button:preview')"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@click="handlePreviewTpl(scope.row)"
|
@click="handlePreviewTpl(scope.row)"
|
||||||
>
|
>
|
||||||
@@ -785,6 +787,7 @@
|
|||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.ClinicalUploadType === 2"
|
v-if="scope.row.ClinicalUploadType === 2"
|
||||||
circle
|
circle
|
||||||
|
:title="$t('common:button:preview')"
|
||||||
icon="el-icon-view"
|
icon="el-icon-view"
|
||||||
@click="handlePreview(scope.row)"
|
@click="handlePreview(scope.row)"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -83,7 +83,18 @@
|
|||||||
:label="$t('trials:site:table:subjects')"
|
:label="$t('trials:site:table:subjects')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.SubjectCount > 0 && hasSubjectRoute"
|
||||||
|
type="text"
|
||||||
|
@click="jumpToSubjectList(scope.row.TrialSiteId)"
|
||||||
|
>
|
||||||
|
{{ scope.row.SubjectCount }}
|
||||||
|
</el-button>
|
||||||
|
<span v-else> {{ scope.row.SubjectCount }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- Visits -->
|
<!-- Visits -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitCount"
|
prop="VisitCount"
|
||||||
@@ -91,7 +102,18 @@
|
|||||||
:label="$t('trials:site:table:visits')"
|
:label="$t('trials:site:table:visits')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.VisitCount > 0 && hasVisitRoute"
|
||||||
|
type="text"
|
||||||
|
@click="jumpToVisitList(scope.row.TrialSiteId)"
|
||||||
|
>
|
||||||
|
{{ scope.row.VisitCount }}
|
||||||
|
</el-button>
|
||||||
|
<span v-else> {{ scope.row.VisitCount }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- Staff -->
|
<!-- Staff -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="UserCount"
|
prop="UserCount"
|
||||||
@@ -220,11 +242,16 @@ export default {
|
|||||||
userListLoading: '',
|
userListLoading: '',
|
||||||
userList: [],
|
userList: [],
|
||||||
trialId: '',
|
trialId: '',
|
||||||
|
hasSubjectRoute: false,
|
||||||
|
hasVisitRoute: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId
|
||||||
|
const trialsRouter = this.$store.getters.routes.find(r => { return r.name === 'Trials' })
|
||||||
|
const trialsPanelRouter = trialsRouter.children.find(r => { return r.name === 'TrialsPanel' }).children
|
||||||
|
this.hasSubjectRoute = this.hasRoute('subject-list', trialsPanelRouter)
|
||||||
|
this.hasVisitRoute = this.hasRoute('crc-upload', trialsPanelRouter)
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -273,6 +300,26 @@ export default {
|
|||||||
this.searchData.PageIndex = 1
|
this.searchData.PageIndex = 1
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
jumpToSubjectList(trialSiteId) {
|
||||||
|
this.$router.push({ path: `/trials/trials-panel/subject/subject-list?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}&trialSiteId=${trialSiteId}` })
|
||||||
|
},
|
||||||
|
jumpToVisitList(trialSiteId) {
|
||||||
|
this.$router.push({ path: `/trials/trials-panel/visit/crc-upload?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}&trialSiteId=${trialSiteId}` })
|
||||||
|
},
|
||||||
|
hasRoute(name, routeList) {
|
||||||
|
for (let i = 0; i < routeList.length; i++) {
|
||||||
|
if (routeList[i].name === name) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if (routeList[i].children) {
|
||||||
|
const flag = this.hasRoute(name, routeList[i].children)
|
||||||
|
if (flag) {
|
||||||
|
return flag
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -291,6 +291,7 @@ import SubjectsForm from './components/SubjectsForm'
|
|||||||
import SubjectStatusForm from './components/SubjectStatusForm'
|
import SubjectStatusForm from './components/SubjectStatusForm'
|
||||||
import MessageTable from './components/MessageTable'
|
import MessageTable from './components/MessageTable'
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
import { changeURLStatic } from '@/utils/history.js'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
Code: '',
|
Code: '',
|
||||||
@@ -339,6 +340,10 @@ export default {
|
|||||||
this.hasCrcRoute = this.hasRoute('crc-upload', trialsPanelRouter)
|
this.hasCrcRoute = this.hasRoute('crc-upload', trialsPanelRouter)
|
||||||
this.hasQCRoute = this.hasRoute('qc-check', trialsPanelRouter)
|
this.hasQCRoute = this.hasRoute('qc-check', trialsPanelRouter)
|
||||||
this.trialId = this.$route.query.trialId
|
this.trialId = this.$route.query.trialId
|
||||||
|
if (this.$route.query.trialSiteId) {
|
||||||
|
this.searchData.TrialSiteId = this.$route.query.trialSiteId
|
||||||
|
changeURLStatic('trialSiteId', '')
|
||||||
|
}
|
||||||
this.getSite()
|
this.getSite()
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
@@ -441,7 +446,7 @@ export default {
|
|||||||
// 关闭状态编辑框
|
// 关闭状态编辑框
|
||||||
closeStatusDialog() {
|
closeStatusDialog() {
|
||||||
this.statusVisible = false
|
this.statusVisible = false
|
||||||
},
|
},
|
||||||
handleTotalVisitCount(subjectCode) {
|
handleTotalVisitCount(subjectCode) {
|
||||||
if (this.hasCrcRoute) {
|
if (this.hasCrcRoute) {
|
||||||
this.$router.push({ path: `/trials/trials-panel/visit/crc-upload?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}&subjectCode=${subjectCode}` })
|
this.$router.push({ path: `/trials/trials-panel/visit/crc-upload?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}&subjectCode=${subjectCode}` })
|
||||||
|
|||||||
@@ -1680,8 +1680,13 @@ export default {
|
|||||||
this.getSite()
|
this.getSite()
|
||||||
if (this.$route.query.subjectCode) {
|
if (this.$route.query.subjectCode) {
|
||||||
this.searchData.SubjectInfo = this.$route.query.subjectCode
|
this.searchData.SubjectInfo = this.$route.query.subjectCode
|
||||||
|
changeURLStatic('subjectCode', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.$route.query.trialSiteId) {
|
||||||
|
this.searchData.TrialSiteId = this.$route.query.trialSiteId
|
||||||
|
changeURLStatic('trialSiteId', '')
|
||||||
}
|
}
|
||||||
changeURLStatic('subjectCode', '')
|
|
||||||
this.TrialCode = this.$route.query.trialCode
|
this.TrialCode = this.$route.query.trialCode
|
||||||
this.getList()
|
this.getList()
|
||||||
this.getVisitPlanOptions()
|
this.getVisitPlanOptions()
|
||||||
|
|||||||
@@ -121,7 +121,19 @@
|
|||||||
:label="$t('trials:audit:table:bodyPart')"
|
:label="$t('trials:audit:table:bodyPart')"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ getBodyPart(scope.row.BodyPartForEdit) }}
|
<el-tooltip
|
||||||
|
class="item"
|
||||||
|
effect="dark"
|
||||||
|
:content="$t('trials:audit:message:noBodyPartForEdit')"
|
||||||
|
placement="bottom"
|
||||||
|
v-if="!scope.row.BodyPartForEdit"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="el-icon-warning"
|
||||||
|
style="color: #f44336; font-size: 16px"
|
||||||
|
/>
|
||||||
|
</el-tooltip>
|
||||||
|
<span v-else>{{ getBodyPart(scope.row.BodyPartForEdit) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 序列数量 -->
|
<!-- 序列数量 -->
|
||||||
|
|||||||
@@ -233,14 +233,14 @@
|
|||||||
<div class="my_select_box" :class="{selected: selected === 'NeedSignedTrialDoc'}" tab-data="NeedSignedTrialDoc" @click="selected = 'NeedSignedTrialDoc'" v-if="!hasPermi(['role:zys'])">
|
<div class="my_select_box" :class="{selected: selected === 'NeedSignedTrialDoc'}" tab-data="NeedSignedTrialDoc" @click="selected = 'NeedSignedTrialDoc'" v-if="!hasPermi(['role:zys'])">
|
||||||
<div class="my_select_box_content">
|
<div class="my_select_box_content">
|
||||||
<span class="el-icon-receiving" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
<span class="el-icon-receiving" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
||||||
<span class="my_select_box_content_text">{{ $t('trials:workbench:title:trialDocSigned') }}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.TrialSignedDocCount }}</span>
|
<span class="my_select_box_content_text" :title="$t('trials:workbench:title:trialDocSigned')">{{ $t('trials:workbench:title:trialDocSigned') }}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.TrialSignedDocCount }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 系统已签署文件 -->
|
<!-- 系统已签署文件 -->
|
||||||
<div class="my_select_box" :class="{selected: selected === 'NeedSignedSysDoc'}" tab-data="NeedSignedSysDoc" @click="$nextTick(() => selected = 'NeedSignedSysDoc')" v-if="!hasPermi(['role:zys'])">
|
<div class="my_select_box" :class="{selected: selected === 'NeedSignedSysDoc'}" tab-data="NeedSignedSysDoc" @click="$nextTick(() => selected = 'NeedSignedSysDoc')" v-if="!hasPermi(['role:zys'])">
|
||||||
<div class="my_select_box_content">
|
<div class="my_select_box_content">
|
||||||
<span class="el-icon-data-line" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
<span class="el-icon-data-line" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
||||||
<span class="my_select_box_content_text">{{ $t('trials:workbench:title:sysDocSigned') }}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.SysSignedDocCount }}</span>
|
<span class="my_select_box_content_text" :title="$t('trials:workbench:title:sysDocSigned')">{{ $t('trials:workbench:title:sysDocSigned') }}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.SysSignedDocCount }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user