273 lines
8.2 KiB
Plaintext
273 lines
8.2 KiB
Plaintext
<template>
|
||
<div v-loading="loading">
|
||
<div style="padding: 0 20px;">
|
||
<div class="info-content" v-html="crcMessageInfo.TalkContent" />
|
||
</div>
|
||
<div>
|
||
<div style="padding: 10px;background: #f3f3f3;border-radius: 10px;margin-top: 10px">
|
||
<div style="display:flex;margin-bottom: 10px;justify-content: space-between;align-items: center">
|
||
<div>
|
||
请准确核实后录入当前访视的实际影像检查记录:
|
||
</div>
|
||
<el-button type="primary" size="mini" @click="addMsg">添加</el-button>
|
||
</div>
|
||
<el-table
|
||
:data="msgList">
|
||
<el-table-column type="index" width="40" />
|
||
<el-table-column
|
||
prop=""
|
||
label="检查日期"
|
||
show-overflow-tooltip
|
||
>
|
||
<template slot-scope="scope">
|
||
{{scope.row.StudyDate}}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop=""
|
||
label="检查类型"
|
||
show-overflow-tooltip
|
||
>
|
||
<template slot-scope="scope">
|
||
{{scope.row.Modality}}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop=""
|
||
label="已提交"
|
||
show-overflow-tooltip
|
||
>
|
||
<template slot-scope="scope">
|
||
{{$fd('YesOrNo', scope.row.IsJoin)}}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop=""
|
||
label="实际存在"
|
||
show-overflow-tooltip
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-switch
|
||
:disabled="!scope.row.IsJoin"
|
||
v-model="scope.row.IsCheck"
|
||
@change="compareStudy"
|
||
>
|
||
</el-switch>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop=""
|
||
width="100px"
|
||
label="操作"
|
||
fixed="right"
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-button :disabled="scope.row.IsJoin" @click="moveMsg(scope.$index)" size="small" type="text">删除</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<el-form ref="revenusForm"
|
||
size="small"
|
||
label-width="400px"
|
||
:label-position="'top'"
|
||
:rules="rules"
|
||
:model="form">
|
||
<el-form-item v-if="isLackOf" label="IRC与实际情况影像检查不一致的原因为:" prop="reason">
|
||
<el-checkbox-group v-model="form.reason" style="display: flex;flex-direction: column">
|
||
<el-checkbox style="display: block" label="EDC按疗效评估数据记录影像检查信息;">EDC按疗效评估数据记录影像检查信息</el-checkbox>
|
||
<el-checkbox style="display: block" label="EDC录入错误;">EDC录入错误</el-checkbox>
|
||
<el-checkbox style="display: block" label="IRC数据上传错误,申请回退并重新上传;">IRC数据上传错误,申请回退并重新上传</el-checkbox>
|
||
</el-checkbox-group>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
<div class="function">
|
||
<!-- 发送 -->
|
||
<el-button
|
||
type="primary"
|
||
@click="handleReply"
|
||
>
|
||
{{ $t('trials:consistencyCheck:button:sendMessage') }}
|
||
</el-button>
|
||
</div>
|
||
<el-dialog
|
||
v-if="studyVisible"
|
||
:visible.sync="studyVisible"
|
||
v-dialogDrag
|
||
:close-on-click-modal="false"
|
||
append-to-body
|
||
custom-class="base-dialog-wrapper"
|
||
:width="'500px'"
|
||
title="添加检查"
|
||
>
|
||
<el-form>
|
||
<div class="base-dialog-body">
|
||
<el-form-item label-width="80px" label="检查日期">
|
||
<el-date-picker
|
||
v-model="typeInfo.StudyDate"
|
||
style="width: 100%"
|
||
type="date"
|
||
value-format="yyyy-MM-dd"
|
||
placeholder="选择日期">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item label-width="80px" label="检查类型">
|
||
<el-select
|
||
v-model="typeInfo.Modality"
|
||
style="width: 100%"
|
||
>
|
||
<el-option v-for="item of $d.Modality" :label="item.raw.Value" :value="item.value">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
</div>
|
||
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
||
<el-form-item style="text-align:right;">
|
||
<el-button size="small" type="primary" @click="handleCancel"> {{ $t('common:button:cancel') }}</el-button>
|
||
<el-button size="small" type="primary" @click="handleSave">
|
||
{{ $t('common:button:save') }}
|
||
</el-button>
|
||
</el-form-item>
|
||
</div>
|
||
</el-form>
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
|
||
<script>
|
||
|
||
export default {
|
||
name: 'CrcSendMessage',
|
||
props: {
|
||
crcMessageInfo: {
|
||
type: Object,
|
||
default() {
|
||
return {
|
||
TalkContent: null,
|
||
}
|
||
}
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
loading: false,
|
||
msgList: [],
|
||
studyVisible: false,
|
||
typeInfo: {
|
||
StudyDate: null,
|
||
Modality: null,
|
||
IsJoin: false,
|
||
IsCheck: true
|
||
},
|
||
isLackOf: false,
|
||
EDCList: [],
|
||
IRCList: [],
|
||
form: {
|
||
reason: []
|
||
},
|
||
rules: {
|
||
reason: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change'] }]
|
||
}
|
||
}
|
||
},
|
||
mounted() {
|
||
this.crcMessageInfo.ParamInfoList.forEach(v => {
|
||
this.msgList.push({...v, IsJoin: true, Ischeck: false})
|
||
})
|
||
this.compareStudy()
|
||
},
|
||
methods: {
|
||
compareStudy() {
|
||
var isLackOf = false
|
||
this.IRCList = []
|
||
this.msgList.forEach(v => {
|
||
if (v.IsJoin !== v.IsCheck) {
|
||
isLackOf = true
|
||
this.IRCList.push(v)
|
||
}
|
||
})
|
||
this.isLackOf = isLackOf
|
||
},
|
||
handleCancel() {
|
||
this.studyVisible = false
|
||
this.typeInfo = {
|
||
StudyDate: null,
|
||
Modality: null
|
||
}
|
||
},
|
||
handleSave() {
|
||
if (!this.typeInfo.StudyDate || !this.typeInfo.Modality) {
|
||
this.$message.error('请选择检查日期和检查类型')
|
||
return
|
||
}
|
||
this.msgList.push({...this.typeInfo})
|
||
this.compareStudy()
|
||
this.studyVisible = false
|
||
this.typeInfo = {
|
||
StudyDate: null,
|
||
Modality: null,
|
||
IsJoin: false,
|
||
IsCheck: true
|
||
}
|
||
},
|
||
closeLoading() {
|
||
this.loading = false
|
||
},
|
||
addMsg() {
|
||
this.studyVisible = true
|
||
},
|
||
moveMsg(index) {
|
||
this.$confirm('确定删除该条检查记录?').then(res => {
|
||
this.msgList.splice(index, 1)
|
||
this.compareStudy()
|
||
})
|
||
},
|
||
handleReply() {
|
||
if (this.msgList.length === 0) {
|
||
this.$message.error('请录入真实的检查情况')
|
||
return
|
||
}
|
||
this.$refs.revenusForm.validate((valid) => {
|
||
if (!valid) return
|
||
var TalkContent = ''
|
||
TalkContent += '经核实,该受试者当前访视的实际影像检查如下:<br>'
|
||
this.msgList.forEach((v, i) => {
|
||
TalkContent += `${i+1}.${v.StudyDate}的${v.Modality}影像检查<br>`
|
||
})
|
||
if (this.isLackOf) {
|
||
TalkContent += '<br>'
|
||
TalkContent += 'IRC与实际情况不一致影像检查如下:<br>'
|
||
this.IRCList.forEach((v, i) => {
|
||
TalkContent += `${i+1}.${v.StudyDate}的${v.Modality}影像检查(${v.IsJoin && !v.IsCheck ? 'IRC多余': 'IRC缺少'})<br>`
|
||
})
|
||
if (this.form.reason.length > 0) {
|
||
TalkContent += '<br>'
|
||
TalkContent += 'IRC与实际情况影像检查不一致的原因为:<br>'
|
||
this.form.reason.forEach((v, i) => {
|
||
TalkContent += `${i+1}.${v}<br>`
|
||
})
|
||
}
|
||
} else {
|
||
TalkContent += `<br>IRC与实际情况影像检查一致`
|
||
}
|
||
console.log(TalkContent)
|
||
this.$emit('sendMessage', TalkContent, this.closeLoading)
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
.function{
|
||
margin-top: 10px;
|
||
text-align: right;
|
||
}
|
||
>>>.el-form--label-top .el-form-item__label{
|
||
padding-bottom: 0;
|
||
padding-top: 20px;
|
||
}
|
||
</style>
|