外呼记录搜索条件批次新增明细

This commit is contained in:
2025-03-26 09:08:26 +08:00
parent c0b1100f74
commit 66ea32162a

View File

@ -1,140 +1,123 @@
<template> <template>
<div class="app-containers"> <div class="app-containers">
<el-button <el-button size="small" @click="classificationOpen = true" style="
size="small"
@click="classificationOpen = true"
style="
width: 220px; width: 220px;
font-size: 14px; font-size: 14px;
text-align: left; text-align: left;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
" " :style="handleselectId ? 'color:black' : 'color:#C0C4CC'">
:style="handleselectId ? 'color:black' : 'color:#C0C4CC'" {{ handleselectId ? handleselectId : "请选择批次" }}
>{{ handleselectId ? handleselectId : "请选择批次" }}</el-button </el-button>
> <el-dialog title="批次选择" :visible.sync="classificationOpen" width="70%" :before-close="classificationOpenfalse">
<el-dialog
title="批次选择"
:visible.sync="classificationOpen"
width="70%"
:before-close="classificationOpenfalse"
>
<el-row :gutter="20"> <el-row :gutter="20">
<!--用户数据--> <!--用户数据-->
<el-col :span="24" :xs="24"> <el-col :span="24" :xs="24">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
:model="queryParams" label-width="100px">
ref="queryForm" <el-form-item label="导入日期" prop="" label-width="120px">
size="small" <el-date-picker v-model="createTime" type="daterange" range-separator="" start-placeholder="开始日期"
:inline="true" style="width: 220px" value-format="yyyy-MM-dd" end-placeholder="结束日期">
v-show="showSearch" </el-date-picker>
label-width="100px" </el-form-item>
> <el-form-item label="医院" prop="">
<el-form-item label="导入日期" prop="" label-width="120px"> <el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width:220px"
<el-date-picker v-model="createTime" type="daterange" range-separator="" start-placeholder="开始日期" clearable @clear="clearhospitalAgency" @change="changehospitalAgency">
style="width: 220px" value-format="yyyy-MM-dd" end-placeholder="结束日期"> <el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
</el-date-picker> </el-option>
</el-form-item> </el-select>
<el-form-item label="医院" prop=""> </el-form-item>
<el-select v-model="queryParams.hospitalAgencyId" filterable placeholder="请选择医院" style="width:220px" clearable <el-form-item label="院区" prop="">
@clear="clearhospitalAgency" @change="changehospitalAgency"> <el-select v-model="queryParams.campusAgencyId" filterable placeholder="请选择院区" style="width:220px"
<el-option v-for="item in hospitalAgencylist" :key="item.id" :label="item.agencyName" :value="item.id"> clearable @clear="clearcampusAgency">
</el-option> <el-option v-for="item in campusAgencylist" :key="item.id" :label="item.agencyName" :value="item.id">
</el-select> </el-option>
</el-form-item> </el-select>
<el-form-item label="院区" prop=""> </el-form-item>
<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-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
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-item>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="PatientInfoImportBatchlist" @row-dblclick="handleselect">
v-loading="loading" <el-table-column label="序号" type="index" width="48" align="center" />
:data="PatientInfoImportBatchlist"
@row-dblclick="handleselect"
>
<el-table-column
label="序号"
type="index"
width="48"
align="center"
/>
<el-table-column label="流水号" prop="sn" align="center"> <el-table-column label="流水号" prop="sn" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="handsn(scope.row)">{{ <el-button size="mini" type="text" @click="handsn(scope.row)">
scope.row.sn {{ scope.row.sn }}
}}</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="患者数" align="center" prop="patientCount" width="150" />
<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="createBy" />
<el-table-column label="导入日期" align="center" prop="createTime"> <el-table-column label="导入日期" align="center" prop="createTime">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>
parseTime(scope.row.createTime, "{y}-{m}-{d}") {{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }}
}}</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="handleselect(scope.row)"
<el-button v-if="handleselectId != scope.row.sn">选择</el-button>
size="mini" <el-button size="mini" type="text" @click="nohandleselect(scope.row)"
type="text" v-if="handleselectId == scope.row.sn">取消选择</el-button>
@click="handleselect(scope.row)" <el-button size="mini" type="text" @click="handsn(scope.row)">明细</el-button>
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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getlist" />
:total="total" </el-dialog>
:page.sync="queryParams.pageNum" <el-dialog title="导入明细" :visible.sync="ImportDetailsopen" width="70%" :before-close="ImportDetailsopenfalse">
:limit.sync="queryParams.pageSize" <SearchFilter :labelWidths="310" labelWidth="90px" size="small" @search="ImportDetailhandleQuery"
@pagination="getlist" @reset="ImportDetailresetQuery" @minShowCtrol="getMaxTableHeight" @handleRules="handleRules">
/> <el-form-item label="姓名" prop="patientName">
<el-input v-model="ImportDetailqueryParams.patientName" placeholder="请输入姓名" clearable
@keyup.enter.native="ImportDetailhandleQuery" style="width: 200px" />
</el-form-item>
<el-form-item label="联系电话" prop="patientPhone">
<el-input v-model="ImportDetailqueryParams.patientPhone" placeholder="请输入联系电话" clearable
@keyup.enter.native="ImportDetailhandleQuery" style="width: 200px" />
</el-form-item>
<el-form-item label="医院" prop="hospitalAgencyId">
<el-select v-model="ImportDetailqueryParams.hospitalAgencyId" filterable placeholder="请选择医院"
style="width: 200px" 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="ImportDetailqueryParams.departmentId" filterable placeholder="请选择科室" style="width: 200px"
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>
<el-table :data="patientInfoList">
<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="age" />
<el-table-column label="医院" align="center" prop="hospitalAgencyName" />
<el-table-column label="科室名称" align="center" prop="departmentName" />
<el-table-column label="导入日期" align="center" prop="visitDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.Timeimport, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="诊断" align="center" prop="mainDiagnosis" />
</el-table>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { patientInfoImportBatchlist} from "@/api/manage/patientInfoImport"; import { patientInfoImportBatchlist } from "@/api/manage/patientInfoImport";
import stationAcatar from "../../system/stationAvatar/index.vue"; import stationAcatar from "../../system/stationAvatar/index.vue";
import { selectAgencyList, getAgencyList } from "@/api/manage/selectAgencyList"; import { selectAgencyList, getAgencyList } from "@/api/manage/selectAgencyList";
@ -144,12 +127,12 @@ export default {
name: "Script", name: "Script",
data() { data() {
return { return {
createTime:"", createTime: "",
//list //list
hospitalAgencylist: [], hospitalAgencylist: [],
// list // list
campusAgencylist: [], campusAgencylist: [],
// //
PatientInfoImportBatchlist: [], PatientInfoImportBatchlist: [],
lookshow: false, lookshow: false,
phoneNodeContent: { phoneNodeContent: {
@ -160,6 +143,7 @@ export default {
}, },
handleselectId: "", handleselectId: "",
classificationOpen: false, classificationOpen: false,
ImportDetailsopen: false,
// //
loading: true, loading: true,
// //
@ -177,7 +161,7 @@ export default {
// //
open: false, open: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
hospitalAgencyId: null, hospitalAgencyId: null,
@ -185,25 +169,72 @@ export default {
importTimeEnd: "", importTimeEnd: "",
campusAgencyId: null, campusAgencyId: null,
}, },
ImportDetailqueryParams: {
sn: null,
patientName: null,
patientPhone: null,
birthDate: null,
patientType: null,
visitMethod: null,
mainDiagnosis: null,
attendingPhysicianId: null,
hospitalAgencyId: null,
hospitalAgencyName: null,
campusAgencyId: null,
campusAgencyName: null,
departmentId: null,
departmentName: null,
wardId: null,
wardName: null,
surgicalName: null,
admissionTimeStart: null,
admissionTimeEnd: null,
outpatientNumber: null,
visitDateStart: null,
visitDateEnd: null,
dischargeMethod: null,
patientSource: null,
}
}; };
}, },
created() { created() {
this.getlist(); this.getlist();
this.selectAgencyinfo(); this.selectAgencyinfo();
}, },
mounted() { mounted() {
this.handleselectId = this.templateId; this.handleselectId = this.templateId;
}, },
watch: { watch: {
templateId(newValue, oldValue) { templateId(newValue, oldValue) {
this.handleselectId = newValue; this.handleselectId = newValue;
}, },
}, },
methods: { methods: {
//list // /
selectAgencyinfo() { handsn(row) {
this.ImportDetailqueryParams.sn = row.sn;
getPatientList(this.ImportDetailqueryParams).then((response) => {
response.rows.forEach((e) => {
e.birthDate ? (e.age = getAge(e.birthDate)) : e.age;
});
response.rows.forEach((e) => {
e.Timeimport = this.$route.query.Timeimport
});
this.patientInfoList = response.rows;
this.total = response.total;
this.ImportDetailsopen = true
});
// this.$router.push({
// path: "/patient/ImportDetails",
// query: {
// path: "/patient/patientinfoimport",
// sn: row.sn,
// Timeimport: row.createTime,
// },
// });
},
//list
selectAgencyinfo() {
let query = { let query = {
agencyStatus: 'ON', agencyStatus: 'ON',
nodeType: 'HOSPITAL', nodeType: 'HOSPITAL',
@ -223,15 +254,11 @@ export default {
query.campusId = id query.campusId = id
} }
getAgencyList(query).then(res => { getAgencyList(query).then(res => {
// if (type) // if (type) {
console.log(nodeType ); if (nodeType == 'HOSPITAL') {
console.log(res.data.campusList); this.campusAgencylist = res.data.campusList;
{
if (nodeType == 'HOSPITAL') {
this.campusAgencylist = res.data.campusList;
}
} }
// }
}) })
}, },
// //
@ -289,7 +316,6 @@ export default {
}, },
// //
handleselect(item) { handleselect(item) {
console.log(item,'0000000000');
this.handleselectId = item.sn; this.handleselectId = item.sn;
this.$emit("on-template", { this.$emit("on-template", {
sn: item.sn, sn: item.sn,
@ -299,17 +325,20 @@ export default {
classificationOpenfalse() { classificationOpenfalse() {
this.classificationOpen = false; this.classificationOpen = false;
}, },
ImportDetailsopenfalse() {
this.ImportDetailsopen = false;
},
/** 查询话术信息列表 */ /** 查询话术信息列表 */
getlist() { getlist() {
this.loading = true; this.loading = true;
patientInfoImportBatchlist(this.queryParams).then(response => { patientInfoImportBatchlist(this.queryParams).then(response => {
this.PatientInfoImportBatchlist = response.rows; this.PatientInfoImportBatchlist = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
}); });
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1;
if (this.createTime?.length > 0) { if (this.createTime?.length > 0) {
this.queryParams.importTimeStart = this.createTime[0]; this.queryParams.importTimeStart = this.createTime[0];
@ -326,13 +355,13 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10 pageSize: 10
} }
this.createTime =''; this.createTime = '';
this.handleQuery(); this.handleQuery();
}, },
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-input-number .el-input__inner { ::v-deep .el-input-number .el-input__inner {
text-align: left; text-align: left;
} }
@ -400,4 +429,3 @@ export default {
top: -11px; top: -11px;
} }
</style> </style>