修改宣教预览

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

View File

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