修改宣教预览

This commit is contained in:
闫晓茹 2024-07-04 11:14:38 +08:00
parent 3323c79826
commit 56b0f452cc
2 changed files with 259 additions and 152 deletions

View File

@ -278,7 +278,7 @@
<el-form-item label="任务类型" prop="">
<el-select
v-model="form.taskType"
style="width: 130px"
style="width: 150px"
@change="changeTaskType"
>
<el-option
@ -293,7 +293,7 @@
<el-form-item label="任务细分" prop="">
<el-select
v-model="form.taskSubdivision"
style="width: 130px"
style="width: 150px"
@change="changetaskSubdivision"
>
<el-option
@ -370,8 +370,8 @@
form.templateId
"
>
<el-button @click="imagepreviews">预览</el-button> </span
>
<el-button @click="imagepreviews">预览</el-button>
</span>
</el-form>
</div>
<!-- 宣教 -->
@ -380,29 +380,29 @@
:visible.sync="imageScriptpreviews"
width="60%"
>
<div
class="imageScriptpreviews"
v-if="
formview &&
form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
form.templateId
"
>
<div class="bodytop">
<div class="titledata">{{ formview.propagandaTitle }}</div>
<div
class="imageScriptpreviews"
v-if="
formview &&
form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
form.templateId
"
>
<div class="bodytop">
<div class="titledata">{{ formview.propagandaTitle }}</div>
<div>
<img :src="baseUrl + formview.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
<Editorxj
v-model="formview.propagandaContent"
:min-height="192"
/>
<div>
<img :src="baseUrl + formview.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
<Editorxj
v-model="formview.propagandaContent"
:min-height="192"
/>
</div>
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="imageScriptpreviews = false"
> </el-button
@ -544,8 +544,8 @@
</span>
</div>
</div>
<div class="flex">
<div class="pushMethod">
<div class="flexs">
<div class="pushMethods">
话术模板
<span
class="spanname"
@ -910,18 +910,10 @@ import indexjs from "./indexjs.js";
export default indexjs;
</script>
<style scoped lang="scss">
.righttextarea {
padding: 10px;
border: 1.5px solid #c7c7c7;
border-radius: 5px;
}
::v-deep iframe {
width: 100%;
height: 500px;
}
.imageScriptpreview {
margin-top: 20px;
}
.imageScriptpreviews {
margin: 0 auto;
@ -1064,44 +1056,53 @@ export default indexjs;
height: 130px;
margin: 20px 0 0;
padding: 20px 50px 0px 20px;
.flextwo {
// display: flex;
// align-items: center;
margin-top: 20px;
.text {
.flexs {
display: flex;
width: 100%;
.pushMethod {
height: 30px;
margin-top: 30px;
margin-left: 67px;
line-height: 37px;
font-size: 14px;
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: 14px;
height: 40px;
line-height: 40px;
.spanname {
pointer-events: none;
}
::v-deep .el-input__inner {
color: black;
font-size: 14px;
cursor: default !important;
}
span {
color: black;
font-size: 14px;
}
}
.pushMethods {
height: 30px;
margin-top: 30px;
line-height: 37px;
font-size: 14px;
color: #64666a;
.spanname {
pointer-events: none;
}
::v-deep .el-input__inner {
color: black;
font-size: 14px;
}
span {
color: black;
font-size: 14px;
}
}
}
.flex {
display: flex;
width: 100%;
@ -1131,6 +1132,7 @@ export default indexjs;
}
}
}
}
}

View File

@ -8,8 +8,17 @@
</div>
<div class="select">
<span> 适用范围 </span>
<el-select v-model="updata.suitRange" placeholder="请选择" @change="changeoptions">
<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"
>
<el-option
v-for="item in options"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option>
</el-select>
</div>
@ -21,30 +30,59 @@
<i class="el-icon-circle-plus-outline" @click="addlist"></i>
</div>
<el-timeline>
<el-timeline-item v-for="(item, index) in lists" :key="index" :color="listindex == index ? '#409EFF' : ''">
<el-timeline-item
v-for="(item, index) in lists"
:key="index"
:color="listindex == index ? '#409EFF' : ''"
>
<div class="top">
<div class="toptop">
<el-select v-model="item.routeNodeName" 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>
@ -54,28 +92,52 @@
<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: 110px" @change="changeTaskType">
<el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode" :label="item.taskTypeName"
:value="item.taskTypeCode">
<el-select
v-model="form.taskType"
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: 110px" @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.taskStatus" style="width: 110px">
<el-option v-for="item in taskStatusDictList" :key="item.id" :label="item.taskStatusName"
:value="item.taskStatusCode">
<el-select v-model="form.taskStatus" style="width: 150px">
<el-option
v-for="item in taskStatusDictList"
:key="item.id"
:label="item.taskStatusName"
:value="item.taskStatusCode"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="二级分类描述" prop="">
<el-input v-model="form.secondClassifyDescribe" 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
@ -124,8 +186,8 @@
form.templateId
"
>
<el-button @click="imagepreviews">预览</el-button> </span
>
<el-button @click="imagepreviews">预览</el-button>
</span>
</el-form>
</div>
<!-- 宣教 -->
@ -134,30 +196,30 @@
:visible.sync="imageScriptpreviews"
width="60%"
>
<div
class="imageScriptpreviews"
v-if="
formview &&
form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
form.templateId
"
>
<div class="bodytop">
<div class="titledata">{{ formview.propagandaTitle }}</div>
<div
class="imageScriptpreviews"
v-if="
formview &&
form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
form.templateId
"
>
<div class="bodytop">
<div class="titledata">{{ formview.propagandaTitle }}</div>
<div>
<img :src="baseUrl + formview.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
<Editorxj
v-model="formview.propagandaContent"
:min-height="192"
/>
<div>
<img :src="baseUrl + formview.propagandaCoverPath" alt="" />
<div class="know">知识卡片</div>
<div class="knowlist">
<Editorxj
v-model="formview.propagandaContent"
:min-height="192"
/>
</div>
</div>
</div>
</div>
</div>
<span slot="footer" class="dialog-footer">
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="imageScriptpreviews = false"
> </el-button
>
@ -313,8 +375,8 @@
</span>
</div>
</div>
<div class="flex">
<div class="pushMethod">
<div class="flexs">
<div class="pushMethods">
话术模板
<span
class="spanname"
@ -576,7 +638,7 @@ export default {
lookquestionname: false,
lookquestionlist: false,
lookNodeContent: false,
imageScriptpreviews:false,
imageScriptpreviews: false,
lookitemnew: {},
baseUrl: process.env.VUE_APP_BASE_API,
showquestion: false,
@ -642,7 +704,7 @@ export default {
this.infolistword();
this.infolistMESSAGE();
},
beforeDestroy() { },
beforeDestroy() {},
watch: {
"form.phoneMessageRemind": {
handler(newValue, oldValue) {
@ -664,7 +726,7 @@ export default {
// phoneTemplateId
},
},
mounted() { },
mounted() {},
methods: {
//
looklist() {
@ -674,9 +736,9 @@ export default {
lookquestion() {
this.lookquestionname = true;
},
//
imagepreviews(){
this.imageScriptpreviews=true
//
imagepreviews() {
this.imageScriptpreviews = true;
},
//
look() {
@ -783,7 +845,10 @@ export default {
getPropaganda(this.form.templateId).then((response) => {
this.formview = response.data;
});
} else if (this.form.templateType == "QUESTIONNAIRE" || this.form.templateType == "SCRIPT" && this.form.templateId) {
} else if (
this.form.templateType == "QUESTIONNAIRE" ||
(this.form.templateType == "SCRIPT" && this.form.templateId)
) {
//
questionname(this.form.templateId).then((res) => {
this.lookitemnew = res.data;
@ -927,25 +992,25 @@ export default {
this.lists.forEach((e) => {
e.list.length > 0
? e.list.forEach((el) => {
el.routeNodeDay = e.routeNodeDay;
el.routeNodeName = e.routeNodeName;
if (el.phoneDialMethod == "COMMON" && el.templateId) {
el.phonePushSign = "1";
el.routeNodeDay = e.routeNodeDay;
el.routeNodeName = e.routeNodeName;
if (el.phoneDialMethod == "COMMON" && el.templateId) {
el.phonePushSign = "1";
el.templateType = "QUESTIONNAIRE";
} else if (
el.phoneDialMethod == "COMMON" &&
el.phoneTemplateId
) {
el.phonePushSign = "1";
el.templateType = "QUESTIONNAIRE";
} else if (
el.phoneDialMethod == "COMMON" &&
el.phoneTemplateId
) {
el.phonePushSign = "1";
el.templateType = "SCRIPT";
} else if (el.phoneDialMethod == "AI" && el.phoneTemplateId) {
el.templateType = "SCRIPT";
el.phonePushSign = "1";
}
this.updata.specialDiseaseNodeList.push(el);
})
el.templateType = "SCRIPT";
} else if (el.phoneDialMethod == "AI" && el.phoneTemplateId) {
el.templateType = "SCRIPT";
el.phonePushSign = "1";
}
this.updata.specialDiseaseNodeList.push(el);
})
: "";
});
// this.updata.specialDiseaseNodeList =
@ -982,8 +1047,8 @@ export default {
},
//
dialogVisibletrue() {
this.form.routeNodeDay = Number(this.lists[this.listindex].routeNodeDay)
this.dialogVisible = true
this.form.routeNodeDay = Number(this.lists[this.listindex].routeNodeDay);
this.dialogVisible = true;
},
//
bottomclickevent(uitem, index, uindex) {
@ -998,11 +1063,16 @@ export default {
setTimeout(() => {
this.form = uitem;
if (this.form.templateType == "PROPAGANDA" && this.form.templateId) {
getPropaganda(this.form.templateId).then((response) => { //
getPropaganda(this.form.templateId).then((response) => {
//
this.formview = response.data;
});
} else if (this.form.templateType == "QUESTIONNAIRE" && this.form.templateId) {
questionname(this.form.templateId).then((res) => { //
} else if (
this.form.templateType == "QUESTIONNAIRE" &&
this.form.templateId
) {
questionname(this.form.templateId).then((res) => {
//
this.lookitemnew = res.data;
});
} else if (this.form.templateType == "SCRIPT" && this.form.flowScheme) {
@ -1161,7 +1231,10 @@ export default {
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
if (Number(this.form.routeNodeDay) != 0 && Number(this.form.routeNodeDay) < 0) {
if (
Number(this.form.routeNodeDay) != 0 &&
Number(this.form.routeNodeDay) < 0
) {
this.$message.error("请输入节点时间段天数");
return loading.close();
}
@ -1201,22 +1274,13 @@ export default {
};
</script>
<style scoped lang="scss">
.righttextarea {
padding: 10px;
border: 1.5px solid #c7c7c7;
border-radius: 5px;
}
::v-deep iframe {
width: 100%;
height: 500px;
}
.imageScriptpreview {
width: 100%;
margin-top: 20px;
}
.imageScriptpreviews {
margin: 0 auto;
width: 90%;
@ -1295,11 +1359,6 @@ export default {
.card {
background-color: #fff;
// width: 100%;
// height: 200px;
// margin: 20px 0 0;
// padding: 20px 50px 0px 20px;
// background-color: #fff;
width: 100%;
height: 130px;
margin: 20px 0 0;
@ -1344,7 +1403,53 @@ export default {
}
}
}
.flexs {
display: flex;
width: 100%;
.pushMethod {
height: 30px;
margin-top: 30px;
margin-left: 67px;
line-height: 37px;
font-size: 14px;
color: #64666a;
.spanname {
pointer-events: none;
}
::v-deep .el-input__inner {
color: black;
font-size: 14px;
}
span {
color: black;
font-size: 14px;
}
}
.pushMethods {
height: 30px;
margin-top: 30px;
line-height: 37px;
font-size: 14px;
color: #64666a;
.spanname {
pointer-events: none;
}
::v-deep .el-input__inner {
color: black;
font-size: 14px;
}
span {
color: black;
font-size: 14px;
}
}
}
.flex {
display: flex;
width: 100%;