This commit is contained in:
2024-07-01 11:26:11 +08:00
parent 1d24c14a14
commit 41c2078b5a
4 changed files with 186 additions and 548 deletions

View File

@ -1,23 +1,15 @@
<template> <template>
<div id="tags-view-container" class="tags-view-container"> <div id="tags-view-container" class="tags-view-container">
<scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll"> <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
<router-link <router-link v-for="tag in visitedViews" ref="tag" :key="tag.path" :class="isActive(tag) ? 'active' : ''"
v-for="tag in visitedViews" :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item"
ref="tag" :style="activeStyle(tag)" @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''"
:key="tag.path" @contextmenu.prevent.native="openMenu(tag, $event)">
:class="isActive(tag)?'active':''"
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
tag="span"
class="tags-view-item"
:style="activeStyle(tag)"
@click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
@contextmenu.prevent.native="openMenu(tag,$event)"
>
{{ tag.title }} {{ tag.title }}
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
</router-link> </router-link>
</scroll-pane> </scroll-pane>
<ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu"> <ul v-show="visible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
<li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li> <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li>
<li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 关闭当前</li> <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 关闭当前</li>
<li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 关闭其他</li> <li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 关闭其他</li>
@ -176,7 +168,7 @@ export default {
}) })
}, },
closeOthersTags() { closeOthersTags() {
this.$router.push(this.selectedTag).catch(()=>{}); this.$router.push(this.selectedTag).catch(() => { });
this.$tab.closeOtherPage(this.selectedTag).then(() => { this.$tab.closeOtherPage(this.selectedTag).then(() => {
this.moveToCurrentTag() this.moveToCurrentTag()
}) })
@ -238,6 +230,7 @@ export default {
background: #fff; background: #fff;
border-bottom: 1px solid #d8dce5; border-bottom: 1px solid #d8dce5;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
.tags-view-wrapper { .tags-view-wrapper {
.tags-view-item { .tags-view-item {
display: inline-block; display: inline-block;
@ -252,16 +245,20 @@ export default {
font-size: 12px; font-size: 12px;
margin-left: 5px; margin-left: 5px;
margin-top: 4px; margin-top: 4px;
&:first-of-type { &:first-of-type {
margin-left: 15px; margin-left: 15px;
} }
&:last-of-type { &:last-of-type {
margin-right: 15px; margin-right: 15px;
} }
&.active { &.active {
background-color: #42b983; background-color: #42b983;
color: #fff; color: #fff;
border-color: #42b983; border-color: #42b983;
&::before { &::before {
content: ''; content: '';
background: #fff; background: #fff;
@ -275,6 +272,7 @@ export default {
} }
} }
} }
.contextmenu { .contextmenu {
margin: 0; margin: 0;
background: #fff; background: #fff;
@ -287,10 +285,12 @@ export default {
font-weight: 400; font-weight: 400;
color: #333; color: #333;
box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3); box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);
li { li {
margin: 0; margin: 0;
padding: 7px 16px; padding: 7px 16px;
cursor: pointer; cursor: pointer;
&:hover { &:hover {
background: #eee; background: #eee;
} }
@ -311,11 +311,13 @@ export default {
text-align: center; text-align: center;
transition: all .3s cubic-bezier(.645, .045, .355, 1); transition: all .3s cubic-bezier(.645, .045, .355, 1);
transform-origin: 100% 50%; transform-origin: 100% 50%;
&:before { &:before {
transform: scale(.6); transform: scale(.6);
display: inline-block; display: inline-block;
vertical-align: -3px; vertical-align: -3px;
} }
&:hover { &:hover {
background-color: #b4bccc; background-color: #b4bccc;
color: #fff; color: #fff;

View File

@ -8,175 +8,76 @@
<!-- 一级 --> <!-- 一级 -->
<div class="node" v-if="updata"> <div class="node" v-if="updata">
<!-- {{ updata.length }} --> <!-- {{ updata.length }} -->
<el-select <el-select v-model="updata.triggerConditionName" style="width: 120px" disabled
v-model="updata.triggerConditionName" @change="changetriggerConditionName($event, index)">
style="width: 120px" <el-option v-for="item in optionsname" :key="item.dictValue" :label="item.dictLabel"
disabled :value="item.dictValue">
@change="changetriggerConditionName($event, index)"
>
<el-option
v-for="item in optionsname"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<!-- 包含 --> <!-- 包含 -->
<el-select <el-select disabled v-model="updata.triggerConditionOperator" style="width: 100px"
disabled @change="changetriggerLogic($event, index)">
v-model="updata.triggerConditionOperator" <el-option v-for="item in openlist.triggerConditionList
style="width: 100px" .optionstriggerConditionOperator" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
@change="changetriggerLogic($event, index)"
>
<el-option
v-for="item in openlist.triggerConditionList
.optionstriggerConditionOperator"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-input <el-input v-if="updata.dictDataType == 'STRING'" disabled v-model="updata.triggerConditionValue"
v-if="updata.dictDataType == 'STRING'" style="width: 300px" placeholder="请输入触发条件" maxlength="100"></el-input>
disabled <el-select disabled v-if="updata.dictDataType == 'SELECT'" v-model="updata.triggerConditionValue"
v-model="updata.triggerConditionValue" style="width: 300px">
style="width: 300px" <el-option v-for="item in ConditionValue" :key="item.dictValue" :label="item.dictLabel"
placeholder="请输入触发条件" :value="item.dictValue">
maxlength="100"
></el-input>
<el-select
disabled
v-if="updata.dictDataType == 'SELECT'"
v-model="updata.triggerConditionValue"
style="width: 300px"
>
<el-option
v-for="item in ConditionValue"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-date-picker <el-date-picker disabled v-if="updata.dictDataType == 'DATE'" v-model="updata.triggerConditionValue"
disabled style="width: 300px" type="date" placeholder="选择日期时间" value-format="yyyy-MM-dd">
v-if="updata.dictDataType == 'DATE'"
v-model="updata.triggerConditionValue"
style="width: 300px"
type="date"
placeholder="选择日期时间"
value-format="yyyy-MM-dd"
>
</el-date-picker> </el-date-picker>
<el-input <el-input disabled v-if="updata.dictDataType == 'DECIMAL'" style="width: 300px"
disabled v-model="updata.triggerConditionValue" type="number" :min="0"></el-input>
v-if="updata.dictDataType == 'DECIMAL'"
style="width: 300px"
v-model="updata.triggerConditionValue"
type="number"
:min="0"
></el-input>
</div> </div>
<!-- 二级 --> <!-- 二级 -->
<div v-show="show3 == true"> <div v-show="show3 == true">
<div class="node" v-for="(item, index) in updatalist" :key="index"> <div class="node" v-for="(item, index) in updatalist" :key="index">
<div <div style="width: 60px; position: absolute; top: 8%" v-if="updatalist.length == 2">
style="width: 60px; position: absolute; top: 8%"
v-if="updatalist.length == 2"
>
<img src="@/assets/images/images.png" class="login-code-img" /> <img src="@/assets/images/images.png" class="login-code-img" />
<div class="selectname"> <div class="selectname">
<el-select <el-select disabled v-model="item.triggerLogic" style="width: 60px"
disabled @change="changetriggerLogicsname($event, index)">
v-model="item.triggerLogic" <el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel"
style="width: 60px" :value="item.dictValue">
@change="changetriggerLogicsname($event, index)"
>
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
<div> <div>
<el-select <el-select v-model="item.triggerConditionName" style="width: 120px" disabled
v-model="item.triggerConditionName" @change="changetriggerConditionName($event, index)">
style="width: 120px" <el-option v-for="item in optionsname" :key="item.dictValue" :label="item.dictLabel"
disabled :value="item.dictValue">
@change="changetriggerConditionName($event, index)"
>
<el-option
v-for="item in optionsname"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-select <el-select disabled v-model="item.triggerConditionOperator" style="width: 100px"
disabled @change="changetriggerLogic($event, index)">
v-model="item.triggerConditionOperator" <el-option v-for="item in openlist.triggerConditionList
style="width: 100px" .optionstriggerConditionOperator" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
@change="changetriggerLogic($event, index)"
>
<el-option
v-for="item in openlist.triggerConditionList
.optionstriggerConditionOperator"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-input <el-input v-if="item.dictDataType == 'STRING'" disabled v-model="item.triggerConditionValue"
v-if="item.dictDataType == 'STRING'" style="width: 300px" placeholder="请输入触发条件" maxlength="100"></el-input>
disabled <el-select disabled v-if="item.dictDataType == 'SELECT'" v-model="item.triggerConditionValue"
v-model="item.triggerConditionValue" style="width: 300px">
style="width: 300px" <el-option v-for="item in ConditionValue" :key="item.dictValue" :label="item.dictLabel"
placeholder="请输入触发条件" :value="item.dictValue">
maxlength="100"
></el-input>
<el-select
disabled
v-if="item.dictDataType == 'SELECT'"
v-model="item.triggerConditionValue"
style="width: 300px"
>
<el-option
v-for="item in ConditionValue"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-date-picker <el-date-picker disabled v-if="item.dictDataType == 'DATE'" v-model="item.triggerConditionValue"
disabled style="width: 300px" type="date" placeholder="选择日期时间" value-format="yyyy-MM-dd">
v-if="item.dictDataType == 'DATE'"
v-model="item.triggerConditionValue"
style="width: 300px"
type="date"
placeholder="选择日期时间"
value-format="yyyy-MM-dd"
>
</el-date-picker> </el-date-picker>
<el-input <el-input disabled v-if="item.dictDataType == 'DECIMAL'" style="width: 300px"
disabled v-model="item.triggerConditionValue" type="number" :min="0"></el-input>
v-if="item.dictDataType == 'DECIMAL'"
style="width: 300px"
v-model="item.triggerConditionValue"
type="number"
:min="0"
></el-input>
</div> </div>
</div> </div>
</div> </div>
@ -185,24 +86,14 @@
<div class="select"> <div class="select">
<span> 适用范围 </span> <span> 适用范围 </span>
<el-select v-model="updata.suitRange" placeholder="请选择" disabled> <el-select v-model="updata.suitRange" placeholder="请选择" disabled>
<el-option <el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="addlistname"> <div class="addlistname">
<i @click="edit()" class="el-icon-edit">编辑</i> <i @click="edit()" class="el-icon-edit">编辑</i>
<span v-if="updatalist.length > 0"> <span v-if="updatalist.length > 0">
<i <i @click="addlistname()" class="el-icon-arrow-down" v-if="show3 == false">展开</i>
@click="addlistname()"
class="el-icon-arrow-down"
v-if="show3 == false"
>展开</i
>
<i @click="addlistname()" class="el-icon-arrow-up" v-else>关闭</i> <i @click="addlistname()" class="el-icon-arrow-up" v-else>关闭</i>
</span> </span>
</div> </div>
@ -214,59 +105,30 @@
<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 <el-timeline-item v-for="(item, index) in lists" :key="index" :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" style="width: 100px"> <el-select v-model="item.routeNodeName" style="width: 100px">
<el-option <el-option v-for="item in parentDictCodelist" :key="item.dictValue" :label="item.dictLabel"
v-for="item in parentDictCodelist" :value="item.dictValue">
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-input <el-input v-model="item.routeNodeDay" style="width: 70px" type="number" :min="0"></el-input>
v-model="item.routeNodeDay"
style="width: 70px"
type="number"
:min="0"
></el-input>
<span></span> <span></span>
</div> </div>
<div> <div>
<i class="el-icon-delete" @click="delitemh(item, index)"></i> <i class="el-icon-delete" @click="delitemh(item, index)"></i>
<i <i class="el-icon-circle-plus-outline" @click="additem(item)"></i>
class="el-icon-circle-plus-outline"
@click="additem(item)"
></i>
</div> </div>
</div> </div>
<el-card <el-card v-for="(uitem, uindex) in item.list" :key="uitem.id"
v-for="(uitem, uindex) in item.list"
:key="uitem.id"
@click.native="bottomclickevent(uitem, index, uindex)" @click.native="bottomclickevent(uitem, index, uindex)"
:class="listindex == index && itemindex == uindex ? 'cards' : ''" :class="listindex == index && itemindex == uindex ? 'cards' : ''">
>
<h3 style="height: 20px">{{ uitem.taskTypeName }}</h3> <h3 style="height: 20px">{{ uitem.taskTypeName }}</h3>
<el-tag <el-tag v-if="uitem.routeCheckStatus == 'AGREE'" class="routeCheckStatus">已审核</el-tag>
v-if="uitem.routeCheckStatus == 'AGREE'" <el-tag v-else-if="uitem.routeCheckStatus == 'DISAGREE'" type="danger"
class="routeCheckStatus" class="routeCheckStatus">不同意</el-tag>
>已审核</el-tag <el-tag v-else type="warning" class="routeCheckStatus">未审核</el-tag>
>
<el-tag
v-else-if="uitem.routeCheckStatus == 'DISAGREE'"
type="danger"
class="routeCheckStatus"
>不同意</el-tag
>
<el-tag v-else type="warning" class="routeCheckStatus"
>未审核</el-tag
>
<p style="height: 16px">{{ uitem.taskSubdivisionName }}</p> <p style="height: 16px">{{ uitem.taskSubdivisionName }}</p>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
@ -276,102 +138,48 @@
<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 <el-select v-model="form.taskType" style="width: 130px" @change="changeTaskType">
v-model="form.taskType" <el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode" :label="item.taskTypeName"
style="width: 130px" :value="item.taskTypeCode">
@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 <el-select v-model="form.taskSubdivision" style="width: 130px" @change="changetaskSubdivision">
v-model="form.taskSubdivision" <el-option v-for="item in taskPartitionList" :key="item.taskPartitionCode"
style="width: 130px" :label="item.taskPartitionName" :value="item.taskPartitionCode">
@change="changetaskSubdivision"
>
<el-option
v-for="item in taskPartitionList"
:key="item.taskPartitionCode"
:label="item.taskPartitionName"
: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.taskStatus" style="width: 150px"> <el-select v-model="form.taskStatus" style="width: 150px">
<el-option <el-option v-for="item in taskStatusDictList" :key="item.id" :label="item.taskStatusName"
v-for="item in taskStatusDictList" :value="item.taskStatusCode">
: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 <el-input v-model="form.secondClassifyDescribe" style="width: 130px" disabled></el-input>
v-model="form.secondClassifyDescribe"
style="width: 130px"
disabled
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="执行时间" prop=""> <el-form-item label="执行时间" prop="">
<el-time-select <el-time-select v-model="form.executionTime" style="width: 120px" placeholder="选择时间" disabled>
v-model="form.executionTime"
style="width: 120px"
placeholder="选择时间"
disabled
>
</el-time-select> </el-time-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="问卷库模板选择" prop="" v-show="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'">
label="问卷库模板选择" <question @on-template="questionontemplate" :templateId="form.templateId"
prop="" :templateName="form.templateName"></question>
v-show="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="宣教库模板选择" prop="" v-show="form.taskSubdivisiontemplateType == 'PROPAGANDA'">
label="宣教库模板选择" <propaganda @on-template="propagandaontemplate" :templateId="form.templateId"
prop="" :templateName="form.templateName"></propaganda>
v-show="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<propaganda
@on-template="propagandaontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></propaganda>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="bottomform"> <div class="bottomform">
<wangeditor <wangeditor style="width: 100%" :nodeContent="form.nodeContent" @on-nodeContent="onNodeContent"
style="width: 100%" v-if="form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' && form.taskSubdivisiontemplateType != 'PROPAGANDA' && form.taskSubdivisiontemplateType != 'SCRIPT'"
:nodeContent="form.nodeContent" ref="wangeditor" />
@on-nodeContent="onNodeContent" <div class="card" v-show="form.taskSubdivisiontemplateType != 'SCRIPT'">
v-if="
form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' &&
form.taskSubdivisiontemplateType != 'PROPAGANDA' &&
form.taskSubdivisiontemplateType != 'SCRIPT'
"
ref="wangeditor"
/>
<div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -379,27 +187,16 @@
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<message <message @on-template="messageontemplate" :templateId="form.messageTemplateId"
@on-template="messageontemplate" :templateName="form.messageTemplateName"></message>
:templateId="form.messageTemplateId"
:templateName="form.messageTemplateName"
></message>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch <el-switch v-model="form.messagePushSign" active-color="#13ce66" active-value="1" inactive-value="0">
v-model="form.messagePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
</div> </div>
<div <div class="card" v-show="form.taskSubdivisiontemplateType != 'SCRIPT'">
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -408,29 +205,18 @@
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<officialAccount <officialAccount @on-template="officialAccountontemplate" :templateId="form.officialTemplateId"
@on-template="officialAccountontemplate" :templateName="form.officialTemplateName">
:templateId="form.officialTemplateId"
:templateName="form.officialTemplateName"
>
</officialAccount> </officialAccount>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch <el-switch v-model="form.officialPushSign" active-color="#13ce66" active-value="1" inactive-value="0">
v-model="form.officialPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
</div> </div>
<div <div class="card" v-show="form.taskSubdivisiontemplateType != 'SCRIPT'">
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -439,30 +225,18 @@
<div class="pushMethod"> <div class="pushMethod">
模板 模板
<span> <span>
<miniProgram <miniProgram @on-template="miniProgramtemplate" :templateId="form.appletTemplateId"
@on-template="miniProgramtemplate" :templateName="form.appletTemplateName">
:templateId="form.appletTemplateId"
:templateName="form.appletTemplateName"
>
</miniProgram> </miniProgram>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch <el-switch v-model="form.appletPushSign" active-color="#13ce66" active-value="1" inactive-value="0">
v-model="form.appletPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
</div> </div>
<div <div class="card" style="height: 250px" v-show="form.taskSubdivisiontemplateType == 'SCRIPT'">
class="card"
style="height: 250px"
v-show="form.taskSubdivisiontemplateType == 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
@ -476,47 +250,27 @@
<div class="pushMethod"> <div class="pushMethod">
话术模板 话术模板
<span class="spanname" v-if="form.templateId"> <span class="spanname" v-if="form.templateId">
<scripts <scripts @on-template="messageontemplateword" :templateId="form.phoneTemplateId"
@on-template="messageontemplateword" :templateName="form.phoneTemplateName"></scripts>
:templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"
></scripts>
</span> </span>
<span v-else> <span v-else>
<scripts <scripts @on-template="messageontemplateword" :templateId="form.phoneTemplateId"
@on-template="messageontemplateword" :templateName="form.phoneTemplateName"></scripts>
:templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"
></scripts>
</span> </span>
</div> </div>
<div <div class="pushMethod" v-if="form.phoneDialMethod == 'COMMON' || !form.phoneDialMethod">
class="pushMethod"
v-if="form.phoneDialMethod == 'COMMON' || !form.phoneDialMethod"
>
问卷模板 问卷模板
<span class="spanname" v-if="form.phoneTemplateId"> <span class="spanname" v-if="form.phoneTemplateId">
<question <question @on-template="questionontemplate" :templateId="form.templateId"
@on-template="questionontemplate" :templateName="form.templateName"></question>
:templateId="form.templateId"
:templateName="form.templateName"
></question>
</span> </span>
<span v-else> <span v-else>
<question <question @on-template="questionontemplate" :templateId="form.templateId"
@on-template="questionontemplate" :templateName="form.templateName"></question>
:templateId="form.templateId"
:templateName="form.templateName"
></question>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
<el-switch <el-switch v-model="form.phonePushSign" active-color="#13ce66" active-value="1" inactive-value="0">
v-model="form.phonePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
</el-switch> </el-switch>
</div> </div>
</div> </div>
@ -524,16 +278,9 @@
<div class="pushMethod"> <div class="pushMethod">
重播次数 重播次数
<span> <span>
<el-select <el-select v-model="form.phoneRedialTimes" style="width: 110px">
v-model="form.phoneRedialTimes" <el-option v-for="item in optionslistSname" :key="item.dictValue" :label="item.dictLabel"
style="width: 110px" :value="item.dictValue">
>
<el-option
v-for="item in optionslistSname"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
@ -541,49 +288,28 @@
<div class="pushMethod"> <div class="pushMethod">
时间间隔: 时间间隔:
<span> <span>
<el-input <el-input v-model.number="form.phoneTimeInterval" oninput="value=value.replace(/[^\d]/g,'')"
v-model.number="form.phoneTimeInterval" style="width: 100px">
oninput="value=value.replace(/[^\d]/g,'')"
style="width: 100px"
>
</el-input> </el-input>
</span> </span>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
短信提醒 短信提醒
<el-select <el-select v-model="form.phoneMessageRemind" style="width: 150px">
v-model="form.phoneMessageRemind" <el-option v-for="item in optionslist" :key="item.dictValue" :label="item.dictLabel"
style="width: 150px" :value="item.dictValue">
>
<el-option
v-for="item in optionslist"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="pushMethod"> <div class="pushMethod">
短信模板 短信模板
<span <span class="spanname" v-if="form.phoneMessageRemind == 'NOT_SEND_MESSAGE'">
class="spanname" <message style="width: 200px" @on-template="messageontemplateMESSAGE"
v-if="form.phoneMessageRemind == 'NOT_SEND_MESSAGE'" :templateId="form.phoneMessageTemplateId" :templateName="form.phoneMessageTemplateName"></message>
>
<message
style="width: 200px"
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
</span> </span>
<span v-else> <span v-else>
<message <message style="width: 200px" @on-template="messageontemplateMESSAGE"
style="width: 200px" :templateId="form.phoneMessageTemplateId" :templateName="form.phoneMessageTemplateName"></message>
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
</span> </span>
</div> </div>
</div> </div>
@ -593,146 +319,64 @@
</div> </div>
<!-- 编辑触发条件 --> <!-- 编辑触发条件 -->
<el-dialog <el-dialog title="添加触发条件" :visible.sync="open" width="800px" append-to-body>
title="添加触发条件" <el-form ref="openlist" :model="openlist" :rules="rules" label-width="80px">
:visible.sync="open"
width="800px"
append-to-body
>
<el-form
ref="openlist"
:model="openlist"
:rules="rules"
label-width="80px"
>
<el-form-item label="适用范围:"> <el-form-item label="适用范围:">
<el-select <el-select v-model="openlist.suitRange" @change="changeoptions" style="width: 200px">
v-model="openlist.suitRange" <el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
@change="changeoptions"
style="width: 200px"
>
<el-option
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-descriptions title="触发条件"> </el-descriptions> <el-descriptions title="触发条件"> </el-descriptions>
<div class="nodesname"> <div class="nodesname">
<div <div class="node" v-for="(item, index) in openlist.triggerConditionList" :key="index">
class="node"
v-for="(item, index) in openlist.triggerConditionList"
:key="index"
>
<!-- 且或 --> <!-- 且或 -->
<div <div style="width: 60px; position: absolute; left: 2%; top: 57%"
style="width: 60px; position: absolute; left: 2%; top: 57%" v-if="openlist.triggerConditionList.length === 3">
v-if="openlist.triggerConditionList.length === 3"
>
<img src="@/assets/images/images.png" class="login-code" /> <img src="@/assets/images/images.png" class="login-code" />
<div class="selectnamelist"> <div class="selectnamelist">
<el-select <el-select v-model="item.triggerLogic" style="width: 60px" placeholder=""
v-model="item.triggerLogic" @change="changetriggerLogicsname($event, index)">
style="width: 60px" <el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel"
placeholder="" :value="item.dictValue">
@change="changetriggerLogicsname($event, index)"
>
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
<!-- 诊断 在这里--> <!-- 诊断 在这里-->
<el-select <el-select v-model="item.triggerConditionCode" style="width: 120px"
v-model="item.triggerConditionCode" @change="changetriggerConditionName($event, index)">
style="width: 120px" <el-option v-for="item in optionsname" :key="item.dictValue" :label="item.dictLabel"
@change="changetriggerConditionName($event, index)" :value="item.dictValue">
>
<el-option
v-for="item in optionsname"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<!-- 包含 --> <!-- 包含 -->
<el-select <el-select v-model="item.triggerConditionOperator" style="width: 100px"
v-model="item.triggerConditionOperator" @change="changetriggerLogic($event, index)">
style="width: 100px" <el-option v-for="item in item.optionstriggerConditionOperator" :key="item.dictValue"
@change="changetriggerLogic($event, index)" :label="item.dictLabel" :value="item.dictValue">
>
<el-option
v-for="item in item.optionstriggerConditionOperator"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-input <el-input v-if="item.dictDataType == 'STRING'" v-model="item.triggerConditionValue" style="width: 300px"
v-if="item.dictDataType == 'STRING'" placeholder="请输入触发条件" maxlength="100"></el-input>
v-model="item.triggerConditionValue" <el-select v-if="item.dictDataType == 'SELECT'" v-model="item.triggerConditionValue" style="width: 300px">
style="width: 300px" <el-option v-for="item in ConditionValue" :key="item.dictValue" :label="item.dictLabel"
placeholder="请输入触发条件" :value="item.dictValue">
maxlength="100"
></el-input>
<el-select
v-if="item.dictDataType == 'SELECT'"
v-model="item.triggerConditionValue"
style="width: 300px"
>
<el-option
v-for="item in ConditionValue"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
<el-date-picker <el-date-picker v-if="item.dictDataType == 'DATE'" v-model="item.triggerConditionValue" style="width: 300px"
v-if="item.dictDataType == 'DATE'" type="date" placeholder="选择日期时间" value-format="yyyy-MM-dd">
v-model="item.triggerConditionValue"
style="width: 300px"
type="date"
placeholder="选择日期时间"
value-format="yyyy-MM-dd"
>
</el-date-picker> </el-date-picker>
<!-- {{ item }} --> <!-- {{ item }} -->
<el-input <el-input v-if="item.dictDataType == 'DECIMAL'" style="width: 300px" v-model="item.triggerConditionValue"
v-if="item.dictDataType == 'DECIMAL'" type="number" :min="0"></el-input>
style="width: 300px"
v-model="item.triggerConditionValue"
type="number"
:min="0"
></el-input>
<span class="icon"> <span class="icon">
<el-button <el-button type="danger" class="el-icon-remove-outline" plain @click="delitemlistname(index)"
type="danger" v-if="index != 0"></el-button>
class="el-icon-remove-outline"
plain
@click="delitemlistname(index)"
v-if="index != 0"
></el-button>
<el-button <el-button type="primary" plain class="el-icon-circle-plus-outline" @click="addtriggerCondition(index)"
type="primary" v-if="index == 0">添加属性</el-button>
plain
class="el-icon-circle-plus-outline"
@click="addtriggerCondition(index)"
v-if="index == 0"
>添加属性</el-button
>
</span> </span>
</div> </div>
</div> </div>
@ -743,33 +387,14 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 提交审核 --> <!-- 提交审核 -->
<el-dialog <el-dialog title="提交审核完成" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
title="提交审核完成" <el-form ref="routeform" :model="routeform" label-width="120px" :rules="rules">
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-form
ref="routeform"
:model="routeform"
label-width="120px"
:rules="rules"
>
<el-form-item label="节点审核状态" prop="routeCheckStatus"> <el-form-item label="节点审核状态" prop="routeCheckStatus">
<el-radio v-model="routeform.routeCheckStatus" label="AGREE" <el-radio v-model="routeform.routeCheckStatus" label="AGREE">同意</el-radio>
>同意</el-radio <el-radio v-model="routeform.routeCheckStatus" label="DISAGREE">不同意</el-radio>
>
<el-radio v-model="routeform.routeCheckStatus" label="DISAGREE"
>不同意</el-radio
>
</el-form-item> </el-form-item>
<el-form-item label="节点审核备注"> <el-form-item label="节点审核备注">
<el-input <el-input type="textarea" :rows="2" placeholder="请输入节点审核备注" v-model="routeform.routeCheckRemark">
type="textarea"
:rows="2"
placeholder="请输入节点审核备注"
v-model="routeform.routeCheckRemark"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -780,13 +405,9 @@
</el-dialog> </el-dialog>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="TemporaryStorage"> </el-button> <el-button @click="TemporaryStorage"> </el-button>
<el-button <el-button type="primary" @click="dialogVisible = true" v-if="form.specialDiseaseNodeId">审核完成 {{ agreeNumber ?
type="primary" agreeNumber : "0" }} /
@click="dialogVisible = true" {{ totalNumber ? totalNumber : "0" }}</el-button>
v-if="form.specialDiseaseNodeId"
>审核完成 {{ agreeNumber ? agreeNumber : "0" }} /
{{ totalNumber ? totalNumber : "0" }}</el-button
>
</div> </div>
</div> </div>
</template> </template>
@ -799,11 +420,13 @@ export default indexjs;
background-color: #fff !important; background-color: #fff !important;
color: #606266 !important; color: #606266 !important;
} }
::v-deep.el-form-item--medium .el-form-item__content { ::v-deep.el-form-item--medium .el-form-item__content {
line-height: 36px; line-height: 36px;
height: 40px; height: 40px;
overflow: hidden; overflow: hidden;
} }
.el-icon-arrow-down { .el-icon-arrow-down {
margin-left: 50px; margin-left: 50px;
font-size: 14px; font-size: 14px;
@ -851,7 +474,7 @@ export default indexjs;
} }
.dialog-footer { .dialog-footer {
padding: 4px 20px 0 30px; padding: 4px 20px 0 30px;
text-align: right; text-align: right;
} }
@ -986,6 +609,7 @@ export default indexjs;
.titlement { .titlement {
display: flex; display: flex;
margin-left: 100px; margin-left: 100px;
// height: 15vh; // height: 15vh;
.select { .select {
font-weight: 550; font-weight: 550;
@ -1002,9 +626,11 @@ export default indexjs;
} }
} }
} }
.title { .title {
display: flex; display: flex;
margin-left: 100px; margin-left: 100px;
// height: 6vh; // height: 6vh;
.select { .select {
font-weight: 550; font-weight: 550;
@ -1021,6 +647,7 @@ export default indexjs;
} }
} }
} }
// .container { // .container {
// padding: 20px; // padding: 20px;
// } // }
@ -1063,6 +690,7 @@ export default indexjs;
background-color: #fff; background-color: #fff;
} }
} }
.list { .list {
margin: 6px auto; margin: 6px auto;
width: 100%; width: 100%;

View File

@ -590,15 +590,12 @@ export default {
}, },
//wangeditor传值 //wangeditor传值
onNodeContent(item) { onNodeContent(item) {
console.log(item,'ien')
if (item.nodeContent) { if (item.nodeContent) {
this.form.nodeContent = item.nodeContent; this.form.nodeContent = item.nodeContent;
var abc = new RegExp("<br>", "g"); var abc = new RegExp("<br>", "g");
var bbb = this.form.nodeContent.replace(abc, ""); var bbb = this.form.nodeContent.replace(abc, "");
this.form.nodeContent = bbb; this.form.nodeContent = bbb;
console.log(this.form.nodeContent, 'this.form.nodeContent')
} }
}, },
//小程序传值 //小程序传值
miniProgramtemplate(item) { miniProgramtemplate(item) {
@ -703,7 +700,7 @@ export default {
bottomclickevent(uitem, index, uindex) { bottomclickevent(uitem, index, uindex) {
if ( if (
this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" && this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" &&
this.form.taskSubdivisiontemplateType != "PROPAGANDA"&& this.form.taskSubdivisiontemplateType != "PROPAGANDA" &&
this.form.taskSubdivisiontemplateType != 'SCRIPT' this.form.taskSubdivisiontemplateType != 'SCRIPT'
) { ) {
this.$refs.wangeditor.emit(); this.$refs.wangeditor.emit();

View File

@ -322,7 +322,18 @@ export default {
}, },
}, },
mounted() { mounted() {
this.html = this.nodeContent; if (this.nodeContent) {
const loading = this.$loading({
lock: true,
text: "富文本加载中",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
setTimeout(() => {
this.html = this.nodeContent;
loading.close();
}, 1000);
}
}, },
beforeDestroy() { beforeDestroy() {
const editor = this.editor; const editor = this.editor;