|
|
@ -1,63 +1,175 @@ |
|
|
|
<template> |
|
|
|
<div class="app-container"> |
|
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
|
|
|
label-width="68px"> |
|
|
|
<el-form |
|
|
|
:model="queryParams" |
|
|
|
ref="queryForm" |
|
|
|
size="small" |
|
|
|
:inline="true" |
|
|
|
v-show="showSearch" |
|
|
|
label-width="68px" |
|
|
|
> |
|
|
|
<el-form-item label="随访队列" prop="queueId"> |
|
|
|
<el-select v-model="queryParams.param.queueId" clearable placeholder="请选择"> |
|
|
|
<el-option v-for="item in followupList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
<el-select |
|
|
|
v-model="queryParams.param.queueId" |
|
|
|
clearable |
|
|
|
placeholder="请选择" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in followupList" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id" |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="组织" prop="tenantId"> |
|
|
|
<el-select |
|
|
|
v-model="queryParams.param.tenantId" |
|
|
|
placeholder="请选择" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="(item, index) in tenantsListData" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id" |
|
|
|
:key="index" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="" prop="queueId"> |
|
|
|
<el-checkbox-group v-model="haveQueue"> |
|
|
|
<el-checkbox >未参加队列人员</el-checkbox> |
|
|
|
<el-checkbox>未参加队列人员</el-checkbox> |
|
|
|
</el-checkbox-group> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
|
|
|
<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-row :gutter="10" class="mb8"> |
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
|
|
|
<right-toolbar |
|
|
|
:showSearch.sync="showSearch" |
|
|
|
@queryTable="getList" |
|
|
|
></right-toolbar> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<el-table v-loading="loading" :data="listDat" @selection-change="handleSelectionChange" max-height="600"> |
|
|
|
<el-table |
|
|
|
v-loading="loading" |
|
|
|
:data="listDat" |
|
|
|
@selection-change="handleSelectionChange" |
|
|
|
max-height="600" |
|
|
|
> |
|
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
|
<el-table-column label="姓名" align="center" prop="name" width="100" fixed /> |
|
|
|
<el-table-column fixed label="性别" align="center" prop="gender" show-overflow-tooltip min-width="100"> |
|
|
|
<el-table-column |
|
|
|
label="姓名" |
|
|
|
align="center" |
|
|
|
prop="name" |
|
|
|
width="100" |
|
|
|
fixed |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
fixed |
|
|
|
label="性别" |
|
|
|
align="center" |
|
|
|
prop="gender" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="100" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="scope.row.gender == 0">男</span> |
|
|
|
<span v-if="scope.row.gender == 1">女</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column fixed label="出生日期" align="center" prop="birthDate" show-overflow-tooltip min-width="150"> |
|
|
|
<el-table-column |
|
|
|
fixed |
|
|
|
label="出生日期" |
|
|
|
align="center" |
|
|
|
prop="birthDate" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="150" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="民族" align="center" prop="ethnicity" show-overflow-tooltip min-width="100" /> |
|
|
|
<el-table-column label="受教育年限" align="center" prop="educationYears" show-overflow-tooltip min-width="100" /> |
|
|
|
<el-table-column label="手机号码" align="center" prop="phone" show-overflow-tooltip min-width="150" /> |
|
|
|
<el-table-column label="证件类型" align="center" prop="idCardType" show-overflow-tooltip min-width="200"> |
|
|
|
<el-table-column |
|
|
|
label="民族" |
|
|
|
align="center" |
|
|
|
prop="ethnicity" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="受教育年限" |
|
|
|
align="center" |
|
|
|
prop="educationYears" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="100" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="手机号码" |
|
|
|
align="center" |
|
|
|
prop="phone" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="150" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="证件类型" |
|
|
|
align="center" |
|
|
|
prop="idCardType" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="200" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ idCardTypeValue[scope.row.idCardType] }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="证件号码" align="center" prop="idCard" show-overflow-tooltip min-width="180" /> |
|
|
|
<el-table-column fixed="right" label="随访队列" align="center" prop="queueList" show-overflow-tooltip |
|
|
|
min-width="180"> |
|
|
|
<el-table-column |
|
|
|
label="证件号码" |
|
|
|
align="center" |
|
|
|
prop="idCard" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="180" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
fixed="right" |
|
|
|
label="随访队列" |
|
|
|
align="center" |
|
|
|
prop="queueList" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="180" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.queueList && scope.row.queueList.length"> |
|
|
|
{{ scope.row.queueList.map((i) => i.queueName).join(",") }} |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="创建人/创建时间" align="center" width="140" fixed="right"> |
|
|
|
<el-table-column |
|
|
|
fixed="right" |
|
|
|
prop="tenantName" |
|
|
|
label="组织" |
|
|
|
align="center" |
|
|
|
show-overflow-tooltip |
|
|
|
min-width="150" |
|
|
|
/> |
|
|
|
<el-table-column |
|
|
|
label="创建人/创建时间" |
|
|
|
align="center" |
|
|
|
width="140" |
|
|
|
fixed="right" |
|
|
|
> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.createBy }}</div> |
|
|
|
<span>{{ |
|
|
@ -69,23 +181,55 @@ |
|
|
|
<template slot-scope="scope"> |
|
|
|
<!-- <el-button size="mini" type="text" icon="el-icon-edit" |
|
|
|
@click="handleUpdate(scope.row)">队列管理</el-button> --> |
|
|
|
<el-button size="mini" type="text" icon="el-icon-tickets" |
|
|
|
@click="handlePatient(scope.row)">患者档案</el-button> |
|
|
|
<el-button size="mini" type="text" icon="el-icon-notebook-2" |
|
|
|
@click="handleMedical(scope.row)">诊疗档案</el-button> |
|
|
|
<el-button |
|
|
|
size="mini" |
|
|
|
type="text" |
|
|
|
icon="el-icon-tickets" |
|
|
|
@click="handlePatient(scope.row)" |
|
|
|
>患者档案</el-button |
|
|
|
> |
|
|
|
<el-button |
|
|
|
size="mini" |
|
|
|
type="text" |
|
|
|
icon="el-icon-notebook-2" |
|
|
|
@click="handleMedical(scope.row)" |
|
|
|
>诊疗档案</el-button |
|
|
|
> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
|
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
|
|
|
:limit.sync="queryParams.pageSize" @pagination="getList" /> |
|
|
|
<pagination |
|
|
|
v-show="total > 0" |
|
|
|
:total="total" |
|
|
|
:page.sync="queryParams.pageNum" |
|
|
|
:limit.sync="queryParams.pageSize" |
|
|
|
@pagination="getList" |
|
|
|
/> |
|
|
|
|
|
|
|
<!-- 添加或修改公告对话框 --> |
|
|
|
<el-dialog class="popup" :title="title" :visible.sync="open" width="780px" append-to-body> |
|
|
|
<el-form class="formStep" ref="form" :model="form" :rules="rules" label-width="90px"> |
|
|
|
<el-dialog |
|
|
|
class="popup" |
|
|
|
:title="title" |
|
|
|
:visible.sync="open" |
|
|
|
width="780px" |
|
|
|
append-to-body |
|
|
|
> |
|
|
|
<el-form |
|
|
|
class="formStep" |
|
|
|
ref="form" |
|
|
|
:model="form" |
|
|
|
:rules="rules" |
|
|
|
label-width="90px" |
|
|
|
> |
|
|
|
<el-form-item label="随访队列" prop="queueIdList"> |
|
|
|
<el-select v-model="form.queueIdList" multiple placeholder="请选择"> |
|
|
|
<el-option v-for="item in followupList" :key="item.id" :label="item.name" :value="item.id"> |
|
|
|
<el-option |
|
|
|
v-for="item in followupList" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id" |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
@ -99,17 +243,15 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import { |
|
|
|
queryPatient, |
|
|
|
followupQuery, |
|
|
|
updPatient |
|
|
|
} from "@/api/followupFile"; |
|
|
|
export default { |
|
|
|
import { queryPatient, followupQuery, updPatient } from "@/api/followupFile"; |
|
|
|
import { tenantsList } from "@/api/member"; |
|
|
|
export default { |
|
|
|
name: "Notice", |
|
|
|
data() { |
|
|
|
return { |
|
|
|
fileList: [], |
|
|
|
idCardType: [{ |
|
|
|
idCardType: [ |
|
|
|
{ |
|
|
|
label: "身份证", |
|
|
|
value: 0, |
|
|
|
}, |
|
|
@ -147,26 +289,30 @@ |
|
|
|
title: "", // 弹出层标题 |
|
|
|
open: false, // 是否显示弹出层 |
|
|
|
importOpen: false, // 导入弹窗 |
|
|
|
tenantsListData: [], |
|
|
|
// 查询参数 |
|
|
|
queryParams: { |
|
|
|
pageNum: 1, |
|
|
|
pageSize: 10, |
|
|
|
param: { |
|
|
|
queueId: '' |
|
|
|
tenantId: "", |
|
|
|
queueId: "", |
|
|
|
}, |
|
|
|
}, |
|
|
|
haveQueue:'', |
|
|
|
haveQueue: "", |
|
|
|
formDisabled: false, |
|
|
|
importform: {}, |
|
|
|
// 表单参数 |
|
|
|
form: {}, |
|
|
|
// 表单校验 |
|
|
|
rules: { |
|
|
|
queueIdList: [{ |
|
|
|
queueIdList: [ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: "随访队列不能为空", |
|
|
|
trigger: "change" |
|
|
|
}, ], |
|
|
|
trigger: "change", |
|
|
|
}, |
|
|
|
], |
|
|
|
}, |
|
|
|
followupList: [], // 随访队列 |
|
|
|
}; |
|
|
@ -174,21 +320,31 @@ |
|
|
|
created() { |
|
|
|
this.getList(); |
|
|
|
this.getFollowupQuery(); |
|
|
|
this.getTenantsList(); // 组织列表 |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 组织列表 |
|
|
|
getTenantsList() { |
|
|
|
tenantsList({ |
|
|
|
pageNum: -1, |
|
|
|
param: {}, |
|
|
|
}).then((res) => { |
|
|
|
this.tenantsListData = res.data.list; |
|
|
|
}); |
|
|
|
}, |
|
|
|
// 获取随访队列信息 |
|
|
|
getFollowupQuery() { |
|
|
|
followupQuery({ |
|
|
|
pageNum: -1, |
|
|
|
param: { |
|
|
|
status: 1 |
|
|
|
status: 1, |
|
|
|
}, |
|
|
|
}).then((res) => { |
|
|
|
this.followupList = res.data.list; |
|
|
|
let commonQueue = JSON.parse(localStorage.getItem('commonQueue')) |
|
|
|
commonQueue?.forEach(i => { |
|
|
|
this.followupList.unshift(i) |
|
|
|
}) |
|
|
|
let commonQueue = JSON.parse(localStorage.getItem("commonQueue")); |
|
|
|
commonQueue?.forEach((i) => { |
|
|
|
this.followupList.unshift(i); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
@ -213,9 +369,9 @@ |
|
|
|
}, |
|
|
|
/** 搜索按钮操作 */ |
|
|
|
handleQuery() { |
|
|
|
this.queryParams.param.haveQueue = '' |
|
|
|
if(this.haveQueue){ |
|
|
|
this.queryParams.param.haveQueue = 0 |
|
|
|
this.queryParams.param.haveQueue = ""; |
|
|
|
if (this.haveQueue) { |
|
|
|
this.queryParams.param.haveQueue = 0; |
|
|
|
} |
|
|
|
this.queryParams.pageNum = 1; |
|
|
|
this.getList(); |
|
|
@ -224,10 +380,11 @@ |
|
|
|
resetQuery() { |
|
|
|
this.queryParams = { |
|
|
|
param: { |
|
|
|
queueId: '' |
|
|
|
}, |
|
|
|
tenantId: "", |
|
|
|
queueId: "", |
|
|
|
}, |
|
|
|
this.haveQueue = '' |
|
|
|
}; |
|
|
|
this.haveQueue = ""; |
|
|
|
this.handleQuery(); |
|
|
|
}, |
|
|
|
// 多选框选中数据 |
|
|
@ -252,17 +409,17 @@ |
|
|
|
/** 跳转患者档案 */ |
|
|
|
handlePatient(row) { |
|
|
|
this.$router.push({ |
|
|
|
path: `/patientFile/index?idCard=${row.idCard}` |
|
|
|
}) |
|
|
|
path: `/patientFile/index?idCard=${row.idCard}`, |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 诊疗档案 */ |
|
|
|
handleMedical(row) { |
|
|
|
this.$router.push({ |
|
|
|
path: `/medicalFile/index?idCard=${row.idCard}` |
|
|
|
}) |
|
|
|
path: `/medicalFile/index?idCard=${row.idCard}`, |
|
|
|
}); |
|
|
|
}, |
|
|
|
/** 提交按钮 */ |
|
|
|
submitForm: function() { |
|
|
|
submitForm: function () { |
|
|
|
this.$refs["form"].validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
updPatient(this.form).then((response) => { |
|
|
@ -279,9 +436,9 @@ |
|
|
|
const idList = row.id ? [row.id] : this.ids; |
|
|
|
this.$modal |
|
|
|
.confirm("是否确认删除当前选择的数据?") |
|
|
|
.then(function() { |
|
|
|
.then(function () { |
|
|
|
return patientDel({ |
|
|
|
idList: idList |
|
|
|
idList: idList, |
|
|
|
}); |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
@ -293,7 +450,8 @@ |
|
|
|
/** 导出按钮操作 */ |
|
|
|
handleExport() { |
|
|
|
this.download( |
|
|
|
"system/user/export", { |
|
|
|
"system/user/export", |
|
|
|
{ |
|
|
|
...this.queryParams.params, |
|
|
|
}, |
|
|
|
`患者档案.xlsx` |
|
|
@ -305,22 +463,22 @@ |
|
|
|
this.upload.open = true; |
|
|
|
}, |
|
|
|
}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
</script> |
|
|
|
<style scoped src="@/assets/styles/common.css"></style> |
|
|
|
<style scoped> |
|
|
|
.form-item-age { |
|
|
|
.form-item-age { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.form-item-age span { |
|
|
|
.form-item-age span { |
|
|
|
margin: 0 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.form-item-age>>>.el-input { |
|
|
|
.form-item-age >>> .el-input { |
|
|
|
width: 100px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
<!-- >>> .el-input__inner { |
|
|
|
padding: 0 15px !important; |
|
|
|