患者信息详情 预览

This commit is contained in:
shidongli 2024-05-28 15:03:36 +08:00
parent 32d8f62a1a
commit 15c56000b0
2 changed files with 771 additions and 654 deletions

View File

@ -60,3 +60,10 @@ export function selectSpecialDiseasenew(id) {
method: 'get' method: 'get'
}) })
} }
// 左侧点击事件
export function getById(id) {
return request({
url: '/manage/signnode/getById/'+id,
method: 'get'
})
}

View File

@ -7,9 +7,7 @@
{{ updata.routeName }} {{ updata.routeName }}
</div> </div>
<div class="select"> <div class="select">
<span> <span> 适用范围 </span>
适用范围
</span>
<el-select v-model="updata.suitRange" disabled> <el-select v-model="updata.suitRange" disabled>
<el-option label="在院" value="IN_THE_HOSPITAL" /> <el-option label="在院" value="IN_THE_HOSPITAL" />
<el-option label="出院" value="DISCHARGE" /> <el-option label="出院" value="DISCHARGE" />
@ -25,33 +23,59 @@
<i class="el-icon-circle-plus-outline" @click="addlist"></i> <i class="el-icon-circle-plus-outline" @click="addlist"></i>
</div> </div>
<el-timeline> <el-timeline>
<el-timeline-item v-for="(item, index) in lists" :key="index" <el-timeline-item
:color="listindex == index ? '#409EFF' : ''"> v-for="(item, index) in lists"
:key="index"
:color="listindex == index ? '#409EFF' : ''"
>
<div class="top"> <div class="top">
<div class="toptop"> <div class="toptop">
<el-select v-model="item.routeNodeName" disabled style="width:87px"> <el-select
v-model="item.routeNodeName"
disabled
style="width: 87px"
>
<el-option label="出院后" value="AFTER_DISCHARGE" /> <el-option label="出院后" value="AFTER_DISCHARGE" />
<el-option label="入院后" value="AFTER_ADMISSION" /> <el-option label="入院后" value="AFTER_ADMISSION" />
<el-option label="就诊后" value="AFTER_CONSULTATION" /> <el-option label="就诊后" value="AFTER_CONSULTATION" />
<el-option label="就诊/出院后" value="AFTER_VISIT_DISCHARGE" /> <el-option
label="就诊/出院后"
value="AFTER_VISIT_DISCHARGE"
/>
<el-option label="术前" value="PREOPERATIVE" /> <el-option label="术前" value="PREOPERATIVE" />
<el-option label="术后" value="POSTOPERATIVE" /> <el-option label="术后" value="POSTOPERATIVE" />
</el-select> </el-select>
<el-input v-model="item.routeNodeDay" disabled style="width: 50px;"></el-input> <el-input
v-model="item.routeNodeDay"
disabled
style="width: 50px"
></el-input>
<span></span> <span></span>
</div> </div>
<div> <div>
<i class="el-icon-delete" @click="delitem(item, index)"></i> <i class="el-icon-delete" @click="delitem(item, index)"></i>
<i class="el-icon-circle-plus-outline" @click="additem(item)"></i> <i
class="el-icon-circle-plus-outline"
@click="additem(item)"
></i>
</div> </div>
</div> </div>
<el-card v-for="(uitem, uindex) in item.list" :key="uitem.id" <el-card
@click.native='bottomclickevent(uitem, index, uindex)' v-for="(uitem, uindex) in item.list"
:class="listindex == index && itemindex == uindex ? 'cards' : ''"> :key="uitem.id"
<h3 style="height: 20px;">{{ uitem.taskTypeName }}</h3> @click.native="bottomclickevent(uitem, index, uindex, item)"
<el-tag v-if="uitem.nodeExecuteStatus == 'EXECUTED'" class="routeCheckStatus">已执行</el-tag> :class="listindex == index && itemindex == uindex ? 'cards' : ''"
<el-tag v-else type="warning" class="routeCheckStatus">未执行</el-tag> >
<p style="height: 16px;">{{ uitem.taskSubdivisionName }}</p> <h3 style="height: 20px">{{ uitem.taskTypeName }}</h3>
<el-tag
v-if="uitem.nodeExecuteStatus == 'EXECUTED'"
class="routeCheckStatus"
>已执行</el-tag
>
<el-tag v-else type="warning" class="routeCheckStatus"
>未执行</el-tag
>
<p style="height: 16px">{{ uitem.taskPartitionDictName }}</p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
</el-timeline> </el-timeline>
@ -60,131 +84,211 @@
<div class="topform"> <div class="topform">
<el-form ref="form" :inline="true" :model="form" class="form"> <el-form ref="form" :inline="true" :model="form" class="form">
<el-form-item label="任务类型" prop=""> <el-form-item label="任务类型" prop="">
<el-select v-model="form.taskType" disabled style="width:110px" @change="changeTaskType"> <el-select
<el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode" v-model="form.taskType"
:label="item.taskTypeName" :value="item.taskTypeCode"> disabled
style="width: 110px"
@change="changeTaskType"
>
<el-option
v-for="item in selectTaskTypeList"
:key="item.taskTypeCode"
:label="item.taskTypeName"
:value="item.taskTypeCode"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务细分" prop=""> <el-form-item label="任务细分" prop="">
<el-select v-model="form.taskSubdivisionName" disabled style="width:110px" <el-select
@change="changetaskSubdivision"> v-model="form.taskSubdivision"
<el-option v-for="item in taskPartitionList" :key="item.taskPartitionCode" disabled
:label="item.taskTypeName" :value="item.taskPartitionCode"> style="width: 110px"
@change="changetaskSubdivision"
>
<el-option
v-for="item in taskPartitionList"
:key="item.taskPartitionCode"
:label="item.taskTypeName"
:value="item.taskPartitionCode"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="任务状态" prop=""> <el-form-item label="任务状态" prop="">
<el-select v-model="form.taskStatusName" disabled style="width:100px"> <el-select
<el-option v-for="item in taskStatusDictList" :key="item.id" v-model="form.taskStatus"
:label="item.taskStatusName" :value="item.taskStatusCode"> disabled
style="width: 100px"
>
<el-option
v-for="item in taskStatusDictList"
:key="item.id"
:label="item.taskStatusName"
:value="item.taskStatusCode"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="二级分类描述" prop=""> <el-form-item label="二级分类描述" prop="">
<el-input v-model="form.secondClassifyDescribe" disabled style="width:100px"></el-input> <el-input
v-model="form.secondClassifyDescribe"
disabled
style="width: 100px"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="执行时间" prop=""> <el-form-item label="执行时间" prop="">
<el-time-select v-model="form.executionTime" disabled style="width:120px" <el-time-select
placeholder="选择时间"> v-model="form.executeTime"
disabled
style="width: 120px"
placeholder="选择时间"
>
</el-time-select> </el-time-select>
</el-form-item> </el-form-item>
<el-form-item label="问卷库模板选择" prop="" <el-form-item
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"> label="问卷库模板选择"
<el-input v-model="form.templateName" disabled style="width:200px"></el-input> prop=""
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<el-input
v-model="form.templateName"
disabled
style="width: 200px"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="宣教库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"> <el-form-item
<el-input v-model="form.templateName" disabled style="width:200px"></el-input> label="宣教库模板选择"
prop=""
v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<el-input
v-model="form.templateName"
disabled
style="width: 200px"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="bottomform"> <div class="bottomform">
<wangeditor style="width:100%;" :nodeContent="form.nodeContent" @on-nodeContent="onNodeContent" <wangeditor
ref="wangeditor" /> style="width: 100%"
:nodeContent="form.nodeContent"
@on-nodeContent="onNodeContent"
ref="wangeditor"
/>
<div class="card"> <div class="card">
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span> 短信 </span>
短信
</span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<el-input v-model="form.messageTemplateName" disabled style="width:200px"></el-input> <el-input
v-model="form.messageTemplateName"
disabled
style="width: 200px"
></el-input>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.messagePushSign" disabled active-color="#13ce66" <el-switch
active-value="1" inactive-value="0"> v-model="form.messagePushSign"
disabled
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">短信预览</div>
短信预览 <el-input
</div> class="textarea"
<el-input class="textarea" v-model="form.messagePreview" disabled></el-input> v-model="form.messagePreview"
disabled
></el-input>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span> 公众号 </span>
公众号
</span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<el-input v-model="form.officialTemplateName" disabled <el-input
style="width:200px"></el-input> v-model="form.officialTemplateName"
disabled
style="width: 200px"
></el-input>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.officialPushSign" disabled active-color="#13ce66" <el-switch
active-value="1" inactive-value="0"> v-model="form.officialPushSign"
disabled
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">提醒内容</div>
提醒内容 <el-input
</div> v-model="form.officialRemindContent"
<el-input v-model="form.officialRemindContent" disabled class="textarea"></el-input> disabled
class="textarea"
></el-input>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span> 小程序 </span>
小程序
</span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<el-input v-model="form.appletTemplateName" disabled style="width:200px"></el-input> <el-input
v-model="form.appletTemplateName"
disabled
style="width: 200px"
></el-input>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch v-model="form.appletPushSign" disabled active-color="#13ce66" <el-switch
active-value="1" inactive-value="0"> v-model="form.appletPushSign"
disabled
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">提醒内容</div>
提醒内容 <el-input
</div> v-model="form.appletRemindContent"
<el-input v-model="form.appletRemindContent" disabled class="textarea"></el-input> disabled
class="textarea"
></el-input>
</div> </div>
<div class="flextwo"> <div class="flextwo">
<div class="text"> <div class="text">提示说明</div>
提示说明 <el-input
</div> v-model="form.appletPromptDescription"
<el-input v-model="form.appletPromptDescription" disabled class="textarea"></el-input> disabled
class="textarea"
></el-input>
</div> </div>
</div> </div>
<!-- <div class="card" style="height: 250px;"> <!-- <div class="card" style="height: 250px;">
@ -266,7 +370,7 @@ import propaganda from '@/views/system/components/propaganda.vue'
import officialAccount from '@/views/system/components/officialAccount.vue' import officialAccount from '@/views/system/components/officialAccount.vue'
import miniProgram from '@/views/system/components/miniProgram.vue' import miniProgram from '@/views/system/components/miniProgram.vue'
import { import {
selectTaskTypeList, taskPartitionList, taskStatusDictList, specialDiseaseNode, selectSpecialDiseasenew, updateRouteCheckStatus selectTaskTypeList, taskPartitionList, taskStatusDictList, specialDiseaseNode, selectSpecialDiseasenew, updateRouteCheckStatus, getById
} from '@/api/system/specialDiseaseNode' } from '@/api/system/specialDiseaseNode'
export default { export default {
components: { wangeditor, question, propaganda, message, officialAccount, miniProgram }, components: { wangeditor, question, propaganda, message, officialAccount, miniProgram },
@ -350,10 +454,12 @@ export default {
e.appletPushSign = '' + e.appletPushSign e.appletPushSign = '' + e.appletPushSign
}) })
this.lists = this.handleData(res.data, 'routeNodeDay', 'routeNodeName') this.lists = this.handleData(res.data, 'routeNodeDay', 'routeNodeName')
this.form = this.lists[0].list[0] getById(this.lists[0].list[0].id).then(res => {
this.form = res.data
if (this.form.taskType) { if (this.form.taskType) {
this.changeTaskType(this.form.taskType, this.form.taskSubdivision) this.changeTaskType(this.form.taskType, this.form.taskSubdivision)
} }
})
this.$refs.wangeditor.disable(); this.$refs.wangeditor.disable();
}) })
}, },
@ -443,12 +549,17 @@ export default {
this.form.templateId = item.templateId this.form.templateId = item.templateId
this.form.templateName = item.templateName this.form.templateName = item.templateName
}, },
bottomclickevent(uitem, index, uindex) { bottomclickevent(uitem, index, uindex, item) {
this.$refs.wangeditor.emit() console.log(uitem, item)
this.form = uitem getById(uitem.id).then(res => {
this.form = res.data
if (this.form.taskType) { if (this.form.taskType) {
this.changeTaskType(this.form.taskType, this.form.taskSubdivision) this.changeTaskType(this.form.taskType, this.form.taskSubdivision)
} }
})
this.$refs.wangeditor.emit()
// this.form = uitem
this.listindex = index this.listindex = index
this.itemindex = uindex this.itemindex = uindex
}, },
@ -595,7 +706,7 @@ export default {
::v-deep .el-input__inner { ::v-deep .el-input__inner {
color: black !important; color: black !important;
background-color: #fff !important; background-color: #fff !important;
cursor: default !important cursor: default !important;
} }
.routeCheckStatus { .routeCheckStatus {
@ -627,7 +738,7 @@ export default {
.text { .text {
font-size: 13px; font-size: 13px;
color: #64666A; color: #64666a;
} }
.textarea { .textarea {
@ -665,7 +776,7 @@ export default {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
font-size: 13px; font-size: 13px;
color: #64666A; color: #64666a;
::v-deep .el-input__inner { ::v-deep .el-input__inner {
color: black; color: black;
@ -720,7 +831,6 @@ export default {
} }
} }
.list { .list {
margin: 20px auto; margin: 20px auto;
width: 100%; width: 100%;
@ -760,8 +870,8 @@ export default {
} }
.cards { .cards {
border: 1px solid #409EFF; border: 1px solid #409eff;
border-left: 5px solid #409EFF; border-left: 5px solid #409eff;
} }
.top { .top {