阅片人-同意入项记录优化
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-06-26 14:26:35 +08:00
parent 134bc697e2
commit d20d8ba68c
1 changed files with 72 additions and 144 deletions

View File

@ -7,66 +7,29 @@
<div class="search" style="position: relative">
<el-form :inline="true" class="base-search-form">
<!--阅片人-->
<el-form-item
:label="$t('trials:trialDocument:entryRecord:search:viewer')"
>
<el-input
v-model="searchData.Code"
style="width: 100px"
placeholder=""
clearable
/>
<el-form-item :label="$t('trials:trialDocument:entryRecord:search:viewer')">
<el-input v-model="searchData.Code" style="width: 100px" placeholder="" clearable />
</el-form-item>
<!--审核人-->
<el-form-item
:label="$t('trials:trialDocument:entryRecord:search:auditor')"
>
<el-input
v-model="searchData.OptUserName"
style="width: 100px"
placeholder=""
clearable
/>
<el-form-item :label="$t('trials:trialDocument:entryRecord:search:auditor')">
<el-input v-model="searchData.OptUserName" style="width: 100px" placeholder="" clearable />
</el-form-item>
<!--审核人角色-->
<el-form-item
:label="$t('trials:trialDocument:entryRecord:search:auditorRole')"
>
<el-select
v-model="searchData.UserTypeEnum"
style="width: 100px"
placeholder=""
clearable
>
<el-option
v-for="item in $d.UserType"
:key="item.id"
:label="item.label"
:value="item.value"
/>
<el-form-item :label="$t('trials:trialDocument:entryRecord:search:auditorRole')">
<el-select v-model="searchData.UserTypeEnum" style="width: 100px" placeholder="" clearable>
<el-option v-for="item in $d.UserType" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item
:label="$t('trials:trialDocument:entryRecord:search:confirmTime')"
>
<el-date-picker
v-model="timeList"
@change="changeTimeList"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
type="datetimerange"
>
<el-form-item :label="$t('trials:trialDocument:entryRecord:search:confirmTime')">
<el-date-picker v-model="timeList" @change="changeTimeList" value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']" type="datetimerange">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t('common:button:search') }}
</el-button>
<el-button
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
{{ $t('common:button:reset') }}
</el-button>
</el-form-item>
@ -78,38 +41,20 @@
</el-form>
</div>
<el-table
v-loading="loading"
v-adaptive="{ bottomOffset: 75 }"
:data="list"
stripe
height="100"
style="width: 100%"
>
<el-table v-loading="loading" v-adaptive="{ bottomOffset: 75 }" :data="list" stripe height="100"
style="width: 100%">
<el-table-column type="index" />
<!--姓名-->
<el-table-column
prop="BlindName"
:label="$t('trials:trialDocument:entryRecord:table:name')"
show-overflow-tooltip
sortable="custom"
>
<el-table-column prop="BlindName" :label="$t('trials:trialDocument:entryRecord:table:name')" show-overflow-tooltip
sortable="custom">
<template slot-scope="scope">
<span>{{ isEN ? scope.row.BlindName : scope.row.BlindNameCN }}</span>
</template>
</el-table-column>
<el-table-column
prop="Code"
:label="$t('trials:trialDocument:entryRecord:table:userName')"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="Speciality"
:label="$t('trials:trialDocument:entryRecord:table:status')"
show-overflow-tooltip
sortable="custom"
>
<el-table-column prop="Code" :label="$t('trials:trialDocument:entryRecord:table:userName')" show-overflow-tooltip
sortable="custom" />
<el-table-column prop="Speciality" :label="$t('trials:trialDocument:entryRecord:table:status')"
show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<el-tag v-if="scope.row.DoctorTrialState === 10" type="primary">{{
$fd('DoctorTrialState', scope.row.DoctorTrialState)
@ -122,56 +67,39 @@
}}</el-tag>
</template>
</el-table-column>
<el-table-column
prop="OptUserName"
:label="$t('trials:trialDocument:entryRecord:table:auditor')"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column
prop="UserTypeEnum"
:label="$t('trials:trialDocument:entryRecord:table:auditorRole')"
show-overflow-tooltip
sortable="custom"
>
<el-table-column prop="AuditUserName" :label="$t('trials:trialDocument:entryRecord:table:auditor')"
show-overflow-tooltip sortable="custom" />
<el-table-column prop="AuditTypeEnum" :label="$t('trials:trialDocument:entryRecord:table:auditorRole')"
show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<span>{{ $fd('UserType', scope.row.AuditTypeEnum) }}</span>
</template>
</el-table-column>
<el-table-column prop="AuditTimeStr" :label="$t('trials:trialDocument:entryRecord:table:auditorTime')"
show-overflow-tooltip sortable="custom" />
<el-table-column prop="OptUserName" :label="$t('trials:trialDocument:entryRecord:table:Opter')"
show-overflow-tooltip sortable="custom" />
<el-table-column prop="UserTypeEnum" :label="$t('trials:trialDocument:entryRecord:table:OptRole')"
show-overflow-tooltip sortable="custom">
<template slot-scope="scope">
<span>{{ $fd('UserType', scope.row.UserTypeEnum) }}</span>
</template>
</el-table-column>
<el-table-column
prop="OptTimeStr"
:label="$t('trials:trialDocument:entryRecord:table:submmitTime')"
show-overflow-tooltip
sortable="custom"
/>
<el-table-column :label="$t('common:action:action')" width="200">
<el-table-column prop="OptTimeStr" :label="$t('trials:trialDocument:entryRecord:table:submmitTime')"
show-overflow-tooltip sortable="custom" />
<el-table-column :label="$t('common:action:action')" width="100">
<template slot-scope="scope">
<el-button
icon="el-icon-view"
:title="$t('common:button:view')"
circle
@click.stop="preview(scope.row)"
/>
<el-button icon="el-icon-view" :title="$t('common:button:view')" circle @click.stop="preview(scope.row)" />
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
@pagination="getList" />
<el-dialog :visible.sync="preview_visible" fullscreen>
<div style="height: 100%; overflow: auto">
<preview
:isEN="isEN"
:isAll="isAll"
:reviewerId.sync="reviewerId"
v-if="preview_visible"
/>
<preview :isEN="isEN" :isAll="isAll" :reviewerId.sync="reviewerId" v-if="preview_visible" />
</div>
</el-dialog>
<!-- <upload-files
@ -190,18 +118,10 @@
</div>
<div class="file" v-if="file.FileName">
<div class="name">{{ file.FileName }}</div>
<i
v-if="hasDownLoad && (isManage || isInspect)"
class="el-icon-download"
:title="$t('common:button:download')"
@click.stop="downLoad(file)"
/>
<i
v-if="hasDel && isManage && !viewStatus"
class="el-icon-delete"
:title="$t('common:button:delete')"
@click.stop="handleRemoveFile"
/>
<i v-if="hasDownLoad && (isManage || isInspect)" class="el-icon-download"
:title="$t('common:button:download')" @click.stop="downLoad(file)" />
<i v-if="hasDel && isManage && !viewStatus" class="el-icon-delete" :title="$t('common:button:delete')"
@click.stop="handleRemoveFile" />
</div>
<div class="btnBox">
<!-- <el-button
@ -211,16 +131,9 @@
>
{{ $t('trials:trialDocument:entryRecord:button:uploadFile') }}
</el-button> -->
<el-upload
v-if="hasEdit && isManage && !viewStatus"
class="upload-demo"
action
:before-upload="(param) => beforeUpload(param, '.zip')"
:show-file-list="false"
:http-request="handleUploadFile"
:limit="1"
accept=".zip"
>
<el-upload v-if="hasEdit && isManage && !viewStatus" class="upload-demo" action
:before-upload="(param) => beforeUpload(param, '.zip')" :show-file-list="false"
:http-request="handleUploadFile" :limit="1" accept=".zip">
<el-button size="small" type="primary" :disabled="!!file.FileName">
{{ $t('trials:trialDocument:entryRecord:button:uploadFile') }}
</el-button>
@ -230,7 +143,7 @@
</base-model>
</box-content>
</template>
<script>
<script>
import { getConfirmationReviewerList } from '@/api/trials'
import {
uploadTrialFileTypeFile,
@ -340,7 +253,7 @@ export default {
}
})
})
.catch((action) => {})
.catch((action) => { })
},
async handleUploadFile(param) {
try {
@ -561,9 +474,8 @@ export default {
])
},
TITLE() {
return `${this.$fd('ArchiveType', this.ArchiveTypeEnum)}${
this.isEN ? this.rowData.Name : this.rowData.NameCN
}`
return `${this.$fd('ArchiveType', this.ArchiveTypeEnum)}${this.isEN ? this.rowData.Name : this.rowData.NameCN
}`
},
},
}
@ -574,54 +486,70 @@ export default {
font-weight: bold;
margin-bottom: 10px;
}
.fileName {
display: inline-block;
max-width: 100%;
white-space: nowrap; /* 文本不换行 */
overflow: hidden; /* 超出部分隐藏 */
white-space: nowrap;
/* 文本不换行 */
overflow: hidden;
/* 超出部分隐藏 */
text-overflow: ellipsis;
}
.fileBtnBox {
display: inline-block;
width: 50px;
i {
cursor: pointer;
color: #409eff;
margin-right: 3px;
&:last-child {
margin: 0;
}
}
}
.topForm {
.el-form-item {
margin-right: 30px;
}
}
.file_title {
line-height: 40px;
font-weight: bold;
}
.file {
width: 100%;
display: flex;
margin-bottom: 10px;
.name {
max-width: 90%;
white-space: nowrap; /* 文本不会换行,会在同一行内继续,直到遇到<br>标签为止 */
text-overflow: ellipsis; /* 当文本溢出包含它的容器时,显示省略号(...)来表示被截断的文本 */
overflow: hidden; /* 隐藏溢出容器的文本 */
white-space: nowrap;
/* 文本不会换行,会在同一行内继续,直到遇到<br>标签为止 */
text-overflow: ellipsis;
/* 当文本溢出包含它的容器时,显示省略号(...)来表示被截断的文本 */
overflow: hidden;
/* 隐藏溢出容器的文本 */
}
i {
cursor: pointer;
margin: 3px;
color: #409eff;
}
.disable {
cursor: not-allowed;
color: #909399;
}
}
.btnBox {
margin-top: 10px;
display: flex;