This commit is contained in:
2024-09-14 14:54:06 +08:00
parent 030245d130
commit 8fa3fdb4e1
4 changed files with 122 additions and 71 deletions

View File

@ -72,7 +72,7 @@ import {
selectDiseaseCounts,
} from "@/api/system/departmentDisease";
export default {
props: ['methods', 'modal', 'servicePackageId'],
props: ['methods', 'modal', 'servicePackageId', 'hospitalAgencyId'],
name: "DepartmentList",
data() {
return {
@ -109,7 +109,11 @@ export default {
},
},
created() {
this.querydepartmen.hospitalAgencyId = JSON.parse(localStorage.getItem('user')).hospitalAgencyId
if (this.$route.query.hospitalAgencyId && this.$route.path == '/knowledge/addQuestionnaire') {
this.querydepartmen.hospitalAgencyId = this.$route.query.hospitalAgencyId
} else {
this.querydepartmen.hospitalAgencyId = JSON.parse(localStorage.getItem('user')).hospitalAgencyId
}
this.vmodal = this.modal
if (this.methods == 'getDepartmentList' && localStorage.getItem('questionquery')) {
this.querydepartmen.hospitalAgencyId = JSON.parse(localStorage.getItem('questionquery')).hospitalAgencyId

View File

@ -51,7 +51,7 @@
<div ref="table">
<el-table :max-height="maxTableHeight" v-loading="loading" :data="scriptList"
@selection-change="handleSelectionChange">
<el-table-column label="序号" align="center" prop="sort" type="index" width="48"/>
<el-table-column label="序号" align="center" prop="sort" type="index" width="48" />
<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" />
@ -78,10 +78,9 @@
<el-button size="mini" icon="el-icon-folder-checked" type="text" @click="release(scope.row)">发布</el-button> -->
<!-- <el-button size="mini" type="text" icon="el-icon-search" @click="handlesee(scope.row)">预览</el-button> -->
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="see(scope.row)">话术</el-button>
<el-button size="mini" type="text" icon="el-icon-picture-outline"
@click="seescript(scope.row)"> 预览</el-button>
<el-button size="mini" type="text" icon="el-icon-document"
@click="seeAI(scope.row)"> AI话术</el-button>
<el-button size="mini" type="text" icon="el-icon-picture-outline" @click="seescript(scope.row)">
预览</el-button>
<el-button size="mini" type="text" icon="el-icon-document" @click="seeAI(scope.row)"> AI话术</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:script:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@ -106,8 +105,8 @@
<el-input v-model="form.scriptName" placeholder="请输入话术名称" maxlength="100" />
</el-form-item>
<el-form-item label="科室名称" prop="departmentId">
<el-button type="" @click="clickinnerVisible()" :style="form.departmentName == '请选择科室' ? 'color: #c0c4cc;' : ''
" style="
<el-button type="" @click="clickinnerVisible()"
:style="form.departmentName == '请选择科室' ? 'color: #c0c4cc;' : ''" style="
width: 206px;
text-align: left;
height: 36px;
@ -115,8 +114,8 @@
">{{ form.departmentName }}</el-button>
</el-form-item>
<el-form-item label="病种名称" prop="diseaseTypeName">
<el-button type="" @click="clickdisease()" :style="form.diseaseTypeName == '请选择病种' ? 'color: #c0c4cc;' : ''
" style="
<el-button type="" @click="clickdisease()" :style="form.diseaseTypeName == '请选择病种' ? 'color: #c0c4cc;' : ''"
style="
width: 206px;
text-align: left;
height: 36px;
@ -132,6 +131,9 @@
<el-input onKeyUp="value=value.replace(/[\W]/g,'')" v-model="form.robotPublishId" placeholder="请输入机器人ID"
maxlength="100" />
</el-form-item>
<el-form-item label="话术变量" prop="variables">
<el-input v-model="form.variables" placeholder="多个变量名用|分隔" style="width: 206px" />
</el-form-item>
<el-form-item label="话术排序" prop="scriptSort">
<el-input-number v-model="form.scriptSort" controls-position="right" :min="0" placeholder="请输入话术排序"
style="width: 206px" />
@ -146,7 +148,6 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="话术简介" prop="scriptIntroduction">
<el-input maxlength="200" v-model="form.scriptIntroduction" placeholder="请输入话术简介" type="textarea" />
</el-form-item>
@ -163,26 +164,26 @@
<el-dialog title="" :visible.sync="innerVisibleshow" width="1000px" append-to-body
:before-close="innerVisiblecancel">
<div style="padding-bottom: 23px;">
<el-form ref="queryForm" :model="informationqueryParams" :rules="rules" label-width="80px" :inline="true">
<el-form-item label="科室名称" prop="departmentName" label-width="120">
<el-input v-model="informationqueryParams.departmentName" placeholder="请输入科室名称" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="informationInfoinfo">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="addresetQuerylist">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="infolist" @cell-dblclick="nurseclick" v-loading="loading">
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" style="width: 15px; height: 15px" v-if="form.departmentId == scope.row.id" circle
@click="nurseclick(scope.row)"></el-button>
<el-button v-else style="width: 15px; height: 15px" circle @click="nurseclick(scope.row)"></el-button>
</template>
</el-table-column>
<el-table-column property="departmentName" label="科室名称" align="center" :show-overflow-tooltip="true">
</el-table-column>
</el-table>
<el-form ref="queryForm" :model="informationqueryParams" :rules="rules" label-width="80px" :inline="true">
<el-form-item label="科室名称" prop="departmentName" label-width="120">
<el-input v-model="informationqueryParams.departmentName" placeholder="请输入科室名称" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="informationInfoinfo">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="addresetQuerylist">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="infolist" @cell-dblclick="nurseclick" v-loading="loading">
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" style="width: 15px; height: 15px" v-if="form.departmentId == scope.row.id"
circle @click="nurseclick(scope.row)"></el-button>
<el-button v-else style="width: 15px; height: 15px" circle @click="nurseclick(scope.row)"></el-button>
</template>
</el-table-column>
<el-table-column property="departmentName" label="科室名称" align="center" :show-overflow-tooltip="true">
</el-table-column>
</el-table>
</div>
<myPagination v-show="totaldepartment > 0" :total="totaldepartment" :pageSize="informationqueryParams.pageSize"
:indexFromWrap="informationqueryParams.pageNum" @updateCPage="updateCPagetwo"></myPagination>
@ -192,27 +193,27 @@
<!-- 病种弹框 -->
<el-dialog title="" :visible.sync="diseaseshowst" width="1000px" append-to-body :before-close="canceldiseases">
<div style="padding-bottom: 23px;">
<el-form ref="queryForm" :model="querydisease" :rules="rules" label-width="80px" :inline="true">
<el-form-item label="病种名称" prop="diseaseTypeName" label-width="120">
<el-input v-model="querydisease.diseaseTypeName" placeholder="请输入病种名称" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="infodisease">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetdisease">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="listdisease" @cell-dblclick="nurseclickdisease" v-loading="loading">
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" style="width: 15px; height: 15px" v-if="form.diseaseTypeId == scope.row.id" circle
@click="nurseclickdisease(scope.row)"></el-button>
<el-button v-else style="width: 15px; height: 15px" circle
@click="nurseclickdisease(scope.row)"></el-button>
</template>
</el-table-column>
<el-table-column property="diseaseTypeName" label="病种名称" align="center" :show-overflow-tooltip="true">
</el-table-column>
</el-table>
<el-form ref="queryForm" :model="querydisease" :rules="rules" label-width="80px" :inline="true">
<el-form-item label="病种名称" prop="diseaseTypeName" label-width="120">
<el-input v-model="querydisease.diseaseTypeName" placeholder="请输入病种名称" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="infodisease">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetdisease">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="listdisease" @cell-dblclick="nurseclickdisease" v-loading="loading">
<el-table-column label="请选择" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" style="width: 15px; height: 15px" v-if="form.diseaseTypeId == scope.row.id"
circle @click="nurseclickdisease(scope.row)"></el-button>
<el-button v-else style="width: 15px; height: 15px" circle
@click="nurseclickdisease(scope.row)"></el-button>
</template>
</el-table-column>
<el-table-column property="diseaseTypeName" label="病种名称" align="center" :show-overflow-tooltip="true">
</el-table-column>
</el-table>
</div>
<!-- <pagination v-show="diseasetotal > 0" :total="diseasetotal" :page.sync="querydisease.pageNum"
:limit.sync="querydisease.pageSize" @pagination="infodisease" /> -->
@ -322,6 +323,7 @@ export default {
scriptStatus: null,
scriptIntroduction: null,
scriptSort: null,
variables: null,
scriptRemark: null,
},
//
@ -338,6 +340,7 @@ export default {
platformId: null,
scriptStatus: "",
scriptIntroduction: null,
variables: null,
scriptSort: null,
scriptRemark: null,
createBy: null,
@ -457,7 +460,7 @@ export default {
});
},
// AI
seeAI(row){
seeAI(row) {
window.open(`https://aifuv2cloud.aihealthx.cn/NewRobotTemplate/?template_id=${row.scriptId}`, '_blank');
},
//
@ -610,6 +613,7 @@ export default {
this.form = {
id: null,
departmentId: null,
variables: null,
scriptSort: undefined,
departmentName: null,
diseaseTypeId: null,
@ -650,6 +654,7 @@ export default {
platformId: null,
scriptStatus: null,
scriptIntroduction: null,
variables: null,
scriptSort: null,
scriptRemark: null,
hospitalAgencyId: JSON.parse(localStorage.getItem('user')).hospitalAgencyId

View File

@ -9,6 +9,11 @@
<el-radio label="SATISFACTION_QUESTIONNAIRE">满意度问卷</el-radio>
</el-radio-group>
</div>
<div class="topheader" style="padding-left: 20px;">
关联话术库
<scripts @on-template="messageontemplateword" :templateId="list.scriptInfoId"
:templateName="list.scriptName"></scripts>
</div>
<div class="topheader" style="text-align: right;">
<el-button size="medium" @click="goback">返回</el-button>
<!-- <el-button size="medium" type="primary" plain>预览问卷</el-button> -->
@ -97,8 +102,11 @@
<div>
<div v-for="(uitem, uindex) in item.questionSubjectOptionList"
:key="uindex" style="display:flex;margin-bottom:10px">
<el-input placeholder="请输入内容" v-model="uitem.optionName" clearable>
</el-input>
<el-input placeholder="请输入内容" v-model="uitem.optionName"
style="width:180px" clearable />
<span style="width:120px;text-align:right">匹配意图 </span>
<el-input placeholder="请输入内容" v-model="uitem.intent" clearable
style="width:180px" />
<el-button icon="el-icon-close" type="text"
style="color:red;margin-left:10px"
@click.stop="deloption(item, uitem, index, uindex)"></el-button>
@ -222,12 +230,14 @@
<span>选项 </span>
<div>
<div v-for="(uitem, uindex) in aitem.questionSubjectOptionList"
:key="uindex" style="display:flex">
:key="uindex" style="display:flex;margin-bottom:10px;">
<el-input placeholder="请输入内容" v-model="uitem.optionName"
clearable>
</el-input>
style="width:180px" clearable />
<span style="width:100px;text-align:right">匹配意图 </span>
<el-input placeholder="请输入内容" v-model="uitem.intent" clearable
style="width:180px" />
<el-button icon="el-icon-close" type="text"
style="color:red;margin:10px 0 0 10px"
style="color:red;margin:0 0 0 10px"
@click.stop="deloption(aitem, uitem, aindex, uindex)"></el-button>
</div>
</div>
@ -472,11 +482,12 @@
<script>
import { getQuestion, addQuestion, updateQuestion, selectUserDepartment, diseaseList } from "@/api/system/question";
import draggable from 'vuedraggable'
import scripts from "../components/script.vue";
export default {
name: "addQuestionnaire",
dicts: ['scoring_method'],
components: {
draggable
draggable, scripts
},
data() {
return {
@ -539,6 +550,9 @@ export default {
},
],
list: {
robotPublishId:undefined,
scriptName: undefined,
scriptInfoId: undefined,
questionnaireName: undefined,
questionnaireDescription: undefined,
questionnaireTotalScore: 0, //
@ -578,8 +592,7 @@ export default {
diseaselist: [],
};
},
watch: {
},
watch: {},
created() {
if (this.$route.query.id) {
this.info();
@ -645,6 +658,12 @@ export default {
},
},
methods: {
//
messageontemplateword(item) {
this.list.robotPublishId = item.robotPublishId
this.list.scriptName = item.templateName
this.list.scriptInfoId = item.templateId
},
changediseaseType(e) {
this.list.diseaseTypeName = this.diseaselist?.find(el => el.id == e)?.diseaseTypeName
},
@ -688,6 +707,7 @@ export default {
optionid: ++this.optionid,
optionName: '',
optionAnswer: '',
intent: '',
//
questionName: '',
//
@ -779,6 +799,7 @@ export default {
questionDescription: '',
questionSubjectOptionList: [{
optionid: ++this.optionid,
intent: '',
//
questionName: undefined,
//
@ -811,6 +832,7 @@ export default {
optionid: ++this.optionid,
optionName: '',
optionAnswer: '',
intent: '',
//
questionName: undefined,
//
@ -1063,6 +1085,7 @@ export default {
item.questionSubjectOptionList = []
for (var i = 0; i < e; i++) {
item.questionSubjectOptionList.push({
intent: '',
optionid: ++this.optionid,
optionName: i + 1,
optionScore: 0,
@ -1088,6 +1111,8 @@ export default {
if (!this.list.departmentId) {
this.$message.error('请选择科室!');
return
} else {
this.list.departmentName = this.departmentlist?.find(el => el.id == this.list.departmentId)?.departmentName
}
if (!this.list.diseaseTypeId) {
this.$message.error('请选择病种!');
@ -1248,6 +1273,21 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep .el-form {
display: flex;
flex-wrap: wrap;
.el-form-item {
display: flex;
align-items: center;
}
}
::v-deep .el-dialog__header {
padding: 0 20px;
height: 40px;
}
::-webkit-scrollbar {
width: 5px;
}
@ -1538,7 +1578,7 @@ export default {
}
.topheader {
width: 50%;
width: 33%;
display: inline-block;
padding-right: 30px;
height: 80px;

View File

@ -1,5 +1,5 @@
<template>
<div class="app-container">
<div class="app-containers">
<el-button size="small" @click="classificationOpen = true" style="
width: 200px;
font-size: 14px;
@ -43,7 +43,7 @@
</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" width="48"/>
<el-table-column label="序号" align="center" prop="sort" type="index" width="48" />
<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" />
@ -181,11 +181,12 @@ export default {
this.handleselectId = "";
this.handleselectName = "";
this.$emit("on-template", {
robotPublishId: '',
templateId: "",
templateName: "",
templateContent: "",
scriptInfoId:'',
phoneTemplateId:'',
scriptInfoId: '',
phoneTemplateId: '',
});
},
handleselect(item) {
@ -196,8 +197,9 @@ export default {
templateName: item.commonScriptName,
templateContent: item.scriptIntroduction,
phoneNodeContent: item.flowScheme,
scriptInfoId:item.id,
phoneTemplateId:item.scriptId,
scriptInfoId: item.id,
phoneTemplateId: item.scriptId,
robotPublishId: item.robotPublishId
});
this.classificationOpen = false;
},
@ -254,7 +256,7 @@ export default {
padding-bottom: 60px;
}
.app-container {
.app-containers {
display: inline-block;
padding: 0 !important;
// background: red;