补传影像
continuous-integration/drone/push Build encountered an error Details

uat
wangxiaoshuang 2025-11-14 10:08:27 +08:00
parent 88a7634ed3
commit 64cec20d7d
3 changed files with 101 additions and 179 deletions

View File

@ -4,41 +4,20 @@
<el-tab-pane v-for="(item, index) in list" :key="item.Id"> <el-tab-pane v-for="(item, index) in list" :key="item.Id">
<span slot="label"> <span slot="label">
{{ item.ChallengeCode }} {{ item.ChallengeCode }}
<i <i v-show="!item.IsClosed" class="el-icon-message-solid" style="color: red" />
v-show="!item.IsClosed"
class="el-icon-message-solid"
style="color: red"
/>
</span> </span>
<div class="chat-wrapper"> <div class="chat-wrapper">
<div class="chat-content"> <div class="chat-content">
<div v-for="record in item.DialogList" :key="record.Id"> <div v-for="record in item.DialogList" :key="record.Id">
<div v-if="!record.IsCurrentUser" class="word"> <div v-if="!record.IsCurrentUser" class="word">
<!-- <img :src="record.headUrl"> --> <!-- <img :src="record.headUrl"> -->
<img <img v-if="record.UserTypeEnum * 1 === 8" :src="adminAvatar" alt="Admin" />
v-if="record.UserTypeEnum * 1 === 8" <img v-else-if="record.UserTypeEnum * 1 === 1" :src="pmAvatar" alt="PM" />
:src="adminAvatar" <img v-else-if="record.UserTypeEnum * 1 === 2" :src="crcAvatar" alt="CRC" />
alt="Admin" <img v-else-if="record.UserTypeEnum * 1 === 3" :src="qcAvatar" alt="QC" />
/>
<img
v-else-if="record.UserTypeEnum * 1 === 1"
:src="pmAvatar"
alt="PM"
/>
<img
v-else-if="record.UserTypeEnum * 1 === 2"
:src="crcAvatar"
alt="CRC"
/>
<img
v-else-if="record.UserTypeEnum * 1 === 3"
:src="qcAvatar"
alt="QC"
/>
<div class="info"> <div class="info">
<p class="user-info"> <p class="user-info">
<span style="font-weight: 700" <span style="font-weight: 700">{{ record.CreateUserFullName || record.CreateUserName }}
>{{ record.CreateUserFullName || record.CreateUserName }}
</span> </span>
<span>({{ record.CreateTime }}) </span> <span>({{ record.CreateTime }}) </span>
</p> </p>
@ -49,88 +28,48 @@
<div v-else class="word-my"> <div v-else class="word-my">
<div class="info"> <div class="info">
<p class="user-info"> <p class="user-info">
<span style="font-weight: 700" <span style="font-weight: 700">{{ record.CreateUserFullName || record.CreateUserName }}
>{{ record.CreateUserFullName || record.CreateUserName }}
</span> </span>
<span>({{ record.CreateTime }}) </span> <span>({{ record.CreateTime }}) </span>
</p> </p>
<div class="info-content" v-html="record.TalkContent" /> <div class="info-content" v-html="record.TalkContent" />
</div> </div>
<!-- <img :src="record.headUrl"> --> <!-- <img :src="record.headUrl"> -->
<img <img v-if="record.UserTypeEnum * 1 === 8" :src="adminAvatar" alt="Admin" />
v-if="record.UserTypeEnum * 1 === 8" <img v-else-if="record.UserTypeEnum * 1 === 1" :src="pmAvatar" alt="PM" />
:src="adminAvatar" <img v-else-if="record.UserTypeEnum * 1 === 2" :src="crcAvatar" alt="CRC" />
alt="Admin" <img v-else-if="record.UserTypeEnum * 1 === 3" :src="qcAvatar" alt="QC" />
/>
<img
v-else-if="record.UserTypeEnum * 1 === 1"
:src="pmAvatar"
alt="PM"
/>
<img
v-else-if="record.UserTypeEnum * 1 === 2"
:src="crcAvatar"
alt="CRC"
/>
<img
v-else-if="record.UserTypeEnum * 1 === 3"
:src="qcAvatar"
alt="QC"
/>
</div> </div>
</div> </div>
</div> </div>
<div v-if="!item.IsClosed" class="chat-message"> <div v-if="!item.IsClosed" class="chat-message">
<div <div class="message" v-if="hasPermi(['trials:trials-panel:visit:crc-upload:send'])">
class="message"
v-if="hasPermi(['trials:trials-panel:visit:crc-upload:send'])"
>
<el-input v-model="newMessage" type="textarea" :rows="2" /> <el-input v-model="newMessage" type="textarea" :rows="2" />
</div> </div>
<div class="function"> <div class="function">
<!-- 申请重传 --> <!-- 申请重传 -->
<el-button <el-button v-show="(item.ReuploadEnum === 0 || item.ReuploadEnum === 3) && item.SecondReviewState !== 1"
v-show="(item.ReuploadEnum === 0 || item.ReuploadEnum === 3) && item.SecondReviewState !== 1"
v-hasPermi="[ v-hasPermi="[
'trials:trials-panel:visit:crc-upload:apply-reupload', 'trials:trials-panel:visit:crc-upload:apply-reupload',
]" ]" type="primary" :loading="applyBtnLoading" @click="handleCRCApplyReupload(item)">
type="primary"
:loading="applyBtnLoading"
@click="handleCRCApplyReupload(item)"
>
{{ $t('trials:reuploadDicoms:button:applyReupload') }} {{ $t('trials:reuploadDicoms:button:applyReupload') }}
</el-button> </el-button>
<!-- 重传 --> <!-- 重传 -->
<el-button <el-button v-show="item.ReuploadEnum === 2 && item.SecondReviewState !== 1"
v-show="item.ReuploadEnum === 2 && item.SecondReviewState !== 1" v-hasPermi="['trials:trials-panel:visit:crc-upload:reupload']" type="primary"
v-hasPermi="['trials:trials-panel:visit:crc-upload:reupload']" :loading="uploadBtnLoading" @click="openUploadDialog(index)">
type="primary"
:loading="uploadBtnLoading"
@click="openUploadDialog(index)"
>
{{ $t('trials:reuploadDicoms:button:reupload') }} {{ $t('trials:reuploadDicoms:button:reupload') }}
</el-button> </el-button>
<!-- 确认重传完成 --> <!-- 确认重传完成 -->
<el-button <el-button v-show="item.ReuploadEnum === 2" v-hasPermi="[
v-show="item.ReuploadEnum === 2" 'trials:trials-panel:visit:crc-upload:set-reupload-finished',
v-hasPermi="[ ]" type="primary" :disabled="item.IsReuploaded" :loading="reuploadedFinishbtnLoading"
'trials:trials-panel:visit:crc-upload:set-reupload-finished', @click="handleSetUploadFinished(index)">
]"
type="primary"
:disabled="item.IsReuploaded"
:loading="reuploadedFinishbtnLoading"
@click="handleSetUploadFinished(index)"
>
{{ $t('trials:reuploadDicoms:button:reuploadFinished') }} {{ $t('trials:reuploadDicoms:button:reuploadFinished') }}
</el-button> </el-button>
<!-- 发送 --> <!-- 发送 -->
<el-button <el-button v-hasPermi="['trials:trials-panel:visit:crc-upload:send']" :disabled="newMessage === ''"
v-hasPermi="['trials:trials-panel:visit:crc-upload:send']" type="primary" :loading="btnLoading" @click="handleReply(item.Id, index)">
:disabled="newMessage === ''"
type="primary"
:loading="btnLoading"
@click="handleReply(item.Id, index)"
>
{{ $t('trials:reuploadDicoms:button:send') }} {{ $t('trials:reuploadDicoms:button:send') }}
</el-button> </el-button>
</div> </div>
@ -139,13 +78,8 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<!-- 上传Dicom/非Dicom文件 --> <!-- 上传Dicom/非Dicom文件 -->
<el-dialog <el-dialog v-if="uploadVisible" :visible.sync="uploadVisible" :fullscreen="true" append-to-body
v-if="uploadVisible" custom-class="upload-dialog">
:visible.sync="uploadVisible"
:fullscreen="true"
append-to-body
custom-class="upload-dialog"
>
<span slot="title"> <span slot="title">
<el-breadcrumb separator-class="el-icon-arrow-right"> <el-breadcrumb separator-class="el-icon-arrow-right">
<label style="float: left; margin-right: 10px">Upload: </label> <label style="float: left; margin-right: 10px">Upload: </label>
@ -163,100 +97,51 @@
}}</el-breadcrumb-item> }}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</span> </span>
<div <div class="base-modal-body" style="display: flex; flex-direction: column">
class="base-modal-body"
style="display: flex; flex-direction: column"
>
<el-tabs v-model="activeName" type="border-card" style="flex: 1"> <el-tabs v-model="activeName" type="border-card" style="flex: 1">
<!-- DICOM影像上传 --> <!-- DICOM影像上传 -->
<el-tab-pane <el-tab-pane :label="$t('trials:uploadedDicoms:tab:uploadDicoms')" name="dicom"
:label="$t('trials:uploadedDicoms:tab:uploadDicoms')" v-if="[0, 1].includes($store.state.trials.config.CollectImagesEnum)">
name="dicom" <upload-dicom-files :data="data" :isAfresh="true" :subject-id="data.SubjectId" :subject-visit-id="data.Id"
v-if="[0, 1].includes($store.state.trials.config.CollectImagesEnum)" @close="closeUpload" @getList="reFreshList" />
>
<upload-dicom-files
:data="data"
:subject-id="data.SubjectId"
:subject-visit-id="data.Id"
@close="closeUpload"
@getList="reFreshList"
/>
</el-tab-pane> </el-tab-pane>
<!-- 非DICOM影像上传 --> <!-- 非DICOM影像上传 -->
<el-tab-pane <el-tab-pane :label="$t('trials:uploadNonDicoms:tab:uploadNonDicoms')" name="non-dicom"
:label="$t('trials:uploadNonDicoms:tab:uploadNonDicoms')" v-if="[0, 2].includes($store.state.trials.config.CollectImagesEnum)">
name="non-dicom" <upload-non-dicom-files v-if="activeName === 'non-dicom'" :data="data" :allow-add-or-edit="true"
v-if="[0, 2].includes($store.state.trials.config.CollectImagesEnum)" :body-parts="bodyParts" :modalities="modalities" :subject-visit-id="data.Id" @getList="reFreshList" />
>
<upload-non-dicom-files
v-if="activeName === 'non-dicom'"
:data="data"
:allow-add-or-edit="true"
:body-parts="bodyParts"
:modalities="modalities"
:subject-visit-id="data.Id"
@getList="reFreshList"
/>
</el-tab-pane> </el-tab-pane>
<!-- 临床数据采集data.IsBaseLine && --> <!-- 临床数据采集data.IsBaseLine && -->
<el-tab-pane <el-tab-pane v-if="
v-if=" data.IsBaseLine &&
data.IsBaseLine && (otherInfo.IsHaveSubjectClinicalData ||
(otherInfo.IsHaveSubjectClinicalData || otherInfo.IsHaveVisitClinicalData)
otherInfo.IsHaveVisitClinicalData) " :label="$t('trials:uploadClinicalData:tab:uploadClinicalData')" name="clinical-data">
" <upload-clinical-data v-if="activeName === 'clinical-data'" :subject-visit-id="data.Id" :data="data"
:label="$t('trials:uploadClinicalData:tab:uploadClinicalData')" :enum-type="otherInfo.ClinicalInformationTransmissionEnum" :allow-add-or-edit="true"
name="clinical-data" @getList="reFreshList" />
>
<upload-clinical-data
v-if="activeName === 'clinical-data'"
:subject-visit-id="data.Id"
:data="data"
:enum-type="otherInfo.ClinicalInformationTransmissionEnum"
:allow-add-or-edit="true"
@getList="reFreshList"
/>
</el-tab-pane> </el-tab-pane>
<el-tab-pane <el-tab-pane v-if="!data.IsBaseLine && otherInfo.IsHaveVisitClinicalData"
v-if="!data.IsBaseLine && otherInfo.IsHaveVisitClinicalData" :label="$t('trials:uploadClinicalData:tab:uploadClinicalData')" name="clinical-data">
:label="$t('trials:uploadClinicalData:tab:uploadClinicalData')" <upload-clinical-data v-if="activeName === 'clinical-data'" :subject-visit-id="data.Id" :data="data"
name="clinical-data" :enum-type="otherInfo.ClinicalInformationTransmissionEnum" :allow-add-or-edit="true"
> @getList="reFreshList" />
<upload-clinical-data
v-if="activeName === 'clinical-data'"
:subject-visit-id="data.Id"
:data="data"
:enum-type="otherInfo.ClinicalInformationTransmissionEnum"
:allow-add-or-edit="true"
@getList="reFreshList"
/>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</el-dialog> </el-dialog>
<!-- 临床数据签名框 --> <!-- 临床数据签名框 -->
<el-dialog <el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px" append-to-body
v-if="signVisible" custom-class="base-dialog-wrapper">
:visible.sync="signVisible"
:close-on-click-modal="false"
width="600px"
append-to-body
custom-class="base-dialog-wrapper"
>
<div slot="title"> <div slot="title">
<span style="font-size: 18px">{{ $t('common:dialogTitle:sign') }}</span> <span style="font-size: 18px">{{ $t('common:dialogTitle:sign') }}</span>
<span style="font-size: 12px; margin-left: 5px">{{ <span style="font-size: 12px; margin-left: 5px">{{
`(${$t('common:label:sign')}${currentUser})` `(${$t('common:label:sign')}${currentUser})`
}}</span> }}</span>
</div> </div>
<SignForm <SignForm ref="signForm" :sign-code-enum="signCode" :signReplaceText="signReplaceText" :subject-visit-id="data.Id"
ref="signForm" @closeDialog="closeClinicalDataSignDialog" />
:sign-code-enum="signCode"
:signReplaceText="signReplaceText"
:subject-visit-id="data.Id"
@closeDialog="closeClinicalDataSignDialog"
/>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -371,12 +256,11 @@ export default {
${this.$t('trials:qcQuality:dialogTips:tip')} ${this.$t('trials:qcQuality:dialogTips:tip')}
</p> </p>
<p style='color:red'>${this.$t( <p style='color:red'>${this.$t(
'trials:qcQuality:dialog:deadline' 'trials:qcQuality:dialog:deadline'
)}: ${ )}: ${item.DeadlineTime
item.DeadlineTime
? item.DeadlineTime ? item.DeadlineTime
: this.$t('trials:qcQuality:dialog:none') : this.$t('trials:qcQuality:dialog:none')
}</p>` }</p>`
const userId = zzSessionStorage.getItem('userId') const userId = zzSessionStorage.getItem('userId')
var recordContent = [] var recordContent = []
recordContent.push({ recordContent.push({
@ -494,7 +378,7 @@ export default {
this.currentChallengeIndex = index this.currentChallengeIndex = index
this.setReuploadFinished() this.setReuploadFinished()
}) })
.catch(() => {}) .catch(() => { })
} }
}, },
setReuploadFinished(signInfo) { setReuploadFinished(signInfo) {
@ -562,7 +446,7 @@ export default {
this.applyBtnLoading = false this.applyBtnLoading = false
}) })
}) })
.catch(() => {}) .catch(() => { })
}, },
}, },
} }
@ -570,14 +454,17 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.history-chat { .history-chat {
height: 500px; height: 500px;
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 7px; width: 7px;
height: 7px; height: 7px;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
border-radius: 10px; border-radius: 10px;
background: #d0d0d0; background: #d0d0d0;
} }
::v-deep .el-tabs { ::v-deep .el-tabs {
::v-deep .el-tabs__header { ::v-deep .el-tabs__header {
width: 100px; width: 100px;
@ -585,34 +472,41 @@ export default {
height: 500px; height: 500px;
overflow-y: auto; overflow-y: auto;
} }
::v-deep .el-tabs__content { ::v-deep .el-tabs__content {
margin-right: 10px; margin-right: 10px;
height: 500px; height: 500px;
width: calc(100% - 120px); width: calc(100% - 120px);
overflow-y: auto; overflow-y: auto;
} }
.chat-wrapper { .chat-wrapper {
background-color: #f5f7fa; background-color: #f5f7fa;
height: 500px; height: 500px;
display: flex; display: flex;
flex-direction: column !important; flex-direction: column !important;
overflow: hidden; overflow: hidden;
.chat-content { .chat-content {
width: 100%; width: 100%;
padding: 20px; padding: 20px;
// height: 400px; // height: 400px;
overflow-y: auto; overflow-y: auto;
flex: 1; flex: 1;
.word { .word {
display: flex; display: flex;
margin-bottom: 20px; margin-bottom: 20px;
img { img {
width: 40px; width: 40px;
height: 40px; height: 40px;
border-radius: 50%; border-radius: 50%;
} }
.info { .info {
margin-left: 10px; margin-left: 10px;
.user-info { .user-info {
font-size: 12px; font-size: 12px;
color: rgba(51, 51, 51, 0.8); color: rgba(51, 51, 51, 0.8);
@ -621,6 +515,7 @@ export default {
line-height: 20px; line-height: 20px;
margin-top: -5px; margin-top: -5px;
} }
.info-content { .info-content {
padding: 10px; padding: 10px;
font-size: 14px; font-size: 14px;
@ -628,6 +523,7 @@ export default {
position: relative; position: relative;
margin-top: 8px; margin-top: 8px;
} }
.info-content::before { .info-content::before {
position: absolute; position: absolute;
left: -8px; left: -8px;
@ -639,19 +535,23 @@ export default {
} }
} }
} }
.word-my { .word-my {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin-bottom: 20px; margin-bottom: 20px;
img { img {
width: 40px; width: 40px;
height: 40px; height: 40px;
border-radius: 50%; border-radius: 50%;
} }
.info { .info {
width: 90%; width: 90%;
margin-left: 10px; margin-left: 10px;
text-align: right; text-align: right;
.user-info { .user-info {
font-size: 12px; font-size: 12px;
color: rgba(51, 51, 51, 0.8); color: rgba(51, 51, 51, 0.8);
@ -661,6 +561,7 @@ export default {
margin-top: -5px; margin-top: -5px;
margin-right: 10px; margin-right: 10px;
} }
.info-content { .info-content {
position: relative; position: relative;
max-width: 70%; max-width: 70%;
@ -673,6 +574,7 @@ export default {
color: #fff; color: #fff;
text-align: left; text-align: left;
} }
.info-content::after { .info-content::after {
position: absolute; position: absolute;
right: -8px; right: -8px;
@ -685,14 +587,17 @@ export default {
} }
} }
} }
.chat-message { .chat-message {
height: 100px; height: 100px;
padding: 0 50px; padding: 0 50px;
.function { .function {
margin-top: 10px; margin-top: 10px;
text-align: right; text-align: right;
} }
} }
ol { ol {
margin: 5px; margin: 5px;
padding: 0px 10px; padding: 0px 10px;

View File

@ -22,7 +22,7 @@
<el-table v-loading="studyLoading" :data="studyList" style="width: 100%" :row-class-name="tableRowClassName" <el-table v-loading="studyLoading" :data="studyList" style="width: 100%" :row-class-name="tableRowClassName"
max-height="250" @selection-change="handleUploadedSelectionChange" max-height="250" @selection-change="handleUploadedSelectionChange"
:default-sort="{ prop: 'UploadedTime', order: 'ascending' }"> :default-sort="{ prop: 'UploadedTime', order: 'ascending' }">
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" :selectable="handleSelectable2" />
<!-- 检查编号 --> <!-- 检查编号 -->
<el-table-column prop="StudyCode" :label="$t('trials:uploadedDicoms:table:studyId')" min-width="80" <el-table-column prop="StudyCode" :label="$t('trials:uploadedDicoms:table:studyId')" min-width="80"
show-overflow-tooltip sortable> show-overflow-tooltip sortable>
@ -105,12 +105,16 @@
<el-button icon="el-icon-upload2" v-if=" <el-button icon="el-icon-upload2" v-if="
['PT、CT', 'CT、PT', 'PET-CT'].includes(scope.row.Modalities) && ['PT、CT', 'CT、PT', 'PET-CT'].includes(scope.row.Modalities) &&
relationInfo.IsHaveStudyClinicalData relationInfo.IsHaveStudyClinicalData
" :title="$t('trials:workbench:title:UploadClinicalData')" circle @click="handleUploadPetData(scope.row)" /> " :disabled="!isAfresh && data.SubmitTime && moment(data.SubmitTime).isAfter(moment(scope.row.UploadedTime))"
:title="$t('trials:workbench:title:UploadClinicalData')" circle @click="handleUploadPetData(scope.row)" />
<!-- 编辑 --> <!-- 编辑 -->
<el-button icon="el-icon-edit-outline" v-hasPermi="['trials:trials-panel:visit:crc-upload:edit']" <el-button icon="el-icon-edit-outline" v-hasPermi="['trials:trials-panel:visit:crc-upload:edit']"
:title="$t('common:button:edit')" circle @click="handleEditStudy(scope.row)" /> :title="$t('common:button:edit')"
:disabled="!isAfresh && data.SubmitTime && moment(data.SubmitTime).isAfter(moment(scope.row.UploadedTime))"
circle @click="handleEditStudy(scope.row)" />
<!-- 删除 :disabled="scope.row.IsDeleted"--> <!-- 删除 :disabled="scope.row.IsDeleted"-->
<el-button icon="el-icon-delete" :title="$t('trials:uploadedDicoms:action:delete')" circle <el-button icon="el-icon-delete" :title="$t('trials:uploadedDicoms:action:delete')" circle
:disabled="!isAfresh && data.SubmitTime && moment(data.SubmitTime).isAfter(moment(scope.row.UploadedTime))"
@click="handleDeleteStudy(scope.row)" /> @click="handleDeleteStudy(scope.row)" />
<!-- <el-button--> <!-- <el-button-->
<!-- icon="el-icon-toilet-paper"--> <!-- icon="el-icon-toilet-paper"-->
@ -594,6 +598,10 @@ export default {
type: String, type: String,
required: true, required: true,
}, },
isAfresh: {
type: Boolean,
default: false
}
}, },
data() { data() {
return { return {
@ -1765,6 +1773,13 @@ export default {
return true return true
} }
}, },
handleSelectable2(row) {
if (!this.isAfresh && this.data.SubmitTime && moment(this.data.SubmitTime).isAfter(moment(row.UploadedTime))) {
return false
} else {
return true
}
},
// //
handleUploadedSelectionChange(selection) { handleUploadedSelectionChange(selection) {
this.deleteArr = [] this.deleteArr = []

View File

@ -308,14 +308,14 @@
" :label="$t('common:action:action')" width="250" fixed="right"> " :label="$t('common:action:action')" width="250" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 上传 --> <!-- 上传 -->
<el-button v-hasPermi="['trials:trials-panel:visit:crc-upload:upload']" icon="el-icon-upload2" :disabled="scope.row.SubmitState * 1 === 2 || <el-button v-hasPermi="['trials:trials-panel:visit:crc-upload:upload']" icon="el-icon-upload2" :disabled="!isOCTorIVUS && (scope.row.SubmitState * 1 === 2 ||
scope.row.VisitExecuted === 2 || scope.row.VisitExecuted === 2 ||
scope.row.IsLostVisit || (scope.row.IsSubjectQuit && scope.row.SubmitState * 1 !== 2) scope.row.IsLostVisit || (scope.row.IsSubjectQuit && scope.row.SubmitState * 1 !== 2))
" circle :title="$t('trials:crcUpload:action:upload')" @click="CRChandleUpload(scope.row)" /> " circle :title="$t('trials:crcUpload:action:upload')" @click="CRChandleUpload(scope.row)" />
<!-- 上传2 --> <!-- 上传2 -->
<el-button icon="el-icon-upload2" v-hasPermi="['trials:trials-panel:visit:crc-upload:upload2']" :disabled="scope.row.SubmitState * 1 === 2 || <el-button icon="el-icon-upload2" v-hasPermi="['trials:trials-panel:visit:crc-upload:upload2']" :disabled="!isOCTorIVUS && (scope.row.SubmitState * 1 === 2 ||
scope.row.VisitExecuted === 2 || scope.row.VisitExecuted === 2 ||
scope.row.IsLostVisit || (scope.row.IsSubjectQuit && scope.row.SubmitState * 1 !== 2) scope.row.IsLostVisit || (scope.row.IsSubjectQuit && scope.row.SubmitState * 1 !== 2))
" circle :title="$t('trials:crcUpload:action:upload')" @click="CRChandleUpload2(scope.row)" /> " circle :title="$t('trials:crcUpload:action:upload')" @click="CRChandleUpload2(scope.row)" />
<!-- 提交 --> <!-- 提交 -->
<el-button v-hasPermi="['trials:trials-panel:visit:crc-upload:submit']" icon="el-icon-check" :disabled="scope.row.AuditState * 1 > 0 || <el-button v-hasPermi="['trials:trials-panel:visit:crc-upload:submit']" icon="el-icon-check" :disabled="scope.row.AuditState * 1 > 0 ||
@ -968,6 +968,7 @@ export default {
}, },
TrialReadingCriterionName: null, TrialReadingCriterionName: null,
TrialCode: null, TrialCode: null,
isOCTorIVUS: false
} }
}, },
watch: { watch: {
@ -1060,6 +1061,7 @@ export default {
this.trialCriterionList = res.Result this.trialCriterionList = res.Result
this.TrialReadingCriterionId = this.TrialReadingCriterionId =
this.trialCriterionList[0].TrialReadingCriterionId this.trialCriterionList[0].TrialReadingCriterionId
this.isOCTorIVUS = this.trialCriterionList.some(item => item.CriterionType === 19 || item.CriterionType === 20)
// this.handleUpload2(this.subjectRowData) // this.handleUpload2(this.subjectRowData)
}) })
.catch(() => { }) .catch(() => { })