影像退回
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
7614f7a327
commit
aaa366934b
|
@ -1035,7 +1035,27 @@ export function getQCVisitList(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
|
||||
export function getImageBackList(param) {
|
||||
return request({
|
||||
url: `/QCList/getImageBackList`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
export function getImageBackApplyUserList(params) {
|
||||
return request({
|
||||
url: `/QCList/getImageBackApplyUserList`,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function auditImageBack(params) {
|
||||
return request({
|
||||
url: `/QCOperation/auditImageBack`,
|
||||
method: 'put',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function getQCChallengeList(param) {
|
||||
return request({
|
||||
url: `/QCList/getQCChallengeList`,
|
||||
|
@ -3308,6 +3328,13 @@ export function getReReadingApplyToBeDoneList(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
export function getPMImageBackToBeDoneList(param) {
|
||||
return request({
|
||||
url: `/PersonalWorkstation/getPMImageBackToBeDoneList`,
|
||||
method: 'post',
|
||||
data: param
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteClinicalForm(param) {
|
||||
return request({
|
||||
|
|
|
@ -287,4 +287,12 @@ export function forwardSVDicomImage(param) {
|
|||
data: param
|
||||
})
|
||||
}
|
||||
// crc、iqc申请影像退回
|
||||
export function requestImageBack(params) {
|
||||
return request({
|
||||
url: `/QCOperation/requestImageBack`,
|
||||
method: 'put',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,440 @@
|
|||
<template>
|
||||
<BaseContainer class="reuploa-audit-wrapper">
|
||||
<!-- 搜索框 -->
|
||||
<template slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!-- 中心编号 -->
|
||||
<el-form-item :label="$t('trials:reuploadAudit:table:siteId')">
|
||||
<el-select v-model="searchData.TrialSiteId" clearable filterable style="width: 120px"
|
||||
placeholder="">
|
||||
<el-option v-for="(item, index) of siteOptions" :key="index" :label="item.TrialSiteCode"
|
||||
:value="item.TrialSiteId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 受试者编号 -->
|
||||
<el-form-item :label="$t('trials:reuploadAudit:table:subjectId')">
|
||||
<el-input v-model="searchData.SubjectCode" style="width: 100px" clearable />
|
||||
</el-form-item>
|
||||
<!-- 访视名称 -->
|
||||
<el-form-item :label="$t('trials:reuploadAudit:table:visitName')">
|
||||
<el-select v-model="searchData.VisitPlanArray" style="width: 200px" clearable multiple
|
||||
:collapse-tags="true" placeholder="">
|
||||
<el-option v-for="(item, index) of visitPlanOptions" :key="index" :label="item.VisitName"
|
||||
:value="item.VisitNum">
|
||||
<span style="float: left">{{ item.VisitName }}</span>
|
||||
</el-option>
|
||||
<el-option key="Other" label="Out of Plan" value="1.11" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 申请人 -->
|
||||
<el-form-item class="my_multiple" :label="$t('trials:reuploadAudit:table:CreateUserId')">
|
||||
<el-select v-model="searchData.CreateUserId" style="width: 140px" clearable placeholder="">
|
||||
<el-option v-for="(item) of userOptions" :key="item.CreateUserId" :label="item.FullName"
|
||||
:value="item.CreateUserId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 申请人角色 -->
|
||||
<el-form-item class="my_multiple" :label="$t('trials:reuploadAudit:table:ApplyUserRole')">
|
||||
<el-select v-model="searchData.ApplyUserRole" style="width: 140px" clearable placeholder="">
|
||||
<el-option v-for="(item) of $d.ImageBackApplyEnum" :key="item.id" :label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 申请时间 -->
|
||||
<el-form-item :label="$t('trials:reuploadAudit:table:createTime')">
|
||||
<el-date-picker v-model="timeListC" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange" :default-time="['00:00:00', '23:59:59']" @change="changeTimeListC"
|
||||
style="width: 360px" />
|
||||
</el-form-item>
|
||||
<!-- 审核状态 -->
|
||||
<el-form-item :label="$t('trials:reuploadAudit:table:auditState')" class="my_multiple">
|
||||
<el-select v-model="searchData.ImageBackState" clearable style="width: 140px" placeholder="">
|
||||
<el-option v-for="item of $d.ImageBackstateEnum" :key="item.id" :value="item.value"
|
||||
:label="item.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 审核通过时间 -->
|
||||
<el-form-item :label="$t('trials:reuploadAudit:table:auditTime')">
|
||||
<el-date-picker v-model="timeList" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange" :default-time="['00:00:00', '23:59:59']" @change="changeTimeList"
|
||||
style="width: 360px" />
|
||||
</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">
|
||||
{{ $t('common:button:reset') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<!-- 重传审批列表 -->
|
||||
<template slot="main-container">
|
||||
<el-table ref="reuploadAuditList" v-loading="loading" v-adaptive="{ bottomOffset: 60 }" :data="list" stripe
|
||||
height="100" @sort-change="handleSortByColumn">
|
||||
<!-- 是否加急 -->
|
||||
<el-table-column prop="IsUrgent" :label="$t('trials:reuploadAudit:table:isUrgent')"
|
||||
show-overflow-tooltip width="120" sortable="custom">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="
|
||||
scope.row.IsUrgent &&
|
||||
hasPermi(['trials:trials-panel:visit:reuploa-audit:set-urgent'])
|
||||
" type="danger" size="mini" :disabled="!(userTypeEnumInt === 1 || userTypeEnumInt === 3)"
|
||||
@click="handleUrgentStatus(scope.row)">
|
||||
{{ $fd('YesOrNo', scope.row.IsUrgent) }}
|
||||
</el-button>
|
||||
<el-button v-else-if="
|
||||
!scope.row.IsUrgent &&
|
||||
hasPermi(['trials:trials-panel:visit:reuploa-audit:set-urgent'])
|
||||
" size="mini" type="primary" :disabled="!(userTypeEnumInt === 1 || userTypeEnumInt === 3)"
|
||||
@click="handleUrgentStatus(scope.row)">
|
||||
{{ $fd('YesOrNo', scope.row.IsUrgent) }}
|
||||
</el-button>
|
||||
<span v-else>
|
||||
<el-tag v-if="scope.row.IsUrgent" type="danger">
|
||||
{{ $fd('YesOrNo', scope.row.IsUrgent) }}
|
||||
</el-tag>
|
||||
<el-tag v-else type="primary">
|
||||
{{ $fd('YesOrNo', scope.row.IsUrgent) }}
|
||||
</el-tag>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 中心编号 -->
|
||||
<el-table-column prop="TrialSiteCode" :label="$t('trials:reuploadAudit:table:siteId')"
|
||||
show-overflow-tooltip sortable="custom" />
|
||||
<!-- 受试者编号 -->
|
||||
<el-table-column prop="SubjectCode" :label="$t('trials:reuploadAudit:table:subjectId')"
|
||||
show-overflow-tooltip sortable="custom" width="120px" />
|
||||
<!-- 访视名称 -->
|
||||
<el-table-column prop="VisitName" :label="$t('trials:reuploadAudit:table:visitName')"
|
||||
show-overflow-tooltip sortable="custom">
|
||||
</el-table-column>
|
||||
<!-- 最晚拍片日期 -->
|
||||
<el-table-column prop="LatestScanDate" :label="$t('trials:reuploadAudit:table:lScanDate')"
|
||||
show-overflow-tooltip width="170" sortable="custom">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip class="item" effect="dark" :content="`${scope.row.EarliestScanDate
|
||||
? moment(scope.row.EarliestScanDate).format('YYYY-MM-DD')
|
||||
: ''
|
||||
} ~ ${scope.row.LatestScanDate
|
||||
? moment(scope.row.LatestScanDate).format('YYYY-MM-DD')
|
||||
: ''
|
||||
}`" placement="top">
|
||||
<span>
|
||||
{{
|
||||
scope.row.LatestScanDate
|
||||
? moment(scope.row.LatestScanDate).format('YYYY-MM-DD')
|
||||
: ''
|
||||
}}
|
||||
</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 提交时间 -->
|
||||
<el-table-column prop="SubmitTime" :label="$t('trials:reuploadAudit:table:SubmitTime')"
|
||||
show-overflow-tooltip sortable="custom" width="150px" />
|
||||
<!-- 申请人 -->
|
||||
<el-table-column prop="CreateUserFullName" :label="$t('trials:reuploadAudit:table:createUserFullName')"
|
||||
show-overflow-tooltip sortable="custom" />
|
||||
<!-- 申请人角色 -->
|
||||
<el-table-column prop="ApplyUserRole" :label="$t('trials:reuploadAudit:table:applyUserRole')"
|
||||
show-overflow-tooltip sortable="custom" width="120px">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ $fd('ImageBackApplyEnum',
|
||||
scope.row.ApplyUserRole) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 申请时间 -->
|
||||
<el-table-column prop="CreateTime" :label="$t('trials:reuploadAudit:table:createTime')"
|
||||
show-overflow-tooltip sortable="custom" width="150px" />
|
||||
<!-- 审核状态 -->
|
||||
<el-table-column prop="ImageBackState" :label="$t('trials:reuploadAudit:table:imageBackState')"
|
||||
show-overflow-tooltip sortable="custom">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="['warning', '', 'danger'][scope.row.ImageBackState]">{{ $fd('ImageBackstateEnum',
|
||||
scope.row.ImageBackState) }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 审核时间 -->
|
||||
<el-table-column prop="AuditTime" :label="$t('trials:reuploadAudit:table:auditTime')"
|
||||
show-overflow-tooltip sortable="custom" width="150px" />
|
||||
<el-table-column :label="$t('common:action:action')" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button :title="$t('trials:reuploadAudit:button:auditYes')" circle
|
||||
:disabled="scope.row.ImageBackState > 0" icon="el-icon-check" size="mini"
|
||||
@click="audit(scope.row, 1)" />
|
||||
<el-button :title="$t('trials:reuploadAudit:button:auditNo')"
|
||||
:disabled="scope.row.ImageBackState > 0" circle icon="el-icon-close" size="mini"
|
||||
@click="audit(scope.row, 2)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页组件 -->
|
||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
|
||||
@pagination="getList" />
|
||||
</template>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getImageBackList,
|
||||
getTrialSiteSelect,
|
||||
auditImageBack,
|
||||
getImageBackApplyUserList,
|
||||
getTrialVisitStageSelect
|
||||
} from '@/api/trials'
|
||||
import BaseContainer from '@/components/BaseContainer'
|
||||
import Pagination from '@/components/Pagination'
|
||||
import moment from 'moment'
|
||||
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
TrialId: null,
|
||||
TrialSiteId: null,
|
||||
SubjectCode: null,
|
||||
CreateUserId: null,
|
||||
ApplyUserRole: null,
|
||||
ApplyBeginTime: null,
|
||||
ApplyEndTime: null,
|
||||
ImageBackState: null,
|
||||
AuditBeginTime: null,
|
||||
AuditEndTime: null,
|
||||
VisitName: null,
|
||||
VisitPlanArray: [],
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
Asc: true,
|
||||
SortField: null
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'QcCheck',
|
||||
components: {
|
||||
BaseContainer,
|
||||
Pagination
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchData: searchDataDefault(),
|
||||
total: 0,
|
||||
list: [],
|
||||
loading: false,
|
||||
siteOptions: [],
|
||||
userOptions: [],
|
||||
visitPlanOptions: [],
|
||||
timeListC: [],
|
||||
timeList: [],
|
||||
trialId: null,
|
||||
moment
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
list(val) {
|
||||
this.doLayout()
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId
|
||||
this.getList()
|
||||
this.getSite()
|
||||
this.getUser()
|
||||
this.getVisitPlanOptions()
|
||||
},
|
||||
methods: {
|
||||
async audit(row, state) {
|
||||
try {
|
||||
let message = this.$t("trials:reuploadAudit:confirmMessage:imageBack").replace("xxx", this.$fd("ImageBackstateEnum", state))
|
||||
let confirm = await this.$confirm(message)
|
||||
if (!confirm) return false
|
||||
let params = {
|
||||
IamgeBackRecordId: row.Id,
|
||||
IsAgree: state === 1 ? true : false
|
||||
}
|
||||
this.loading = true
|
||||
let res = await auditImageBack(params)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.getList()
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
this.loading = false
|
||||
}
|
||||
},
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.searchData.TrialId = this.trialId
|
||||
getImageBackList(this.searchData)
|
||||
.then((res) => {
|
||||
this.loading = false
|
||||
this.list = res.Result.CurrentPageData
|
||||
this.total = res.Result.TotalCount
|
||||
this.OtherInfo = res.OtherInfo
|
||||
})
|
||||
.catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 获取site下拉框数据
|
||||
getSite() {
|
||||
getTrialSiteSelect(this.trialId).then((res) => {
|
||||
this.siteOptions = res.Result
|
||||
})
|
||||
},
|
||||
// 获取访视下拉框数据
|
||||
getVisitPlanOptions() {
|
||||
getTrialVisitStageSelect(this.trialId).then((res) => {
|
||||
this.visitPlanOptions = res.Result
|
||||
})
|
||||
},
|
||||
// 获取申请人下拉框数据
|
||||
getUser() {
|
||||
getImageBackApplyUserList({
|
||||
TrialId: this.trialId
|
||||
}).then((res) => {
|
||||
this.userOptions = res.Result
|
||||
})
|
||||
},
|
||||
doLayout() {
|
||||
const scope = this
|
||||
this.$nextTick(() => {
|
||||
scope.$refs.reuploadAuditList.doLayout()
|
||||
})
|
||||
},
|
||||
// 重置
|
||||
handleReset() {
|
||||
this.searchData = searchDataDefault()
|
||||
this.timeList = []
|
||||
this.getList()
|
||||
this.timeListC = []
|
||||
this.$nextTick(() => {
|
||||
this.$refs.reuploadAuditList.clearSort()
|
||||
})
|
||||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
},
|
||||
// 排序
|
||||
handleSortByColumn(column) {
|
||||
if (column.order === 'ascending') {
|
||||
this.searchData.Asc = true
|
||||
} else {
|
||||
this.searchData.Asc = false
|
||||
}
|
||||
this.searchData.SortField = column.prop
|
||||
this.searchData.PageIndex = 1
|
||||
this.getList()
|
||||
},
|
||||
changeTimeList() {
|
||||
if (this.timeList) {
|
||||
this.searchData.AuditBeginTime = this.timeList[0]
|
||||
this.searchData.AuditEndTime = this.timeList[1]
|
||||
} else {
|
||||
this.searchData.AuditBeginTime = null
|
||||
this.searchData.AuditEndTime = null
|
||||
}
|
||||
},
|
||||
changeTimeListC() {
|
||||
if (this.timeListC) {
|
||||
this.searchData.ApplyBeginTime = this.timeListC[0]
|
||||
this.searchData.ApplyEndTime = this.timeListC[1]
|
||||
} else {
|
||||
this.searchData.ApplyBeginTime = null
|
||||
this.searchData.ApplyEndTime = null
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.reuploa-audit-wrapper {
|
||||
position: relative;
|
||||
|
||||
.remark {
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
bottom: 7px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
height: 100%;
|
||||
|
||||
.qc-dialog {
|
||||
.el-dialog__headerbtn {
|
||||
top: 10px;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
height: calc(100% - 70px);
|
||||
padding: 0 10px;
|
||||
|
||||
.qc-dialog-body {
|
||||
padding: 10px 20px;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.link-breadcrumb {
|
||||
cursor: pointer;
|
||||
color: #428bca;
|
||||
}
|
||||
}
|
||||
|
||||
.box-title {
|
||||
padding: 12px;
|
||||
margin-bottom: 10px;
|
||||
background-color: #dcdfe6;
|
||||
}
|
||||
|
||||
.status-primary-circle {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
border-radius: 50%;
|
||||
border: 1px solid #f56c6c;
|
||||
color: #f56c6c;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.manuals-dialog-container {
|
||||
margin-top: 50px !important;
|
||||
width: 75%;
|
||||
height: 80%;
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.manuals-full-dialog-container {
|
||||
.el-dialog__body {
|
||||
padding: 10px;
|
||||
height: calc(100% - 50px) !important;
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,120 @@
|
|||
<template>
|
||||
<div class="reuploadAudit-wrapper">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<!-- 重阅审批 -->
|
||||
<h3>{{ $t('trials:trials-panel:attachments:reuploadAudit') }}</h3>
|
||||
</el-col>
|
||||
<el-col :span="12" style="text-align:right;">
|
||||
<h3>
|
||||
<Pagination class="page" :total="total" :page.sync="listQuery.pageIndex"
|
||||
:limit.sync="listQuery.pageSize" layout="total, sizes, prev, pager, next" :background="false"
|
||||
style="display: inline-block;" @pagination="getList" />
|
||||
<!-- 重置 -->
|
||||
<el-button icon="el-icon-refresh-left" size="small" circle :title="$t('common:button:reset')"
|
||||
@click="handleReset" />
|
||||
</h3>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table ref="needSignDocList" v-loading="listLoading" :data="list" :show-header="true"
|
||||
v-adaptive="{ bottomOffset: 45 }" height="100" @sort-change="handleSortByColumn">
|
||||
<el-table-column type="index" width="40" />
|
||||
<!-- 项目编号 -->
|
||||
<el-table-column :label="$t('trials:workbench:table:trialId')" prop="TrialCode" show-overflow-tooltip
|
||||
sortable="custom" />
|
||||
<!-- 试验名称 -->
|
||||
<el-table-column :label="$t('trials:workbench:table:experimentName')" prop="ExperimentName"
|
||||
show-overflow-tooltip sortable="custom" />
|
||||
<!-- 研究方案号 -->
|
||||
<el-table-column :label="$t('trials:workbench:table:researchNo')" prop="ResearchProgramNo"
|
||||
show-overflow-tooltip sortable="custom" />
|
||||
<!-- 加急量 -->
|
||||
<el-table-column :label="$t('trials:sysDocBeSigned:table:UrgentCount')" prop="UrgentCount"
|
||||
show-overflow-tooltip sortable="custom" />
|
||||
<!-- 待审批量 -->
|
||||
<el-table-column :label="$t('trials:sysDocBeSigned:table:ToBeApprovalCount')" prop="ToBeApprovalCount"
|
||||
show-overflow-tooltip sortable="custom" />
|
||||
<el-table-column :label="$t('common:action:action')" width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-button icon="el-icon-edit-outline" circle
|
||||
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
|
||||
:title="$t('trials:researchRecord:action:view')" @click="handleAudit(scope.row)" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getPMImageBackToBeDoneList } from '@/api/trials'
|
||||
import Pagination from '@/components/Pagination'
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
pageIndex: 1,
|
||||
pageSize: 20,
|
||||
asc: true,
|
||||
sortField: ''
|
||||
}
|
||||
}
|
||||
export default {
|
||||
name: 'ReuploadAudit',
|
||||
components: { Pagination },
|
||||
props: {
|
||||
trialIdList: {
|
||||
type: Array,
|
||||
default() { return [] }
|
||||
},
|
||||
isSignSystemDoc: {
|
||||
type: Boolean,
|
||||
default() { return false }
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
listLoading: false,
|
||||
list: [],
|
||||
listQuery: searchDataDefault(),
|
||||
total: 0
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.listLoading = true
|
||||
getPMImageBackToBeDoneList(this.listQuery).then(res => {
|
||||
this.listLoading = false
|
||||
this.total = res.Result.TotalCount
|
||||
this.list = res.Result.CurrentPageData
|
||||
}).catch(() => { this.listLoading = false })
|
||||
},
|
||||
handleAudit(row) {
|
||||
this.$router.push({ path: `/trials/trials-panel/visit/reupload-audit?trialId=${row.TrialId}&trialCode=${row.TrialCode}&researchProgramNo=${row.ResearchProgramNo}` })
|
||||
},
|
||||
handleReset() {
|
||||
this.listQuery = searchDataDefault()
|
||||
this.getList()
|
||||
this.$nextTick(() => {
|
||||
this.$refs.needSignDocList.clearSort()
|
||||
})
|
||||
},
|
||||
// 排序
|
||||
handleSortByColumn(column) {
|
||||
if (column.order === 'ascending') {
|
||||
this.listQuery.asc = true
|
||||
} else {
|
||||
this.listQuery.asc = false
|
||||
}
|
||||
this.listQuery.sortField = column.prop
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.reuploadAudit-wrapper {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
|
@ -138,6 +138,15 @@
|
|||
}}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.PM_ReReadingApprovalCount }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 重传审批 -->
|
||||
<div class="my_select_box" :class="{ selected: selected === 'ReuploadAudit' }" tab-data="ReuploadAudit"
|
||||
@click="selected = 'ReuploadAudit'" v-if="hasPermi(['trials:trials-workbench:ReuploadAudit'])">
|
||||
<div class="my_select_box_content">
|
||||
<span class="el-icon-document-checked" style="padding: 4px;margin: 4px;color: #6698ff"></span>
|
||||
<span class="my_select_box_content_text">{{ $t('trials:trials-panel:attachments:ReuploadAudit')
|
||||
}}</span><span style="margin:0 0.25rem">·</span><span>{{ tabList.PM_ImageBackApprovalCount }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 阅片人筛选 -->
|
||||
<div class="my_select_box" :class="{ selected: selected === 'ReviewerScreen' }" tab-data="ReviewerScreen"
|
||||
@click="selected = 'ReviewerScreen'" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])">
|
||||
|
@ -375,6 +384,9 @@
|
|||
<!-- 重阅审批 -->
|
||||
<RereadApproval v-if="selected === 'RereadApproval'" :trial-id-list="trialIdList"
|
||||
:is-sign-system-doc="tabList.SysWaitSignDocCount > 0 && !isTestUser" />
|
||||
<!-- 重c传审批 -->
|
||||
<ReuploadAudit v-if="selected === 'ReuploadAudit'" :trial-id-list="trialIdList"
|
||||
:is-sign-system-doc="tabList.SysWaitSignDocCount > 0 && !isTestUser" />
|
||||
<!-- 阅片人筛选 -->
|
||||
<ReviewerScreen v-if="selected === 'ReviewerScreen'" :trial-id-list="trialIdList"
|
||||
:is-sign-system-doc="tabList.SysWaitSignDocCount > 0 && !isTestUser" />
|
||||
|
@ -559,6 +571,7 @@ import MedicalAudit from './components/medicalAudit'
|
|||
import NeedSignedTrialDoc from './components/NeedSignedTrialDoc'
|
||||
import auditDocument from "./components/auditDocument"
|
||||
import generalTraining from "./components/generalTraining"
|
||||
import ReuploadAudit from "./components/ReuploadAudit"
|
||||
import store from '@/store'
|
||||
import './index.css'
|
||||
|
||||
|
@ -593,7 +606,8 @@ export default {
|
|||
MedicalFeedback,
|
||||
MedicalAudit,
|
||||
NeedSignedTrialDoc,
|
||||
NeedSignedSysDoc
|
||||
NeedSignedSysDoc,
|
||||
ReuploadAudit
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
Loading…
Reference in New Issue