This commit is contained in:
2024-06-28 14:20:18 +08:00
parent 9d0db56c87
commit 74103b0b62
2 changed files with 91 additions and 310 deletions

View File

@ -15,7 +15,6 @@
}"></el-cascader-panel>
<div>
<div style="margin: 20px 0">结果预览:</div>
<div v-for="(item, index) of addlist" :key="index">
<div>{{ item.label }}</div>
</div>
@ -24,7 +23,6 @@
<el-button @click="labelclick" type="primary">确定</el-button>
</div>
</el-dialog>
<el-dialog title="添加知识库字段" :visible.sync="fieldshow" width="50%" :before-close="beforeClose"
class="category-cascader-panel">
<el-cascader-panel :options="fieldoptions" @change="handleChange($event)" :props="{
@ -173,7 +171,6 @@ export default {
let form = new FormData();
form.append("file", file);
let res = await this.uploadFile(form); //id
console.log(res);
const videoUrl = URL.createObjectURL(file);
this.html +=
'<video poster="" controls="true" width="auto" height="auto"><source src="' +
@ -182,7 +179,6 @@ export default {
},
async uploadFile(form) {
let res = await richTextPictureUrl(form); //
console.log(res);
return res;
},
emit() {
@ -195,7 +191,7 @@ export default {
el.children.forEach((ele) => {
if (e[1] == ele.value) {
this.addlist.push({
lebel: el.label + "-" + ele.label,
label: el.label + "-" + ele.label,
fileName: el.label,
fileSpan: ele.label,
fieldMark: ele.termCode
@ -234,18 +230,16 @@ export default {
this.editor.focus();
++this.isResouceShow;
this.selectedOptions = []
this.addlist = []
}, 100);
},
fieldclick() {
var aaa = document.querySelectorAll(".divBox");
// console.log(this.html, "this.html--before");
console.log(aaa, "打印dom");
if (aaa.length == 0) {
// aaa.innerHTML = "";
this.html += `<div>${this.add}</div>`;
var abc = new RegExp("<p><br></p>", "g");
var bbb = this.html.replace(abc, "");
console.log(bbb, "bbb");
this.html = bbb;
}
this.fieldshow = false;
@ -298,7 +292,6 @@ export default {
// });
// });
this.labeloptions = res;
console.log(res, "resssssssss");
});
bankLevel("3").then((res) => {
@ -314,7 +307,6 @@ export default {
// });
// });
this.fieldoptions = res;
console.log(this.fieldoptions, "***");
});
},
beforeClose() {
@ -326,7 +318,6 @@ export default {
},
watch: {
nodeContent(newValue, oldValue) {
console.log(newValue, oldValue);
this.html = newValue;
},
},

View File

@ -8,17 +8,8 @@
</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>
@ -30,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"
style="width: 70px"
type="number"
:min="0"
></el-input>
<el-input v-model="item.routeNodeDay" style="width: 70px" type="number" :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)"
: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>
@ -92,102 +54,49 @@
<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: 110px" @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: 110px" @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-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
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.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
<el-form-item label="问卷库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'">
<question @on-template="questionontemplate" :templateId="form.templateId"
:templateName="form.templateName"></question>
</el-form-item>
<el-form-item
label="宣教库模板选择"
prop=""
v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<propaganda
@on-template="propagandaontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></propaganda>
<el-form-item label="宣教库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'">
<propaganda @on-template="propagandaontemplate" :templateId="form.templateId"
:templateName="form.templateName"></propaganda>
</el-form-item>
</el-form>
</div>
<div class="bottomform">
<wangeditor
style="width: 100%"
:nodeContent="form.nodeContent"
@on-nodeContent="onNodeContent"
v-show="
form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' &&
form.taskSubdivisiontemplateType != 'PROPAGANDA' &&
form.taskSubdivisiontemplateType != 'SCRIPT'
"
ref="wangeditor"
/>
<div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<wangeditor style="width: 100%" :nodeContent="form.nodeContent" @on-nodeContent="onNodeContent" v-show="form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' &&
form.taskSubdivisiontemplateType != 'PROPAGANDA' &&
form.taskSubdivisiontemplateType != 'SCRIPT'
" ref="wangeditor" />
<div class="card" v-show="form.taskSubdivisiontemplateType != 'SCRIPT'">
<div class="flex">
<div class="pushMethod">
推送方式
@ -195,19 +104,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>
@ -216,10 +117,7 @@
<el-input class="textarea" v-model="form.messagePreview" disabled></el-input>
</div> -->
</div>
<div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="card" v-show="form.taskSubdivisiontemplateType != 'SCRIPT'">
<div class="flex">
<div class="pushMethod">
推送方式
@ -228,21 +126,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>
@ -251,10 +141,7 @@
<el-input v-model="form.officialRemindContent" class="textarea" disabled></el-input>
</div> -->
</div>
<div
class="card"
v-show="form.taskSubdivisiontemplateType != 'SCRIPT'"
>
<div class="card" v-show="form.taskSubdivisiontemplateType != 'SCRIPT'">
<div class="flex">
<div class="pushMethod">
推送方式
@ -263,21 +150,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>
@ -290,11 +169,7 @@
<el-input v-model="form.appletPromptDescription" class="textarea" disabled></el-input>
</div> -->
</div>
<div
class="card"
style="height: 250px"
v-show="form.taskSubdivisiontemplateType == 'SCRIPT'"
>
<div class="card" style="height: 250px" v-show="form.taskSubdivisiontemplateType == 'SCRIPT'">
<div class="flex">
<div class="pushMethod">
推送方式
@ -308,47 +183,27 @@
<div class="pushMethod">
话术模板
<span class="spanname" v-if="form.templateId">
<scripts
@on-template="messageontemplateword"
:templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"
></scripts>
<scripts @on-template="messageontemplateword" :templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"></scripts>
</span>
<span v-else>
<scripts
@on-template="messageontemplateword"
:templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"
></scripts>
<scripts @on-template="messageontemplateword" :templateId="form.phoneTemplateId"
:templateName="form.phoneTemplateName"></scripts>
</span>
</div>
<div
class="pushMethod"
v-if="form.phoneDialMethod == 'COMMON' || !form.phoneDialMethod"
>
<div class="pushMethod" v-if="form.phoneDialMethod == 'COMMON' || !form.phoneDialMethod">
问卷模板
<span class="spanname" v-if="form.phoneTemplateId">
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
<question @on-template="questionontemplate" :templateId="form.templateId"
:templateName="form.templateName"></question>
</span>
<span v-else>
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
<question @on-template="questionontemplate" :templateId="form.templateId"
:templateName="form.templateName"></question>
</span>
</div>
<div class="pushMethod">
<el-switch
v-model="form.phonePushSign"
active-color="#13ce66"
active-value="1"
inactive-value="0"
>
<el-switch v-model="form.phonePushSign" active-color="#13ce66" active-value="1" inactive-value="0">
</el-switch>
</div>
</div>
@ -356,16 +211,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">
<el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel"
:value="item.dictValue">
</el-option>
</el-select>
</span>
@ -373,11 +221,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"
@ -390,39 +235,21 @@
</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="spanname"
v-if="form.phoneMessageRemind == 'NOT_SEND_MESSAGE'"
>
<message
style="width: 200px"
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
<span class="spanname" v-if="form.phoneMessageRemind == 'NOT_SEND_MESSAGE'">
<message style="width: 200px" @on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId" :templateName="form.phoneMessageTemplateName"></message>
</span>
<span v-else>
<message
style="width: 200px"
@on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId"
:templateName="form.phoneMessageTemplateName"
></message>
<message style="width: 200px" @on-template="messageontemplateMESSAGE"
:templateId="form.phoneMessageTemplateId" :templateName="form.phoneMessageTemplateName"></message>
</span>
</div>
</div>
@ -432,41 +259,18 @@
</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>
<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>
</el-form>
@ -572,11 +376,10 @@ export default {
this.infolistword();
this.infolistMESSAGE();
},
beforeDestroy() {},
beforeDestroy() { },
watch: {
"form.phoneMessageRemind": {
handler(newValue, oldValue) {
console.log(newValue, "2222221111122");
if (newValue == "NOT_SEND_MESSAGE") {
this.form.phoneMessageTemplateId = "";
this.form.phoneMessageTemplateName = "";
@ -586,7 +389,6 @@ export default {
},
"form.phoneTemplateId": {
handler(newValue, oldValue) {
console.log(newValue, "phoneTemplateId");
// if (newValue == "NOT_SEND_MESSAGE") {
this.form.phoneTemplateId = newValue;
// this.form.phoneMessageTemplateName = "";
@ -596,7 +398,7 @@ export default {
// phoneTemplateId
},
},
mounted() {},
mounted() { },
methods: {
infolistword() {
var dictType = "text_message_remind";
@ -652,7 +454,6 @@ export default {
this.agreeNumber = res.data.agreeNumber;
this.totalNumber = res.data.totalNumber;
res.data.specialDiseaseNodeList.forEach((e) => {
console.log(e, "eeeeeeeeeeeeeeeee");
if (e.messagePushSign) {
e.messagePushSign = "" + e.messagePushSign;
}
@ -704,7 +505,6 @@ export default {
],
});
this.form = this.lists[0].list[0];
console.log(this.form, "6555555555555555");
}
},
@ -748,14 +548,11 @@ export default {
},
//wangeditor
onNodeContent(item) {
console.log(item, "itemfu");
this.form.nodeContent = item.nodeContent;
// this.html += `<div>${this.add}</div>`;
var abc = new RegExp("<br>", "g");
var bbb = this.form.nodeContent.replace(abc, "");
// console.log(bbb, "bbb");
this.form.nodeContent = bbb;
// console.log(this.form.nodeContent, " this.form.nodeContent");
},
//
miniProgramtemplate(item) {
@ -771,7 +568,6 @@ export default {
},
//
messageontemplateMESSAGE(item) {
console.log(item, "2222222");
this.form.phoneMessageTemplateId = item.templateId;
this.form.phoneMessageTemplateName = item.templateName;
this.form.messagePreview = item.templateContent;
@ -814,16 +610,12 @@ export default {
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);
})
el.routeNodeDay = e.routeNodeDay;
el.routeNodeName = e.routeNodeName;
this.updata.specialDiseaseNodeList.push(el);
})
: "";
});
console.log(
this.updata.specialDiseaseNodeList,
" this.updata.specialDiseaseNodeList"
);
// this.updata.specialDiseaseNodeList =
// this.updata.specialDiseaseNodeList.filter(
// (e) =>
@ -837,7 +629,6 @@ export default {
this.info();
loading.close();
this.$modal.msgSuccess("暂存成功!");
console.log(this.form, "666666666");
});
setTimeout(() => {
loading.close();
@ -855,8 +646,6 @@ export default {
this.form.templateName = item.templateName;
},
bottomclickevent(uitem, index, uindex) {
console.log(uitem, index, uindex, "uitem, index, uindex");
if (
this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" &&
this.form.taskSubdivisiontemplateType != "PROPAGANDA"
@ -903,7 +692,6 @@ export default {
},
//
changetaskSubdivision(code, type) {
console.log(code, type, "code, type");
this.form.taskSubdivisionName = this.taskPartitionList?.find(
(e) => e.taskPartitionCode == code
)?.taskPartitionName;
@ -930,10 +718,6 @@ export default {
) {
this.form.nodeContent = `<p></p>`;
}
console.log(
this.form.taskSubdivisiontemplateType,
"this.form.taskSubdivisiontemplateType"
);
if (!type) {
this.form.templateId = "";
this.form.templateName = "";
@ -1066,11 +850,13 @@ export default {
background-color: #fff !important;
color: #606266 !important;
}
::v-deep.el-form-item--medium .el-form-item__content {
line-height: 36px;
height: 40px;
overflow: hidden;
}
::v-deep .el-card__body {
position: relative;
}
@ -1155,9 +941,11 @@ export default {
line-height: 35px;
font-size: 14px;
color: #64666a;
.spanname {
pointer-events: none;
}
::v-deep .el-input__inner {
color: black;
font-size: 14px;
@ -1187,6 +975,7 @@ export default {
}
}
}
.title {
display: flex;
align-items: center;
@ -1293,6 +1082,7 @@ export default {
::v-deep .el-card {
margin-top: 20px !important;
}
.container {
padding: 20px;
}