2 changed files with 297 additions and 401 deletions
@ -1,418 +1,314 @@ |
|||||
<template> |
<template> |
||||
<div class="app-container"> |
<div class="app-container"> |
||||
<el-form |
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
||||
:model="queryParams" |
label-width="68px"> |
||||
ref="queryForm" |
<el-form-item label="随访队列" prop="queueId"> |
||||
size="small" |
<el-select v-model="queryParams.param.queueId" clearable placeholder="请选择"> |
||||
:inline="true" |
<el-option v-for="item in followupList" :key="item.id" :label="item.name" :value="item.id"> |
||||
v-show="showSearch" |
</el-option> |
||||
label-width="68px" |
</el-select> |
||||
> |
</el-form-item> |
||||
<el-form-item label="随访队列" prop="queueId"> |
<el-form-item> |
||||
<el-select v-model="queryParams.param.queueId" clearable placeholder="请选择"> |
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
||||
<el-option |
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"> |
||||
v-for="item in followupList" |
重置 |
||||
:key="item.id" |
</el-button> |
||||
:label="item.name" |
</el-form-item> |
||||
:value="item.id" |
</el-form> |
||||
> |
|
||||
</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-row :gutter="10" class="mb8"> |
<el-row :gutter="10" class="mb8"> |
||||
<right-toolbar |
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
||||
:showSearch.sync="showSearch" |
</el-row> |
||||
@queryTable="getList" |
|
||||
></right-toolbar> |
|
||||
</el-row> |
|
||||
|
|
||||
<el-table |
<el-table v-loading="loading" :data="listDat" @selection-change="handleSelectionChange" max-height="600"> |
||||
v-loading="loading" |
<el-table-column type="selection" width="55" align="center" /> |
||||
:data="listDat" |
<el-table-column label="姓名" align="center" prop="name" width="100" fixed /> |
||||
@selection-change="handleSelectionChange" |
<el-table-column fixed label="性别" align="center" prop="gender" show-overflow-tooltip min-width="100"> |
||||
max-height="600" |
<template slot-scope="scope"> |
||||
> |
<span v-if="scope.row.gender == 0">男</span> |
||||
<el-table-column type="selection" width="55" align="center" /> |
<span v-if="scope.row.gender == 1">女</span> |
||||
<el-table-column label="姓名" align="center" prop="name" width="100" fixed/> |
</template> |
||||
<el-table-column |
</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 |
<el-table-column fixed label="出生日期" align="center" prop="birthDate" show-overflow-tooltip min-width="150"> |
||||
fixed |
<template slot-scope="scope"> |
||||
label="出生日期" |
{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }} |
||||
align="center" |
</template> |
||||
prop="birthDate" |
</el-table-column> |
||||
show-overflow-tooltip |
<el-table-column label="民族" align="center" prop="ethnicity" show-overflow-tooltip min-width="100" /> |
||||
min-width="150" |
<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" /> |
||||
<template slot-scope="scope"> |
<el-table-column label="证件类型" align="center" prop="idCardType" show-overflow-tooltip min-width="200"> |
||||
{{ parseTime(scope.row.createTime, "{y}-{m}-{d}") }} |
<template slot-scope="scope"> |
||||
</template> |
{{ idCardTypeValue[scope.row.idCardType] }} |
||||
</el-table-column> |
</template> |
||||
<el-table-column |
</el-table-column> |
||||
label="民族" |
<el-table-column label="证件号码" align="center" prop="idCard" show-overflow-tooltip min-width="180" /> |
||||
align="center" |
<el-table-column fixed="right" label="随访队列" align="center" prop="queueList" show-overflow-tooltip |
||||
prop="ethnicity" |
min-width="180"> |
||||
show-overflow-tooltip |
<template slot-scope="scope"> |
||||
min-width="100" |
<div v-if="scope.row.queueList && scope.row.queueList.length"> |
||||
/> |
{{ scope.row.queueList.map((i) => i.queueName).join(",") }} |
||||
<el-table-column |
</div> |
||||
label="受教育年限" |
</template> |
||||
align="center" |
</el-table-column> |
||||
prop="educationYears" |
<el-table-column label="创建人/创建时间" align="center" width="140" fixed="right"> |
||||
show-overflow-tooltip |
<template slot-scope="scope"> |
||||
min-width="100" |
<div>{{ scope.row.createBy }}</div> |
||||
/> |
<span>{{ |
||||
<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" |
|
||||
> |
|
||||
<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" |
|
||||
> |
|
||||
<template slot-scope="scope"> |
|
||||
<div>{{ scope.row.createBy }}</div> |
|
||||
<span>{{ |
|
||||
parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") |
parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") |
||||
}}</span> |
}}</span> |
||||
</template> |
</template> |
||||
</el-table-column> |
</el-table-column> |
||||
<el-table-column fixed="right" label="操作" align="center" width="200"> |
<el-table-column fixed="right" label="操作" align="center" width="200"> |
||||
<template slot-scope="scope"> |
<template slot-scope="scope"> |
||||
<el-button |
<el-button size="mini" type="text" icon="el-icon-edit" |
||||
size="mini" |
@click="handleUpdate(scope.row)">队列管理</el-button> |
||||
type="text" |
<el-button size="mini" type="text" icon="el-icon-tickets" |
||||
icon="el-icon-edit" |
@click="handlePatient(scope.row)">患者档案</el-button> |
||||
@click="handleUpdate(scope.row)" |
<el-button size="mini" type="text" icon="el-icon-notebook-2" |
||||
>队列管理</el-button |
@click="handleMedical(scope.row)">诊疗档案</el-button> |
||||
> |
</template> |
||||
<el-button |
</el-table-column> |
||||
size="mini" |
</el-table> |
||||
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 |
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
||||
v-show="total > 0" |
:limit.sync="queryParams.pageSize" @pagination="getList" /> |
||||
:total="total" |
|
||||
:page.sync="queryParams.pageNum" |
|
||||
:limit.sync="queryParams.pageSize" |
|
||||
@pagination="getList" |
|
||||
/> |
|
||||
|
|
||||
<!-- 添加或修改公告对话框 --> |
<!-- 添加或修改公告对话框 --> |
||||
<el-dialog |
<el-dialog class="popup" :title="title" :visible.sync="open" width="780px" append-to-body> |
||||
class="popup" |
<el-form class="formStep" ref="form" :model="form" :rules="rules" label-width="90px"> |
||||
:title="title" |
<el-form-item label="随访队列" prop="queueIdList"> |
||||
:visible.sync="open" |
<el-select v-model="form.queueIdList" multiple placeholder="请选择"> |
||||
width="780px" |
<el-option v-for="item in followupList" :key="item.id" :label="item.name" :value="item.id"> |
||||
append-to-body |
</el-option> |
||||
> |
</el-select> |
||||
<el-form |
</el-form-item> |
||||
class="formStep" |
</el-form> |
||||
ref="form" |
<div slot="footer" class="dialog-footer"> |
||||
:model="form" |
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
:rules="rules" |
<el-button @click="cancel">取 消</el-button> |
||||
label-width="90px" |
</div> |
||||
> |
</el-dialog> |
||||
<el-form-item label="随访队列" prop="queueIdList"> |
</div> |
||||
<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> |
|
||||
</el-select> |
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
<div slot="footer" class="dialog-footer"> |
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
|
||||
<el-button @click="cancel">取 消</el-button> |
|
||||
</div> |
|
||||
</el-dialog> |
|
||||
</div> |
|
||||
</template> |
</template> |
||||
|
|
||||
<script> |
<script> |
||||
import { queryPatient, followupQuery, updPatient } from "@/api/followupFile"; |
import { |
||||
export default { |
queryPatient, |
||||
name: "Notice", |
followupQuery, |
||||
data() { |
updPatient |
||||
return { |
} from "@/api/followupFile"; |
||||
fileList: [], |
export default { |
||||
idCardType: [{ |
name: "Notice", |
||||
label: "身份证", |
data() { |
||||
value: 0, |
return { |
||||
}, |
fileList: [], |
||||
{ |
idCardType: [{ |
||||
label: "护照或外国人永居证", |
label: "身份证", |
||||
value: 1, |
value: 0, |
||||
}, |
}, |
||||
{ |
{ |
||||
label: "港澳居民来往内地通行", |
label: "护照或外国人永居证", |
||||
value: 2, |
value: 1, |
||||
}, |
}, |
||||
{ |
{ |
||||
label: "台湾居民来往大陆通行证", |
label: "港澳居民来往内地通行", |
||||
value: 3, |
value: 2, |
||||
}, |
}, |
||||
{ |
{ |
||||
label: "其他", |
label: "台湾居民来往大陆通行证", |
||||
value: 4, |
value: 3, |
||||
}, |
}, |
||||
], |
{ |
||||
idCardTypeValue: { |
label: "其他", |
||||
0: "身份证", |
value: 4, |
||||
1: "护照或外国人永居证", |
}, |
||||
2: "港澳居民来往内地通行", |
], |
||||
3: "台湾居民来往大陆通行证", |
idCardTypeValue: { |
||||
4: "其他", |
0: "身份证", |
||||
}, |
1: "护照或外国人永居证", |
||||
loading: false, // 遮罩层 |
2: "港澳居民来往内地通行", |
||||
ids: [], // 选中数组 |
3: "台湾居民来往大陆通行证", |
||||
single: true, // 非单个禁用 |
4: "其他", |
||||
multiple: true, // 非多个禁用 |
}, |
||||
showSearch: true, // 显示搜索条件 |
loading: false, // 遮罩层 |
||||
total: 0, // 总条数 |
ids: [], // 选中数组 |
||||
listDat: [{}], // 公告表格数据 |
single: true, // 非单个禁用 |
||||
title: "", // 弹出层标题 |
multiple: true, // 非多个禁用 |
||||
open: false, // 是否显示弹出层 |
showSearch: true, // 显示搜索条件 |
||||
importOpen: false, // 导入弹窗 |
total: 0, // 总条数 |
||||
// 查询参数 |
listDat: [{}], // 公告表格数据 |
||||
queryParams: { |
title: "", // 弹出层标题 |
||||
pageNum: 1, |
open: false, // 是否显示弹出层 |
||||
pageSize: 10, |
importOpen: false, // 导入弹窗 |
||||
param: {}, |
// 查询参数 |
||||
}, |
queryParams: { |
||||
formDisabled: false, |
pageNum: 1, |
||||
importform: {}, |
pageSize: 10, |
||||
// 表单参数 |
param: {}, |
||||
form: {}, |
}, |
||||
// 表单校验 |
formDisabled: false, |
||||
rules: { |
importform: {}, |
||||
queueIdList: [ |
// 表单参数 |
||||
{ required: true, message: "随访队列不能为空", trigger: "change" }, |
form: {}, |
||||
], |
// 表单校验 |
||||
}, |
rules: { |
||||
followupList: [], // 随访队列 |
queueIdList: [{ |
||||
}; |
required: true, |
||||
}, |
message: "随访队列不能为空", |
||||
created() { |
trigger: "change" |
||||
this.getList(); |
}, ], |
||||
this.getFollowupQuery(); |
}, |
||||
}, |
followupList: [], // 随访队列 |
||||
methods: { |
}; |
||||
// 获取随访队列信息 |
}, |
||||
getFollowupQuery() { |
created() { |
||||
followupQuery({ |
this.getList(); |
||||
pageNum: -1, |
this.getFollowupQuery(); |
||||
param: { |
}, |
||||
status:1 |
methods: { |
||||
}, |
// 获取随访队列信息 |
||||
}).then((res) => { |
getFollowupQuery() { |
||||
this.followupList = res.data.list; |
followupQuery({ |
||||
let commonQueue = JSON.parse(localStorage.getItem('commonQueue')) |
pageNum: -1, |
||||
commonQueue?.forEach(i=>{ |
param: { |
||||
this.followupList.unshift(i) |
status: 1 |
||||
}) |
}, |
||||
}); |
}).then((res) => { |
||||
}, |
this.followupList = res.data.list; |
||||
|
let commonQueue = JSON.parse(localStorage.getItem('commonQueue')) |
||||
|
commonQueue?.forEach(i => { |
||||
|
this.followupList.unshift(i) |
||||
|
}) |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
/** 查询公告列表 */ |
/** 查询公告列表 */ |
||||
getList() { |
getList() { |
||||
this.loading = true; |
this.loading = true; |
||||
queryPatient(this.queryParams).then((res) => { |
queryPatient(this.queryParams).then((res) => { |
||||
this.listDat = res.data.list; |
this.listDat = res.data.list; |
||||
this.total = res.data.total; |
this.total = res.data.total; |
||||
this.loading = false; |
this.loading = false; |
||||
}); |
}); |
||||
}, |
}, |
||||
// 取消按钮 |
// 取消按钮 |
||||
cancel() { |
cancel() { |
||||
this.open = false; |
this.open = false; |
||||
this.reset(); |
this.reset(); |
||||
}, |
}, |
||||
// 表单重置 |
// 表单重置 |
||||
reset() { |
reset() { |
||||
this.form = {}; |
this.form = {}; |
||||
this.resetForm("form"); |
this.resetForm("form"); |
||||
}, |
}, |
||||
/** 搜索按钮操作 */ |
/** 搜索按钮操作 */ |
||||
handleQuery() { |
handleQuery() { |
||||
this.queryParams.pageNum = 1; |
this.queryParams.pageNum = 1; |
||||
this.getList(); |
this.getList(); |
||||
}, |
}, |
||||
/** 重置按钮操作 */ |
/** 重置按钮操作 */ |
||||
resetQuery() { |
resetQuery() { |
||||
this.resetForm("queryForm"); |
this.queryParams = { |
||||
this.handleQuery(); |
param: { |
||||
}, |
queueId: '' |
||||
// 多选框选中数据 |
}, |
||||
handleSelectionChange(selection) { |
}, |
||||
this.ids = selection.map((item) => item.id); |
this.handleQuery(); |
||||
this.single = selection.length != 1; |
}, |
||||
this.multiple = !selection.length; |
// 多选框选中数据 |
||||
}, |
handleSelectionChange(selection) { |
||||
/** 修改按钮操作 */ |
this.ids = selection.map((item) => item.id); |
||||
handleUpdate(row) { |
this.single = selection.length != 1; |
||||
this.open = true; |
this.multiple = !selection.length; |
||||
this.title = "队列管理"; |
}, |
||||
let queueList = row.queueList.map((item) => item.queueId); |
/** 修改按钮操作 */ |
||||
this.form = JSON.parse( |
handleUpdate(row) { |
||||
JSON.stringify({ |
this.open = true; |
||||
...row, |
this.title = "队列管理"; |
||||
patientId: row.id, |
let queueList = row.queueList.map((item) => item.queueId); |
||||
queueIdList: queueList, |
this.form = JSON.parse( |
||||
}) |
JSON.stringify({ |
||||
); |
...row, |
||||
}, |
patientId: row.id, |
||||
/** 跳转患者档案 */ |
queueIdList: queueList, |
||||
handlePatient(row) { |
}) |
||||
this.$router.push({ |
); |
||||
path:`/patientIndex?idCard=${row.idCard}` |
}, |
||||
}) |
/** 跳转患者档案 */ |
||||
}, |
handlePatient(row) { |
||||
/** 诊疗档案 */ |
this.$router.push({ |
||||
handleMedical(row) { |
path: `/patientIndex?idCard=${row.idCard}` |
||||
this.$router.push({ |
}) |
||||
path:`/medicalIndex?idCard=${row.idCard}` |
}, |
||||
}) |
/** 诊疗档案 */ |
||||
}, |
handleMedical(row) { |
||||
/** 提交按钮 */ |
this.$router.push({ |
||||
submitForm: function () { |
path: `/medicalIndex?idCard=${row.idCard}` |
||||
this.$refs["form"].validate((valid) => { |
}) |
||||
if (valid) { |
}, |
||||
updPatient(this.form).then((response) => { |
/** 提交按钮 */ |
||||
this.$modal.msgSuccess("修改成功"); |
submitForm: function() { |
||||
this.open = false; |
this.$refs["form"].validate((valid) => { |
||||
this.getList(); |
if (valid) { |
||||
}); |
updPatient(this.form).then((response) => { |
||||
} |
this.$modal.msgSuccess("修改成功"); |
||||
}); |
this.open = false; |
||||
}, |
this.getList(); |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
/** 删除按钮操作 */ |
/** 删除按钮操作 */ |
||||
handleDelete(row) { |
handleDelete(row) { |
||||
const idList = row.id ? [row.id] : this.ids; |
const idList = row.id ? [row.id] : this.ids; |
||||
this.$modal |
this.$modal |
||||
.confirm("是否确认删除当前选择的数据?") |
.confirm("是否确认删除当前选择的数据?") |
||||
.then(function () { |
.then(function() { |
||||
return patientDel({ idList: idList }); |
return patientDel({ |
||||
}) |
idList: idList |
||||
.then(() => { |
}); |
||||
this.getList(); |
}) |
||||
this.$modal.msgSuccess("删除成功"); |
.then(() => { |
||||
}) |
this.getList(); |
||||
.catch(() => {}); |
this.$modal.msgSuccess("删除成功"); |
||||
}, |
}) |
||||
/** 导出按钮操作 */ |
.catch(() => {}); |
||||
handleExport() { |
}, |
||||
this.download( |
/** 导出按钮操作 */ |
||||
"system/user/export", |
handleExport() { |
||||
{ |
this.download( |
||||
...this.queryParams.params, |
"system/user/export", { |
||||
}, |
...this.queryParams.params, |
||||
`患者档案.xlsx` |
}, |
||||
); |
`患者档案.xlsx` |
||||
}, |
); |
||||
/** 导入按钮操作 */ |
}, |
||||
handleImport() { |
/** 导入按钮操作 */ |
||||
this.upload.title = "用户导入"; |
handleImport() { |
||||
this.upload.open = true; |
this.upload.title = "用户导入"; |
||||
}, |
this.upload.open = true; |
||||
}, |
}, |
||||
}; |
}, |
||||
|
}; |
||||
</script> |
</script> |
||||
<style scoped src="@/assets/styles/common.css"></style> |
<style scoped src="@/assets/styles/common.css"></style> |
||||
<style scoped> |
<style scoped> |
||||
.form-item-age { |
.form-item-age { |
||||
display: flex; |
display: flex; |
||||
align-items: center; |
align-items: center; |
||||
} |
} |
||||
.form-item-age span { |
|
||||
margin: 0 10px; |
.form-item-age span { |
||||
} |
margin: 0 10px; |
||||
.form-item-age >>> .el-input { |
} |
||||
width: 100px; |
|
||||
} |
.form-item-age>>>.el-input { |
||||
|
width: 100px; |
||||
|
} |
||||
</style> |
</style> |
||||
<!-- >>> .el-input__inner { |
<!-- >>> .el-input__inner { |
||||
padding: 0 15px !important; |
padding: 0 15px !important; |
||||
} --> |
} --> |
Loading…
Reference in new issue