任务记录

This commit is contained in:
shidongli 2024-12-16 16:15:07 +08:00
parent d3682a3c8a
commit d93b9d8aa0
3 changed files with 349 additions and 10 deletions

View File

@ -0,0 +1,11 @@
import request from '@/utils/request'
// 查询列表
export function uploadRobotPublishRecord(query) {
return request({
url: '/manage/signnode/uploadRobotPublishRecord',
method: 'get',
params: query
})
}

View File

@ -36,13 +36,22 @@
>导入</el-button
>
<el-button
type="primary"
plain
type="primary"
plain
size="mini"
@click="handleback"
v-if="this.$router.currentRoute.path == '/patient/ImportDetails'"
>返回</el-button
>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-if="this.$router.currentRoute.path == '/task/Satisfactionsurvey'"
>导出</el-button
>
<Button
v-show="collapsiable"
type="text"
@ -448,10 +457,18 @@ export default {
patientUploadButtonVisible: {
type: String,
default: 'false'
}
},
query:{
type: Object,
default: () => ({})
},
},
data() {
return {
querlist:{},//
departmentsshow: false,//
loading: false,
patientInfoList: [],
@ -542,6 +559,14 @@ export default {
},
watch: {
query:{
handler(val) {
this.querlist=val
},
deep: true,
immediate: true,
},
'$store.state.app.sidebar.opened'(newVal, Val) {
if (newVal) {
const group = window.document.querySelectorAll(`#searchFilter .el-form-item.el-form-item--${this.size}`)
@ -614,12 +639,23 @@ export default {
this.openphone = false;
},
//
handleback(){
handleback() {
this.$router.push({
path: "/patient/patientinfoimport",
});
path: "/patient/patientinfoimport",
});
},
/** 导出按钮操作 */
handleExport() {
this.download(
"/manage/signnode/export ",
{
...this.querlist,
},
`外呼记录_${new Date().getTime()}.xlsx`
);
},
//
handleUpload() {
// this.openphone=true;
@ -879,14 +915,14 @@ export default {
this.$modal.msgError("必填项请填写完整,再进行提交");
} else {
secondaryUpload(this.form).then(response => {
if(response.code==200){
this.$modal.msgSuccess(response.msg);
}else{
if (response.code == 200) {
this.$modal.msgSuccess(response.msg);
} else {
this.$modal.msgError(response.msg);
}
this.open = false;
this.$emit('handleRules')
}).catch(()=>{
}).catch(() => {
this.open = false;
})
}

View File

@ -0,0 +1,292 @@
<template>
<div class="app-container" ref="layout">
<div ref="topform" class="form">
<SearchFilter
:labelWidths="280"
labelWidth="120px"
size="small"
@search="handleQuery"
@reset="resetQuery"
@minShowCtrol="getMaxTableHeight"
:query="query"
v-show="showSearch"
>
<el-form-item label="外呼时间" prop="startTime" label-width="120px">
<el-date-picker
v-model="dischargeTime"
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="questionnaireName">
<el-input
v-model="queryParams.questionnaireName"
placeholder="请输入问卷名称"
clearable
@keyup.enter.native="handleQuery"
style="width: 220px"
/>
</el-form-item>
<el-form-item label="任务节点类型" prop="taskNodeType">
<el-select
v-model="queryParams.taskNodeType"
placeholder="请选择任务节点类型"
clearable
style="width: 220px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</SearchFilter>
</div>
<div ref="table">
<el-table
:max-height="maxTableHeight"
v-loading="loading"
:data="patientInfoList"
@selection-change="handleSelectionChange"
>
<!-- <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="manageRouteName" />
<el-table-column
label="问卷模板名称"
align="center"
prop="questionnaireName"
/>
<el-table-column
label="话术名称"
align="center"
prop="scriptTemplateName"
/>
<el-table-column
label="科室名称"
align="center"
prop="departmentName"
/>
<el-table-column
label="机构名称"
align="center"
prop="hospitalAgencyName"
/>
<el-table-column label="节点任务执行状态" align="center" prop="nodeExecuteStatus" width="150">
<template slot-scope="scope">
{{ scope.row.nodeExecuteStatus=="EXECUTED"?"已执行":""}}
{{ scope.row.nodeExecuteStatus=="UNEXECUTED"?"未执行":""}}
</template>
</el-table-column>
<el-table-column
label="就诊时间"
align="center"
prop="visitDate"
width="150"
/>
<el-table-column
label="执行时间"
align="center"
prop="executeTime;"
/>
<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>
</template>
</el-table-column> -->
</el-table>
</div>
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" /> -->
<myPagination
v-show="total > 0"
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
</div>
</template>
<script>
import { uploadRobotPublishRecord } from "@/api/manage/Satisfactionsurvey"
import SearchFilter from "../../components/SearchForm.vue";
export default {
name: "visitout",
components: { SearchFilter },
data() {
return {
maxTableHeight: undefined,
query:{
pageNum: 1,
pageSize: 10,
},
//
fileList: [],
//
loading: true,
//
ids: [],
patientVisitRecordId: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
patientInfoList: [],
//
//
uploadopen: false,
//
dischargeTime: [],
queryParams: {
pageNum: 1,
pageSize: 10,
startTime: null,
endTime: null,
questionnaireName: null,
taskNodeType:null,
},
options: [{
value: 'PHONE_OUTBOUND',
label: '电话外呼'
}, {
value: 'QUESTIONNAIRE_SCALE',
label: '问卷量表'
}],
//
form: {},
//
rules: {},
};
},
created() {
this.getList();
},
mounted() {
this.getMaxTableHeight();
this.screenChange();
},
methods: {
updateCPage(index, size) {
this.queryParams.pageNum = index;
this.queryParams.pageSize = size;
this.getList();
},
/** 查询患者信息列表 */
getList() {
this.loading = true;
uploadRobotPublishRecord(this.queryParams).then((response) => {
// response.rows.forEach((e) => {
// e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
// });
this.patientInfoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
if (this.dischargeTime?.length > 0) {
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
console.log(this.queryParams, 'this.queryPara1111111111ms')
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
};
this.dischargeTime = [];
this.queryParams.startTime = "";
this.queryParams.endTime = "";
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.patientVisitRecordIds = selection.map(
(item) => item.patientVisitRecordId
);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
//
handdatile(row){
},
//
getMaxTableHeight() {
const windowInnerHeight = window.innerHeight; //
const layoutDiv = this.$refs.layout;
const formDiv = this.$refs.topform;
const mb8Div = this.$refs.mb8;
this.maxTableHeight =
windowInnerHeight -
134 -
this.getBoxPadding(layoutDiv) -
this.getBoxHeight(mb8Div) -
this.getBoxHeight(formDiv);
},
// resize
screenChange() {
// resizeresize
window.addEventListener("resize", this.getMaxTableHeight, true);
//
//
// beforeDestroy
this.$once("hook:beforeDestroy", () => {
window.removeEventListener("resize", this.getMaxTableHeight, true);
});
},
},
};
</script>
<style lang="scss" scoped>
.titlenew {
font-size: 16px;
font-weight: 600;
height: 60px;
margin-left: 20px;
}
::v-deep .el-table__fixed-right::before {
height: 0px !important;
}
</style>