13 Commits

Author SHA1 Message Date
wangxiaoshuang dba4466ac2 国际化修改
continuous-integration/drone/push Build is passing
2025-01-24 16:27:39 +08:00
wangxiaoshuang 9187bbe64f 阅片人简历预览水印
continuous-integration/drone/push Build is passing
2025-01-24 13:27:47 +08:00
caiyiling a0f593a22f Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
2025-01-24 10:05:07 +08:00
caiyiling 89f7aee973 管理后台按钮调整及医学审核文本超长处理 2025-01-24 10:04:25 +08:00
wangxiaoshuang ced57cbfe4 logo显示有误
continuous-integration/drone/push Build is running
2025-01-24 10:01:17 +08:00
wangxiaoshuang 99d099496e 1
continuous-integration/drone/push Build is passing
2025-01-23 18:41:10 +08:00
caiyiling d3afa7b676 中心列表添加快捷跳转入口
continuous-integration/drone/push Build is passing
2025-01-23 18:18:29 +08:00
wangxiaoshuang c08d701143 重复新增角色弹框未清空
continuous-integration/drone/push Build is passing
2025-01-23 14:13:01 +08:00
caiyiling a2d06ba72f 多帧关键序列更改
continuous-integration/drone/push Build is passing
2025-01-23 10:21:51 +08:00
caiyiling 148aa4908b Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
2025-01-23 09:32:37 +08:00
caiyiling 53738c2da4 1 2025-01-23 09:32:15 +08:00
wangxiaoshuang 3513c08adf Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web
continuous-integration/drone/push Build is passing
2025-01-23 09:22:28 +08:00
wangxiaoshuang 9eb3f2f322 1 2025-01-23 09:22:24 +08:00
30 changed files with 211 additions and 58 deletions
+3 -3
View File
@@ -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 {
+2 -2
View File
@@ -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">
+11 -3
View File
@@ -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;">
+3 -1
View File
@@ -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() {
+7 -5
View File
@@ -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)"
> >
+50 -3
View File
@@ -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>
<!-- 序列数量 --> <!-- 序列数量 -->
+2 -2
View File
@@ -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>