xg
This commit is contained in:
parent
dce69c73df
commit
e109b57adc
@ -9,8 +9,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightheader" v-if="categorylist.length > 0">
|
<div class="rightheader" v-if="categorylist.length > 0">
|
||||||
<div class="richtext">
|
<div class="richtext" v-if="itemindex == 1">
|
||||||
<div class="text" style="font-size: 20px;"> 任务:</div>
|
<div class="text" style="font-size: 20px;"> 手动创建任务:</div>
|
||||||
<div v-for="item in categorylist" :key="item.manageRouteId" style="margin: 0 auto 30px;">
|
<div v-for="item in categorylist" :key="item.manageRouteId" style="margin: 0 auto 30px;">
|
||||||
<div class="texts">
|
<div class="texts">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
@ -76,6 +76,76 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="richtext">
|
||||||
|
<div class="text" style="font-size: 20px;">专病管理路径:</div>
|
||||||
|
<div v-for="item in categorylist" :key="item.manageRouteId" style="margin: 0 auto 30px;">
|
||||||
|
<div class="texts">
|
||||||
|
<div class="text">
|
||||||
|
路径名称: {{ item.routeName }}
|
||||||
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
适用范围: {{ item.suitRange == 'IN_THE_HOSPITAL' ? '在院' : '' }}
|
||||||
|
{{ item.suitRange == 'DISCHARGE' ? '出院' : '' }}
|
||||||
|
{{ item.suitRange == 'OUTPATIENT_SERVICE' ? '门诊' : '' }}
|
||||||
|
{{ item.suitRange == 'OUTPATIENT_SERVICE_DISCHARGE' ? '门诊+出院' : "" }}
|
||||||
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
路径详情: <el-button @click="lookspecialDiseaseNode" style="padding: 6px 10px;">预览</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-for="uitem in item.nodeList" :key="uitem.id">
|
||||||
|
<div class="texts">
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;">
|
||||||
|
任务内容:{{ uitem.taskType == 'PHONE_OUTBOUND' ? "电话外呼" : "" }}
|
||||||
|
{{ uitem.taskType == 'QUESTIONNAIRE_SCALE' ? "问卷量表" : "" }}
|
||||||
|
{{ uitem.taskType == 'PROPAGANDA_ARTICLE' ? "宣教文案" : "" }}
|
||||||
|
{{ uitem.taskType == 'TEXT_REMIND' ? "文字提醒" : "" }}
|
||||||
|
{{ uitem.taskType == 'ARTIFICIAL_FOLLOW_UP' ? "人工随访" : "" }}
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'PHONE_OUTBOUND'">
|
||||||
|
话术模板:{{ uitem.phoneTemplateName }}
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'">
|
||||||
|
问卷模板:{{ uitem.questionnaireName }}
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'">
|
||||||
|
问卷有效期:{{ uitem.questionExpirationDate }}天
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'PROPAGANDA_ARTICLE'">
|
||||||
|
宣教模板:{{ uitem.propagandaTitle }}
|
||||||
|
</div>
|
||||||
|
<div class="textarea" v-if="uitem.taskType == 'TEXT_REMIND'">
|
||||||
|
提醒内容:{{ uitem.textRemindContent }}
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'ARTIFICIAL_FOLLOW_UP'">
|
||||||
|
人工随访模板:{{ uitem.questionnaireName }}
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'ARTIFICIAL_FOLLOW_UP'">
|
||||||
|
人工随访详情:<el-button @click="lookquestion(uitem)" style="padding: 6px 10px;">预览</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'">
|
||||||
|
问卷模板详情:<el-button @click="lookquestion(uitem)" style="padding: 6px 10px;">预览</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'PROPAGANDA_ARTICLE'">
|
||||||
|
宣教模板详情:<el-button @click="lookpropaganda(uitem)"
|
||||||
|
style="padding: 6px 10px;">预览</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="text" style="font-size:14px;font-weight: 400;"
|
||||||
|
v-if="uitem.taskType == 'PHONE_OUTBOUND'">
|
||||||
|
话术模板详情:<el-button @click="lookphone(uitem)" style="padding: 6px 10px;">预览</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-empty description="暂无" style="width: 100%;" v-else></el-empty>
|
<el-empty description="暂无" style="width: 100%;" v-else></el-empty>
|
||||||
<!-- 话术预览弹框 -->
|
<!-- 话术预览弹框 -->
|
||||||
@ -101,6 +171,11 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
<!-- 问卷预览弹框 -->
|
<!-- 问卷预览弹框 -->
|
||||||
<questionopen ref="question" :lookitem="lookitem"></questionopen>
|
<questionopen ref="question" :lookitem="lookitem"></questionopen>
|
||||||
|
<!-- 专病节点预览 -->
|
||||||
|
<el-dialog title="专病节点预览" :visible.sync="specialDiseaseNodeopen" width="90%">
|
||||||
|
<specialDiseaseNodeopen :lookitem="lookitem">
|
||||||
|
</specialDiseaseNodeopen>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -108,9 +183,11 @@ import {
|
|||||||
getList
|
getList
|
||||||
} from '@/api/manage/healthEducation'
|
} from '@/api/manage/healthEducation'
|
||||||
import questionopen from './questionopen.vue';
|
import questionopen from './questionopen.vue';
|
||||||
|
import specialDiseaseNodeopen from './specialDiseaseNodeopen.vue';
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
questionopen,
|
questionopen,
|
||||||
|
specialDiseaseNodeopen
|
||||||
},
|
},
|
||||||
name: "RehabilitationPlanandRecords",
|
name: "RehabilitationPlanandRecords",
|
||||||
data() {
|
data() {
|
||||||
@ -120,27 +197,37 @@ export default {
|
|||||||
itemindex: 0,
|
itemindex: 0,
|
||||||
namelist: [
|
namelist: [
|
||||||
{
|
{
|
||||||
name: '手动创建任务'
|
name: '专病管理路径'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '专病管理路径'
|
name: '手动创建任务'
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
categorylist: [],
|
categorylist: [],
|
||||||
query: {
|
query: {
|
||||||
patientId: '',
|
patientId: '',
|
||||||
routeCheckStatus: 'AGREE',
|
routeCheckStatus: 'AGREE',
|
||||||
taskCreateType: 'MANUAL_CREATE'
|
taskCreateType: 'MANUAL_MATCHE'
|
||||||
},
|
},
|
||||||
lookitem: {},
|
lookitem: {},
|
||||||
phoneopen: false,
|
phoneopen: false,
|
||||||
propagandaopen: false,
|
propagandaopen: false,
|
||||||
|
specialDiseaseNodeopen: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.info();
|
this.info();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
//查看专病节点
|
||||||
|
lookspecialDiseaseNode() {
|
||||||
|
this.lookitem = {
|
||||||
|
routeName: '路径名称',
|
||||||
|
suitRange: 'IN_THE_HOSPITAL',
|
||||||
|
id: 1
|
||||||
|
}
|
||||||
|
this.specialDiseaseNodeopen = true
|
||||||
|
},
|
||||||
//查看宣教模板
|
//查看宣教模板
|
||||||
lookpropaganda(item) {
|
lookpropaganda(item) {
|
||||||
this.lookitem = item.detailInfo
|
this.lookitem = item.detailInfo
|
||||||
@ -164,7 +251,7 @@ export default {
|
|||||||
},
|
},
|
||||||
clicknameitem(item, index) {
|
clicknameitem(item, index) {
|
||||||
this.itemindex = index
|
this.itemindex = index
|
||||||
if (index == 0) {
|
if (index == 1) {
|
||||||
this.query.taskCreateType = 'MANUAL_CREATE'
|
this.query.taskCreateType = 'MANUAL_CREATE'
|
||||||
} else {
|
} else {
|
||||||
this.query.taskCreateType = 'MANUAL_MATCHE'
|
this.query.taskCreateType = 'MANUAL_MATCHE'
|
||||||
|
|||||||
@ -92,7 +92,6 @@ export default {
|
|||||||
// 日期填空题
|
// 日期填空题
|
||||||
timepicker(e, index) {
|
timepicker(e, index) {
|
||||||
this.questiondata.questionSubjectList[index].fillBlanksAnswer = e
|
this.questiondata.questionSubjectList[index].fillBlanksAnswer = e
|
||||||
|
|
||||||
},
|
},
|
||||||
// 复选框
|
// 复选框
|
||||||
radioChangecheck(e, item, index, aindex) {
|
radioChangecheck(e, item, index, aindex) {
|
||||||
|
|||||||
789
src/views/manage/components/specialDiseaseNodeopen.vue
Normal file
789
src/views/manage/components/specialDiseaseNodeopen.vue
Normal file
@ -0,0 +1,789 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-descriptions title="编辑主路径" />
|
||||||
|
<div class="title">
|
||||||
|
<el-tag>主路径</el-tag>
|
||||||
|
<div>
|
||||||
|
{{ updata.routeName }}
|
||||||
|
</div>
|
||||||
|
<div class="select">
|
||||||
|
<span>
|
||||||
|
适用范围
|
||||||
|
</span>
|
||||||
|
<el-select v-model="updata.suitRange" disabled>
|
||||||
|
<el-option label="在院" value="IN_THE_HOSPITAL" />
|
||||||
|
<el-option label="出院" value="DISCHARGE" />
|
||||||
|
<el-option label="门诊" value="OUTPATIENT_SERVICE" />
|
||||||
|
<el-option label="门诊+出院" value="OUTPATIENT_SERVICE_DISCHARGE" />
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="list">
|
||||||
|
<div class="timelist">
|
||||||
|
<div class="timetitle">
|
||||||
|
管理路径节点({{ lists.length }})
|
||||||
|
<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' : ''">
|
||||||
|
<div class="top">
|
||||||
|
<div class="toptop">
|
||||||
|
<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="PREOPERATIVE" />
|
||||||
|
<el-option label="术后" value="POSTOPERATIVE" />
|
||||||
|
</el-select>
|
||||||
|
<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>
|
||||||
|
</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.taskType }}</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.taskSubdivision }}</p>
|
||||||
|
</el-card>
|
||||||
|
</el-timeline-item>
|
||||||
|
</el-timeline>
|
||||||
|
</div>
|
||||||
|
<div class="texts">
|
||||||
|
<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.id" :label="item.taskTypeName"
|
||||||
|
:value="item.taskTypeName">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="任务细分" prop="">
|
||||||
|
<el-select v-model="form.taskSubdivision" disabled style="width:110px"
|
||||||
|
@change="changetaskSubdivision">
|
||||||
|
<el-option v-for="item in taskPartitionList" :key="item.id" :label="item.taskTypeName"
|
||||||
|
:value="item.taskTypeName">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="任务状态" prop="">
|
||||||
|
<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.taskStatusName">
|
||||||
|
</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-form-item>
|
||||||
|
<el-form-item label="执行时间" prop="">
|
||||||
|
<el-time-select v-model="form.executionTime" 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>
|
||||||
|
<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" />
|
||||||
|
<div class="card">
|
||||||
|
<div class="flex">
|
||||||
|
<div class="pushMethod">
|
||||||
|
推送方式:
|
||||||
|
<span>
|
||||||
|
短信
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="pushMethod">
|
||||||
|
模板:
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flextwo">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div class="pushMethod">
|
||||||
|
模板:
|
||||||
|
<span>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flextwo">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div class="pushMethod">
|
||||||
|
模板:
|
||||||
|
<span>
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flextwo">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="card" style="height: 250px;">
|
||||||
|
<div class="flex">
|
||||||
|
<div class="pushMethod">
|
||||||
|
推送方式:
|
||||||
|
<span>
|
||||||
|
AI电话
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="pushMethod">
|
||||||
|
模板:
|
||||||
|
<span>
|
||||||
|
<el-select v-model="value" style="width:200px;">
|
||||||
|
<el-option v-for="item in taskStatusDictList" :key="item.id" style="color:black"
|
||||||
|
:label="item.taskStatusName" :value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="pushMethod">
|
||||||
|
<el-switch v-model="form.value" active-color="#13ce66" active-value="1"
|
||||||
|
inactive-value="0">
|
||||||
|
</el-switch>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flextwo">
|
||||||
|
<div class="text">
|
||||||
|
机构名称:
|
||||||
|
</div>
|
||||||
|
<div class="text">
|
||||||
|
我是
|
||||||
|
</div>
|
||||||
|
<el-input v-model="form.input" placeholder="" style="width:150px;padding:0 10px"></el-input>
|
||||||
|
<div class="text">
|
||||||
|
的工作人员
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flextwo">
|
||||||
|
<div class="text">
|
||||||
|
重播次数:
|
||||||
|
</div>
|
||||||
|
<el-input v-model="form.input" placeholder="" style="width:200px;"></el-input>
|
||||||
|
<div class="text" style="padding-left: 100px;">
|
||||||
|
时间间隔:
|
||||||
|
</div>
|
||||||
|
<el-input v-model="form.input" placeholder="" style="width:200px;"></el-input>
|
||||||
|
</div>
|
||||||
|
<div class="flextwo">
|
||||||
|
<div class="text">
|
||||||
|
短信提醒:
|
||||||
|
</div>
|
||||||
|
<el-select v-model="value" style="width:200px;">
|
||||||
|
<el-option v-for="item in taskStatusDictList" :key="item.id" style="color:black"
|
||||||
|
:label="item.taskStatusName" :value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<div class="text" style="padding-left: 100px;">
|
||||||
|
短信模板:
|
||||||
|
</div>
|
||||||
|
<el-select v-model="value" style="width:200px;">
|
||||||
|
<el-option v-for="item in taskStatusDictList" :key="item.id" style="color:black"
|
||||||
|
:label="item.taskStatusName" :value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wangeditor from './wangEditor.vue'
|
||||||
|
import question from '@/views/system/components/question.vue'
|
||||||
|
import message from '@/views/system/components/message.vue'
|
||||||
|
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
|
||||||
|
} from '@/api/system/specialDiseaseNode'
|
||||||
|
export default {
|
||||||
|
components: { wangeditor, question, propaganda, message, officialAccount, miniProgram },
|
||||||
|
props: ['lookitem'],
|
||||||
|
name: "specialDiseaseNodeopen",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
routeform: {
|
||||||
|
routeCheckStatus: null,
|
||||||
|
routeCheckRemark: "",
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
routeCheckStatus: [
|
||||||
|
{ required: true, message: '请选择节点审核状态', trigger: 'change' }
|
||||||
|
],
|
||||||
|
},
|
||||||
|
totalNumber: 0,
|
||||||
|
agreeNumber: 0,
|
||||||
|
updata: {
|
||||||
|
specialDiseaseRouteId: '',
|
||||||
|
suitRange: '',
|
||||||
|
routeName: '',
|
||||||
|
specialDiseaseNodeList: [],
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
nodeContent: '<p></p>',
|
||||||
|
templateId: '',
|
||||||
|
templateName: '',
|
||||||
|
taskType: '',
|
||||||
|
taskSubdivision: '',
|
||||||
|
taskSubdivisionName: '',
|
||||||
|
taskStatus: '',
|
||||||
|
secondClassifyDescribe: '',
|
||||||
|
executionTime: '',
|
||||||
|
appletPushSign: '0',
|
||||||
|
officialPushSign: '0',
|
||||||
|
messagePushSign: '0',
|
||||||
|
taskSubdivisiontemplateType: '',
|
||||||
|
officialRemindContent: '',
|
||||||
|
messagePreview: '',
|
||||||
|
appletRemindContent: '',
|
||||||
|
appletPromptDescription: '',
|
||||||
|
},
|
||||||
|
itemindex: 0,
|
||||||
|
listindex: 0,
|
||||||
|
lists: [],
|
||||||
|
value: '',
|
||||||
|
input: '',
|
||||||
|
//任务类型
|
||||||
|
selectTaskTypeList: [],
|
||||||
|
//任务状态
|
||||||
|
taskStatusDictList: [],
|
||||||
|
//任务细分
|
||||||
|
taskPartitionList: [],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.updata = this.lookitem
|
||||||
|
this.updata.specialDiseaseRouteId = this.lookitem.id
|
||||||
|
this.taskinfo();
|
||||||
|
this.info();
|
||||||
|
},
|
||||||
|
beforeDestroy() { },
|
||||||
|
watch: {
|
||||||
|
lookitem(newValue, oldValue) {
|
||||||
|
if (newValue) {
|
||||||
|
this.updata = newValue;
|
||||||
|
this.updata.specialDiseaseRouteId = newValue.id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
info() {
|
||||||
|
selectSpecialDisease(this.updata.specialDiseaseRouteId).then(res => {
|
||||||
|
this.agreeNumber = res.data.agreeNumber
|
||||||
|
this.totalNumber = res.data.totalNumber
|
||||||
|
res.data.specialDiseaseNodeList.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]
|
||||||
|
if (this.form.taskType) {
|
||||||
|
this.changeTaskType(this.form.taskType, this.form.taskSubdivision)
|
||||||
|
}
|
||||||
|
this.$refs.wangeditor.disable();
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleData(list, key, keytwo) {
|
||||||
|
//得到数据的主键列表
|
||||||
|
let keysArr = list.map(item => {
|
||||||
|
return {
|
||||||
|
routeNodeDay: item[key],
|
||||||
|
routeNodeName: item[keytwo],
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let keys = [...new Set(keysArr)]
|
||||||
|
let newList = keys.map(item => {
|
||||||
|
return {
|
||||||
|
//这里写新的 数据结构 如下是整体复制
|
||||||
|
routeNodeDay: item[key],
|
||||||
|
routeNodeName: item[keytwo],
|
||||||
|
list: list.filter(i => i[key] == item[key] && i[keytwo] == item[keytwo])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return newList;
|
||||||
|
},
|
||||||
|
//wangeditor传值
|
||||||
|
onNodeContent(item) {
|
||||||
|
this.form.nodeContent = item.nodeContent
|
||||||
|
},
|
||||||
|
//小程序传值
|
||||||
|
miniProgramtemplate(item) {
|
||||||
|
this.form.appletTemplateId = item.templateId
|
||||||
|
this.form.appletTemplateName = item.templateName
|
||||||
|
this.form.appletRemindContent = item.templateContent
|
||||||
|
},
|
||||||
|
//短信传值
|
||||||
|
messageontemplate(item) {
|
||||||
|
this.form.messageTemplateId = item.templateId
|
||||||
|
this.form.messageTemplateName = item.templateName
|
||||||
|
this.form.messagePreview = item.templateContent
|
||||||
|
},
|
||||||
|
//公众号传值
|
||||||
|
officialAccountontemplate(item) {
|
||||||
|
this.form.officialTemplateId = item.templateId
|
||||||
|
this.form.officialTemplateName = item.templateName
|
||||||
|
this.form.officialRemindContent = item.templateContent
|
||||||
|
},
|
||||||
|
//暂存
|
||||||
|
TemporaryStorage() {
|
||||||
|
this.$refs.wangeditor.emit()
|
||||||
|
this.updata.specialDiseaseNodeList = []
|
||||||
|
this.lists.forEach(e => {
|
||||||
|
e.list.length > 0 ? e.list.forEach(el => {
|
||||||
|
el.routeNodeDay = e.routeNodeDay
|
||||||
|
el.routeNodeName = e.routeNodeName
|
||||||
|
this.updata.specialDiseaseNodeList.push(el)
|
||||||
|
}) : ""
|
||||||
|
})
|
||||||
|
specialDiseaseNode(this.updata).then(res => {
|
||||||
|
this.info();
|
||||||
|
this.$modal.msgSuccess("暂存成功!");
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//问卷传值
|
||||||
|
questionontemplate(item) {
|
||||||
|
this.form.templateId = item.templateId
|
||||||
|
this.form.templateName = item.templateName
|
||||||
|
},
|
||||||
|
//宣教传值
|
||||||
|
propagandaontemplate(item) {
|
||||||
|
this.form.templateId = item.templateId
|
||||||
|
this.form.templateName = item.templateName
|
||||||
|
},
|
||||||
|
bottomclickevent(uitem, index, uindex) {
|
||||||
|
this.$refs.wangeditor.emit()
|
||||||
|
this.form = uitem
|
||||||
|
if (this.form.taskType) {
|
||||||
|
this.changeTaskType(this.form.taskType, this.form.taskSubdivision)
|
||||||
|
}
|
||||||
|
this.listindex = index
|
||||||
|
this.itemindex = uindex
|
||||||
|
},
|
||||||
|
handleStep() {
|
||||||
|
this.active = 2
|
||||||
|
},
|
||||||
|
//任务类型 任务状态
|
||||||
|
taskinfo() {
|
||||||
|
selectTaskTypeList().then(res => {
|
||||||
|
this.selectTaskTypeList = res.data
|
||||||
|
})
|
||||||
|
taskStatusDictList().then(res => {
|
||||||
|
this.taskStatusDictList = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//任务细分
|
||||||
|
changeTaskType(name, taskSubdivision) {
|
||||||
|
let id = this.selectTaskTypeList?.find(e => e.taskTypeName == name).id
|
||||||
|
taskPartitionList(id).then(res => {
|
||||||
|
this.taskPartitionList = res.data
|
||||||
|
this.form.taskSubdivision = ''
|
||||||
|
this.form.taskSubdivisionName = ''
|
||||||
|
this.form.taskSubdivisiontemplateType = ''
|
||||||
|
this.selectTaskTypeList.forEach(el => {
|
||||||
|
if (name == el.taskTypeName) {
|
||||||
|
this.form.taskTypeId = el.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (taskSubdivision) {
|
||||||
|
this.changetaskSubdivision(taskSubdivision, 1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
changetaskSubdivision(name, type) {
|
||||||
|
this.form.taskSubdivision = name
|
||||||
|
this.taskPartitionList.forEach(el => {
|
||||||
|
if (name == el.taskTypeName) {
|
||||||
|
this.form.executionTime = el.executionTime
|
||||||
|
this.form.taskSubdivisiontemplateType = el.templateType
|
||||||
|
if (!type) {
|
||||||
|
this.form.templateId = ''
|
||||||
|
this.form.templateName = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
addlist() {
|
||||||
|
this.lists.push({
|
||||||
|
routeNodeName: "",
|
||||||
|
routeNodeDay: '',
|
||||||
|
list: [
|
||||||
|
{
|
||||||
|
nodeContent: '<p></p>',
|
||||||
|
templateId: '',
|
||||||
|
templateName: '',
|
||||||
|
taskType: '',
|
||||||
|
officialRemindContent: '',
|
||||||
|
taskSubdivision: '',
|
||||||
|
taskSubdivisionName: '',
|
||||||
|
appletRemindContent: '',
|
||||||
|
appletPromptDescription: '',
|
||||||
|
taskStatus: '',
|
||||||
|
secondClassifyDescribe: '',
|
||||||
|
executionTime: '',
|
||||||
|
appletPushSign: '0',
|
||||||
|
officialPushSign: '0',
|
||||||
|
messagePushSign: '0',
|
||||||
|
messagePreview: '',
|
||||||
|
taskSubdivisiontemplateType: '',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
additem(item) {
|
||||||
|
item.list.push({
|
||||||
|
nodeContent: '<p></p>',
|
||||||
|
templateId: '',
|
||||||
|
templateName: '',
|
||||||
|
taskType: '',
|
||||||
|
officialRemindContent: '',
|
||||||
|
taskSubdivision: '',
|
||||||
|
taskSubdivisionName: '',
|
||||||
|
taskStatus: '',
|
||||||
|
secondClassifyDescribe: '',
|
||||||
|
executionTime: '',
|
||||||
|
appletPushSign: '0',
|
||||||
|
officialPushSign: '0',
|
||||||
|
messagePushSign: '0',
|
||||||
|
appletRemindContent: '',
|
||||||
|
appletPromptDescription: '',
|
||||||
|
messagePreview: '',
|
||||||
|
taskSubdivisiontemplateType: '',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
delitem(item, index) {
|
||||||
|
item.list.splice(this.itemindex, 1)
|
||||||
|
if (item.list.length == 0) {
|
||||||
|
this.lists.splice(index, 1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//取消
|
||||||
|
handleClose() {
|
||||||
|
this.dialogVisible = false
|
||||||
|
this.routeform = {
|
||||||
|
routeCheckStatus: '',
|
||||||
|
routeCheckRemark: "",
|
||||||
|
}
|
||||||
|
this.resetForm("routeform");
|
||||||
|
},
|
||||||
|
//审核
|
||||||
|
auditing() {
|
||||||
|
this.$refs["routeform"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
const loading = this.$loading({
|
||||||
|
lock: true,
|
||||||
|
text: '审核中',
|
||||||
|
spinner: 'el-icon-loading',
|
||||||
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
|
});
|
||||||
|
updateRouteCheckStatus({
|
||||||
|
routeCheckStatus: this.routeform.routeCheckStatus,
|
||||||
|
id: this.form.specialDiseaseNodeId,
|
||||||
|
routeCheckRemark: this.routeform.routeCheckRemark,
|
||||||
|
routeCheckPerson: JSON.parse(localStorage.getItem('user')).nickName
|
||||||
|
}).then(res => {
|
||||||
|
if (res.data == 1) {
|
||||||
|
this.info();
|
||||||
|
this.handleClose()
|
||||||
|
this.$modal.msgSuccess("审核成功!");
|
||||||
|
loading.close();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .el-card__body {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-input__inner {
|
||||||
|
color: black !important;
|
||||||
|
background-color: #fff !important;
|
||||||
|
cursor: default !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.routeCheckStatus {
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-footer {
|
||||||
|
padding: 0 20px 0;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottomform {
|
||||||
|
background-color: #f2f4f5;
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
.card {
|
||||||
|
background-color: #fff;
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
margin: 20px 0 0;
|
||||||
|
padding: 20px 50px 0px 20px;
|
||||||
|
|
||||||
|
.flextwo {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
|
||||||
|
.text {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #64666A;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textarea {
|
||||||
|
width: 90%;
|
||||||
|
padding: 0 10px;
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
// border: 1px solid #DCDFE6;
|
||||||
|
border-radius: 5px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
::v-deep .el-input {
|
||||||
|
padding: 0 10px;
|
||||||
|
width: 50%;
|
||||||
|
color: black;
|
||||||
|
font-size: 13px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-input__inner {
|
||||||
|
color: black;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.pushMethod {
|
||||||
|
height: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #64666A;
|
||||||
|
|
||||||
|
::v-deep .el-input__inner {
|
||||||
|
color: black;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: black;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.topform {
|
||||||
|
padding: 15px 0 0 15px;
|
||||||
|
|
||||||
|
.form {
|
||||||
|
::v-deep .el-input__inner {
|
||||||
|
height: 30px !important;
|
||||||
|
line-height: 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-form-item__label {
|
||||||
|
font-size: 12px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
div {
|
||||||
|
display: flex;
|
||||||
|
padding-left: 10px;
|
||||||
|
font-weight: 600;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
font-weight: 550;
|
||||||
|
margin-left: 20%;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
.el-input {
|
||||||
|
width: 200px;
|
||||||
|
height: 30px !important;
|
||||||
|
line-height: 30px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.list {
|
||||||
|
margin: 20px auto;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #f2f4f5;
|
||||||
|
display: flex;
|
||||||
|
padding-top: 15px;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
|
||||||
|
.timelist {
|
||||||
|
width: 22%;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 0 20px 20px;
|
||||||
|
// height: 680px;
|
||||||
|
height: calc(100vh - 294px);
|
||||||
|
overflow: scroll;
|
||||||
|
|
||||||
|
.timetitle {
|
||||||
|
height: 60px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-timeline {
|
||||||
|
width: 100%;
|
||||||
|
padding: 15px 0 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.texts {
|
||||||
|
width: 75%;
|
||||||
|
// height: 680px;
|
||||||
|
height: calc(100vh - 294px);
|
||||||
|
overflow: scroll;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cards {
|
||||||
|
border: 1px solid #409EFF;
|
||||||
|
border-left: 5px solid #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.toptop {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i:nth-child(2) {
|
||||||
|
padding-left: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-timeline-item__timestamp {
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-timeline-item__wrapper {
|
||||||
|
padding-left: 14px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-timeline-item__content {
|
||||||
|
transform: translateY(-2%);
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-card {
|
||||||
|
margin-top: 20px !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
583
src/views/manage/components/wangEditor.vue
Normal file
583
src/views/manage/components/wangEditor.vue
Normal file
File diff suppressed because one or more lines are too long
@ -95,7 +95,6 @@ export default ({
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
emit() {
|
emit() {
|
||||||
console.log()
|
|
||||||
this.$emit("on-nodeContent", { nodeContent: this.html });
|
this.$emit("on-nodeContent", { nodeContent: this.html });
|
||||||
},
|
},
|
||||||
panelchange(item) {
|
panelchange(item) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user