xg
This commit is contained in:
parent
dce69c73df
commit
e109b57adc
@ -9,8 +9,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightheader" v-if="categorylist.length > 0">
|
||||
<div class="richtext">
|
||||
<div class="text" style="font-size: 20px;"> 任务:</div>
|
||||
<div class="richtext" v-if="itemindex == 1">
|
||||
<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">
|
||||
@ -76,6 +76,76 @@
|
||||
</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>
|
||||
<el-empty description="暂无" style="width: 100%;" v-else></el-empty>
|
||||
<!-- 话术预览弹框 -->
|
||||
@ -101,6 +171,11 @@
|
||||
</el-dialog>
|
||||
<!-- 问卷预览弹框 -->
|
||||
<questionopen ref="question" :lookitem="lookitem"></questionopen>
|
||||
<!-- 专病节点预览 -->
|
||||
<el-dialog title="专病节点预览" :visible.sync="specialDiseaseNodeopen" width="90%">
|
||||
<specialDiseaseNodeopen :lookitem="lookitem">
|
||||
</specialDiseaseNodeopen>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -108,9 +183,11 @@ import {
|
||||
getList
|
||||
} from '@/api/manage/healthEducation'
|
||||
import questionopen from './questionopen.vue';
|
||||
import specialDiseaseNodeopen from './specialDiseaseNodeopen.vue';
|
||||
export default {
|
||||
components: {
|
||||
questionopen,
|
||||
specialDiseaseNodeopen
|
||||
},
|
||||
name: "RehabilitationPlanandRecords",
|
||||
data() {
|
||||
@ -120,27 +197,37 @@ export default {
|
||||
itemindex: 0,
|
||||
namelist: [
|
||||
{
|
||||
name: '手动创建任务'
|
||||
name: '专病管理路径'
|
||||
},
|
||||
{
|
||||
name: '专病管理路径'
|
||||
}
|
||||
name: '手动创建任务'
|
||||
},
|
||||
],
|
||||
categorylist: [],
|
||||
query: {
|
||||
patientId: '',
|
||||
routeCheckStatus: 'AGREE',
|
||||
taskCreateType: 'MANUAL_CREATE'
|
||||
taskCreateType: 'MANUAL_MATCHE'
|
||||
},
|
||||
lookitem: {},
|
||||
phoneopen: false,
|
||||
propagandaopen: false,
|
||||
specialDiseaseNodeopen: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.info();
|
||||
},
|
||||
methods: {
|
||||
//查看专病节点
|
||||
lookspecialDiseaseNode() {
|
||||
this.lookitem = {
|
||||
routeName: '路径名称',
|
||||
suitRange: 'IN_THE_HOSPITAL',
|
||||
id: 1
|
||||
}
|
||||
this.specialDiseaseNodeopen = true
|
||||
},
|
||||
//查看宣教模板
|
||||
lookpropaganda(item) {
|
||||
this.lookitem = item.detailInfo
|
||||
@ -164,7 +251,7 @@ export default {
|
||||
},
|
||||
clicknameitem(item, index) {
|
||||
this.itemindex = index
|
||||
if (index == 0) {
|
||||
if (index == 1) {
|
||||
this.query.taskCreateType = 'MANUAL_CREATE'
|
||||
} else {
|
||||
this.query.taskCreateType = 'MANUAL_MATCHE'
|
||||
|
||||
@ -92,7 +92,6 @@ export default {
|
||||
// 日期填空题
|
||||
timepicker(e, index) {
|
||||
this.questiondata.questionSubjectList[index].fillBlanksAnswer = e
|
||||
|
||||
},
|
||||
// 复选框
|
||||
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: {
|
||||
emit() {
|
||||
console.log()
|
||||
this.$emit("on-nodeContent", { nodeContent: this.html });
|
||||
},
|
||||
panelchange(item) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user