This commit is contained in:
闫晓茹 2024-07-03 10:21:31 +08:00
parent abda5eaa0a
commit 5b26dd3740
13 changed files with 2603 additions and 1172 deletions

View File

@ -97,14 +97,14 @@
<template slot-scope="scope">
{{ scope.row.portaitCheckStatus == "AGREE" ? "审核通过" : "" }}
{{ scope.row.portaitCheckStatus == "DISAGREE" ? "已忽略" : "" }}
{{ scope.row.portaitCheckStatus == "" ? "未审核" : "" }}
{{ scope.row.portaitCheckStatus ==null ? "未审核" : "" }}
</template>
</el-table-column>
<el-table-column label="路径审核状态" align="center" prop="routeCheckStatus" width="100">
<template slot-scope="scope">
{{ scope.row.routeCheckStatus == "AGREE" ? "审核通过" : "" }}
{{ scope.row.routeCheckStatus == "DISAGREE" ? "已忽略" : "" }}
{{ scope.row.routeCheckStatus == "" ? "未审核" : "" }}
{{ scope.row.routeCheckStatus == null ? "未审核" : "" }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">

View File

@ -137,7 +137,7 @@
</el-form-item>
<el-form-item label="短信内容" prop="textMessageContent">
<el-input v-model="form.textMessageContent" placeholder="请输入短信内容" type="textarea" maxlength="300" />
<el-input v-model="form.textMessageContent" placeholder="请输入短信内容" type="textarea" maxlength="300" :rows="10" />
</el-form-item>
<el-form-item label="适用任务类型" prop="suitTaskTypeIds">
<el-select v-model="form.suitTaskTypeIds" placeholder="请选择适用任务类型" style="width: 350px" multiple>

File diff suppressed because it is too large Load Diff

View File

@ -123,6 +123,7 @@ export default {
},
methods: {
init() {
// console.log(111111111111)
const editor = this.$refs.editor;
this.Quill = new Quill(editor, this.options);
//

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,12 @@ import propaganda from "../components/propaganda.vue";
import officialAccount from "../components/officialAccount.vue";
import miniProgram from "../components/miniProgram.vue";
import { getAgencytype } from "@/api/system/agency";
import Scriptpreview from ".././components/Scriptpreviewopen.vue";
import Editorxj from "../Editorxj/index.vue";
import {
getPropaganda,
} from "@/api/manage/propaganda";
import {
selectTaskTypeList,
taskPartitionList,
@ -18,21 +24,25 @@ import {
triggerConditionList,
getList,
} from "@/api/system/specialDiseaseNode";
import Cookies from "js-cookie";
export default {
components: {
wangeditor,
Editorxj,
question,
propaganda,
message,
scripts,
officialAccount,
miniProgram,
Scriptpreview
},
name: "specialDiseaseNode",
data() {
return {
formview: {},
baseUrl: process.env.VUE_APP_BASE_API,
value: 1,
ConditionValue: [],
dictDataType: "",
@ -83,6 +93,7 @@ export default {
agreeNumber: 0,
value: "",
input: "",
phoneNodeContent: '',
//任务类型
selectTaskTypeList: [],
//任务状态
@ -116,7 +127,6 @@ export default {
this.$set(this.openlist, "suitRange", this.$route.query.suitRange);
this.openlist.routeId = this.$route.query.id;
this.itemlist.routeName = this.$route.query.routeName
}
this.taskinfo();
this.infolistname();
@ -138,19 +148,7 @@ export default {
},
deep: true,
},
// "openlist.triggerConditionList": {
// handler(newValue, oldValue) {
// // console.log(newValue,'newValue')
// newValue.forEach(e=>{
// console.log(e,'e')
// })
// // if (newValue == "NOT_SEND_MESSAGE") {
// // this.form.phoneMessageTemplateId = "";
// // this.form.phoneMessageTemplateName = "";
// // }
// },
// deep: true,
// },
},
mounted() {
// this.form = this.lists[0].list[0];
@ -189,7 +187,6 @@ export default {
});
delete this.openlist.triggerConditionList.optionstriggerConditionOperator
loading.close();
console.log(this.openlist.triggerConditionList, 'this.openlist.triggerConditionList')
// return;
triggerCondition(this.openlist).then((res) => {
if (res.code == 200) {
@ -339,8 +336,15 @@ export default {
)?.dictCode;
setTimeout(() => {
this.changelisy();
}, 1000);
}, 3000);
this.itemlist.specialDiseaseRouteId = this.$route.query.id;
console.log(this.form.templateId, 'this.form.templateId')
if (this.form.templateId) {
getPropaganda(this.form.templateId).then((response) => {
this.formview = response.data;
});
}
selectSpecialDisease(this.$route.query.id).then((res) => {
loading.close();
this.agreeNumber = res.data.agreeNumber;
@ -449,7 +453,6 @@ export default {
optiononditionOperator() {
var dictType = "trigger_condition_operator";
getAgencytype(dictType).then((res) => {
// console.log(res, 'redsssssssss')
this.openlist.triggerConditionList.optionstriggerConditionOperator = res.data;
});
@ -489,7 +492,6 @@ export default {
// this.openlist.triggerConditionList[index].optionstriggerConditionOperator=[]
getList(dictType, this.dictDataType).then((res) => {
this.$set(this.openlist.triggerConditionList[index], 'optionstriggerConditionOperator', res.data)
console.log(this.openlist.triggerConditionList[index].optionstriggerConditionOperator, 'this.openlist')
this.$forceUpdate();
});
},
@ -601,25 +603,28 @@ export default {
},
// 话术
messageontemplateword(item) {
console.log(item, 'item')
this.form.phoneTemplateId = item.templateId;
this.form.phoneTemplateName = item.templateName;
console.log(this.form.phoneTemplateId, ' this.form.phoneTemplateId')
// this.form.messagePreview = item.templateContent;
this.phoneNodeContent = item.phoneNodeContent;
},
changephoneDialMethod(e){
console.log(e,'e')
if(e=='AI'){
changephoneDialMethod(e) {
console.log(e)
if (e == 'AI') {
// this.form.templateId=''
this.form.phoneTemplateId=''
this.form.phoneTemplateName=''
this.form.phoneTemplateId = ''
this.form.phoneTemplateName = ''
this.phoneNodeContent = ''
}else if(e=='COMMON'){
this.form.templateId=''
this.form.templateName=''
} else if (e == 'COMMON') {
this.form.templateId = ''
this.form.templateName = ''
this.form.phoneTemplateId = ''
this.form.phoneTemplateName = ''
this.phoneNodeContent = ''
this.form.phoneTemplateId=''
this.form.phoneTemplateName=''
}
},
//短信传值
@ -669,13 +674,12 @@ export default {
? e.list.forEach((el) => {
el.routeNodeDay = e.routeNodeDay;
el.routeNodeName = e.routeNodeName;
console.log(el, 'el')
if (el.phoneDialMethod == 'COMMON' && el.templateId) {
el.templateType = 'QUESTIONNAIRE'
} else if (el.phoneDialMethod == 'COMMON' && el.phoneTemplateId) {
el.templateType = 'SCRIPT'
}else if (el.phoneDialMethod == "AI" && el.phoneTemplateId) {
} else if (el.phoneDialMethod == "AI" && el.phoneTemplateId) {
el.templateType = "SCRIPT";
}
this.itemlist.specialDiseaseNodeList.push(el);
@ -691,9 +695,8 @@ export default {
// !e.taskSubdivision &&
// !e.taskStatus
// );
console.log(this.itemlist, 'itemlist')
// return
specialDiseaseNode(this.itemlist).then((res) => {
this.info();
@ -712,20 +715,41 @@ export default {
},
//宣教传值
propagandaontemplate(item) {
// console.log(item, 'item')
this.form.templateId = item.templateId;
this.form.templateName = item.templateName;
// if(item){
this.formview = item.formview
// }else{
// getPropaganda( this.form.templateId).then((response) => {
// this.formview = response.data;
// });
// }
},
bottomclickevent(uitem, index, uindex) {
console.log(uitem, 'this.form.templateId')
if (uitem.templateId && uitem.taskSubdivisiontemplateType == "PROPAGANDA") {
getPropaganda(uitem.templateId).then((response) => {
this.formview = response.data;
console.log(this.formview,'this.formview')
});
}
if (
this.form.taskSubdivisiontemplateType != "QUESTIONNAIRE" &&
this.form.taskSubdivisiontemplateType != "PROPAGANDA" &&
this.form.taskSubdivisiontemplateType != 'SCRIPT'
this.form.taskSubdivisiontemplateType != "SCRIPT"
) {
this.$refs.wangeditor.emit();
}
setTimeout(() => {
this.form = uitem;
// console.log( this.form,'this.form')
this.taskPartitionList = [];
if (this.form.taskType) {
this.changeTaskType(this.form.taskType, this.form.taskSubdivision);

View File

@ -24,52 +24,154 @@
> -->
<!-- <font-awesome-icon icon="heart" /> -->
<!-- <FontAwesomeIcon icon="far fa-copy" /> -->
<font-awesome-icon data-command="save" class="command fa fa-floppy-o" icon="command far far fa-copy"
title="保存"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-reply-all" title="历史数据"
@click="readHistoryData"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" class="fa fa-hdd-o" icon="fas fa-file" title="上传数据"
@click="readUploadData"></font-awesome-icon>
<font-awesome-icon icon="fas fa-download" style="margin-left: 10px" title="另存为文件"
@click="saveAsFile">文件</font-awesome-icon>
<font-awesome-icon
data-command="save"
class="command fa fa-floppy-o"
icon="command far far fa-copy"
title="保存"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-reply-all"
title="历史数据"
@click="readHistoryData"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
class="fa fa-hdd-o"
icon="fas fa-file"
title="上传数据"
@click="readUploadData"
></font-awesome-icon>
<font-awesome-icon
icon="fas fa-download"
style="margin-left: 10px"
title="另存为文件"
@click="saveAsFile"
>文件</font-awesome-icon
>
<!-- <FontAwesomeIcon icon="fas fa-image" /> -->
<font-awesome-icon style="margin-left: 10px" icon="fas fa-image" title="另存为图片"
@click="openSaveAsImageDialog"></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-image"
title="另存为图片"
@click="openSaveAsImageDialog"
></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" data-command="undo" icon="fas fa-undo" class="command fa fa-undo"
title="撤销"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" data-command="redo" class="command fa fa-repeat"
icon="fas fa-repeat" title="重做"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" data-command="delete" class="command fa fa-trash-o"
icon="fas fa-trash-alt" title="删除"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" data-command="zoomOut" class="command fa fa-search-minus"
icon="fas fa-search-minus" title="缩小"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" data-command="zoomIn" icon="fas fa-search-plus"
class="command fa fa-search-plus" title="放大"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-eraser" data-command="clear"
class="command fa fa-eraser" title="清除画布"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-arrow-up" data-command="toFront"
class="command fa fa-arrow-up" title="提升层级"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-arrow-down" data-command="toBack"
class="command fa fa-arrow-down" title="下降层级"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-check-square" data-command="selectAll"
class="command fa fa-check-square-o" title="全选"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="far fa-copy" data-command="copy"
class="command fa fa-files-o" title="复制"></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
data-command="undo"
icon="fas fa-undo"
class="command fa fa-undo"
title="撤销"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
data-command="redo"
class="command fa fa-repeat"
icon="fas fa-repeat"
title="重做"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
data-command="delete"
class="command fa fa-trash-o"
icon="fas fa-trash-alt"
title="删除"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
data-command="zoomOut"
class="command fa fa-search-minus"
icon="fas fa-search-minus"
title="缩小"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
data-command="zoomIn"
icon="fas fa-search-plus"
class="command fa fa-search-plus"
title="放大"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-eraser"
data-command="clear"
class="command fa fa-eraser"
title="清除画布"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-arrow-up"
data-command="toFront"
class="command fa fa-arrow-up"
title="提升层级"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-arrow-down"
data-command="toBack"
class="command fa fa-arrow-down"
title="下降层级"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-check-square"
data-command="selectAll"
class="command fa fa-check-square-o"
title="全选"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="far fa-copy"
data-command="copy"
class="command fa fa-files-o"
title="复制"
></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-clone" data-command="paste"
class="command fa fa-clipboard" title="粘贴"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-expand" data-command="autoZoom"
class="command fa fa-expand" title="实际大小"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-compress" data-command="resetZoom"
class="command fa fa-compress" title="适应页面"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-object-group" data-command="addGroup"
class="command fa fa-object-group" title="组合"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-object-ungroup" data-command="unGroup"
class="command fa fa-object-ungroup" title="取消组合"></font-awesome-icon>
<font-awesome-icon style="margin-left: 10px" icon="fas fa-crop" data-command="multiSelect"
class="command fa fa fa-crop" title="多选"></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-clone"
data-command="paste"
class="command fa fa-clipboard"
title="粘贴"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-expand"
data-command="autoZoom"
class="command fa fa-expand"
title="实际大小"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-compress"
data-command="resetZoom"
class="command fa fa-compress"
title="适应页面"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-object-group"
data-command="addGroup"
class="command fa fa-object-group"
title="组合"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-object-ungroup"
data-command="unGroup"
class="command fa fa-object-ungroup"
title="取消组合"
></font-awesome-icon>
<font-awesome-icon
style="margin-left: 10px"
icon="fas fa-crop"
data-command="multiSelect"
class="command fa fa fa-crop"
title="多选"
></font-awesome-icon>
</div>
</el-col>
</el-row>
@ -101,23 +203,33 @@
<article>
<!-- 下载图片 -->
<section class="save-as-image-dialog">
<el-dialog title="下载图片" :visible.sync="saveAsImageDialogVisible" width="360px">
<el-dialog
title="下载图片"
:visible.sync="saveAsImageDialogVisible"
width="360px"
>
<el-form label-width="100px" label-position="top">
<el-form-item label="选择图片格式">
<el-select v-model="saveAsImageFormat">
<el-option label="jpg" value="jpg">
<span style="float: left">jpg</span>
<span style="float: right; color: #8492a6; font-size: 13px">白色背景</span>
<span style="float: right; color: #8492a6; font-size: 13px"
>白色背景</span
>
</el-option>
<el-option label="png" value="png">
<span style="float: left">png</span>
<span style="float: right; color: #8492a6; font-size: 13px">透明背景</span>
<span style="float: right; color: #8492a6; font-size: 13px"
>透明背景</span
>
</el-option>
</el-select>
</el-form-item>
</el-form>
<span slot="footer">
<el-button @click="saveAsImageDialogVisible = false"> </el-button>
<el-button @click="saveAsImageDialogVisible = false"
> </el-button
>
<el-button type="primary" @click="saveAsImage"> </el-button>
</span>
</el-dialog>
@ -142,7 +254,9 @@
</div>
<div data-status="canvas-selected" class="menu">
<el-button data-command="undo" class="command">撤销</el-button>
<el-button data-command="redo" class="command disable">重做</el-button>
<el-button data-command="redo" class="command disable"
>重做</el-button
>
</div>
<div data-status="multi-selected" class="menu">
<el-button data-command="copy" class="command">复制</el-button>
@ -160,7 +274,7 @@ import { getFlowScheme } from "@/api/system/preview";
import { construct } from "netflix-conductor-json-tree/dist/index";
export default {
name: "VueG6Editor",
props: ['phoneNodeContent'],
props: ["phoneNodeContent"],
mixins: [mixin],
data() {
return {
@ -497,52 +611,57 @@ export default {
nodeAttributeForm: {
label: "",
width: "",
height: ""
height: "",
},
//
edgeAttributeForm: {
label: ""
label: "",
},
//
canvasAttributeForm: {
grid: true,
cell: 20
cell: 20,
},
// SVGURL
startNodeSVGUrl: require("@/views/system/mianview/start-node.svg"),
endNodeSVGUrl: require("@/views/system/mianview/end-node.svg"),
regularNodeSVGUrl: require("@/views/system/mianview/regular-node.svg"),
conditionNodeSVGUrl: require("@/views/system/mianview/condition-node.svg"),
nNodeSVGUrl: "https://gw.alipayobjects.com/zos/rmsportal/rQMUhHHSqwYsPwjXxcfP.svg",
modelNodeSVGUrl: "https://gw.alipayobjects.com/zos/rmsportal/rQMUhHHSqwYsPwjXxcfP.svg",
nNodeSVGUrl:
"https://gw.alipayobjects.com/zos/rmsportal/rQMUhHHSqwYsPwjXxcfP.svg",
modelNodeSVGUrl:
"https://gw.alipayobjects.com/zos/rmsportal/rQMUhHHSqwYsPwjXxcfP.svg",
//
editor: null,
saveAsImageDialogVisible: false,
saveAsImageFormat: "jpg"
saveAsImageFormat: "jpg",
};
},
mounted() {
console.log()
this.initG6Editor();
this.getlist();
// this.editor.getCurrentPage().save()
this.editor.getCurrentPage().hideGrid();
this.editor.getCurrentPage().read(this.form);
},
watch: {
phoneNodeContent(newValue, oldValue) {
this.phoneNodeContent = newValue;
this.getlist();
},
},
methods: {
getlist() {
// console.log(this.$route.query)
// console.log(this.phoneNodeContent)
// getFlowScheme(this.$route.query.id).then(res => {
// this.form = JSON.parse(this.$route.query.id)
this.form = JSON.parse(this.phoneNodeContent)
this.form = JSON.parse(this.phoneNodeContent);
this.editor.getCurrentPage().read(this.form);
// })
},
//
initG6Editor() {
console.log(2222222222)
const _this = this;
const editor = new G6Editor();
this.editor = editor;
@ -559,10 +678,10 @@ export default {
//
execute(editor) {
let needSaveData = editor.getCurrentPage().save();
console.log(needSaveData, 'needSaveData');
console.log(needSaveData, "needSaveData");
// JSON.parse(JSON.stringify(needSaveData))
const text = JSON.stringify(needSaveData)
console.log(JSON.parse(JSON.stringify(text)), 'text');
const text = JSON.stringify(needSaveData);
console.log(JSON.parse(JSON.stringify(text)), "text");
localStorage.setItem("flowData", JSON.stringify(needSaveData));
_this.save(needSaveData);
},
@ -574,65 +693,67 @@ export default {
// Ctrl + S
shortcutCodes: [
["metaKey", "s"],
["ctrlKey", "s"]
]
["ctrlKey", "s"],
],
});
//
const flow = new G6Editor.Flow({
graph: {
container: "page"
container: "page",
},
align: {
line: {
// 线
stroke: "#FA8C16",
// 线
lineWidth: 1
lineWidth: 1,
},
//
item: true,
//
grid: true
grid: true,
},
grid: {
//
cell: 18
cell: 18,
},
shortcut: {
//
save: true
}
save: true,
},
});
window.flow = flow;
//
flow.getGraph().edge({
shape: "flow-polyline"
shape: "flow-polyline",
});
//
const itempannel = new G6Editor.Itempannel({
container: "itempannel"
container: "itempannel",
});
//
const toolbar = new G6Editor.Toolbar({
container: "toolbar"
container: "toolbar",
});
//
// const detailpannel = new G6Editor.Detailpannel({
// container: "detailpannel"
// });
//
let minimapWidth = getComputedStyle(document.querySelector(".right-part")).width;
let minimapWidth = getComputedStyle(
document.querySelector(".right-part")
).width;
minimapWidth = Number(minimapWidth.replace(/px$/, ""));
const minimap = new G6Editor.Minimap({
container: "minimap",
width: minimapWidth,
height: 200
height: 200,
});
//
const contextmenu = new G6Editor.Contextmenu({
container: "contextmenu"
container: "contextmenu",
});
// Editor
editor.add(flow);
@ -648,10 +769,16 @@ export default {
const currentPage = editor.getCurrentPage();
currentPage.on("afterchange", (e) => {
if (e.action === "add") {
if (e.model.nodetype === "startNode" || e.model.nodetype === "endNode") {
if (
e.model.nodetype === "startNode" ||
e.model.nodetype === "endNode"
) {
let nodes = this.editor.getCurrentPage().getNodes();
for (const item of nodes) {
if (item.model.nodetype === e.model.nodetype && item.model.id !== e.model.id) {
if (
item.model.nodetype === e.model.nodetype &&
item.model.id !== e.model.id
) {
this.editor.getCurrentPage().remove(e.item);
this.$message.warning("只能有一个开始节点或结束节点");
}
@ -667,21 +794,23 @@ export default {
//
if (ev.item.isNode) {
this.nodeAttributeForm.label = selectedItemDataModel.label;
this.nodeAttributeForm.width = selectedItemDataModel.size.split("*")[0];
this.nodeAttributeForm.height = selectedItemDataModel.size.split("*")[1];
this.nodeAttributeForm.width =
selectedItemDataModel.size.split("*")[0];
this.nodeAttributeForm.height =
selectedItemDataModel.size.split("*")[1];
this.nodeAttributeForm.color = selectedItemDataModel.color;
}
//
if (ev.item.isEdge) {
ev.item.graph.edge({
shape: "flow-polyline-round"
shape: "flow-polyline-round",
});
this.edgeAttributeForm.label = selectedItemDataModel.label;
this.edgeAttributeForm.shape = selectedItemDataModel.shape;
}
});
//
currentPage.on("afterdelete", (ev) => { });
currentPage.on("afterdelete", (ev) => {});
},
//
openSaveAsImageDialog() {
@ -724,16 +853,15 @@ export default {
submitForm() {
const _this = this;
let needSaveData = editor.getCurrentPage().save();
console.log(needSaveData, 'needSaveData');
console.log(needSaveData, "needSaveData");
localStorage.setItem("flowData", JSON.stringify(needSaveData));
_this.save(needSaveData);
_this.$message.success("数据已保存");
},
//
saveAsFile() {
let sub = this.editor.getCurrentPage().save()
console.log(sub, 'sub')
let sub = this.editor.getCurrentPage().save();
console.log(sub, "sub");
let jsonString = JSON.stringify(this.editor.getCurrentPage().save());
let blob = new Blob([jsonString]);
let blobURL = URL.createObjectURL(blob);
@ -784,9 +912,9 @@ export default {
},
handledel() {
this.$store.dispatch("tagsView/delView", this.$route);
this.$router.go(-1)
this.$router.go(-1);
},
}
},
};
</script>

View File

@ -367,6 +367,7 @@ export default {
};
</script>
<style lang="scss" scoped>
.app-container {
display: inline-block;
padding: 0 !important;

View File

@ -142,6 +142,13 @@
align="center"
prop="diseaseTypeName"
/>
<el-table-column
label="模板内容"
align="center"
prop="templateContent"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"

View File

@ -61,6 +61,9 @@
<el-table-column label="适用任务类型" align="center" prop="suitTaskTypeName"
:show-overflow-tooltip="true" />
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" />
<el-table-column label="模板内容" align="center" prop="templateContent" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleselect(scope.row)"
@ -181,6 +184,7 @@ export default {
this.loading = true;
this.queryParams.templateSource = "WE_CHAT_OFFICIAL_ACCOUNT"
listTemplate(this.queryParams).then(response => {
console.log(response.rows)
this.templateList = response.rows;
this.total = response.total;
this.loading = false;

File diff suppressed because it is too large Load Diff

View File

@ -1,255 +1,429 @@
<template>
<div class="app-container">
<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="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName :
'选择问卷模板' }}</el-button>
<el-dialog title="问卷库模板选择" :visible.sync="classificationOpen" width="70%"
:before-close="classificationOpenfalse">
<el-row :gutter="20">
<!--部门数据-->
<el-col :span="6" :xs="24">
<div class="left" ref="box">
<div class="name">科室名称</div>
<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 :span="18" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="70px">
<el-form-item label="问卷标题" prop="questionnaireName">
<el-input v-model="queryParams.questionnaireName" placeholder="请输入问卷标题" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName">
<el-input v-model="queryParams.diseaseTypeName" placeholder="请输入病种名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" 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>
<el-table v-loading="loading" :data="questionList" @row-dblclick="handleselect">
<el-table-column 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">
<el-switch v-model="scope.row.questionnaireStatus" active-color="#13ce66"
inactive-color="#ff4949" active-value="PUBLISHED" inactive-value="UNPUBLISHED"
disabled @change="switchstatus($event, scope.row)">
</el-switch>
</template>
</el-table-column>
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" 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>
</el-table-column>
</el-table>
</el-col>
</el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-dialog>
<div class="app-container">
<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="handleselectName ? 'color:black' : 'color:#C0C4CC'"
>{{ handleselectName ? handleselectName : "选择问卷模板" }}</el-button
>
<el-dialog
title="问卷库模板选择"
:visible.sync="classificationOpen"
width="70%"
:before-close="classificationOpenfalse"
>
<el-row :gutter="20">
<!--部门数据-->
<el-col :span="6" :xs="24">
<div class="left" ref="box">
<div class="name">科室名称</div>
<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 :span="18" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
label-width="70px"
>
<el-form-item label="问卷标题" prop="questionnaireName">
<el-input
v-model="queryParams.questionnaireName"
placeholder="请输入问卷标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName">
<el-input
v-model="queryParams.diseaseTypeName"
placeholder="请输入病种名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
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>
<el-table
v-loading="loading"
:data="questionList"
@row-dblclick="handleselect"
>
<el-table-column
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">
<el-switch
v-model="scope.row.questionnaireStatus"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="PUBLISHED"
inactive-value="UNPUBLISHED"
disabled
@change="switchstatus($event, scope.row)"
>
</el-switch>
</template>
</el-table-column>
<el-table-column
label="病种名称"
align="center"
prop="diseaseTypeName"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handlesee(scope.row)"
>预览</el-button
>
<el-button
size="mini"
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>
</el-table-column>
</el-table>
</el-col>
</el-row>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-dialog>
<el-dialog title="问卷预览" :visible.sync="showquestion" width="90%">
<div class="righttextarea">
<questionopennew v-if="showquestion"></questionopennew>
</div>
</el-dialog>
</div>
</template>
<script>
import { listQuestion, getQuestion, delQuestion, addQuestion, updateQuestion, getDepartmentList, selectUserDepartment, diseaseList, updateclassification } from "@/api/system/question";
import {
listQuestion,
getQuestion,
delQuestion,
addQuestion,
updateQuestion,
getDepartmentList,
selectUserDepartment,
diseaseList,
updateclassification,
} from "@/api/system/question";
import questionopennew from "./questionopennew.vue";
import { selectPatientQuestionSubmit } from "@/api/system/taskExecuteRecord";
export default {
name: "Question",
props: ['templateId', 'templateName'],
data() {
return {
classificationOpen: false,
//
departmentName: '',
defaultProps: {
children: "children",
label: "label"
},
//
deptOptions: undefined,
//
loading: true,
//
total: 0,
//
questionList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
departmentId: null,
departmentName: null,
diseaseTypeName: null,
questionnaireName: null,
questionnaireStatus: "PUBLISHED",
// questionType: "REGULAR_QUESTIONNAIRE"
},
handleselectId: '',
handleselectName: null,
};
name: "Question",
props: ["templateId", "templateName", questionopennew],
data() {
return {
showquestion: false,
classificationOpen: false,
//
departmentName: "",
defaultProps: {
children: "children",
label: "label",
},
//
deptOptions: undefined,
//
loading: true,
//
total: 0,
//
questionList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
departmentId: null,
departmentName: null,
diseaseTypeName: null,
questionnaireName: null,
questionnaireStatus: "PUBLISHED",
// questionType: "REGULAR_QUESTIONNAIRE"
},
handleselectId: "",
handleselectName: null,
questiondata:[],
};
},
watch: {
//
departmentName(val) {
// this.getTreeselect()
},
watch: {
//
departmentName(val) {
// this.getTreeselect()
}
},
created() {
this.getTreeselect();
this.getList();
},
mounted() {
this.handleselectId = this.templateId;
this.handleselectName = this.templateName;
},
watch: {
templateId(newValue, oldValue) {
this.handleselectId = newValue;
},
created() {
this.getTreeselect();
this.getList();
templateName(newValue, oldValue) {
this.handleselectName = newValue;
},
mounted() {
this.handleselectId = this.templateId
this.handleselectName = this.templateName
},
methods: {
handlesee(row) {
console.log(row, "row");
this.showquestion = true;
selectPatientQuestionSubmit(row.id).then((res) => {
console.log(res, "res");
this.questiondata = res.data;
// if (this.$route.query.routeHandleRemark) {
// this.questiondata.routeHandleRemark =
// this.$route.query.routeHandleRemark;
// }
// this.questiondata.subjectResultList.forEach((e) => {
// e.optionResults.forEach((el) => {
// // console.log(el, "el");
// if (
// (el.optionChooseSign == "0" &&
// e.questionType == "MULTIPLE_CHOICE") ||
// e.questionType == "COMBINATION_RADIO_SUBJECT"
// ) {
// e.checked = el.id;
// } else if (
// el.optionChooseSign == "0" &&
// e.questionType == "MULTIPLE_CHOICE_QUESTIONS"
// ) {
// this.checkeddata.push(el.id);
// } else if (
// el.optionChooseSign == "0" &&
// e.questionType == "SCORING_QUESTIONS"
// ) {
// e.checked = el.id;
// } else if (
// e.questionType == "COMBINATION_MULTIPLE_SUBJECT" &&
// el.optionChooseSign == "0"
// ) {
// this.checkeddata.push(el.id);
// }
// });
// });
});
},
watch: {
templateId(newValue, oldValue) {
this.handleselectId = newValue;
},
templateName(newValue, oldValue) {
this.handleselectName = newValue;
}
clickDepartmenitem(item) {
this.loading = true;
this.queryParams.departmentId = item.id;
this.getList();
},
methods: {
clickDepartmenitem(item) {
this.loading = true;
this.queryParams.departmentId = item.id;
this.getList();
},
nohandleselect() {
this.handleselectId = ''
this.handleselectName = ''
this.$emit("on-template", { templateId: '', templateName: '' });
},
handleselect(item) {
this.handleselectId = item.id
this.handleselectName = item.questionnaireName
this.$emit("on-template", { templateId: item.id, templateName: item.questionnaireName });
this.classificationOpen = false
},
classificationOpenfalse() {
this.classificationOpen = false
},
//
handleNodeClick(data) {
this.queryParams.departmentId = data.id;
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() {
this.loading = true;
this.queryParams.questionnaireStatus = "PUBLISHED"
// this.queryParams.questionType = "REGULAR_QUESTIONNAIRE"
listQuestion(this.queryParams).then(response => {
this.questionList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
}
nohandleselect() {
this.handleselectId = "";
this.handleselectName = "";
this.$emit("on-template", { templateId: "", templateName: "" });
},
handleselect(item) {
this.handleselectId = item.id;
this.handleselectName = item.questionnaireName;
this.$emit("on-template", {
templateId: item.id,
templateName: item.questionnaireName,
});
this.classificationOpen = false;
},
classificationOpenfalse() {
this.classificationOpen = false;
},
//
handleNodeClick(data) {
this.queryParams.departmentId = data.id;
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() {
this.loading = true;
this.queryParams.questionnaireStatus = "PUBLISHED";
// this.queryParams.questionType = "REGULAR_QUESTIONNAIRE"
listQuestion(this.queryParams).then((response) => {
this.questionList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
},
};
</script>
<style scoped lang="scss">
::v-deep .el-dialog__body {
padding-bottom: 60px;
padding-bottom: 60px;
}
.righttextarea {
// height: 200px;
padding: 10px;
// width: 90%;
// height: 100%;
border: 1.5px solid #c7c7c7;
border-radius: 5px;
}
.app-container {
padding: 0 !important;
display: inline-block;
// background: red;
height: 42px;
padding: 0 !important;
display: inline-block;
// background: red;
height: 42px;
}
.left {
height: 500px;
overflow: auto;
height: 500px;
overflow: auto;
.name {
font-weight: 700;
margin-bottom: 10px;
.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;
}
.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;
}
.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>

View File

@ -1,30 +1,53 @@
<template>
<div class="app-container">
<el-button size="small" @click="classificationOpen = true" style="
<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="handleselectName ? 'color:black' : 'color:#C0C4CC'">{{ handleselectName ? handleselectName : "请选择"
}}</el-button>
<el-dialog title="话书库模板选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse">
"
:style="handleselectName ? 'color:black' : 'color:#C0C4CC'"
>{{ handleselectName ? handleselectName : "请选择" }}</el-button
>
<el-dialog
title="话书库模板选择"
:visible.sync="classificationOpen"
width="70%"
:before-close="classificationOpenfalse"
>
<el-row :gutter="20">
<!--部门数据-->
<el-col :span="6" :xs="24">
<div class="leftscript" ref="box">
<div class="name">科室名称</div>
<div>
<el-input v-model="name" placeholder="请输入科室名称" clearable @keyup.enter.native="handleQuery" />
<el-input
v-model="name"
placeholder="请输入科室名称"
clearable
@keyup.enter.native="handleQuery"
/>
</div>
<div class="listitem">
<div :class="itemname == null ? 'allactive' : 'all'" @click="itemdata()">
<div
:class="itemname == null ? 'allactive' : 'all'"
@click="itemdata()"
>
全部
</div>
<span class="count">{{ count }}</span>
</div>
<div class="listitem" v-for="(item, index) in DepartmentoList" :key="index" @click="itemdata(item)">
<div
class="listitem"
v-for="(item, index) in DepartmentoList"
:key="index"
@click="itemdata(item)"
>
<div :class="itemname == item.id ? 'allactive' : 'all'">
{{ item.departmentName }}
</div>
@ -34,55 +57,158 @@
</el-col>
<!--用户数据-->
<el-col :span="18" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="100px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="通用话术名称" prop="commonScriptName">
<el-input v-model="queryParams.commonScriptName" placeholder="请输入通用话术名称" clearable
@keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.commonScriptName"
placeholder="请输入通用话术名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="话术名称" prop="scriptName">
<el-input v-model="queryParams.scriptName" placeholder="请输入话术名称" clearable
@keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.scriptName"
placeholder="请输入话术名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="话术ID" prop="scriptId">
<el-input v-model="queryParams.scriptId" placeholder="请输入话术ID" clearable
@keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.scriptId"
placeholder="请输入话术ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="平台ID" prop="platformId">
<el-input v-model="queryParams.platformId" placeholder="请输入平台ID" clearable
@keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.platformId"
placeholder="请输入平台ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="primary"
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>
<el-table v-loading="loading" :data="scriptList" @row-dblclick="handleselect">
<el-table-column label="序号" align="center" prop="sort" type="index" />
<el-table-column label="通用话术名称" align="center" prop="commonScriptName" :show-overflow-tooltip="true" />
<el-table-column label="话术名称" align="center" prop="scriptName" :show-overflow-tooltip="true" />
<el-table-column label="话术ID" align="center" prop="scriptId" :show-overflow-tooltip="true" />
<el-table-column label="平台ID" align="center" prop="platformId" :show-overflow-tooltip="true" />
<el-table-column label="话术简介" align="center" prop="scriptIntroduction" :show-overflow-tooltip="true" />
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table
v-loading="loading"
:data="scriptList"
@row-dblclick="handleselect"
>
<el-table-column
label="序号"
align="center"
prop="sort"
type="index"
/>
<el-table-column
label="通用话术名称"
align="center"
prop="commonScriptName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="话术名称"
align="center"
prop="scriptName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="话术ID"
align="center"
prop="scriptId"
:show-overflow-tooltip="true"
/>
<el-table-column
label="平台ID"
align="center"
prop="platformId"
:show-overflow-tooltip="true"
/>
<el-table-column
label="话术简介"
align="center"
prop="scriptIntroduction"
:show-overflow-tooltip="true"
/>
<el-table-column
label="病种名称"
align="center"
prop="diseaseTypeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button size="mini" 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>
<el-button size="mini" type="text" @click="handlesee(scope.row)"
>预览</el-button
>
<el-button
size="mini"
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>
</el-table-column>
</el-table>
</el-col>
</el-row>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-dialog>
<el-dialog title="话术预览" :visible.sync="lookshow" width="90%">
<Scriptpreview
:phoneNodeContent="phoneNodeContent"
v-if="lookshow"
></Scriptpreview>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="lookshow = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import Scriptpreview from ".././components/Scriptpreviewopen.vue";
import {
listScript,
getScript,
@ -97,10 +223,17 @@ import {
import stationAcatar from "../../system/stationAvatar/index.vue";
export default {
props: ["templateId", "templateName"],
components: { stationAcatar },
components: { stationAcatar, Scriptpreview },
name: "Script",
data() {
return {
lookshow: false,
phoneNodeContent: {
scriptInfoId: null,
flowScheme: null,
nodes: [],
edges: [],
},
handleselectName: "",
handleselectId: "",
classificationOpen: false,
@ -175,6 +308,16 @@ export default {
},
},
methods: {
handlesee(row) {
console.log(row, "eeeeee");
if (row.flowScheme == null || row.flowScheme == "") {
this.$message.error("暂无话术图");
} else {
this.phoneNodeContent = row.flowScheme;
this.lookshow = true;
}
},
nohandleselect() {
this.handleselectId = "";
this.handleselectName = "";
@ -187,11 +330,11 @@ export default {
handleselect(item) {
this.handleselectId = item.id;
this.handleselectName = item.commonScriptName;
console.log(this.handleselectName, "this.handleselectName");
this.$emit("on-template", {
templateId: item.id,
templateName: item.commonScriptName,
templateContent: item.scriptIntroduction,
phoneNodeContent: item.flowScheme,
});
this.classificationOpen = false;
},
@ -283,7 +426,7 @@ export default {
display: inline-block;
padding: 0 !important;
// background: red;
height: 42px;
height: 42px;
}
::v-deep .el-textarea__inner {