Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2024-05-30 10:57:52 +08:00
commit 4080453b74
10 changed files with 828 additions and 698 deletions

View File

@ -53,3 +53,17 @@ export function updateRouteCheckStatus(data) {
data
})
}
// 预览
export function selectSpecialDiseasenew(id) {
return request({
url: `/manage/signnode/getList?manageRouteId=${id}`,
method: 'get'
})
}
// 左侧点击事件
export function getById(id) {
return request({
url: '/manage/signnode/getById/'+id,
method: 'get'
})
}

View File

@ -108,10 +108,10 @@
></i>
<el-button
v-if="
taskPartitionCode == 'TPC202405200003' ||
taskPartitionCode == 'TPC202405200004' ||
taskPartitionCode == 'TPC202405200005' ||
taskPartitionCode == 'TPC202405200006'
taskPartitionCode == 'MEDICATION_GUIDE' ||
taskPartitionCode == 'SPORT_GUIDE' ||
taskPartitionCode == 'DIET_GUIDE' ||
taskPartitionCode == 'NURSING_GUIDE'
"
round
style="margin-left: 10px"
@ -833,25 +833,25 @@ export default {
},
//
addresetQuerylist() {
if (this.taskPartitionCode == 'TPC202405200003') { //
if (this.taskPartitionCode == 'MEDICATION_GUIDE') { //
this.informationqueryParams = {
pageNum: 1,
pageSize: 10,
};
this.informationInfoinfo();
} else if (this.taskPartitionCode == 'TPC202405200004') {//
} else if (this.taskPartitionCode == 'SPORT_GUIDE') {//
this.SporParams = {
pageNum: 1,
pageSize: 10,
};
this.spotgetList();
} else if (this.taskPartitionCode == 'TPC202405200005') {//
} else if (this.taskPartitionCode == 'DIET_GUIDE') {//
this.DieParams = {
pageNum: 1,
pageSize: 10,
},
this.DiegetList()
} else if (this.taskPartitionCode == 'TPC202405200006') {//
} else if (this.taskPartitionCode == 'NURSING_GUIDE') {//
this.NursingParams = {
pageNum: 1,
pageSize: 10,
@ -940,17 +940,17 @@ export default {
//
knowledge(index, item) {
//
if (this.taskPartitionCode == 'TPC202405200003') {
if (this.taskPartitionCode == 'MEDICATION_GUIDE') {
this.Drugshow = true
this.informationInfoinfo()
} else if (this.taskPartitionCode == 'TPC202405200004') {//
} else if (this.taskPartitionCode == 'SPORT_GUIDE') {//
this.Sportshow = true
this.spotgetList()
} else if (this.taskPartitionCode == 'TPC202405200005') {//
} else if (this.taskPartitionCode == 'DIET_GUIDE') {//
this.Dieshow = true
this.DiegetList()
} else if (this.taskPartitionCode == 'TPC202405200006') {//
} else if (this.taskPartitionCode == 'NURSING_GUIDE') {//
this.Nursingshow = true
this.NursinggetList()
}

View File

@ -146,7 +146,7 @@
<!-- 问卷预览弹框 -->
<questionopen ref="question" :lookitem="lookitem"></questionopen>
<!-- 专病节点预览 -->
<el-dialog title="专病节点预览" :visible.sync="specialDiseaseNodeopen" width="90%">
<el-dialog title="专病节点预览" :visible.sync="specialDiseaseNodeopen" width="90%" v-if="specialDiseaseNodeopen">
<specialDiseaseNodeopen :lookitem="lookitem">
</specialDiseaseNodeopen>
</el-dialog>
@ -169,6 +169,7 @@ export default {
baseUrl: process.env.VUE_APP_BASE_API,
//list
itemindex: 0,
manageRouteId:'',
namelist: [
{
name: '专病管理路径'
@ -199,7 +200,9 @@ export default {
this.lookitem = {
routeName: item.routeName,
suitRange: item.suitRange,
id: item.specialDiseaseRoute.specialDiseaseRouteId
id: item.specialDiseaseRoute.specialDiseaseRouteId,
manageRouteId:this.manageRouteId,
}
this.specialDiseaseNodeopen = true
},
@ -250,6 +253,7 @@ export default {
this.itemindex = index
this.loading.close();
this.categorylist = res.data
this.manageRouteId=this.categorylist[0].manageRouteId
})
},
}

View File

@ -1,15 +1,13 @@
<template>
<div class="app-container">
<el-descriptions title="编辑主路径" />
<!-- <el-descriptions title="编辑主路径" /> -->
<div class="title">
<el-tag>主路径</el-tag>
<div>
{{ updata.routeName }}
</div>
<div class="select">
<span>
适用范围
</span>
<span> 适用范围 </span>
<el-select v-model="updata.suitRange" disabled>
<el-option label="在院" value="IN_THE_HOSPITAL" />
<el-option label="出院" value="DISCHARGE" />
@ -25,33 +23,59 @@
<i class="el-icon-circle-plus-outline" @click="addlist"></i>
</div>
<el-timeline>
<el-timeline-item v-for="(item, index) in lists" :key="index"
:color="listindex == index ? '#409EFF' : ''">
<el-timeline-item
v-for="(item, index) in lists"
:key="index"
:color="listindex == index ? '#409EFF' : ''"
>
<div class="top">
<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_ADMISSION" />
<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="POSTOPERATIVE" />
</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>
</div>
<div>
<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>
<el-card v-for="(uitem, uindex) in item.list" :key="uitem.id"
@click.native='bottomclickevent(uitem, index, uindex)'
:class="listindex == index && itemindex == uindex ? 'cards' : ''">
<h3 style="height: 20px;">{{ uitem.taskTypeName }}</h3>
<el-tag v-if="uitem.routeCheckStatus == 'AGREE'" class="routeCheckStatus">已审核</el-tag>
<el-tag v-else type="warning" class="routeCheckStatus">未审核</el-tag>
<p style="height: 16px;">{{ uitem.taskSubdivisionName }}</p>
<el-card
v-for="(uitem, uindex) in item.list"
:key="uitem.id"
@click.native="bottomclickevent(uitem, index, uindex, item)"
:class="listindex == index && itemindex == uindex ? 'cards' : ''"
>
<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-timeline-item>
</el-timeline>
@ -60,131 +84,211 @@
<div class="topform">
<el-form ref="form" :inline="true" :model="form" class="form">
<el-form-item label="任务类型" prop="">
<el-select v-model="form.taskType" disabled style="width:110px" @change="changeTaskType">
<el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode"
:label="item.taskTypeName" :value="item.taskTypeCode">
<el-select
v-model="form.taskType"
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-select>
</el-form-item>
<el-form-item label="任务细分" prop="">
<el-select v-model="form.taskSubdivisionName" disabled style="width:110px"
@change="changetaskSubdivision">
<el-option v-for="item in taskPartitionList" :key="item.taskPartitionCode"
:label="item.taskTypeName" :value="item.taskPartitionCode">
<el-select
v-model="form.taskSubdivision"
disabled
style="width: 110px"
@change="changetaskSubdivision"
>
<el-option
v-for="item in taskPartitionList"
:key="item.taskPartitionCode"
:label="item.taskTypeName"
:value="item.taskPartitionCode"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="">
<el-select v-model="form.taskStatusName" disabled style="width:100px">
<el-option v-for="item in taskStatusDictList" :key="item.id"
:label="item.taskStatusName" :value="item.taskStatusCode">
<el-select
v-model="form.taskStatus"
disabled
style="width: 100px"
>
<el-option
v-for="item in taskStatusDictList"
:key="item.id"
:label="item.taskStatusName"
:value="item.taskStatusCode"
>
</el-option>
</el-select>
</el-form-item>
<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 label="执行时间" prop="">
<el-time-select v-model="form.executionTime" disabled style="width:120px"
placeholder="选择时间">
<el-time-select
v-model="form.executeTime"
disabled
style="width: 120px"
placeholder="选择时间"
>
</el-time-select>
</el-form-item>
<el-form-item label="问卷库模板选择" prop=""
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'">
<el-input v-model="form.templateName" disabled style="width:200px"></el-input>
<el-form-item
label="问卷库模板选择"
prop=""
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<el-input
v-model="form.templateName"
disabled
style="width: 200px"
></el-input>
</el-form-item>
<el-form-item label="宣教库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'">
<el-input v-model="form.templateName" disabled style="width:200px"></el-input>
<el-form-item
label="宣教库模板选择"
prop=""
v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<el-input
v-model="form.templateName"
disabled
style="width: 200px"
></el-input>
</el-form-item>
</el-form>
</div>
<div class="bottomform">
<wangeditor style="width:100%;" :nodeContent="form.nodeContent" @on-nodeContent="onNodeContent"
ref="wangeditor" />
<wangeditor
style="width: 100%"
:nodeContent="form.nodeContent"
@on-nodeContent="onNodeContent"
ref="wangeditor"
/>
<div class="card">
<div class="flex">
<div class="pushMethod">
推送方式
<span>
短信
</span>
<span> 短信 </span>
</div>
<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 class="pushMethod">
<el-switch v-model="form.messagePushSign" disabled active-color="#13ce66"
active-value="1" inactive-value="0">
<el-switch
v-model="form.messagePushSign"
disabled
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch>
</div>
</div>
<div class="flextwo">
<div class="text">
短信预览
</div>
<el-input class="textarea" v-model="form.messagePreview" disabled></el-input>
<div class="text">短信预览</div>
<el-input
class="textarea"
v-model="form.messagePreview"
disabled
></el-input>
</div>
</div>
<div class="card">
<div class="flex">
<div class="pushMethod">
推送方式
<span>
公众号
</span>
<span> 公众号 </span>
</div>
<div class="pushMethod">
模板
<span>
<el-input v-model="form.officialTemplateName" disabled
style="width:200px"></el-input>
<el-input
v-model="form.officialTemplateName"
disabled
style="width: 200px"
></el-input>
</span>
</div>
<div class="pushMethod">
<el-switch v-model="form.officialPushSign" disabled active-color="#13ce66"
active-value="1" inactive-value="0">
<el-switch
v-model="form.officialPushSign"
disabled
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch>
</div>
</div>
<div class="flextwo">
<div class="text">
提醒内容
</div>
<el-input v-model="form.officialRemindContent" disabled class="textarea"></el-input>
<div class="text">提醒内容</div>
<el-input
v-model="form.officialRemindContent"
disabled
class="textarea"
></el-input>
</div>
</div>
<div class="card">
<div class="flex">
<div class="pushMethod">
推送方式
<span>
小程序
</span>
<span> 小程序 </span>
</div>
<div class="pushMethod">
模板
<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>
</div>
<div class="pushMethod">
<el-switch v-model="form.appletPushSign" disabled active-color="#13ce66"
active-value="1" inactive-value="0">
<el-switch
v-model="form.appletPushSign"
disabled
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch>
</div>
</div>
<div class="flextwo">
<div class="text">
提醒内容
</div>
<el-input v-model="form.appletRemindContent" disabled class="textarea"></el-input>
<div class="text">提醒内容</div>
<el-input
v-model="form.appletRemindContent"
disabled
class="textarea"
></el-input>
</div>
<div class="flextwo">
<div class="text">
提示说明
</div>
<el-input v-model="form.appletPromptDescription" disabled class="textarea"></el-input>
<div class="text">提示说明</div>
<el-input
v-model="form.appletPromptDescription"
disabled
class="textarea"
></el-input>
</div>
</div>
<!-- <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 miniProgram from '@/views/system/components/miniProgram.vue'
import {
selectTaskTypeList, taskPartitionList, taskStatusDictList, specialDiseaseNode, selectSpecialDisease, updateRouteCheckStatus
selectTaskTypeList, taskPartitionList, taskStatusDictList, specialDiseaseNode, selectSpecialDiseasenew, updateRouteCheckStatus, getById
} from '@/api/system/specialDiseaseNode'
export default {
components: { wangeditor, question, propaganda, message, officialAccount, miniProgram },
@ -287,7 +391,7 @@ export default {
totalNumber: 0,
agreeNumber: 0,
updata: {
specialDiseaseRouteId: '',
manageRouteId: '',
suitRange: '',
routeName: '',
specialDiseaseNodeList: [],
@ -326,14 +430,14 @@ export default {
},
created() {
this.updata = this.lookitem
this.updata.specialDiseaseRouteId = this.lookitem.id
this.updata.manageRouteId = this.lookitem.manageRouteId
this.taskinfo();
},
beforeDestroy() { },
watch: {
lookitem(newValue, oldValue) {
this.updata = newValue;
this.updata.specialDiseaseRouteId = newValue.id
this.updata.manageRouteId = newValue.manageRouteId
this.taskinfo();
}
},
@ -341,19 +445,21 @@ export default {
},
methods: {
info() {
selectSpecialDisease(this.updata.specialDiseaseRouteId).then(res => {
selectSpecialDiseasenew(this.updata.manageRouteId).then(res => {
this.agreeNumber = res.data.agreeNumber
this.totalNumber = res.data.totalNumber
res.data.specialDiseaseNodeList.forEach(e => {
res.data.forEach(e => {
e.messagePushSign = '' + e.messagePushSign
e.officialPushSign = '' + e.officialPushSign
e.appletPushSign = '' + e.appletPushSign
})
this.lists = this.handleData(res.data.specialDiseaseNodeList, 'routeNodeDay', 'routeNodeName')
this.form = this.lists[0].list[0]
this.lists = this.handleData(res.data, 'routeNodeDay', 'routeNodeName')
getById(this.lists[0].list[0].id).then(res => {
this.form = res.data
if (this.form.taskType) {
this.changeTaskType(this.form.taskType, this.form.taskSubdivision)
}
})
this.$refs.wangeditor.disable();
})
},
@ -443,12 +549,19 @@ export default {
this.form.templateId = item.templateId
this.form.templateName = item.templateName
},
bottomclickevent(uitem, index, uindex) {
this.$refs.wangeditor.emit()
this.form = uitem
bottomclickevent(uitem, index, uindex, item) {
console.log(uitem, item)
if (uitem.id) {
getById(uitem.id).then(res => {
this.form = res.data
if (this.form.taskType) {
this.changeTaskType(this.form.taskType, this.form.taskSubdivision)
}
})
}
this.$refs.wangeditor.emit()
// this.form = uitem
this.listindex = index
this.itemindex = uindex
},
@ -595,7 +708,7 @@ export default {
::v-deep .el-input__inner {
color: black !important;
background-color: #fff !important;
cursor: default !important
cursor: default !important;
}
.routeCheckStatus {
@ -627,7 +740,7 @@ export default {
.text {
font-size: 13px;
color: #64666A;
color: #64666a;
}
.textarea {
@ -665,7 +778,7 @@ export default {
height: 30px;
line-height: 30px;
font-size: 13px;
color: #64666A;
color: #64666a;
::v-deep .el-input__inner {
color: black;
@ -720,7 +833,6 @@ export default {
}
}
.list {
margin: 20px auto;
width: 100%;
@ -760,8 +872,8 @@ export default {
}
.cards {
border: 1px solid #409EFF;
border-left: 5px solid #409EFF;
border: 1px solid #409eff;
border-left: 5px solid #409eff;
}
.top {

View File

@ -3,7 +3,7 @@
<div class="leftheader">
<div class="time">
<el-date-picker v-model="visitDate" type="daterange" range-separator="" start-placeholder="开始日期"
value-format="yyyy-MM-dd" :picker-options="pickerOptions" end-placeholder="结束日期">
value-format="yyyy-MM-dd" :picker-options="pickerOptions" end-placeholder="结束日期" style="width:95%">
</el-date-picker>
</div>
<div class="list">

View File

@ -208,12 +208,12 @@ export default {
{ required: true, message: '请选择服务包', trigger: 'change' }
],
devices: {
snCode: [
{ required: true, message: '请输入SN码', trigger: 'change' }
],
hardwareType: [
{ required: true, message: '请选择硬件类型', trigger: 'change' }
],
// snCode: [
// { required: true, message: 'SN', trigger: 'change' }
// ],
// hardwareType: [
// { required: true, message: '', trigger: 'change' }
// ],
},
},
upload: {

View File

@ -193,12 +193,12 @@ export default {
{ required: true, message: '请选择专病管理路径', trigger: 'change' }
],
devices: {
snCode: [
{ required: true, message: '请输入SN码', trigger: 'change' }
],
hardwareType: [
{ required: true, message: '请选择硬件类型', trigger: 'change' }
],
// snCode: [
// { required: true, message: 'SN', trigger: 'change' }
// ],
// hardwareType: [
// { required: true, message: '', trigger: 'change' }
// ],
},
},
upload: {

View File

@ -872,10 +872,10 @@
/>
</el-form-item>
<el-form-item label="手术记录" prop="surgicalRecord">
<editor v-model="formHospital.surgicalRecord" :min-height="192" />
<editor v-model="formHospital.surgicalRecord" :min-height="192" style="width:838px"/>
</el-form-item>
<el-form-item label="病历内容" prop="inHospitalInfo">
<editor v-model="formHospital.inHospitalInfo" :min-height="192" />
<editor v-model="formHospital.inHospitalInfo" :min-height="192" style="width:838px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">

View File

@ -661,10 +661,10 @@
prop="surgicalRecord"
v-if="form.visitMethod == 'BE_IN_HOSPITAL'"
>
<editor v-model="form.surgicalRecord" :min-height="192" />
<editor v-model="form.surgicalRecord" :min-height="192" style="width:838px"/>
</el-form-item>
<el-form-item label="病历内容">
<editor v-model="form.inHospitalInfo" :min-height="192" />
<editor v-model="form.inHospitalInfo" :min-height="192" style="width:838px"/>
</el-form-item>
<!-- <el-form-item label="患者来源" prop="patientSource">
<el-select v-model="form.patientSource" placeholder="请选择患者来源" clearable style="width:200px">
@ -922,13 +922,13 @@
/>
</el-form-item>
<el-form-item label="手术记录" prop="surgicalRecord">
<editor v-model="formHospital.surgicalRecord" :min-height="192" />
<editor v-model="formHospital.surgicalRecord" :min-height="192" style="width:838px"/>
</el-form-item>
<el-form-item label="病历内容" prop="inHospitalInfo">
<editor v-model="formHospital.inHospitalInfo" :min-height="192" />
<editor v-model="formHospital.inHospitalInfo" :min-height="192" style="width:838px"/>
</el-form-item>
<el-form-item label="出院病历" prop="outHospitalInfo">
<editor v-model="formHospital.outHospitalInfo" :min-height="192" />
<editor v-model="formHospital.outHospitalInfo" :min-height="192" style="width:838px"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">

View File

@ -301,13 +301,13 @@
<el-input v-model="form.surgicalName" placeholder="请输入手术名称" style="width:200px" />
</el-form-item>
<el-form-item label="手术记录" prop="surgicalRecord" v-if="form.visitMethod == 'BE_IN_HOSPITAL'">
<editor v-model="form.surgicalRecord" :min-height="192" />
<editor v-model="form.surgicalRecord" :min-height="192" style="width:838px"/>
</el-form-item>
<el-form-item label="入院病历">
<editor v-model="form.inHospitalInfo" :min-height="192" />
<editor v-model="form.inHospitalInfo" :min-height="192" style="width:838px"/>
</el-form-item>
<el-form-item label="出院病历" v-if="form.visitMethod == 'BE_IN_HOSPITAL'">
<editor v-model="form.outHospitalInfo" :min-height="192" />
<editor v-model="form.outHospitalInfo" :min-height="192" style="width:838px"/>
</el-form-item>
<!-- <el-form-item label="患者来源" prop="patientSource">
<el-select v-model="form.patientSource" placeholder="请选择患者来源" clearable style="width:200px">