修改外呼记录

This commit is contained in:
shidongli 2024-12-17 11:50:20 +08:00
parent 16d037590e
commit 172464c741
2 changed files with 253 additions and 45 deletions

View File

@ -8,4 +8,13 @@ export function uploadRobotPublishRecord(query) {
params: query
})
}
// 问卷列表
export function selectQuestionInfoList(query) {
return request({
url: '/system/question/selectQuestionInfoList',
method: 'get',
params: query
})
}

View File

@ -2,8 +2,8 @@
<div class="app-container" ref="layout">
<div ref="topform" class="form">
<SearchFilter
:labelWidths="280"
labelWidth="120px"
labelWidth="100px"
:labelWidths="310"
size="small"
@search="handleQuery"
@reset="resetQuery"
@ -11,7 +11,25 @@
:query="query"
v-show="showSearch"
>
<el-form-item label="外呼时间" prop="startTime" label-width="120px">
<el-form-item label="患者姓名" prop="patientName">
<el-input
v-model="queryParams.patientName"
placeholder="请输入患者姓名"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="患者电话" prop="patientPhone">
<el-input
v-model="queryParams.patientPhone"
placeholder="请输入患者电话"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="外呼时间" prop="startTime">
<el-date-picker
v-model="dischargeTime"
type="daterange"
@ -20,17 +38,25 @@
style="width: 220px"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
@change="changeTime"
>
</el-date-picker>
</el-form-item>
<el-form-item label="问卷名称" prop="questionnaireName">
<el-input
v-model="queryParams.questionnaireName"
placeholder="请输入问卷名称"
<el-select
v-model="queryParams.questionInfoId"
placeholder="请选择问卷名称"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
>
<el-option
v-for="item in questionnaireList"
:key="item.id"
:label="item.questionnaireName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="任务节点类型" prop="taskNodeType">
<el-select
@ -48,6 +74,44 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId">
<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="departmentId">
<el-select
v-model="queryParams.departmentId"
filterable
placeholder="请选择科室"
style="width: 220px"
clearable
@clear="cleardepartment"
@change="changedepartment"
>
<el-option
v-for="item in departmentlist"
:key="item.id"
:label="item.departmentName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</SearchFilter>
</div>
<div ref="table">
@ -61,7 +125,11 @@
<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="manageRouteName" />
<el-table-column
label="路径名称"
align="center"
prop="manageRouteName"
/>
<el-table-column
label="问卷模板名称"
align="center"
@ -72,22 +140,25 @@
align="center"
prop="scriptTemplateName"
/>
<el-table-column
label="医院"
align="center"
prop="hospitalAgencyName"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
/>
<el-table-column
label="机构名称"
label="节点任务执行状态"
align="center"
prop="hospitalAgencyName"
/>
<el-table-column label="节点任务执行状态" align="center" prop="nodeExecuteStatus" width="150">
prop="nodeExecuteStatus"
width="150"
>
<template slot-scope="scope">
{{ scope.row.nodeExecuteStatus=="EXECUTED"?"已执行":""}}
{{ scope.row.nodeExecuteStatus=="UNEXECUTED"?"未执行":""}}
{{ scope.row.nodeExecuteStatus == "EXECUTED" ? "已执行" : "" }}
{{ scope.row.nodeExecuteStatus == "UNEXECUTED" ? "未执行" : "" }}
</template>
</el-table-column>
<el-table-column
@ -99,14 +170,11 @@
<el-table-column
label="执行时间"
align="center"
prop="executeTime;"
/>
<el-table-column
label="调查结果"
align="center"
prop="contentedFlag"
prop="nodePlanTime"
width="150"
/>
<el-table-column label="调查结果" align="center" prop="contentedFlag" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handdatile(scope.row)">详情</el-button>
@ -125,20 +193,32 @@
></myPagination>
</div>
</template>
<script>
import { uploadRobotPublishRecord } from "@/api/manage/Satisfactionsurvey"
import { uploadRobotPublishRecord, selectQuestionInfoList } from "@/api/manage/Satisfactionsurvey"
import SearchFilter from "../../components/SearchForm.vue";
import { getAgencyList, selectAgencyList, } from "@/api/manage/selectAgencyList";
export default {
name: "visitout",
components: { SearchFilter },
data() {
return {
maxTableHeight: undefined,
query:{
query: {
pageNum: 1,
pageSize: 10,
},
//
questionnaireList: [],
//list
hospitalAgencylist: [],
// list
campusAgencylist: [],
//list
departmentlist: [],
//list
wardlist: [],
//
fileList: [],
//
@ -161,22 +241,29 @@ export default {
//
uploadopen: false,
//
dischargeTime: [],
dischargeTime: [],//
queryParams: {
pageNum: 1,
pageSize: 10,
startTime: null,
endTime: null,
questionnaireName: null,
taskNodeType:null,
taskNodeType: null,
patientName: null,
patientPhone: null,
hospitalAgencyId: null,
departmentId: null,
questionInfoId: null,
},
show: false,
options: [{
value: 'PHONE_OUTBOUND',
label: '电话外呼'
}, {
value: 'QUESTIONNAIRE_SCALE',
label: '问卷量表'
}],
value: 'PHONE_OUTBOUND',
label: '电话外呼'
}, {
value: 'QUESTIONNAIRE_SCALE',
label: '问卷量表'
}],
//
form: {},
//
@ -184,7 +271,13 @@ export default {
};
},
created() {
this.selectAgencyinfo();
this.getDefaultDateRange()
this.getList();
this.getQuestion();
console.log(this.queryParams, 'queryParams11111111')
},
mounted() {
this.getMaxTableHeight();
@ -196,8 +289,33 @@ export default {
this.queryParams.pageSize = size;
this.getList();
},
changeTime(e) {
this.show = false;
},
getDefaultDateRange() {
this.show = true;
const endDate = new Date(); //
const startDate = new Date();
startDate.setDate(endDate.getDate() - 6); // 退
console.log(startDate, endDate);
this.dischargeTime[0] = startDate;
this.dischargeTime[1] = endDate;
console.log(this.dischargeTime, 'dischargeTime')
this.queryParams.startTime = this.formatDate(this.dischargeTime[0]);
this.queryParams.endTime = this.formatDate(this.dischargeTime[1]);
console.log(this.queryParams, 'queryParams')
},
formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 01
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
getQuestion() {
selectQuestionInfoList().then(response => {
this.questionnaireList = response
})
},
/** 查询患者信息列表 */
getList() {
this.loading = true;
@ -213,14 +331,23 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
if (this.dischargeTime?.length > 0) {
this.queryParams.startTime = this.dischargeTime[0];
this.queryParams.endTime = this.dischargeTime[1];
} else {
if (this.show == true) {
this.queryParams.startTime = this.formatDate(this.dischargeTime[0]);
this.queryParams.endTime = this.formatDate(this.dischargeTime[1]);
} else if (this.show == false) {
this.queryParams.startTime = this.dischargeTime[0];
this.queryParams.endTime = this.dischargeTime[1];
}
}
else {
this.queryParams.startTime = null;
this.queryParams.endTime = null;
}
this.queryParams.pageNum = 1;
this.query=this.queryParams
this.query = this.queryParams
console.log(this.queryParams, 'this.queryPara1111111111ms')
this.getList();
},
@ -245,9 +372,82 @@ export default {
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
//
handdatile(row){
//
cleardepartment() {
this.queryParams.wardId = null;
if (this.queryParams.departmentId) {
this.getAgencyListinfo("DEPARTMENT", this.queryParams.departmentId);
} else if (this.queryParams.campusAgencyId) {
this.getAgencyListinfo("CAMPUS", this.queryParams.campusAgencyId);
} else if (this.queryParams.hospitalAgencyId) {
this.getAgencyListinfo("HOSPITAL", this.queryParams.hospitalAgencyId);
}
},
//
changedepartment(id) {
this.getAgencyListinfo("DEPARTMENT", id);
// let query = {
// nodeType: 'WARD',
// parentDepartmentId: id,
// }
// getDepartmentList(query).then(res => {
// this.wardlist = res.data
this.queryParams.wardId = null;
// })
},
//
changehospitalAgency(id) {
this.getAgencyListinfo("HOSPITAL", id);
this.queryParams.departmentId = null;
// })
},
//
clearhospitalAgency() {
this.queryParams.departmentId = null;
setTimeout(() => {
this.attendingPhysicianlist = [];
}, 1000);
},
//
getAgencyListinfo(nodeType, id) {
let query = {
nodeType: nodeType,
};
if (nodeType == "HOSPITAL") {
query.hospitalId = id;
} else if (nodeType == "CAMPUS") {
query.campusId = id;
} else if (nodeType == "DEPARTMENT") {
query.departmentId = id;
}
getAgencyList(query).then((res) => {
if (nodeType == "HOSPITAL") {
this.campusAgencylist = res.data.campusList;
this.departmentlist = res.data.departmentList;
} else if (nodeType == "CAMPUS") {
this.departmentlist = res.data.departmentList;
}
this.wardlist = res.data.wardList;
});
},
selectAgencyinfo() {
let query = {
agencyStatus: "ON",
nodeType: "HOSPITAL",
};
selectAgencyList(query).then((res) => {
this.hospitalAgencylist = res.data;
if (this.hospitalAgencylist.length == 1) {
this.queryParams.hospitalAgencyId = this.hospitalAgencylist[0].id
this.getAgencyListinfo("HOSPITAL", this.hospitalAgencylist[0].id);
}
});
},
//
handdatile(row) {
},
//
@ -289,4 +489,3 @@ export default {
height: 0px !important;
}
</style>