外呼记录

This commit is contained in:
shidongli 2024-12-19 09:24:50 +08:00
parent e778ef4d3b
commit 0c94916941
3 changed files with 1016 additions and 15 deletions

View File

@ -112,6 +112,64 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务执行状态" prop="nodeExecuteStatus">
<el-select
v-model="queryParams.nodeExecuteStatus"
placeholder="请选择任务执行状态"
clearable
style="width: 220px"
>
<el-option
v-for="item in nodeExecutList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务执行类型" prop="taskExcuteType">
<el-select
v-model="queryParams.taskExcuteType"
placeholder="请选择任务执行类型"
clearable
style="width: 220px"
>
<el-option
v-for="item in taskExcuteTypelist"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="调查结果" prop="contentedFlag">
<el-select
v-model="queryParams.contentedFlag"
placeholder="请选择调查结果"
clearable
style="width: 220px"
>
<el-option
v-for="item in contentedFlaglist"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="批次" prop="sn">
<span>
<sn
@on-template="messageontemplateword"
:templateId="queryParams.sn"
></sn>
</span>
</el-form-item>
</SearchFilter>
</div>
<div ref="table">
@ -123,32 +181,42 @@
>
<!-- <el-table-column type="selection" width="55" /> -->
<el-table-column label="序号" type="index" width="48" align="center" />
<el-table-column label="患者姓名" align="center" prop="patientName" />
<el-table-column label="患者电话" align="center" prop="patientPhone" />
<el-table-column label="患者姓名" align="center" prop="patientName" width="110"/>
<el-table-column label="患者电话" align="center" prop="patientPhone" width="110"/>
<el-table-column
label="路径名称"
align="center"
prop="manageRouteName"
width="110"
/>
<el-table-column
label="问卷模板名称"
align="center"
prop="questionnaireName"
width="120"
/>
<el-table-column
label="话术名称"
align="center"
prop="scriptTemplateName"
width="110"
/>
<el-table-column
label="医院"
align="center"
prop="hospitalAgencyName"
width="110"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
width="110"
/>
<el-table-column
label="节点任务执行状态"
@ -157,10 +225,25 @@
width="150"
>
<template slot-scope="scope">
{{ scope.row.nodeExecuteStatus == "EXECUTED" ? "已执行" : "" }}
{{ scope.row.nodeExecuteStatus == "UNEXECUTED" ? "未执行" : "" }}
<span style="color: #67c23a">
{{
scope.row.nodeExecuteStatus == "EXECUTED" ? "已执行" : ""
}}</span
>
<span style="color: #f56c6c">
{{
scope.row.nodeExecuteStatus == "UNEXECUTED" ? "未执行" : ""
}}</span
>
</template>
</el-table-column>
<el-table-column
label="反馈意见"
align="center"
prop="fillBlanksAnswer"
width="150"
/>
<el-table-column
label="就诊时间"
align="center"
@ -175,11 +258,44 @@
/>
<el-table-column label="调查结果" align="center" prop="contentedFlag" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="150"
>
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handdatile(scope.row)">详情</el-button>
<el-button
v-if="
((scope.row.phoneDialMethod == 'AI' &&
scope.row.nodeExecuteStatus == 'EXECUTED') || (
scope.row.phoneDialMethod == 'COMMON' &&
scope.row.nodeExecuteStatus == 'EXECUTED'
)) &&
scope.row.phoneNodeExecuteResultStatus == 'SUCCESS'
"
size="mini"
type="text"
@click="playback(scope.row)"
icon="el-icon-headset"
>回放</el-button
>
<el-button
v-if="
scope.row.nodeExecuteStatus == 'EXECUTED' &&
scope.row.taskNodeType == 'QUESTIONNAIRE_SCALE'
"
size="mini"
type="text"
icon="el-icon-notebook-2"
@click="questionlook(scope.row)"
>问卷查看</el-button
>
</template>
</el-table-column> -->
</el-table-column>
</el-table>
</div>
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
@ -191,6 +307,167 @@
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
<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>
<el-dialog
title="回放"
:visible.sync="audioshow"
width="800px"
:before-close="audiohandleClose"
>
<div class="audio">
<div style="display: flex">
<span class="name">姓名:{{ patientName }}</span>
<audio ref="audioPlayer" :src="audiourl" controls></audio>
</div>
<div v-for="(item, index) in formlist" :key="index">
<div class="imagelist" v-if="item.role == 'speech'">
<img src="@/assets/manage/chat.png" alt="" />
<div class="question">
<span class="questionname">问题</span>
<span class="content">{{ item.contextText }}</span>
</div>
</div>
<div class="imagelistright" v-if="item.role == 'voice'">
<div class="question">
<span class="questionname">{{ item.contextText }}</span>
</div>
<img src="@/assets/manage/solution.png" alt="" />
</div>
</div>
</div>
</el-dialog>
</div>
</template>
@ -198,10 +475,16 @@
import { uploadRobotPublishRecord, selectQuestionInfoList } from "@/api/manage/Satisfactionsurvey"
import SearchFilter from "../../components/SearchForm.vue";
import { getAgencyList, selectAgencyList, } from "@/api/manage/selectAgencyList";
import { selectPatientQuestionSubmit } from "@/api/system/taskExecuteRecord";
import {
getPhoneDialVideo,
} from "@/api/system/followup";
import sn from "../components/sn";
export default {
name: "visitout",
components: { SearchFilter },
components: { SearchFilter ,sn},
data() {
return {
maxTableHeight: undefined,
@ -209,6 +492,60 @@ export default {
pageNum: 1,
pageSize: 10,
},
//
nodeExecutList: [
{
value: "EXECUTED",
label: "已执行",
},
{
value: "UNEXECUTED",
label: "未执行",
},
],
//
taskExcuteTypelist: [
{
value: "BATCH_TASK",
label: "批量任务",
},
{
value: "ACTUAL_TIME_TASK",
label: "单通电话",
},
],
//
contentedFlaglist: [
{
value: "CONTENTED",
label: "满意",
},
{
value: "DISCONTENTED",
label: "不满意",
},
],
//
audiourl: undefined,
audioshow: false,
whshow: null,
AItrue: null,
COMMONtrue: null,
foldshow: null,
questiondata: {
totalScore: 0, //
routeHandlePerson: null,
routeHandleId: null,
},
//
questionshow: false,
checkeddata: [],
formlist: [],
patientName:null,
//
questionnaireList: [],
//list
@ -254,6 +591,10 @@ export default {
hospitalAgencyId: null,
departmentId: null,
questionInfoId: null,
nodeExecuteStatus: 'UNEXECUTED',
taskExcuteType: null,
contentedFlag: null,
sn: null,
},
show: false,
@ -289,6 +630,66 @@ export default {
this.queryParams.pageSize = size;
this.getList();
},
//
audiohandleClose() {
this.$refs.audioPlayer.pause();
this.audioshow = false;
this.audiourl = null;
},
//
async playback(row) {
console.log(row,'row')
this.patientName=row.patientName
// await this.$confirm("?", "", {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning",
// }).then(() => {
getPhoneDialVideo(row.manageRouteNodeId).then((res) => {
console.log(res, "res");
this.audioshow = true;
this.audiourl = process.env.VUE_APP_BASE_API + res.data.phoneDialRecordVideo;
this.formlist = res.data.record;
setTimeout(() => {
this.$refs.audioPlayer.load(); //
// this.$refs.audioPlayer.play();
// }, 1000);
});
});
},
//
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;
});
},
changeTime(e) {
this.show = false;
},
@ -318,9 +719,26 @@ export default {
getList() {
this.loading = true;
uploadRobotPublishRecord(this.queryParams).then((response) => {
// response.rows.forEach((e) => {
// e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
// });
// response.rows.forEach(item=>{
// if (
// item.phoneDialMethod == "AI" &&
// item.nodeExecuteStatus == "EXECUTED"
// ) {
// this.AItrue = true;
// } else {
// this.AItrue = false;
// }
// if (
// item.phoneDialMethod == "COMMON" &&
// item.nodeExecuteStatus == "EXECUTED"
// ) {
// this.COMMONtrue = true;
// } else {
// this.COMMONtrue = false;
// }
// })
this.patientInfoList = response.rows;
this.total = response.total;
this.loading = false;
@ -441,6 +859,12 @@ export default {
}
});
},
//
messageontemplateword(item) {
console.log(item,'sn');
this.queryParams.sn = item.sn;
},
//
handdatile(row) {
@ -475,6 +899,50 @@ 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;
}
.titlenew {
font-size: 16px;
font-weight: 600;
@ -485,4 +953,134 @@ export default {
::v-deep .el-table__fixed-right::before {
height: 0px !important;
}
.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;
.name {
display: inline-block;
margin: 20px
}
.imagelist {
padding-top: 10px;
display: flex;
img {
width: 40px;
height: 40px;
}
.question {
// width: 1000px;
// height: 30px;
padding-left: 10px;
padding-right: 10px;
background: #fafbff;
box-shadow: 5px 5px 10px #dbe5f4;
border-radius: 5px;
line-height: 30px;
margin-top: 5px;
margin-left: 5px;
}
.questionname {
color: #559ca6;
padding-left: 10px;
font-weight: 600;
}
.content {
color: #939394;
}
}
.imagelistright {
padding-top: 10px;
display: flex;
// float: right;
justify-content: flex-end;
align-items: center;
img {
width: 40px;
height: 40px;
margin-left: 5px;
}
.question {
// width: 200px;
// height: 30px;
padding-left: 10px;
padding-right: 10px;
background: #51b9ff;
box-shadow: 5px 5px 10px #dbe5f4;
border-radius: 5px;
line-height: 30px;
margin-top: 5px;
margin-left: 5px;
color: #fff;
text-align: center;
}
// .questionname {
// color: #5da0aa;
// padding-left: 10px;
// }
.content {
color: #dcdfe6;
}
}
}
audio {
width: 350px;
}
.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;
}
}
</style>

View File

@ -0,0 +1,403 @@
<template>
<div class="app-containers">
<el-button
size="small"
@click="classificationOpen = true"
style="
width: 220px;
font-size: 14px;
text-align: left;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
"
:style="handleselectId ? 'color:black' : 'color:#C0C4CC'"
>{{ handleselectId ? handleselectId : "请选择批次" }}</el-button
>
<el-dialog
title="批次选择"
:visible.sync="classificationOpen"
width="70%"
:before-close="classificationOpenfalse"
>
<el-row :gutter="20">
<!--用户数据-->
<el-col :span="24" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="导入日期" prop="" label-width="120px">
<el-date-picker v-model="createTime" type="daterange" range-separator="" start-placeholder="开始日期"
style="width: 220px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="医院" prop="">
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width:220px" clearable
@clear="clearhospitalAgency" @change="changehospitalAgency">
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="院区" prop="">
<el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width:220px" clearable
@clear="clearcampusAgency" >
<el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
</el-option>
</el-select>
</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="PatientInfoImportBatchlist"
@row-dblclick="handleselect"
>
<el-table-column
label="序号"
type="index"
width="48"
align="center"
/>
<el-table-column label="流水号" prop="sn" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handsn(scope.row)">{{
scope.row.sn
}}</el-button>
</template>
</el-table-column>
<el-table-column
label="患者数"
align="center"
prop="patientCount"
width="150"
/>
<el-table-column label="操作人" align="center" prop="createBy" />
<el-table-column label="导入日期" align="center" prop="createTime">
<template slot-scope="scope">
<span>{{
parseTime(scope.row.createTime, "{y}-{m}-{d}")
}}</span>
</template>
</el-table-column>
<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.sn"
>选择</el-button
>
<el-button
size="mini"
type="text"
@click="nohandleselect(scope.row)"
v-if="handleselectId == scope.row.sn"
>取消选择</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>
</template>
<script>
import { patientInfoImportBatchlist} from "@/api/manage/patientInfoImport";
import stationAcatar from "../../system/stationAvatar/index.vue";
import { selectAgencyList, getAgencyList } from "@/api/manage/selectAgencyList";
export default {
props: ["templateId"],
components: { stationAcatar },
name: "Script",
data() {
return {
createTime:"",
//list
hospitalAgencylist: [],
// list
campusAgencylist: [],
//
PatientInfoImportBatchlist: [],
lookshow: false,
phoneNodeContent: {
scriptInfoId: null,
flowScheme: null,
nodes: [],
edges: [],
},
handleselectId: "",
classificationOpen: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
hospitalAgencyId: null,
importTimeStart: "",
importTimeEnd: "",
campusAgencyId: null,
},
};
},
created() {
this.getlist();
this.selectAgencyinfo();
},
mounted() {
this.handleselectId = this.templateId;
},
watch: {
templateId(newValue, oldValue) {
this.handleselectId = newValue;
},
},
methods: {
//list
selectAgencyinfo() {
let query = {
agencyStatus: 'ON',
nodeType: 'HOSPITAL',
}
selectAgencyList(query).then(res => {
this.hospitalAgencylist = res.data
})
},
//
getAgencyListinfo(nodeType, id, type) {
let query = {
nodeType: nodeType,
}
if (nodeType == 'HOSPITAL') {
query.hospitalId = id
} else if (nodeType == 'CAMPUS') {
query.campusId = id
}
getAgencyList(query).then(res => {
// if (type)
console.log(nodeType );
console.log(res.data.campusList);
{
if (nodeType == 'HOSPITAL') {
this.campusAgencylist = res.data.campusList;
}
}
})
},
//
changehospitalAgency(id, type, typetwo) {
this.getAgencyListinfo('HOSPITAL', id, type)
// let query = {
// agencyStatus: 'ON',
// nodeType: 'CAMPUS',
// parentId: id,
// }
// selectAgencyList(query).then(res => {
if (type) {
if (!typetwo) {
this.form.campusAgencyId = null
}
} else {
this.queryParams.campusAgencyId = null
}
// })
},
//
changecampusAgency(id, type, typetwo) {
this.getAgencyListinfo('CAMPUS', id, type)
},
//
clearhospitalAgency(type) {
if (type) {
this.form.campusAgencyId = null
this.form.departmentId = null
this.form.wardId = null
} else {
this.queryParams.campusAgencyId = null
this.queryParams.departmentId = null
this.queryParams.wardId = null
}
},
//
clearcampusAgency(type) {
if (type) {
this.form.departmentId = null
this.form.wardId = null
this.getAgencyListinfo('HOSPITAL', this.form.hospitalAgencyId, type)
} else {
this.queryParams.departmentId = null
this.queryParams.wardId = null
this.getAgencyListinfo('HOSPITAL', this.queryParams.hospitalAgencyId)
}
},
//
nohandleselect() {
this.handleselectId = "";
this.$emit("on-template", {
sn: '',
});
},
//
handleselect(item) {
console.log(item,'0000000000');
this.handleselectId = item.sn;
this.$emit("on-template", {
sn: item.sn,
});
this.classificationOpen = false;
},
classificationOpenfalse() {
this.classificationOpen = false;
},
/** 查询话术信息列表 */
getlist() {
this.loading = true;
patientInfoImportBatchlist(this.queryParams).then(response => {
this.PatientInfoImportBatchlist = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
if (this.createTime?.length > 0) {
this.queryParams.importTimeStart = this.createTime[0];
this.queryParams.importTimeEnd = this.createTime[1];
} else {
this.queryParams.importTimeStart = null;
this.queryParams.importTimeEnd = null;
}
this.getlist();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10
}
this.createTime ='';
this.handleQuery();
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-input-number .el-input__inner {
text-align: left;
}
::v-deep .el-dialog__body {
padding-bottom: 60px;
}
.app-containers {
display: inline-block;
padding: 0 !important;
// background: red;
height: 42px;
}
::v-deep .el-textarea__inner {
width: 206px;
}
.leftscript {
// width: 30%;
height: 650px;
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: 10px;
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;
}
}
}
.button {
display: inline-block;
position: relative;
left: 20px;
top: -11px;
}
</style>

View File

@ -495,20 +495,20 @@
>
<!-- && scope.row.taskNodeType == 'PHONE_OUTBOUND' -->
<el-button
v-if="(AItrue || COMMONtruep) && scope.row.phoneNodeExecuteResultStatus=='SUCCESS'"
v-if="(AItrue || COMMONtrue) && scope.row.phoneNodeExecuteResultStatus=='SUCCESS'"
size="mini"
type="text"
@click="playback(scope.row)"
icon="el-icon-headset"
>回放</el-button
>
<div v-else-if="(AItrue || COMMONtruep) && scope.row.phoneNodeExecuteResultStatus=='FAILURE'">
<div v-else-if="(AItrue || COMMONtrue) &&scope.row.phoneNodeExecuteResultStatus=='FAILURE'">
未接通
</div>
<div v-else-if="(AItrue || COMMONtruep) && scope.row.phoneNodeExecuteResultStatus=='EXPIRED'">
<div v-else-if="(AItrue || COMMONtrue) && scope.row.phoneNodeExecuteResultStatus=='EXPIRED'">
超期
</div>
<div v-else-if="(AItrue || COMMONtruep)">{{scope.row.phoneNodeExecuteResultStatus}}</div>
<div v-else-if="(AItrue || COMMONtrue)">{{scope.row.phoneNodeExecuteResultStatus}}</div>
<el-button
v-if="