一致性核查回复修改
continuous-integration/drone/push Build is passing Details

uat
wangxiaoshuang 2025-05-22 13:54:27 +08:00
parent f2ee666083
commit 64e67ad106
2 changed files with 68 additions and 102 deletions

View File

@ -81,10 +81,10 @@
> >
{{ $t('trials:consistencyCheck:button:sendMessage') }} {{ $t('trials:consistencyCheck:button:sendMessage') }}
</el-button> </el-button>
<!-- 回复 --> <!-- 回复 :disabled="!(checkState === 10 && checkChallengeState !== 3) || (recordContent && recordContent.length > 0 ? recordContent[recordContent.length - 1].UserTypeEnum * 1 === 2 : false)" -->
<el-button <el-button
v-hasPermi="['role:crc']" v-hasPermi="['role:crc']"
:disabled="!(checkState === 10 && checkChallengeState !== 3) || (recordContent && recordContent.length > 0 ? recordContent[recordContent.length - 1].UserTypeEnum * 1 === 2 : false)"
type="primary" type="primary"
:loading="btnLoading" :loading="btnLoading"
@click="handleCRCReply" @click="handleCRCReply"

View File

@ -6,94 +6,59 @@
<div> <div>
<div style="padding: 10px;background: #f3f3f3;border-radius: 10px;margin-top: 10px"> <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 style="display:flex;margin-bottom: 10px;justify-content: space-between;align-items: center">
<div> <div style="font-size: 18px;font-weight: blod;color: #409EFF">
<!-- 请准确核实后录入当前访视的实际影像检查记录 --> <!-- 请准确核实后录入当前访视的实际影像检查记录 -->
{{ $t('trials:consistencyCheck:title:message20') }} {{ $t('trials:consistencyCheck:title:message20') }}
</div> </div>
<!-- 添加 --> <!-- 添加 -->
<el-button type="primary" size="mini" @click="addMsg">{{ $t('trials:consistencyCheck:title:add') }}</el-button> <el-button type="primary" size="mini" @click="addMsg">{{ $t('trials:consistencyCheck:title:add')
}}</el-button>
</div> </div>
<el-table <el-table :data="msgList">
:data="msgList"
>
<el-table-column type="index" width="40" /> <el-table-column type="index" width="40" />
<!-- 检查日期 --> <!-- 检查日期 -->
<el-table-column <el-table-column prop="" :label="$t('trials:consistencyCheck:title:studyDate')" show-overflow-tooltip>
prop=""
:label="$t('trials:consistencyCheck:title:studyDate')"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.StudyDate }} {{ scope.row.StudyDate }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 检查类型 --> <!-- 检查类型 -->
<el-table-column <el-table-column prop="" :label="$t('trials:consistencyCheck:title:studyModality')" show-overflow-tooltip>
prop=""
:label="$t('trials:consistencyCheck:title:studyModality')"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.Modality }} {{ scope.row.Modality }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 已提交 --> <!-- 已提交 -->
<el-table-column <el-table-column prop="" :label="$t('trials:consistencyCheck:title:submitted')" show-overflow-tooltip>
prop=""
:label="$t('trials:consistencyCheck:title:submitted')"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('YesOrNo', scope.row.IsJoin) }} {{ $fd('YesOrNo', scope.row.IsJoin) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 实际存在 --> <!-- 实际存在 -->
<el-table-column <el-table-column prop="" :label="$t('trials:consistencyCheck:title:existed')" show-overflow-tooltip
prop="" min-width="120px">
:label="$t('trials:consistencyCheck:title:existed')"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.IsCheck" :active-text="$fd('YesOrNo', true)"
v-model="scope.row.IsCheck" :inactive-text="$fd('YesOrNo', false)" :disabled="!scope.row.IsJoin" @change="compareStudy" />
:disabled="!scope.row.IsJoin"
@change="compareStudy"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="" width="100px" :label="$t('common:action:action')" fixed="right">
prop=""
width="100px"
:label="$t('common:action:action')"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 删除 --> <!-- 删除 -->
<el-button <el-button :disabled="scope.row.IsJoin" size="small" icon="el-icon-delete"
:disabled="scope.row.IsJoin" :title="$t('trials:consistencyCheck:title:delete')" circle @click="moveMsg(scope.$index)">
size="small"
type="text"
@click="moveMsg(scope.$index)"
>
{{ $t('trials:consistencyCheck:title:delete') }}
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-form <el-form ref="revenusForm" size="small" label-width="400px" :label-position="'top'" :rules="rules"
ref="revenusForm" :model="form">
size="small"
label-width="400px"
:label-position="'top'"
:rules="rules"
:model="form"
>
<!-- IRC与实际情况影像检查不一致的原因为 --> <!-- IRC与实际情况影像检查不一致的原因为 -->
<el-form-item v-if="isLackOf" :label="$t('trials:consistencyCheck:title:title1')" prop="reason"> <el-form-item v-if="isLackOf" :label="$t('trials:consistencyCheck:title:title1')" prop="reason">
<el-checkbox-group v-model="form.reason" style="display: flex;flex-direction: column"> <el-checkbox-group v-model="form.reason" style="display: flex;flex-direction: column">
<el-checkbox style="display: block" :label="$t('trials:consistencyCheck:title:message9')"> <!-- <el-checkbox style="display: block" :label="$t('trials:consistencyCheck:title:message9')">
{{ $t('trials:consistencyCheck:title:message9') }} {{ $t('trials:consistencyCheck:title:message9') }}
</el-checkbox> </el-checkbox> -->
<el-checkbox style="display: block" :label="$t('trials:consistencyCheck:title:message10')"> <el-checkbox style="display: block" :label="$t('trials:consistencyCheck:title:message10')">
{{ $t('trials:consistencyCheck:title:message10') }} {{ $t('trials:consistencyCheck:title:message10') }}
</el-checkbox> </el-checkbox>
@ -107,42 +72,24 @@
</div> </div>
<div class="function"> <div class="function">
<!-- 发送 --> <!-- 发送 -->
<el-button <el-button type="primary" @click="handleReply">
type="primary"
@click="handleReply"
>
{{ $t('trials:consistencyCheck:button:sendMessage') }} {{ $t('trials:consistencyCheck:button:sendMessage') }}
</el-button> </el-button>
</div> </div>
<!-- 添加检查 --> <!-- 添加检查 -->
<el-dialog <el-dialog v-if="studyVisible" v-dialogDrag :visible.sync="studyVisible" :close-on-click-modal="false"
v-if="studyVisible" append-to-body custom-class="base-dialog-wrapper" :width="'500px'"
v-dialogDrag :title="$t('trials:consistencyCheck:title:addStudy')">
:visible.sync="studyVisible"
:close-on-click-modal="false"
append-to-body
custom-class="base-dialog-wrapper"
:width="'500px'"
:title="$t('trials:consistencyCheck:title:addStudy')"
>
<el-form> <el-form>
<div class="base-dialog-body"> <div class="base-dialog-body">
<!-- 检查日期 --> <!-- 检查日期 -->
<el-form-item label-width="80px" :label="$t('trials:consistencyCheck:title:studyDate')"> <el-form-item label-width="80px" :label="$t('trials:consistencyCheck:title:studyDate')">
<el-date-picker <el-date-picker v-model="typeInfo.StudyDate" style="width: 100%" type="date" value-format="yyyy-MM-dd" />
v-model="typeInfo.StudyDate"
style="width: 100%"
type="date"
value-format="yyyy-MM-dd"
/>
</el-form-item> </el-form-item>
<!-- 检查类型 --> <!-- 检查类型 -->
<el-form-item label-width="80px" :label="$t('trials:consistencyCheck:title:studyModality')"> <el-form-item label-width="80px" :label="$t('trials:consistencyCheck:title:studyModality')">
<el-select <el-select v-model="typeInfo.Modality" style="width: 100%">
v-model="typeInfo.Modality" <el-option v-for="item of $d.Modality" :label="item.raw.Value" :value="item.value" :key="item.id" />
style="width: 100%"
>
<el-option v-for="item of $d.Modality" :label="item.raw.Value" :value="item.value" :key="item.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
@ -197,7 +144,7 @@ export default {
}, },
mounted() { mounted() {
this.crcMessageInfo.ParamInfoList.forEach(v => { this.crcMessageInfo.ParamInfoList.forEach(v => {
this.msgList.push({ ...v, IsJoin: true, Ischeck: false }) this.msgList.push({ ...v, IsJoin: true, IsCheck: false, Id: this.getGuid(String(Date.now())) })
}) })
this.compareStudy() this.compareStudy()
}, },
@ -217,7 +164,9 @@ export default {
this.studyVisible = false this.studyVisible = false
this.typeInfo = { this.typeInfo = {
StudyDate: null, StudyDate: null,
Modality: null Modality: null,
IsJoin: false,
IsCheck: true
} }
}, },
handleSave() { handleSave() {
@ -225,7 +174,7 @@ export default {
this.$alert(this.$t('trials:consistencyCheck:title:title2'))// '' this.$alert(this.$t('trials:consistencyCheck:title:title2'))// ''
return return
} }
this.msgList.push({ ...this.typeInfo }) this.msgList.push({ ...this.typeInfo, Id: this.getGuid(String(Date.now())) })
this.compareStudy() this.compareStudy()
this.studyVisible = false this.studyVisible = false
this.typeInfo = { this.typeInfo = {
@ -248,14 +197,20 @@ export default {
this.compareStudy() this.compareStudy()
}) })
}, },
handleReply() { async handleReply() {
if (this.msgList.length === 0) { try {
// '' if (this.msgList.length === 0) {
this.$alert(this.$t('trials:consistencyCheck:title:title4')) // ''
return this.$alert(this.$t('trials:consistencyCheck:title:title4'))
} return
this.$refs.revenusForm.validate((valid) => { }
let valid = await this.$refs.revenusForm.validate()
if (!valid) return if (!valid) return
let confirm = true
if (this.msgList.every(item => !item.IsCheck)) {
confirm = await this.$confirm(this.$t('trials:consistencyCheck:title:confirm'))
}
if (!confirm) return false
var TalkContent = '' var TalkContent = ''
// '访<br>' // '访<br>'
TalkContent += `${this.$t('trials:consistencyCheck:title:title5')}<br>` TalkContent += `${this.$t('trials:consistencyCheck:title:title5')}<br>`
@ -263,17 +218,25 @@ export default {
// `${i + 1}.${v.StudyDate}${v.Modality}<br>` // `${i + 1}.${v.StudyDate}${v.Modality}<br>`
let msg = this.$t('trials:consistencyCheck:title:title6').replace('yyyy', v.StudyDate) let msg = this.$t('trials:consistencyCheck:title:title6').replace('yyyy', v.StudyDate)
msg = msg.replace('xxx', v.Modality) msg = msg.replace('xxx', v.Modality)
TalkContent += `${i + 1}. ${msg}<br>` let message = `${i + 1}. ${msg}`
let index = this.IRCList.findIndex(item => item.Id === v.Id)
if (!!~index) {
let data = this.IRCList[index]
message += `${data.IsJoin && !data.IsCheck ? this.$t('trials:consistencyCheck:title:title8') : this.$t('trials:consistencyCheck:title:title9')}<br>`
} else {
message += `${this.$t('trials:consistencyCheck:title:title12')}<br>`
}
TalkContent += message
}) })
if (this.isLackOf) { if (this.isLackOf) {
TalkContent += '<br>' // TalkContent += '<br>'
// 'IRC<br>' // // 'IRC<br>'
TalkContent += `${this.$t('trials:consistencyCheck:title:title7')}<br>` // TalkContent += `${this.$t('trials:consistencyCheck:title:title7')}<br>`
this.IRCList.forEach((v, i) => { // this.IRCList.forEach((v, i) => {
let msg = this.$t('trials:consistencyCheck:title:title6').replace('yyyy', v.StudyDate) // let msg = this.$t('trials:consistencyCheck:title:title6').replace('yyyy', v.StudyDate)
msg = msg.replace('xxx', v.Modality) // msg = msg.replace('xxx', v.Modality)
TalkContent += `${i + 1}.${msg}${v.IsJoin && !v.IsCheck ? this.$t('trials:consistencyCheck:title:title8') : this.$t('trials:consistencyCheck:title:title9')}<br>` // TalkContent += `${i + 1}.${msg}${v.IsJoin && !v.IsCheck ? this.$t('trials:consistencyCheck:title:title8') : this.$t('trials:consistencyCheck:title:title9')}<br>`
}) // })
if (this.form.reason.length > 0) { if (this.form.reason.length > 0) {
TalkContent += '<br>' TalkContent += '<br>'
// 'IRC<br>' // 'IRC<br>'
@ -289,18 +252,21 @@ export default {
} }
console.log(TalkContent) console.log(TalkContent)
this.$emit('sendMessage', TalkContent, this.closeLoading) this.$emit('sendMessage', TalkContent, this.closeLoading)
}) } catch (err) {
console.log(err)
}
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.function{ .function {
margin-top: 10px; margin-top: 10px;
text-align: right; text-align: right;
} }
::v-deep .el-form--label-top .el-form-item__label{
::v-deep .el-form--label-top .el-form-item__label {
padding-bottom: 0; padding-bottom: 0;
padding-top: 20px; padding-top: 20px;
} }