irc_web/.svn/pristine/05/0507d912d8b23c1f37f41f708a4...

159 lines
4.6 KiB
Plaintext

<template>
<div v-loading="loading" class="reading-unit-wrapper">
<div class="content">
<el-collapse v-model="activeCollapse" class="setting-config">
<!-- 阅片规则 -->
<el-collapse-item title="阅片规则" name="1">
<ReadingRules
ref="readingRules"
@setConfirm="setConfirm"
@setArbitrationReading="setArbitrationReading"
/>
</el-collapse-item>
<!-- 阅片标准 -->
<el-collapse-item title="阅片标准" name="2">
<ReadingCriterions
ref="readingCriterions"
@reloadArbitrationRules="reloadArbitrationRules"
/>
</el-collapse-item>
<!-- 仲裁规则 -->
<el-collapse-item v-if="isArbitrationReading" title="仲裁规则" name="3">
<ArbitrationRules ref="arbitrationRules" />
</el-collapse-item>
</el-collapse>
</div>
<div v-if="!isConfirm" class="bottom">
<el-button
type="danger"
@click="handleConfirm"
>
确认
</el-button>
</div>
<!--签名框 -->
<el-dialog
v-if="signVisible"
:visible.sync="signVisible"
:close-on-click-modal="false"
width="600px"
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" @closeDialog="closeSignDialog" />
</el-dialog>
</div>
</template>
<script>
import { trialReadingInfoSign } from '@/api/trials'
import ReadingRules from './components/ReadingRules'
import ReadingCriterions from './components/ReadingCriterions'
import ArbitrationRules from './components/ArbitrationRules'
import SignForm from '@/views/trials/components/newSignForm'
import const_ from '@/const/sign-code'
export default {
name: 'ReadingUnit',
components: { ReadingRules, ReadingCriterions, ArbitrationRules, SignForm },
data() {
return {
activeCollapse: ['1', '2', '3'],
signCode: null,
signVisible: false,
currentUser: zzSessionStorage.getItem('userName'),
isConfirm: true,
loading: false,
isArbitrationReading: false
}
},
methods: {
setConfirm(isConfirm) {
this.isConfirm = isConfirm
},
setArbitrationReading(isArbitrationReading) {
this.isArbitrationReading = isArbitrationReading
},
handleConfirm() {
Promise.all([this.$refs['readingRules'].handleSave(false), this.$refs['readingCriterions'].handleSave(false)])
.then(() => {
const { ReadingUnitConfirmation } = const_.processSignature
this.signCode = ReadingUnitConfirmation
this.signVisible = true
}).catch(() => {
})
},
// 关闭签名框并设置确认状态
closeSignDialog(isSign, signInfo) {
if (isSign) {
this.signConfirm(signInfo)
} else {
this.signVisible = false
}
},
// 签名确认
signConfirm(signInfo) {
this.loading = true
const params = {
data: {
trialId: this.$route.query.trialId
},
signInfo: signInfo
}
trialReadingInfoSign(params).then(res => {
if (res.IsSuccess) {
this.$message.success(this.$t('common:message:savedSuccessfully'))
this.$refs['signForm'].btnLoading = false
this.signVisible = false
this.isConfirm = true
this.$refs['readingRules'].initPage()
this.$refs['readingCriterions'].initPage()
this.$refs['arbitrationRules'].getList()
}
this.loading = false
}).catch(_ => {
this.loading = false
this.$refs['signForm'].btnLoading = false
})
},
reloadArbitrationRules() {
this.$refs['arbitrationRules'].getList()
}
}
}
</script>
<style lang="scss" scoped>
.reading-unit-wrapper{
height: 100%;
background-color: #fff;
display: flex;
flex-direction: column;
.content{
flex: 1;
overflow-y: auto;
}
>>>.el-collapse-item__header{
background:#e5ecef;
padding-left:10px;
}
>>>.el-collapse-item__content{
padding: 10px;
}
.bottom{
height: 50px;
display:flex;
align-items:center;
justify-content:center;
text-align: center;
border-top: 1px solid #e1e1e1;
}
}
</style>