This commit is contained in:
2024-07-09 15:31:13 +08:00
parent 67ab68c9b3
commit 68c5dce21c
4 changed files with 181 additions and 603 deletions

View File

@ -3,8 +3,8 @@
<el-button size="small" @click="classificationOpen = true" <el-button size="small" @click="classificationOpen = true"
style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;" style="width: 200px;font-size:14px;text-align:left;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName :
'选择公众号模板' }}</el-button> '选择小程序模板' }}</el-button>
<el-dialog title="公众号模板选择" :visible.sync="classificationOpen" width="70%" <el-dialog title="小程序模板选择" :visible.sync="classificationOpen" width="70%"
:before-close="classificationOpenfalse"> :before-close="classificationOpenfalse">
<el-row :gutter="20"> <el-row :gutter="20">
<!--部门数据--> <!--部门数据-->
@ -147,7 +147,6 @@ export default {
watch: { watch: {
name(val) { name(val) {
this.querydepartmen.departmentName = val this.querydepartmen.departmentName = val
this.Departmentlist();
}, },
templateId(newValue, oldValue) { templateId(newValue, oldValue) {
this.handleselectId = newValue; this.handleselectId = newValue;
@ -162,7 +161,6 @@ export default {
}, },
created() { created() {
this.getList(); this.getList();
this.Departmentlist();
}, },
methods: { methods: {
classificationOpenfalse() { classificationOpenfalse() {

View File

@ -1,184 +1,70 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button <el-button size="small" @click="classificationOpen = true" style="
size="small"
@click="classificationOpen = true"
style="
width: 200px; width: 200px;
font-size: 14px; font-size: 14px;
text-align: left; text-align: left;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
" " :style="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : "选择问卷模板"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'" }}</el-button>
>{{ handleselectName ? handleselectName : "选择问卷模板" }}</el-button <el-dialog title="问卷库模板选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse"
> :modal-append-to-body="false">
<el-dialog
title="问卷库模板选择"
:visible.sync="classificationOpen"
width="70%"
:before-close="classificationOpenfalse"
>
<el-row :gutter="20"> <el-row :gutter="20">
<!--部门数据--> <!--部门数据-->
<el-col :span="6" :xs="24"> <el-col :span="6" :xs="24">
<div class="left" ref="box"> <DepartmentList ref="DepartmentList" @clickdepartment="clickdepartment" :methods="'getDepartmentList'">
<div class="name">科室名称</div> </DepartmentList>
<div style="padding: 10px 0">
<el-input
v-model="departmentName"
placeholder="请输入科室名称"
clearable
@keyup.enter.native="getTreeselect"
/>
</div>
<div
class="listitem"
v-for="(item, index) in deptOptions"
:key="index"
@click="clickDepartmenitem(item)"
>
<div
:class="
queryParams.departmentId == item.id ? 'allactive' : 'all'
"
>
{{ item.departmentName }}
</div>
<span class="count">{{ item.countNum }}</span>
</div>
</div>
</el-col> </el-col>
<!--用户数据--> <!--用户数据-->
<el-col :span="18" :xs="24"> <el-col :span="18" :xs="24">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="70px">
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
label-width="70px"
>
<el-form-item label="问卷标题" prop="questionnaireName"> <el-form-item label="问卷标题" prop="questionnaireName">
<el-input <el-input v-model="queryParams.questionnaireName" placeholder="请输入问卷标题" clearable
v-model="queryParams.questionnaireName" @keyup.enter.native="handleQuery" />
placeholder="请输入问卷标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName"> <el-form-item label="病种名称" prop="diseaseTypeName">
<el-input <el-input v-model="queryParams.diseaseTypeName" placeholder="请输入病种名称" clearable
v-model="queryParams.diseaseTypeName" @keyup.enter.native="handleQuery" />
placeholder="请输入病种名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="questionList" @row-dblclick="handleselect">
v-loading="loading" <el-table-column label="序号" type="index" width="55" align="center" />
:data="questionList" <el-table-column label="问卷模板名称" align="center" prop="questionnaireName" />
@row-dblclick="handleselect" <el-table-column label="问题个数" align="center" prop="questionCount" />
> <el-table-column label="问卷模板ID" align="center" prop="questionnaireId" />
<el-table-column <el-table-column label="问卷状态" align="center" prop="questionnaireStatus">
label="序号"
type="index"
width="55"
align="center"
/>
<el-table-column
label="问卷模板名称"
align="center"
prop="questionnaireName"
/>
<el-table-column
label="问题个数"
align="center"
prop="questionCount"
/>
<el-table-column
label="问卷模板ID"
align="center"
prop="questionnaireId"
/>
<el-table-column
label="问卷状态"
align="center"
prop="questionnaireStatus"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.questionnaireStatus" active-color="#13ce66" inactive-color="#ff4949"
v-model="scope.row.questionnaireStatus" active-value="PUBLISHED" inactive-value="UNPUBLISHED" disabled
active-color="#13ce66" @change="switchstatus($event, scope.row)">
inactive-color="#ff4949"
active-value="PUBLISHED"
inactive-value="UNPUBLISHED"
disabled
@change="switchstatus($event, scope.row)"
>
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="病种名称" align="center" prop="diseaseTypeName" />
label="病种名称" <el-table-column label="操作" align="center">
align="center"
prop="diseaseTypeName"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="handlesee(scope.row)" <el-button size="mini" type="text" @click="handlesee(scope.row)">预览</el-button>
>预览</el-button <el-button size="mini" type="text" @click="handleselect(scope.row)"
> v-if="handleselectId != scope.row.id">选择</el-button>
<el-button <el-button size="mini" type="text" @click="nohandleselect(scope.row)"
size="mini" v-if="handleselectId == scope.row.id">取消选择</el-button>
type="text"
@click="handleselect(scope.row)"
v-if="handleselectId != scope.row.id"
>选择</el-button
>
<el-button
size="mini"
type="text"
@click="nohandleselect(scope.row)"
v-if="handleselectId == scope.row.id"
>取消选择</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-dialog> </el-dialog>
<el-dialog title="问卷预览" :visible.sync="showquestion" width="40%"> <el-dialog title="问卷预览" :visible.sync="showquestion" width="40%">
<div class="righttextarea"> <div class="righttextarea">
<questionopennew <questionopennew :lookitemnew="lookitemnew" v-if="showquestion"></questionopennew>
:lookitemnew="lookitemnew"
v-if="showquestion"
></questionopennew>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -198,13 +84,14 @@ import {
} from "@/api/system/question"; } from "@/api/system/question";
import questionopennew from "./questionopennew.vue"; import questionopennew from "./questionopennew.vue";
import { questionname } from "@/api/system/taskExecuteRecord"; import { questionname } from "@/api/system/taskExecuteRecord";
import DepartmentList from '../../components/DepartmentList.vue'
export default { export default {
name: "Question", name: "Question",
props: ["templateId", "templateName"], props: ["templateId", "templateName"],
components: { components: {
questionopennew, questionopennew,
DepartmentList
}, },
data() { data() {
return { return {
showquestion: false, showquestion: false,
@ -215,8 +102,6 @@ export default {
children: "children", children: "children",
label: "label", label: "label",
}, },
//
deptOptions: undefined,
// //
loading: true, loading: true,
// //
@ -240,14 +125,9 @@ export default {
}; };
}, },
watch: { watch: {
//
departmentName(val) {
// this.getTreeselect()
},
}, },
created() { created() {
this.getTreeselect(); // this.getList();
this.getList();
}, },
mounted() { mounted() {
this.handleselectId = this.templateId; this.handleselectId = this.templateId;
@ -262,12 +142,20 @@ export default {
}, },
}, },
methods: { methods: {
//
clickdepartment(item) {
this.queryParams.hospitalAgencyId = item.hospitalAgencyId
this.queryParams.hospitalAgencyName = item.hospitalAgencyName
this.queryParams.departmentId = item.itemid
this.departmentName = item.itemName
if (item.hospitalAgencyId) {
this.getList();
}
this.$forceUpdate()
},
handlesee(row) { handlesee(row) {
console.log(row, "row");
this.showquestion = true; this.showquestion = true;
questionname(row.id).then((res) => { questionname(row.id).then((res) => {
// console.log(res, "res");
this.lookitemnew = res.data; this.lookitemnew = res.data;
}); });
}, },
@ -291,7 +179,6 @@ export default {
lookitemnew: res.data, lookitemnew: res.data,
}); });
}); });
this.classificationOpen = false; this.classificationOpen = false;
}, },
classificationOpenfalse() { classificationOpenfalse() {
@ -302,25 +189,6 @@ export default {
this.queryParams.departmentId = data.id; this.queryParams.departmentId = data.id;
this.handleQuery(); this.handleQuery();
}, },
//
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
/** 查询科室下拉树结构 */
getTreeselect() {
getDepartmentList({
departmentName: this.departmentName,
questionnaireStatus: "PUBLISHED",
// questionType: "REGULAR_QUESTIONNAIRE",
}).then((response) => {
// console.log('0000000000')
// response.data.forEach(e => {
// e.label = e.departmentName
// })
this.deptOptions = response.data;
});
},
/** 查询问卷基本信息列表 */ /** 查询问卷基本信息列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -339,6 +207,7 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.$refs.DepartmentList.resetQuery()
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
@ -349,6 +218,7 @@ export default {
::v-deep .el-dialog__body { ::v-deep .el-dialog__body {
padding-bottom: 60px; padding-bottom: 60px;
} }
.righttextarea { .righttextarea {
// height: 200px; // height: 200px;
padding: 10px; padding: 10px;
@ -357,51 +227,11 @@ export default {
border: 1.5px solid #c7c7c7; border: 1.5px solid #c7c7c7;
border-radius: 5px; border-radius: 5px;
} }
.app-container { .app-container {
padding: 0 !important; padding: 0 !important;
display: inline-block; display: inline-block;
// background: red; // background: red;
height: 42px; height: 42px;
} }
.left {
height: 500px;
overflow: auto;
.name {
font-weight: 700;
margin-bottom: 10px;
}
.listitem {
width: 100%;
height: 50px;
border-bottom: 1px solid #dcdfe6;
position: relative;
.count {
display: inline-block;
position: absolute;
left: 210px;
color: #a4a6aa;
top: 50%;
transform: translateY(-50%);
font-size: 13px;
}
.all {
height: 50px;
line-height: 50px;
padding-left: 13px;
}
.allactive {
background: #e8f4ff;
height: 50px;
line-height: 50px;
padding-left: 13px;
border-left: 3px solid #4d9de7;
}
}
}
</style> </style>

View File

@ -272,6 +272,7 @@ export default {
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.$refs.DepartmentList.resetQuery()
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },

View File

@ -8,20 +8,8 @@
</div> </div>
<div class="select"> <div class="select">
<span> 适用范围 </span> <span> 适用范围 </span>
<el-select <el-select v-model="updata.suitRange" placeholder="请选择" @change="changeoptions" disabled>
v-model="updata.suitRange" <el-option v-for="item in options" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
placeholder="请选择"
@change="changeoptions"
disabled
>
<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>
@ -33,59 +21,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" type="number" style="width: 70px" :min="0"></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 <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, 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 <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>
@ -95,118 +54,59 @@
<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: 150px" @change="changeTaskType">
v-model="form.taskType" <el-option v-for="item in selectTaskTypeList" :key="item.taskTypeCode" :label="item.taskTypeName"
style="width: 150px" :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: 150px" @change="changetaskSubdivision">
v-model="form.taskSubdivision" <el-option v-for="item in taskPartitionList" :key="item.taskPartitionCode"
style="width: 150px" :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: 110px" disabled></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 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-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'">
label="问卷库模板选择" <question @on-template="questionontemplate" :templateId="form.templateId"
prop="" :templateName="form.templateName"></question>
v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE'"
>
<question
@on-template="questionontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></question>
</el-form-item> </el-form-item>
<span <span style="display: inline-block; width: 10px" v-if="form.taskSubdivisiontemplateType == 'QUESTIONNAIRE' &&
style="display: inline-block; width: 10px" form.templateId
v-if=" ">
form.taskSubdivisiontemplateType == 'QUESTIONNAIRE' &&
form.templateId
"
>
<el-button @click="looklist">预览</el-button> <el-button @click="looklist">预览</el-button>
</span> </span>
<el-form-item <el-form-item label="宣教库模板选择" prop="" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'">
label="宣教库模板选择" <propaganda @on-template="propagandaontemplate" :templateId="form.templateId"
prop="" :templateName="form.templateName"></propaganda>
v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA'"
>
<propaganda
@on-template="propagandaontemplate"
:templateId="form.templateId"
:templateName="form.templateName"
></propaganda>
</el-form-item> </el-form-item>
<span <span style="display: inline-block; width: 10px" v-if="form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
style="display: inline-block; width: 10px" form.templateId
v-if=" ">
form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
form.templateId
"
>
<el-button @click="imagepreviews">预览</el-button> <el-button @click="imagepreviews">预览</el-button>
</span> </span>
</el-form> </el-form>
</div> </div>
<!-- 宣教 --> <!-- 宣教 -->
<el-dialog <el-dialog title="宣教预览" :visible.sync="imageScriptpreviews" width="60%">
title="宣教预览" <div class="imageScriptpreviews" v-if="formview &&
:visible.sync="imageScriptpreviews" form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
width="60%" form.templateId
> ">
<div
class="imageScriptpreviews"
v-if="
formview &&
form.taskSubdivisiontemplateType == 'PROPAGANDA' &&
form.templateId
"
>
<div class="titletop">文章模板:{{ formview.propagandaTitle }}</div> <div class="titletop">文章模板:{{ formview.propagandaTitle }}</div>
<div class="bodytop"> <div class="bodytop">
<div class="titledata">{{ formview.propagandaTitle }}</div> <div class="titledata">{{ formview.propagandaTitle }}</div>
@ -215,53 +115,31 @@
<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" :min-height="192" />
v-model="formview.propagandaContent"
: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
>
</span> </span>
</el-dialog> </el-dialog>
<!-- 问卷 --> <!-- 问卷 -->
<el-dialog <el-dialog title="问卷预览" :visible.sync="lookquestionlist" width="40%">
title="问卷预览"
:visible.sync="lookquestionlist"
width="40%"
>
<questionopennew :lookitemnew="lookitemnew"></questionopennew> <questionopennew :lookitemnew="lookitemnew"></questionopennew>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookquestionlist = false" <el-button type="primary" @click="lookquestionlist = false">关闭</el-button>
>关闭</el-button
>
</span> </span>
</el-dialog> </el-dialog>
<div class="bottomform"> <div class="bottomform">
<wangeditor <wangeditor v-show="form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' &&
v-show=" form.taskSubdivisiontemplateType != 'PROPAGANDA' &&
form.taskSubdivisiontemplateType != 'QUESTIONNAIRE' && form.taskSubdivisiontemplateType != 'SCRIPT'
form.taskSubdivisiontemplateType != 'PROPAGANDA' && " style="width: 100%" :nodeContent="form.nodeContent" :taskPartitionDictId="taskPartitionDictId"
form.taskSubdivisiontemplateType != 'SCRIPT' :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 <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">
推送方式 推送方式
@ -269,19 +147,11 @@
</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>
@ -290,10 +160,7 @@
<el-input class="textarea" v-model="form.messagePreview" disabled></el-input> <el-input class="textarea" v-model="form.messagePreview" disabled></el-input>
</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">
推送方式 推送方式
@ -302,21 +169,13 @@
<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>
@ -325,10 +184,7 @@
<el-input v-model="form.officialRemindContent" class="textarea" disabled></el-input> <el-input v-model="form.officialRemindContent" class="textarea" disabled></el-input>
</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">
推送方式 推送方式
@ -337,21 +193,13 @@
<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>
@ -364,19 +212,12 @@
<el-input v-model="form.appletPromptDescription" class="textarea" disabled></el-input> <el-input v-model="form.appletPromptDescription" class="textarea" disabled></el-input>
</div> --> </div> -->
</div> </div>
<div <div class="card" style="margin-top: -30px" v-show="form.taskSubdivisiontemplateType == 'SCRIPT'">
class="card"
style="margin-top: -30px"
v-show="form.taskSubdivisiontemplateType == 'SCRIPT'"
>
<div class="flex"> <div class="flex">
<div class="pushMethod"> <div class="pushMethod">
推送方式 推送方式
<span> <span>
<el-radio-group <el-radio-group v-model="form.phoneDialMethod" @change="changephoneDialMethod">
v-model="form.phoneDialMethod"
@change="changephoneDialMethod"
>
<el-radio label="COMMON">人工电话</el-radio> <el-radio label="COMMON">人工电话</el-radio>
<el-radio label="AI">自动外呼</el-radio> <el-radio label="AI">自动外呼</el-radio>
</el-radio-group> </el-radio-group>
@ -386,54 +227,30 @@
<div class="flexs"> <div class="flexs">
<div class="pushMethods"> <div class="pushMethods">
话术模板 话术模板
<span <span class="spanname" v-if="form.templateId && form.phoneDialMethod == 'COMMON'">
class="spanname" <scripts @on-template="messageontemplateword" :templateId="form.phoneTemplateId"
v-if="form.templateId && form.phoneDialMethod == 'COMMON'" :templateName="form.phoneTemplateName"></scripts>
>
<scripts
@on-template="messageontemplateword"
: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>
<span <span style="display: inline-block; width: 10px" v-if="form.phoneTemplateId">
style="display: inline-block; width: 10px"
v-if="form.phoneTemplateId"
>
<el-button @click="look">预览</el-button> <el-button @click="look">预览</el-button>
</span> </span>
<!-- <br/> --> <!-- <br/> -->
</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>
<span <span style="display: inline-block; width: 10px" v-if="form.templateId">
style="display: inline-block; width: 10px"
v-if="form.templateId"
>
<el-button @click="lookquestion">预览</el-button> <el-button @click="lookquestion">预览</el-button>
</span> </span>
</div> </div>
@ -451,16 +268,9 @@
<div class="pushMethod"> <div class="pushMethod">
重播次数 重播次数
<span> <span>
<el-select <el-select v-model="form.phoneRedialTimes" style="width: 100px">
v-model="form.phoneRedialTimes" <el-option v-for="item in optionslistS" :key="item.dictValue" :label="item.dictLabel"
style="width: 100px" :value="item.dictValue">
>
<el-option
v-for="item in optionslistS"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
>
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
@ -468,11 +278,8 @@
<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-option <!-- <el-option
v-for="item in optionslistS" v-for="item in optionslistS"
:key="item.dictValue" :key="item.dictValue"
@ -485,68 +292,36 @@
</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>
<!-- 话术模板内容 --> <!-- 话术模板内容 -->
<el-dialog <el-dialog title="话术预览" :visible.sync="lookNodeContent" width="90%">
title="话术预览" <Scriptpreview :phoneNodeContent="phoneNodeContent"></Scriptpreview>
:visible.sync="lookNodeContent"
width="90%"
>
<Scriptpreview
:phoneNodeContent="phoneNodeContent"
></Scriptpreview>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookNodeContent = false" <el-button type="primary" @click="lookNodeContent = false">关闭</el-button>
>关闭</el-button
>
</span> </span>
</el-dialog> </el-dialog>
<!-- 问卷模板内容 --> <!-- 问卷模板内容 -->
<el-dialog <el-dialog title="问卷预览" :visible.sync="lookquestionname" width="40%">
title="问卷预览"
:visible.sync="lookquestionname"
width="40%"
>
<questionopennew :lookitemnew="lookitemnew"></questionopennew> <questionopennew :lookitemnew="lookitemnew"></questionopennew>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookquestionname = false" <el-button type="primary" @click="lookquestionname = false">关闭</el-button>
>关闭</el-button
>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -555,41 +330,18 @@
</div> </div>
<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>
<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>
@ -611,7 +363,6 @@ import wangeditor from "../components/wangEditor.vue";
import question from "../components/question.vue"; import question from "../components/question.vue";
import message from "../components/message.vue"; import message from "../components/message.vue";
import scripts from "../components/script.vue"; import scripts from "../components/script.vue";
import propaganda from "../components/propaganda.vue"; import propaganda from "../components/propaganda.vue";
import officialAccount from "../components/officialAccount.vue"; import officialAccount from "../components/officialAccount.vue";
import miniProgram from "../components/miniProgram.vue"; import miniProgram from "../components/miniProgram.vue";
@ -738,7 +489,7 @@ export default {
// phoneTemplateId // phoneTemplateId
}, },
}, },
mounted() {}, mounted() { },
methods: { methods: {
// //
looklist() { looklist() {
@ -800,7 +551,7 @@ export default {
changelisy() { changelisy() {
list(this.parentDictCode).then((res) => { list(this.parentDictCode).then((res) => {
this.parentDictCodelist = res.rows; this.parentDictCodelist = res.rows;
console.log( this.parentDictCodelist,' this.parentDictCodelist') console.log(this.parentDictCodelist, ' this.parentDictCodelist')
}); });
}, },
@ -968,7 +719,7 @@ export default {
wangeditorlist.push(item); wangeditorlist.push(item);
// console.log(wangeditorlist, 'wangeditorlist') // console.log(wangeditorlist, 'wangeditorlist')
localStorage.setItem("wangeditorlist", JSON.stringify(wangeditorlist)); localStorage.setItem("wangeditorlist", JSON.stringify(wangeditorlist));
}, },
// //
miniProgramtemplate(item) { miniProgramtemplate(item) {
@ -1028,25 +779,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 =
@ -1145,7 +896,7 @@ export default {
} }
this.form = uitem; this.form = uitem;
setTimeout(() => { setTimeout(() => {
loading.close(); loading.close();
}, 1200); }, 1200);
}, },
handleStep() { handleStep() {
@ -1365,10 +1116,6 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
[v-cloak] {
display: none !important;
}
::v-deep iframe { ::v-deep iframe {
width: 100%; width: 100%;
height: 500px; height: 500px;
@ -1497,9 +1244,11 @@ export default {
} }
} }
} }
.flexs { .flexs {
display: flex; display: flex;
width: 100%; width: 100%;
.pushMethod { .pushMethod {
height: 30px; height: 30px;
margin-top: 30px; margin-top: 30px;
@ -1522,6 +1271,7 @@ export default {
font-size: 14px; font-size: 14px;
} }
} }
.pushMethods { .pushMethods {
height: 30px; height: 30px;
margin-top: 30px; margin-top: 30px;
@ -1544,6 +1294,7 @@ export default {
} }
} }
} }
.flex { .flex {
display: flex; display: flex;
width: 100%; width: 100%;
@ -1702,5 +1453,3 @@ export default {
padding: 20px; padding: 20px;
} }
</style> </style>