This commit is contained in:
2024-08-05 10:42:36 +08:00
parent 28eb3a10f5
commit 88a2d7e50b

View File

@ -8,18 +8,8 @@
</div>
<div class="select">
<span> 适用范围 </span>
<el-select
v-model="updata.suitRange"
placeholder="请选择"
@change="changeoptions"
disabled
>
<el-option
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
<el-select v-model="updata.suitRange" placeholder="请选择" @change="changeoptions" disabled>
<el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
</el-option>
</el-select>
</div>
@ -31,59 +21,30 @@
<i class="el-icon-circle-plus-outline" @click="addlist"></i>
</div>
<el-timeline>
<el-timeline-item
v-for="(item, index) in lists"
:key="index"
:color="listindex == index ? '#409EFF' : ''"
>
<el-timeline-item v-for="(item, index) in lists" :key="index" :color="listindex == index ? '#409EFF' : ''">
<div class="top">
<div class="toptop">
<el-select v-model="item.routeNodeName" style="width: 100px">
<el-option
v-for="item in parentDictCodelist"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
<el-option v-for="item in parentDictCodelist" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
<el-input
v-model="item.routeNodeDay"
type="number"
style="width: 70px"
:min="0"
></el-input>
<el-input v-model="item.routeNodeDay" type="number" style="width: 70px" :min="0"></el-input>
<span></span>
</div>
<div>
<i class="el-icon-delete" @click="delitem(item, index)"></i>
<i
class="el-icon-circle-plus-outline"
@click="additem(item)"
></i>
<i class="el-icon-circle-plus-outline" @click="additem(item)"></i>
</div>
</div>
<el-card
v-for="(uitem, uindex) in item.list"
:key="uitem.id"
<el-card v-for="(uitem, uindex) in item.list" :key="uitem.id"
@click.native="bottomclickevent(uitem, index, uindex, item)"
:class="listindex == index && itemindex == uindex ? 'cards' : ''"
>
:class="listindex == index && itemindex == uindex ? 'cards' : ''">
<h3 style="height: 20px">{{ uitem.taskTypeName }}</h3>
<el-tag
v-if="uitem.routeCheckStatus == 'AGREE'"
class="routeCheckStatus"
>已审核</el-tag
>
<el-tag
v-else-if="uitem.routeCheckStatus == 'DISAGREE'"
type="danger"
class="routeCheckStatus"
>不同意</el-tag
>
<el-tag v-else type="warning" class="routeCheckStatus"
>未审核</el-tag
>
<el-tag v-if="uitem.routeCheckStatus == 'AGREE'" 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>
</el-card>
</el-timeline-item>
@ -93,43 +54,22 @@
<div class="topform">
<el-form ref="form" :inline="true" :model="form" class="form">
<el-form-item label="任务类型" prop="">
<el-select
v-model="form.taskType"
style="width: 150px"
@change="changeTaskType"
>
<el-option
v-for="item in selectTaskTypeList"
:key="item.taskTypeCode"
:label="item.taskTypeName"
:value="item.taskTypeCode"
>
<el-select v-model="form.taskType" style="width: 150px" @change="changeTaskType">
<el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode" :label="item.taskTypeName"
:value="item.taskTypeCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务细分" prop="">
<el-select
v-model="form.taskSubdivision"
style="width: 150px"
@change="changetaskSubdivision"
>
<el-option
v-for="item in taskPartitionList"
:key="item.taskPartitionCode"
:label="item.taskPartitionName"
:value="item.taskPartitionCode"
>
<el-select v-model="form.taskSubdivision" style="width: 150px" @change="changetaskSubdivision">
<el-option v-for="item in taskPartitionList" :key="item.taskPartitionCode"
:label="item.taskPartitionName" :value="item.taskPartitionCode">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务节点类型" prop="">
<el-select v-model="form.taskNodeType" style="width: 150px">
<el-option
v-for="item in taskNodeTypeList"
:key="item.id"
:label="item.name"
:value="item.code"
>
<el-option v-for="item in taskNodeTypeList" :key="item.id" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
@ -141,88 +81,40 @@
</el-select>
</el-form-item> -->
<el-form-item label="二级分类描述" prop="">
<el-input
v-model="form.secondClassifyDescribe"
style="width: 110px"
disabled
></el-input>
<el-input v-model="form.secondClassifyDescribe" style="width: 110px" disabled></el-input>
</el-form-item>
<el-form-item label="执行时间" prop="">
<el-time-select
v-model="form.executionTime"
style="width: 120px"
placeholder="选择时间"
disabled
>
<el-time-select v-model="form.executionTime" style="width: 120px" placeholder="选择时间" disabled>
</el-time-select>
</el-form-item>
<el-form-item
label="问卷库模板选择"
prop=""
v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE'"
>
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
<el-form-item label="问卷库模板选择" prop="" v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE'">
<question @on-template="questionontemplate" :templateId="form.templateId"
:templateName="form.templateName"></question>
</el-form-item>
<span
style="display: inline-block; width: 10px"
v-if="
form.taskNodeType == 'QUESTIONNAIRE_SCALE' && form.templateId
"
>
<span style="display: inline-block; width: 10px" v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE' && form.templateId
">
<el-button @click.native="looklist">预览</el-button>
</span>
<el-form-item
label="开启人工随访"
v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE'"
style="margin-left: 75px"
>
<el-switch
v-model="form.phoneDialMethod"
active-color="#13ce66"
active-value="COMMON"
inactive-value=" "
>
<el-form-item label="开启人工随访" v-if="form.taskNodeType == 'QUESTIONNAIRE_SCALE'" style="margin-left: 75px">
<el-switch v-model="form.phoneDialMethod" active-color="#13ce66" active-value="COMMON" inactive-value=" ">
</el-switch>
</el-form-item>
<el-form-item
label="宣教库模板选择"
prop=""
v-if="form.taskNodeType == 'PROPAGANDA_ARTICLE'"
>
<propaganda
@on-template="propagandaontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></propaganda>
<el-form-item label="宣教库模板选择" prop="" v-if="form.taskNodeType == 'PROPAGANDA_ARTICLE'">
<propaganda @on-template="propagandaontemplate" :templateId="form.templateId"
:templateName="form.templateName"></propaganda>
</el-form-item>
<span
style="display: inline-block; width: 10px"
v-if="
form.taskNodeType == 'PROPAGANDA_ARTICLE' && form.templateId
"
>
<span style="display: inline-block; width: 10px" v-if="form.taskNodeType == 'PROPAGANDA_ARTICLE' && form.templateId
">
<el-button @click="imagepreviews">预览</el-button>
</span>
</el-form>
</div>
<!-- 宣教 -->
<el-dialog
title="宣教预览"
:visible.sync="imageScriptpreviews"
width="60%"
>
<div
class="imageScriptpreviews"
v-if="
formview &&
<el-dialog title="宣教预览" :visible.sync="imageScriptpreviews" width="60%">
<div class="imageScriptpreviews" v-if="formview &&
form.taskNodeType == 'PROPAGANDA_ARTICLE' &&
form.templateId
"
>
">
<div class="titletop">文章模板:{{ formview.propagandaTitle }}</div>
<div class="bodytop">
<div class="titledata">{{ formview.propagandaTitle }}</div>
@ -230,48 +122,29 @@
<img :src="baseUrl + formview.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
<Editorxj
v-model="formview.propagandaContent"
:min-height="192"
/>
<Editorxj v-model="formview.propagandaContent" :min-height="192" />
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="imageScriptpreviews = false"
>关闭</el-button
>
<el-button type="primary" @click="imageScriptpreviews = false">关闭</el-button>
</span>
</el-dialog>
<!-- 问卷 -->
<el-dialog
title="问卷预览"
:visible.sync="lookquestionlist"
width="40%"
>
<el-dialog title="问卷预览" :visible.sync="lookquestionlist" width="40%">
<questionopennew :lookitemnew="lookitemnew"></questionopennew>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookquestionlist = false"
>关闭</el-button
>
<el-button type="primary" @click="lookquestionlist = false">关闭</el-button>
</span>
</el-dialog>
<div class="bottomform">
<wangeditor
v-show="
form.taskNodeType != 'QUESTIONNAIRE_SCALE' &&
<wangeditor v-show="form.taskNodeType != 'QUESTIONNAIRE_SCALE' &&
form.taskNodeType != 'PROPAGANDA_ARTICLE' &&
form.taskNodeType != 'PHONE_OUTBOUND'
"
style="width: 100%"
:nodeContent="form.nodeContent"
:taskPartitionDictId="taskPartitionDictId"
:taskSubdivision="form.taskSubdivision"
:specialDiseaseNodeId="form.specialDiseaseNodeId"
@on-nodeContent="onNodeContent"
ref="wangeditor"
/>
" style="width: 100%" :nodeContent="form.nodeContent" :taskPartitionDictId="taskPartitionDictId"
:taskSubdivision="form.taskSubdivision" :specialDiseaseNodeId="form.specialDiseaseNodeId"
@on-nodeContent="onNodeContent" ref="wangeditor" />
<div class="card" v-show="form.taskNodeType != 'PHONE_OUTBOUND'">
<div class="flex">
@ -281,19 +154,11 @@
</div>
<div class="pushMethod">
模板
<message
@on-template="messageontemplate"
:templateId="form.messageTemplateId"
:templateName="form.messageTemplateName"
></message>
<message @on-template="messageontemplate" :templateId="form.messageTemplateId"
:templateName="form.messageTemplateName"></message>
</div>
<div class="pushMethod">
<el-switch
v-model="form.messagePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
<el-switch v-model="form.messagePushSign" active-color="#13ce66" active-value="1" inactive-value="0">
</el-switch>
</div>
</div>
@ -311,21 +176,13 @@
<div class="pushMethod">
模板
<span>
<officialAccount
@on-template="officialAccountontemplate"
:templateId="form.officialTemplateId"
:templateName="form.officialTemplateName"
>
<officialAccount @on-template="officialAccountontemplate" :templateId="form.officialTemplateId"
:templateName="form.officialTemplateName">
</officialAccount>
</span>
</div>
<div class="pushMethod">
<el-switch
v-model="form.officialPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
<el-switch v-model="form.officialPushSign" active-color="#13ce66" active-value="1" inactive-value="0">
</el-switch>
</div>
</div>
@ -343,21 +200,13 @@
<div class="pushMethod">
模板
<span>
<miniProgram
@on-template="miniProgramtemplate"
:templateId="form.appletTemplateId"
:templateName="form.appletTemplateName"
>
<miniProgram @on-template="miniProgramtemplate" :templateId="form.appletTemplateId"
:templateName="form.appletTemplateName">
</miniProgram>
</span>
</div>
<div class="pushMethod">
<el-switch
v-model="form.appletPushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
<el-switch v-model="form.appletPushSign" active-color="#13ce66" active-value="1" inactive-value="0">
</el-switch>
</div>
</div>
@ -370,19 +219,12 @@
<el-input v-model="form.appletPromptDescription" class="textarea" disabled></el-input>
</div> -->
</div>
<div
class="card"
style="margin-top: -30px"
v-show="form.taskNodeType == 'PHONE_OUTBOUND'"
>
<div class="card" style="margin-top: -30px" v-show="form.taskNodeType == 'PHONE_OUTBOUND'">
<div class="flex">
<div class="pushMethod">
推送方式
<span>
<el-radio-group
v-model="form.phoneDialMethod"
@change="changephoneDialMethod"
>
<el-radio-group v-model="form.phoneDialMethod" @change="changephoneDialMethod">
<el-radio label="COMMON">人工电话</el-radio>
<el-radio label="AI">自动外呼</el-radio>
</el-radio-group>
@ -392,23 +234,11 @@
<div class="flexs">
<div class="pushMethods">
话术模板
<span
:class="
form.templateId && form.phoneDialMethod == 'COMMON'
? 'spanname'
: ''
"
>
<scripts
@on-template="messageontemplateword"
:templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"
></scripts>
<span :class="form.templateId && form.phoneDialMethod == 'COMMON' ? 'spanname' : ''">
<scripts @on-template="messageontemplateword" :templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"></scripts>
</span>
<span
style="display: inline-block; width: 10px"
v-if="form.phoneTemplateId"
>
<span style="display: inline-block; width: 10px" v-if="form.phoneTemplateId">
<el-button @click="look">预览</el-button>
</span>
<!-- <br/> -->
@ -437,16 +267,9 @@
<div class="pushMethod">
重拨次数
<span>
<el-select
v-model="form.phoneRedialTimes"
style="width: 100px"
>
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
<el-select v-model="form.phoneRedialTimes" style="width: 100px" @change="changephoneRedialTimes">
<el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</span>
@ -454,11 +277,8 @@
<div class="pushMethod">
时间间隔()
<span>
<el-input
v-model.number="form.phoneTimeInterval"
oninput="value=value.replace(/[^\d]/g,'')"
style="width: 100px"
>
<el-input v-model.number="form.phoneTimeInterval" oninput="value=value.replace(/[^\d]/g,'')"
style="width: 100px">
<!-- <el-option
v-for="item in optionslistS"
:key="item.dictValue"
@ -471,63 +291,32 @@
</div>
<div class="pushMethod">
短信提醒
<el-select
v-model="form.phoneMessageRemind"
style="width: 150px"
>
<el-option
v-for="item in optionslist"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
<el-select v-model="form.phoneMessageRemind" style="width: 150px">
<el-option v-for="item in optionslist" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</div>
<div class="pushMethod">
短信模板
<span
:class="
form.phoneMessageRemind == 'NOT_SEND_MESSAGE'
? 'spanname'
: ''
"
>
<message
style="width: 200px"
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
<span :class="form.phoneMessageRemind == 'NOT_SEND_MESSAGE' ? 'spanname' : ''">
<message style="width: 200px" @on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId" :templateName="form.phoneMessageTemplateName"></message>
</span>
</div>
</div>
<!-- 话术模板内容 -->
<el-dialog
title="话术预览"
:visible.sync="lookNodeContent"
width="90%"
>
<Scriptpreview
:phoneNodeContent="phoneNodeContent"
></Scriptpreview>
<el-dialog title="话术预览" :visible.sync="lookNodeContent" width="90%">
<Scriptpreview :phoneNodeContent="phoneNodeContent"></Scriptpreview>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookNodeContent = false"
>关闭</el-button
>
<el-button type="primary" @click="lookNodeContent = false">关闭</el-button>
</span>
</el-dialog>
<!-- 问卷模板内容 -->
<el-dialog
title="问卷预览"
:visible.sync="lookquestionname"
width="40%"
>
<el-dialog title="问卷预览" :visible.sync="lookquestionname" width="40%">
<questionopennew :lookitemnew="lookitemnew"></questionopennew>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookquestionname = false"
>关闭</el-button
>
<el-button type="primary" @click="lookquestionname = false">关闭</el-button>
</span>
</el-dialog>
</div>
@ -536,42 +325,19 @@
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="TemporaryStorage"> </el-button>
<el-button
type="primary"
@click="dialogVisible = true"
v-if="form.specialDiseaseNodeId"
>审核完成 {{ agreeNumber ? agreeNumber : "0" }} /
{{ totalNumber ? totalNumber : "0" }}</el-button
>
<el-button type="primary" @click="dialogVisible = true" v-if="form.specialDiseaseNodeId">审核完成 {{ agreeNumber ?
agreeNumber : "0" }} /
{{ totalNumber ? totalNumber : "0" }}</el-button>
</div>
<el-dialog
title="提交审核完成"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-form
ref="routeform"
:model="routeform"
label-width="120px"
:rules="rules"
>
<el-dialog title="提交审核完成" :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-radio v-model="routeform.routeCheckStatus" label="AGREE"
>同意</el-radio
>
<el-radio v-model="routeform.routeCheckStatus" label="DISAGREE"
>不同意</el-radio
>
<el-radio v-model="routeform.routeCheckStatus" label="AGREE">同意</el-radio>
<el-radio v-model="routeform.routeCheckStatus" label="DISAGREE">不同意</el-radio>
</el-form-item>
<div class="txxt">
<el-form-item label="节点审核备注">
<el-input
type="textarea"
:rows="2"
placeholder="请输入节点审核备注"
v-model="routeform.routeCheckRemark"
>
<el-input type="textarea" :rows="2" placeholder="请输入节点审核备注" v-model="routeform.routeCheckRemark">
</el-input>
</el-form-item>
</div>
@ -675,6 +441,10 @@ export default {
appletRemindContent: "",
appletPromptDescription: "",
taskNodeType: '',
phoneDialMethod: '',
phoneMessageRemind: '',
phoneTimeInterval: '',
phoneRedialTimes: "",
},
itemindex: 0,
listindex: 0,
@ -741,6 +511,14 @@ export default {
},
mounted() { },
methods: {
//
changephoneRedialTimes(e) {
if (this.optionslistS.find(el => el.dictValue == e)?.dictLabel != '不重播') {
this.form.phoneTimeInterval = 30
}else{
this.form.phoneTimeInterval = ''
}
},
//
looklist() {
this.lookquestionlist = true;
@ -905,6 +683,10 @@ export default {
appletRemindContent: "",
appletPromptDescription: "",
taskNodeType: '',
phoneDialMethod: '',
phoneMessageRemind: '',
phoneTimeInterval: '',
phoneRedialTimes: "",
},
],
});
@ -992,8 +774,8 @@ export default {
messageontemplateword(item) {
this.form.phoneTemplateId = item.templateId;
this.form.phoneTemplateName = item.templateName;
this.lists[this.listindex].list[this.itemindex].scriptInfoId=item.scriptInfoId
this.lists[this.listindex].list[this.itemindex].phoneTemplateId=item.phoneTemplateId
this.lists[this.listindex].list[this.itemindex].scriptInfoId = item.scriptInfoId
this.lists[this.listindex].list[this.itemindex].phoneTemplateId = item.phoneTemplateId
// this.form.messagePreview = item.templateContent;
this.phoneNodeContent = item.phoneNodeContent;
},
@ -1296,6 +1078,10 @@ export default {
messagePreview: "",
taskNodeType: "",
taskNodeType: '',
phoneDialMethod: '',
phoneMessageRemind: '',
phoneTimeInterval: '',
phoneRedialTimes: "",
},
],
});
@ -1320,6 +1106,10 @@ export default {
messagePreview: "",
taskNodeType: "",
taskNodeType: '',
phoneDialMethod: '',
phoneMessageRemind: '',
phoneTimeInterval: '',
phoneRedialTimes: "",
});
},
delitem(item, index) {
@ -1367,8 +1157,17 @@ export default {
return loading.close();
}
}
}else{
} else {
if (!this.form.phoneDialMethod) {
this.$message.error("请选择推送方式");
return loading.close();
}
if (this.optionslist.find(e => e.dictValue == this.form.phoneMessageRemind)?.dictLabel == '未接通发短信') {
if (!this.form.phoneMessageTemplateId) {
this.$message.error("请选择短信模板");
return loading.close();
}
}
}
if (
Number(this.form.routeNodeDay) != 0 &&