irc_web/.svn/pristine/0f/0fc3fb220a3111a66de4141c368...

166 lines
4.0 KiB
Plaintext

<template>
<div>
<QuestionsForm
v-if="clinicalUploadType === 2"
:data="data"
:trial-clinical-id="trialClinicalId"
:is-viewer="isViewer"
:visit-id="visitId"
:subject-id="subjectId"
:open-type="openType"
:system-clinical-id="systemClinicalId"
:trial-id="trialId"
:reading-id="readingId"
:clinical-form-id="clinicalFormId"
@close="close"
></QuestionsForm>
<uploadClinicalData v-else :subject-visit-id="subjectVisitId" :data="data" :enum-type="0" :allow-add-or-edit="true" @getList="() => {}">
</uploadClinicalData>
<div class="base-dialog-footer" v-if="!isViewer && openType !== 'look' && [0, 1].includes(clinicalDataLevel)" style="text-align:right;margin-top:10px;">
<!-- 保存 -->
<el-button size="small" type="primary" @click="submitClinicalForm">
{{ $t('common:button:submit') }}
</el-button>
</div>
<!-- 临床数据签名框 -->
<el-dialog
v-if="signVisible"
:visible.sync="signVisible"
:close-on-click-modal="false"
width="600px"
append-to-body
custom-class="base-dialog-wrapper"
>
<div slot="title">
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${ currentUser })` }}</span>
</div>
<SignForm ref="signForm" :sign-code-enum="signCode" :subject-visit-id="subjectVisitId" @closeDialog="closeSignDialog" />
</el-dialog>
</div>
</template>
<script>
import { CRCSignClinicalData } from '@/api/trials'
import SignForm from '@/views/trials/components/newSignForm'
import QuestionsForm from './components/QuestionsForm'
import uploadClinicalData from './components/uploadClinicalData'
import const_ from '@/const/sign-code'
export default {
name: "index",
components: { QuestionsForm, uploadClinicalData, SignForm },
methods: {
submitClinicalForm() {
const { ClinicalDataConfirmation } = const_.processSignature
this.signCode = ClinicalDataConfirmation
this.signVisible = true
},
close() {
this.$emit('close')
},
closeSignDialog(isSign, signInfo) {
if (isSign) {
this.submit(signInfo)
} else {
this.signVisible = false
}
},
submit(signInfo) {
this.loading = true
var params = {
data: { readingClinicalDataId: this.readingClinicalDataId }
}
if (signInfo) {
params.signInfo = signInfo
}
params.signInfo.TrialId = this.trialId
CRCSignClinicalData(params)
.then(res => {
this.loading = false
this.$message.success('签名成功')
this.$emit('close')
}).catch((res) => {
})
},
},
data() {
return {
signVisible: false,
signCode: null,
currentUser: zzSessionStorage.getItem('userName'),
}
},
props: {
readingClinicalDataId: {
type: String,
default: () => ''
},
subjectVisitId: {
type: String,
default: () => ''
},
clinicalUploadType: {
type: Number,
default: () => {
return 2
}
},
clinicalDataLevel: {
type: Number,
default: () => {
return 2
}
},
openType: {
type: String,
default: () => 'add'
},
isViewer: {
type: Boolean,
default: () => true
},
visitId: {
type: String,
default: () => ''
},
subjectId: {
type: String,
default: () => ''
},
trialId: {
type: String,
default: () => ''
},
readingId: {
type: String,
default: () => ''
},
clinicalFormId: {
type: String,
default: () => ''
},
data: {
type: Object,
default: () => {}
},
trialClinicalId: {
type: String,
default: () => {
return ''
}
},
systemClinicalId: {
type: String,
default: () => {
return ''
}
},
}
}
</script>
<style scoped>
</style>