修改
This commit is contained in:
parent
5713f38a93
commit
f7704b68b9
@ -5,4 +5,22 @@ export function manualFollowUpList(query) {
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//创建实时呼叫任务
|
||||
export function createActualTimeTask(query) {
|
||||
return request({
|
||||
url: '/manage/signroute/createActualTimeTask',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
//AI通话获取录音
|
||||
export function getPhoneDialVideo(id) {
|
||||
return request({
|
||||
url: `/manage/signnode/getPhoneDialVideo/${id}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
@ -88,14 +88,16 @@
|
||||
<el-form-item label="任务名称" prop="manageRouteName">
|
||||
<el-input v-model="queryParams.manageRouteName" placeholder="请输入任务名称" clearable style="width: 220px"
|
||||
@keyup.enter.native="handleQuery" />
|
||||
<span style="margin-left: 13px;" v-if="queryParams.nodeExecuteStatus == 'UNEXECUTED' && foldshow == true">
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="">
|
||||
<span style="" v-if="queryParams.nodeExecuteStatus == 'UNEXECUTED' && foldshow == true">
|
||||
<el-switch class="switchStyle" v-model="timeSignshow" active-color="#1890ff" inactive-color="#5AC1A1"
|
||||
active-text="全部" inactive-text="待办" @change="changeswitch" />
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="phoneDialMethod">
|
||||
<el-radio v-model="queryParams.phoneDialMethod" label="COMMON">人工电话</el-radio>
|
||||
<el-radio v-model="queryParams.phoneDialMethod" label="AI">智能外呼</el-radio>
|
||||
<span style="margin-left: 13px;">
|
||||
<el-switch class="switchStyle" v-model="phoneDialMethodshow" active-color="#1890ff" inactive-color="#5AC1A1"
|
||||
active-text="人工电话" inactive-text="智能外呼" @change="changeswitchtwo" />
|
||||
</span>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="" prop="manageRouteName" v-if="queryParams.nodeExecuteStatus == 'UNEXECUTED' &&foldshow==true">
|
||||
<el-switch style="width: 220px" class="switchStyle" v-model="timeSignshow" active-color="#1890ff" inactive-color="#5AC1A1" active-text="全部" inactive-text="待办" @change="changeswitch"/>
|
||||
@ -181,18 +183,30 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="任务节点" align="center" prop="routeNodeName" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_DISCHARGE'">出院后<span v-if="scope.row.routeNodeDay">
|
||||
第{{ scope.row.routeNodeDay }}天</span></span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_ADMISSION'">入院后<span v-if="scope.row.routeNodeDay">
|
||||
第{{ scope.row.routeNodeDay }}天</span></span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_CONSULTATION'">就诊后<span v-if="scope.row.routeNodeDay">
|
||||
第{{ scope.row.routeNodeDay }}天</span></span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_VISIT_DISCHARGE'">就诊/出院后<span
|
||||
v-if="scope.row.routeNodeDay">第{{ scope.row.routeNodeDay }}天</span></span>
|
||||
<span v-if="scope.row.routeNodeName == 'PREOPERATIVE'">术前<span v-if="scope.row.routeNodeDay">
|
||||
第{{ scope.row.routeNodeDay }}天</span></span>
|
||||
<span v-if="scope.row.routeNodeName == 'POSTOPERATIVE'">术后<span v-if="scope.row.routeNodeDay">
|
||||
第{{ scope.row.routeNodeDay }}天</span></span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_DISCHARGE'">
|
||||
出院后
|
||||
<span v-if="scope.row.routeNodeDay"> 第{{ scope.row.routeNodeDay }}天</span>
|
||||
</span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_ADMISSION'">
|
||||
入院后
|
||||
<span v-if="scope.row.routeNodeDay"> 第{{ scope.row.routeNodeDay }}天</span>
|
||||
</span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_CONSULTATION'">
|
||||
就诊后
|
||||
<span v-if="scope.row.routeNodeDay"> 第{{ scope.row.routeNodeDay }}天</span>
|
||||
</span>
|
||||
<span v-if="scope.row.routeNodeName == 'AFTER_VISIT_DISCHARGE'">
|
||||
就诊/出院后
|
||||
<span v-if="scope.row.routeNodeDay">第{{ scope.row.routeNodeDay }}天</span>
|
||||
</span>
|
||||
<span v-if="scope.row.routeNodeName == 'PREOPERATIVE'">
|
||||
术前
|
||||
<span v-if="scope.row.routeNodeDay"> 第{{ scope.row.routeNodeDay }}天</span>
|
||||
</span>
|
||||
<span v-if="scope.row.routeNodeName == 'POSTOPERATIVE'">
|
||||
术后
|
||||
<span v-if="scope.row.routeNodeDay"> 第{{ scope.row.routeNodeDay }}天</span>
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务内容" align="center" prop="taskNodeType" :show-overflow-tooltip="true">
|
||||
@ -224,9 +238,18 @@
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="queryParams.nodeExecuteStatus == 'UNEXECUTED'" size="mini" type="text"
|
||||
icon="el-icon-bank-card" @click="handleUpdate(scope.row)">处理</el-button>
|
||||
<el-button v-if="queryParams.nodeExecuteStatus == 'EXECUTED'" size="mini" type="text"
|
||||
icon="el-icon-notebook-2" @click="handleadtail(scope.row)">详情</el-button>
|
||||
<el-button v-if="czshow" size="mini" type="text" icon="el-icon-phone">外呼</el-button>
|
||||
<el-button v-if="whshow" size="mini" type="text" icon="el-icon-phone"
|
||||
@click="Outbound(scope.row)">外呼</el-button>
|
||||
<el-button v-if="AItrue && scope.row.taskNodeType == 'PHONE_OUTBOUND'" size="mini" type="text"
|
||||
@click="playback(scope.row)" icon="el-icon-headset">回放</el-button>
|
||||
<el-button
|
||||
v-if="AItrue && !scope.row.taskNodeType == 'PHONE_OUTBOUND' && !scope.row.taskNodeType == 'QUESTIONNAIRE_SCALE'"
|
||||
size="mini" type="text" icon="el-icon-view">查看</el-button>
|
||||
<el-button
|
||||
v-if="queryParams.nodeExecuteStatus == 'EXECUTED' && scope.row.taskNodeType == 'QUESTIONNAIRE_SCALE'"
|
||||
size="mini" type="text" icon="el-icon-notebook-2" @click="questionlook(scope.row)">问卷查看</el-button>
|
||||
<el-button v-if="COMMONtrue" size="mini" type="text" icon="el-icon-document"
|
||||
@click="handleadtail(scope.row)">详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -235,15 +258,72 @@
|
||||
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
|
||||
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
|
||||
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
|
||||
<el-dialog title="回放" :visible.sync="audioshow" width="400px" :before-close="audiohandleClose">
|
||||
<div class="audio">
|
||||
<audio ref="audioPlayer" :src="audiourl" controls></audio>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog title="问卷查看" :visible.sync="questionshow" width="40%">
|
||||
<div class="bottomheader">
|
||||
<div class="right">
|
||||
<div class="title">总分:{{ questiondata.totalScore }}分</div>
|
||||
<div class="words" v-for="(item, index) in questiondata.subjectResultList" :key="index">
|
||||
{{ index + 1 }}.{{ item.questionName }}
|
||||
<span v-if="item.questionType == 'MULTIPLE_CHOICE'">(单选题)</span>
|
||||
<span v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS'">(多选题)</span>
|
||||
<span v-if="item.questionType == 'SCORING_QUESTIONS'">(打分题)</span>
|
||||
<span v-if="item.questionType == 'COMBINATION_RADIO_SUBJECT'">(组合单选题)</span>
|
||||
<span v-if="item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'">(组合多选题)</span>
|
||||
<span v-if="item.questionType == 'COMBINATION_BLANKS_SUBJECT'">(组合填空题)</span>
|
||||
<span v-if="item.questionType == 'FILL_IN_THE_BLANKS'">(填空题)</span>
|
||||
<span v-if="item.questionType == 'COMBINATION_SCORING_SUBJECT'">(组合打分题)</span>
|
||||
<span v-if="item.questionType == 'DATE_BLANKS_SUBJECT'">(日期填空题)</span>
|
||||
<span v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">(时间填空题)</span>
|
||||
<el-radio-group
|
||||
v-if="item.questionType == 'MULTIPLE_CHOICE' || item.questionType == 'COMBINATION_RADIO_SUBJECT' || item.questionType == 'SCORING_QUESTIONS' || item.questionType == 'COMBINATION_SCORING_SUBJECT'"
|
||||
v-model="item.checked" class="custom-radio-group" @change="radioGroupChange($event, item)">
|
||||
<el-radio disabled class="custom" v-for="(aitem, aindex) in item.optionResults" :key="aindex"
|
||||
:label="aitem.id" @change="radioChange($event, aitem, index)">
|
||||
{{ aitem.optionName }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
<el-checkbox-group v-model="checkeddata" @change="radioGroupChange($event, item, 'checkbox')"
|
||||
v-if="item.questionType == 'MULTIPLE_CHOICE_QUESTIONS' || item.questionType == 'COMBINATION_MULTIPLE_SUBJECT'">
|
||||
<el-checkbox disabled v-for="(aitem, aindex) in item.optionResults" :key="aindex" :label="aitem.id"
|
||||
@change="radioChangecheck($event, aitem, index, aindex)">
|
||||
{{ aitem.optionName }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
<div v-if="item.questionType == 'FILL_IN_THE_BLANKS' || item.questionType == 'COMBINATION_BLANKS_SUBJECT'"
|
||||
class="tk">
|
||||
<el-input disabled v-model="item.fillBlanksAnswer" placeholder="请输入答案" type="textarea" />
|
||||
</div>
|
||||
<div v-if="item.questionType == 'DATE_BLANKS_SUBJECT'" style="margin: 20px 0 10px 30px">
|
||||
<el-date-picker disabled @change="timepicker($event, index)" clearable v-model="item.fillBlanksAnswer"
|
||||
type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
|
||||
</el-date-picker>
|
||||
</div>
|
||||
<div style="margin: 20px 0 10px 30px" v-if="item.questionType == 'TIME_BLANKS_SUBJECT'">
|
||||
<el-time-select disabled @change="timepickerselect($event, index)" clearable
|
||||
v-model="item.fillBlanksAnswer" :picker-options="{ start: '08:30', step: '00:30', end: '23:30', }"
|
||||
placeholder="选择时间">
|
||||
</el-time-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { manualFollowUpList } from "@/api/system/followup";
|
||||
import { manualFollowUpList, createActualTimeTask, getPhoneDialVideo } from "@/api/system/followup";
|
||||
import { usergetList } from "@/api/unitconfig/patientConfiguration";
|
||||
import { getAge } from "@/utils/age";
|
||||
import { selectAgencyList, getAgencyList } from "@/api/manage/selectAgencyList";
|
||||
import SearchFilter from '../../components/SearchForm.vue'
|
||||
|
||||
import {
|
||||
selectPatientQuestionSubmit,
|
||||
} from "@/api/system/taskExecuteRecord";
|
||||
export default {
|
||||
name: "Followup22",
|
||||
dicts: ["visit_method"],
|
||||
@ -251,7 +331,12 @@ export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
czshow: null,
|
||||
//播放回放
|
||||
audiourl: undefined,
|
||||
audioshow: false,
|
||||
whshow: null,
|
||||
AItrue: null,
|
||||
COMMONtrue: null,
|
||||
foldshow: null,
|
||||
maxTableHeight: undefined,
|
||||
// 随访时间
|
||||
@ -290,13 +375,13 @@ export default {
|
||||
open: false,
|
||||
// 查询参数
|
||||
timeSignshow: false,
|
||||
phoneDialMethodshow: false,
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
timeSign: "TODAY",
|
||||
nodeExecuteStatus: "UNEXECUTED",
|
||||
patientPhone: null,
|
||||
|
||||
followStartTime: null,
|
||||
followEndTime: null,
|
||||
clinicalStartTime: null,
|
||||
@ -348,6 +433,13 @@ export default {
|
||||
// { required: true, message: "患者表id不能为空", trigger: "blur" },
|
||||
// ],
|
||||
// },
|
||||
questionshow: false,
|
||||
checkeddata: [],
|
||||
questiondata: {
|
||||
totalScore: 0, //总分
|
||||
routeHandlePerson: null,
|
||||
routeHandleId: null,
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -365,6 +457,70 @@ export default {
|
||||
this.screenChange();
|
||||
},
|
||||
methods: {
|
||||
async questionlook(row) {
|
||||
await selectPatientQuestionSubmit(row.taskExecuteRecordId).then((res) => {
|
||||
this.questiondata = res.data;
|
||||
this.questiondata.subjectResultList.forEach((e) => {
|
||||
e.optionResults.forEach((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);
|
||||
}
|
||||
});
|
||||
});
|
||||
this.questionshow = true
|
||||
});
|
||||
},
|
||||
audiohandleClose() {
|
||||
this.$refs.audioPlayer.pause()
|
||||
this.audioshow = false
|
||||
this.audiourl = null
|
||||
},
|
||||
async playback(row) {
|
||||
await this.$confirm('是否确认回放?', '提示', {
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
getPhoneDialVideo(row.manageRouteNodeId).then(res => {
|
||||
this.audioshow = true
|
||||
this.audiourl = process.env.VUE_APP_BASE_API + res.data
|
||||
setTimeout(() => {
|
||||
this.$refs.audioPlayer.load(); // 重新加载音频,以确保每次播放都是新的音频文件
|
||||
// this.$refs.audioPlayer.play();
|
||||
}, 1000);
|
||||
})
|
||||
})
|
||||
},
|
||||
Outbound(row) {
|
||||
this.$confirm('是否确认进行外呼?', '提示', {
|
||||
confirmButtonText: '确认',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
createActualTimeTask({
|
||||
"manageRouteId": row.manageRouteId,
|
||||
"scriptInfoId": row.scriptInfoId,
|
||||
"signPatientManageRouteNodeId": row.manageRouteNodeId
|
||||
}).then(res => {
|
||||
this.$modal.msgSuccess("外呼成功");
|
||||
})
|
||||
})
|
||||
},
|
||||
changeswitchtwo(e) {
|
||||
if (e == true) {
|
||||
this.queryParams.phoneDialMethod = "AI";
|
||||
this.getList();
|
||||
} else {
|
||||
this.queryParams.phoneDialMethod = "COMMON";
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
changeswitch(e) {
|
||||
if (e == true) {
|
||||
this.queryParams.timeSign = "WHOLE";
|
||||
@ -406,8 +562,9 @@ export default {
|
||||
} else {
|
||||
this.queryParams.timeSign = "TODAY";
|
||||
this.timeSignshow = false;
|
||||
this.phoneDialMethodshow = false
|
||||
this.queryParams.phoneDialMethod = "COMMON";
|
||||
}
|
||||
console.log(this.queryParams.nodeExecuteStatus, "nodeExecuteStatus");
|
||||
this.getList();
|
||||
},
|
||||
change(e) {
|
||||
@ -524,10 +681,20 @@ export default {
|
||||
getList() {
|
||||
this.loading = true;
|
||||
manualFollowUpList(this.queryParams).then((response) => {
|
||||
if (this.queryParams.phoneDialMethod == 'AI' && this.queryParams.nodeExecuteStatus == 'EXECUTED') {
|
||||
this.czshow = true
|
||||
if (this.queryParams.phoneDialMethod == 'AI' && this.queryParams.nodeExecuteStatus == 'UNEXECUTED') {
|
||||
this.whshow = true
|
||||
} else {
|
||||
this.czshow = false
|
||||
this.whshow = false
|
||||
}
|
||||
if (this.queryParams.phoneDialMethod == 'AI' && this.queryParams.nodeExecuteStatus == 'EXECUTED') {
|
||||
this.AItrue = true
|
||||
} else {
|
||||
this.AItrue = false
|
||||
}
|
||||
if (this.queryParams.phoneDialMethod == 'COMMON' && this.queryParams.nodeExecuteStatus == 'EXECUTED') {
|
||||
this.COMMONtrue = true
|
||||
} else {
|
||||
this.COMMONtrue = false
|
||||
}
|
||||
localStorage.setItem("followupquery", JSON.stringify(this.queryParams));
|
||||
this.taskExecuteRecordList = response.rows;
|
||||
@ -656,6 +823,7 @@ export default {
|
||||
wardId: null,
|
||||
};
|
||||
this.timeSignshow = false;
|
||||
this.phoneDialMethodshow = false
|
||||
} else {
|
||||
this.queryParams = {
|
||||
pageNum: 1,
|
||||
@ -690,8 +858,6 @@ export default {
|
||||
departmentId: null,
|
||||
wardId: null,
|
||||
};
|
||||
// this.timeSignshow=true
|
||||
// this.queryParams.nodeExecuteStatus = 'EXECUTED'
|
||||
}
|
||||
this.handleQuery();
|
||||
this.intentionalTime = [];
|
||||
@ -756,9 +922,7 @@ export default {
|
||||
manageRouteNodeId: row.manageRouteNodeId,
|
||||
visitRecordId: row.visitRecordId,
|
||||
taskExecuteRecordId: row.taskExecuteRecordId,
|
||||
routeHandleRemark: row.routeHandleRemark
|
||||
? row.routeHandleRemark
|
||||
: null,
|
||||
routeHandleRemark: row.routeHandleRemark ? row.routeHandleRemark : null,
|
||||
},
|
||||
});
|
||||
},
|
||||
@ -846,6 +1010,122 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .el-input.is-disabled .el-input__inner {
|
||||
background-color: #fff !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
::v-deep .el-textarea.is-disabled .el-textarea__inner {
|
||||
background-color: #fff !important;
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
|
||||
border: 1px solid #DCDFE6 !important;
|
||||
border-color: #1890ff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__input.is-disabled+span.el-checkbox__label {
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
|
||||
border-color: #1890ff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__input.is-disabled .el-checkbox__inner {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-radio__input.is-disabled .el-radio__inner {
|
||||
border: 1px solid #DCDFE6 !important;
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner {
|
||||
border-color: #1890ff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-radio__input.is-disabled.is-checked .el-radio__inner::after {
|
||||
color: #1890ff !important;
|
||||
background-color: #1890ff !important;
|
||||
}
|
||||
|
||||
::v-deep .el-radio__input.is-disabled+span.el-radio__label {
|
||||
color: black !important;
|
||||
}
|
||||
|
||||
.tk {
|
||||
::v-deep .el-textarea__inner {
|
||||
margin: 20px 0 10px 30px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-radio {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px 0px 10px 24px;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox {
|
||||
padding: 10px 0 10px 0px;
|
||||
// padding: 10px;
|
||||
}
|
||||
|
||||
.custom-radio-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px 0 10px 10px;
|
||||
|
||||
.custom {
|
||||
padding: 10px 0 10px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.custom-radio-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px 0 10px 10px;
|
||||
|
||||
.custom {
|
||||
padding: 10px 0 10px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 100%;
|
||||
// background: yellow;
|
||||
}
|
||||
|
||||
.bottomheader {
|
||||
width: 99%;
|
||||
background-color: #fff;
|
||||
margin: 0 auto;
|
||||
|
||||
.title {
|
||||
line-height: 40px;
|
||||
font-size: 20px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.words {
|
||||
font-size: 15px;
|
||||
padding: 10px 50px 10px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.audio {
|
||||
margin: 10px 0px 10px 0;
|
||||
}
|
||||
|
||||
audio {
|
||||
width: 350px;
|
||||
}
|
||||
|
||||
::v-deep .el-table {
|
||||
overflow: auto;
|
||||
}
|
||||
@ -907,9 +1187,13 @@ export default {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.el-switch__core,
|
||||
.el-switch__core {
|
||||
width: 85px !important;
|
||||
}
|
||||
|
||||
.el-switch__label {
|
||||
width: 60px !important;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -662,17 +662,11 @@ export default {
|
||||
);
|
||||
this.form = this.lists[0].list[0];
|
||||
// 宣教模板回显
|
||||
if (
|
||||
this.form.taskNodeType == "PROPAGANDA_ARTICLE" &&
|
||||
this.form.templateId
|
||||
) {
|
||||
if (this.form.taskNodeType == "PROPAGANDA_ARTICLE" && this.form.templateId) {
|
||||
getPropaganda(this.form.templateId).then((response) => {
|
||||
this.formview = response.data;
|
||||
});
|
||||
} else if (
|
||||
this.form.templateId &&
|
||||
this.form.taskNodeType == "QUESTIONNAIRE_SCALE"
|
||||
) {
|
||||
} else if (this.form.templateId && this.form.taskNodeType == "QUESTIONNAIRE_SCALE") {
|
||||
// 问卷模板回显
|
||||
questionname(this.form.templateId).then((res) => {
|
||||
this.lookitemnew = res.data;
|
||||
@ -813,21 +807,12 @@ export default {
|
||||
this.form.officialRemindContent = item.templateContent;
|
||||
},
|
||||
//暂存
|
||||
TemporaryStorage() {
|
||||
if (
|
||||
this.form.taskNodeType != "QUESTIONNAIRE_SCALE" &&
|
||||
this.form.taskNodeType != "PROPAGANDA_ARTICLE"
|
||||
) {
|
||||
async TemporaryStorage() {
|
||||
console.log(this.form)
|
||||
if (this.form.taskNodeType != "QUESTIONNAIRE_SCALE" && this.form.taskNodeType != "PROPAGANDA_ARTICLE") {
|
||||
this.$refs.wangeditor.emit();
|
||||
}
|
||||
this.$confirm(
|
||||
"确认暂存时将过滤掉部分内容未填写完成的子节点,是否确认暂存?",
|
||||
"提示",
|
||||
{
|
||||
confirmButtonText: "确认",
|
||||
cancelButtonText: "取消",
|
||||
}
|
||||
).then(() => {
|
||||
await this.$confirm("确认暂存时将过滤掉部分内容未填写完成的子节点,是否确认暂存?", "提示", { confirmButtonText: "确认", cancelButtonText: "取消", }).then(() => {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: "暂存中",
|
||||
@ -839,17 +824,14 @@ export default {
|
||||
e.list.length > 0 ? e.list.forEach((el) => {
|
||||
el.routeNodeDay = e.routeNodeDay;
|
||||
el.routeNodeName = e.routeNodeName;
|
||||
el.phonePushSign = null;
|
||||
if (el.phoneDialMethod == "COMMON" && el.templateId) {
|
||||
el.phonePushSign = "1";
|
||||
el.taskNodeType = "QUESTIONNAIRE_SCALE";
|
||||
} else if (
|
||||
el.phoneDialMethod == "COMMON" &&
|
||||
el.phoneTemplateId
|
||||
) {
|
||||
} else if (el.phoneDialMethod == "AI" && el.templateId) {
|
||||
el.phonePushSign = "1";
|
||||
} else if (el.phoneDialMethod == "COMMON" && el.phoneTemplateId) {
|
||||
el.phonePushSign = "1";
|
||||
el.taskNodeType = "PHONE_OUTBOUND";
|
||||
} else if (el.phoneDialMethod == "AI" && el.phoneTemplateId) {
|
||||
el.taskNodeType = "PHONE_OUTBOUND";
|
||||
el.phonePushSign = "1";
|
||||
}
|
||||
this.updata.specialDiseaseNodeList.push(el);
|
||||
@ -866,43 +848,32 @@ export default {
|
||||
// );
|
||||
// return;
|
||||
this.updata.specialDiseaseNodeList.forEach((ele) => {
|
||||
loading.close();
|
||||
if (ele.taskNodeType == "PHONE_OUTBOUND") {
|
||||
if (ele.phoneDialMethod == null || ele.phoneDialMethod == "") {
|
||||
this.$message.error("请先选择推送方式");
|
||||
} else if (
|
||||
ele.phoneTemplateId == null ||
|
||||
ele.phoneTemplateId == ""
|
||||
) {
|
||||
this.$message.error("请先选择话术模板");
|
||||
} else {
|
||||
specialDiseaseNode(this.updata).then((res) => {
|
||||
let wangeditorlist = [];
|
||||
if (localStorage.getItem("wangeditorlist")) {
|
||||
wangeditorlist = JSON.parse(
|
||||
localStorage.getItem("wangeditorlist")
|
||||
);
|
||||
wangeditorlist = wangeditorlist.filter(
|
||||
(e) =>
|
||||
e.specialDiseaseNodeId == this.form.specialDiseaseNodeId
|
||||
);
|
||||
localStorage.setItem(
|
||||
"wangeditorlist",
|
||||
JSON.stringify(wangeditorlist)
|
||||
);
|
||||
}
|
||||
this.info();
|
||||
loading.close();
|
||||
this.$modal.msgSuccess("暂存成功!");
|
||||
this.listindex = 0;
|
||||
this.itemindex = 0;
|
||||
});
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
}, 3000);
|
||||
loading.close();
|
||||
return this.$message.error("请先选择推送方式");
|
||||
} else if (ele.phoneTemplateId == null || ele.phoneTemplateId == "") {
|
||||
loading.close();
|
||||
return this.$message.error("请先选择话术模板");
|
||||
}
|
||||
}
|
||||
});
|
||||
specialDiseaseNode(this.updata).then((res) => {
|
||||
let wangeditorlist = [];
|
||||
if (localStorage.getItem("wangeditorlist")) {
|
||||
wangeditorlist = JSON.parse(localStorage.getItem("wangeditorlist"));
|
||||
wangeditorlist = wangeditorlist.filter((e) => e.specialDiseaseNodeId == this.form.specialDiseaseNodeId);
|
||||
localStorage.setItem("wangeditorlist", JSON.stringify(wangeditorlist));
|
||||
}
|
||||
this.info();
|
||||
loading.close();
|
||||
this.$modal.msgSuccess("暂存成功!");
|
||||
this.listindex = 0;
|
||||
this.itemindex = 0;
|
||||
});
|
||||
setTimeout(() => {
|
||||
loading.close();
|
||||
}, 3000);
|
||||
});
|
||||
},
|
||||
//问卷传值
|
||||
@ -986,13 +957,11 @@ export default {
|
||||
});
|
||||
},
|
||||
//任务类型
|
||||
changeTaskType(code, taskSubdivision) {
|
||||
async changeTaskType(code, taskSubdivision) {
|
||||
this.taskPartitionDictId = "";
|
||||
let id = this.selectTaskTypeList?.find((e) => e.taskTypeCode == code)?.id;
|
||||
this.form.taskTypeName = this.selectTaskTypeList?.find(
|
||||
(e) => e.taskTypeCode == code
|
||||
)?.taskTypeName;
|
||||
taskPartitionList(id).then((res) => {
|
||||
this.form.taskTypeName = this.selectTaskTypeList?.find((e) => e.taskTypeCode == code)?.taskTypeName;
|
||||
await taskPartitionList(id).then((res) => {
|
||||
// res.data?.forEach(e => {
|
||||
// if (e.taskNodeType == 'PHONE_OUTBOUND') {
|
||||
// e.taskPartitionName = e.taskPartitionName + '(电话外呼)'
|
||||
@ -1007,7 +976,7 @@ export default {
|
||||
this.taskPartitionList = res.data;
|
||||
this.form.taskSubdivision = "";
|
||||
this.form.taskSubdivisionName = "";
|
||||
this.form.taskNodeType = "";
|
||||
// this.form.taskNodeType = "";
|
||||
this.taskStatusDictList = [];
|
||||
if (taskSubdivision) {
|
||||
this.form.taskSubdivision = taskSubdivision;
|
||||
@ -1017,11 +986,7 @@ export default {
|
||||
},
|
||||
//点击任务细分
|
||||
changetaskSubdivision(code, type) {
|
||||
if (
|
||||
this.form.taskNodeType != "QUESTIONNAIRE_SCALE" &&
|
||||
this.form.taskNodeType != "PROPAGANDA_ARTICLE" &&
|
||||
this.form.taskNodeType != "PHONE_OUTBOUND"
|
||||
) {
|
||||
if (this.form.taskNodeType != "QUESTIONNAIRE_SCALE" && this.form.taskNodeType != "PROPAGANDA_ARTICLE" && this.form.taskNodeType != "PHONE_OUTBOUND") {
|
||||
this.$refs.wangeditor.emit();
|
||||
}
|
||||
setTimeout(() => {
|
||||
@ -1034,31 +999,19 @@ export default {
|
||||
if (!type) {
|
||||
this.form.taskStatus = "";
|
||||
}
|
||||
this.form.taskSubdivisionName = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.taskPartitionName;
|
||||
let id = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.id;
|
||||
this.form.taskSubdivisionName = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.taskPartitionName;
|
||||
let id = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.id;
|
||||
this.taskPartitionDictId = id;
|
||||
this.form.secondClassifyDescribe = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.secondClassifyDescribe;
|
||||
this.form.executionTime = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.executionTime;
|
||||
this.form.secondClassifyDescribe = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.secondClassifyDescribe;
|
||||
this.form.executionTime = this.taskPartitionList?.find((e) => e.taskPartitionCode == code)?.executionTime;
|
||||
taskStatusDictList(id).then((res) => {
|
||||
this.taskStatusDictList = res.data;
|
||||
});
|
||||
this.taskPartitionList.forEach((el) => {
|
||||
if (code == el.taskPartitionCode) {
|
||||
this.form.executionTime = el.executionTime;
|
||||
this.form.taskNodeType = el.taskNodeType;
|
||||
if (
|
||||
this.form.taskNodeType == "PHONE_OUTBOUND" ||
|
||||
this.form.taskNodeType == "PROPAGANDA_ARTICLE" ||
|
||||
this.form.taskNodeType == "QUESTIONNAIRE_SCALE"
|
||||
) {
|
||||
// this.form.taskNodeType = el.taskNodeType;
|
||||
if (this.form.taskNodeType == "PHONE_OUTBOUND" || this.form.taskNodeType == "PROPAGANDA_ARTICLE" || this.form.taskNodeType == "QUESTIONNAIRE_SCALE") {
|
||||
this.form.nodeContent = `<p></p>`;
|
||||
}
|
||||
if (!type) {
|
||||
@ -1070,15 +1023,11 @@ export default {
|
||||
if (localStorage.getItem("wangeditorlist")) {
|
||||
wangeditorlist = JSON.parse(localStorage.getItem("wangeditorlist"));
|
||||
this.form.nodeContent = "<p></p>";
|
||||
this.form.nodeContent = wangeditorlist.find(
|
||||
(e) =>
|
||||
e.taskSubdivision == this.form.taskSubdivision &&
|
||||
e.specialDiseaseNodeId == this.form.specialDiseaseNodeId
|
||||
)?.nodeContent;
|
||||
this.form.nodeContent = wangeditorlist.find((e) => e.taskSubdivision == this.form.taskSubdivision && e.specialDiseaseNodeId == this.form.specialDiseaseNodeId)?.nodeContent;
|
||||
}
|
||||
this.form.taskNodeType = this.taskPartitionList?.find(
|
||||
(e) => e.taskPartitionCode == code
|
||||
)?.taskNodeType;
|
||||
// this.form.taskNodeType = this.taskPartitionList?.find(
|
||||
// (e) => e.taskPartitionCode == code
|
||||
// )?.taskNodeType;
|
||||
});
|
||||
loading.close();
|
||||
}, 500);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user