提交 32627d1b 编写于 作者: Yuanzhao.dai's avatar Yuanzhao.dai

居民列表

上级 d2c23d09
...@@ -105,10 +105,10 @@ const patientsRouters = { ...@@ -105,10 +105,10 @@ const patientsRouters = {
path: 'not-complete', path: 'not-complete',
component: notCompleteManage, component: notCompleteManage,
name: 'notCompleteManage', name: 'notCompleteManage',
redirect: 'not-complete/not-complete', redirect: 'not-complete/uncompleted-list',
children: [ children: [
{ {
path: 'not-complete', path: 'uncompleted-list',
component: notCompleteList, component: notCompleteList,
name: 'notCompleteList', name: 'notCompleteList',
meta: { meta: {
......
...@@ -19,6 +19,15 @@ export const getConstants = (params) => { ...@@ -19,6 +19,15 @@ export const getConstants = (params) => {
/*居民管理*/ /*居民管理*/
export const getPatientList = (data) => {
return fetch({
headers,
url: getBaseUrl(`healths/patients/infolist`),
method: 'post',
data: data,
description: '获取居民列表',
})
};
export const getDiseasesList = (params) => { export const getDiseasesList = (params) => {
return fetch({ return fetch({
headers, headers,
...@@ -71,21 +80,30 @@ export const getNotCompleteList = (params) => { ...@@ -71,21 +80,30 @@ export const getNotCompleteList = (params) => {
description: '获取资料不全居民列表', description: '获取资料不全居民列表',
}) })
}; };
export const sendCompleteMessage = (params) => { export const sendCompleteMessage = (data) => {
return fetch({ return fetch({
headers, headers,
url: getBaseUrl(`healths/patients/remind`), url: getBaseUrl(`healths/patients/remind`),
method: 'post', method: 'post',
data: params, data: data,
description: '提醒居民完善信息', description: '提醒居民完善信息',
}) })
}; };
export const getNotCompleteCount = (params) => { export const sendCompleteMessageList = (data) => {
return fetch({
headers,
url: getBaseUrl(`healths/patients/list/remind`),
method: 'post',
data: data,
description: '批量提醒居民完善信息',
})
};
export const getNotCompleteCount = (data) => {
return fetch({ return fetch({
headers, headers,
url: getBaseUrl(`healths/patients/uncomplate/counts`), url: getBaseUrl(`healths/patients/uncomplate/counts`),
method: 'get', method: 'get',
data: params, data: data,
description: '获取未完善居民人数', description: '获取未完善居民人数',
}) })
}; };
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<p class="redNum" <p class="redNum"
v-if="subItem.title == '资料不全居民' v-if="subItem.title == '资料不全居民'
&&notCompleteCount &&notCompleteCount
&&$route.path!='/patients-manage/not-complete/not-complete'" &&$route.path!='/patients-manage/not-complete/uncompleted-list'"
> >
<span v-if="notCompleteCount>999">+999</span> <span v-if="notCompleteCount>999">+999</span>
<span v-else>{{notCompleteCount}}</span> <span v-else>{{notCompleteCount}}</span>
...@@ -103,7 +103,7 @@ export default { ...@@ -103,7 +103,7 @@ export default {
{ {
title: '资料不全居民', title: '资料不全居民',
icon: 'el-icon-setting', icon: 'el-icon-setting',
index: 'patients-manage/not-complete/not-complete' index: 'patients-manage/not-complete/uncompleted-list'
} }
] ]
} }
......
...@@ -5,24 +5,38 @@ ...@@ -5,24 +5,38 @@
:curmbSecond="curmbSecond"> :curmbSecond="curmbSecond">
</bread-crumb> </bread-crumb>
<section class="not-complete-content screenSet"> <section class="not-complete-content screenSet">
<h1 class="page-title">我的居民:共800</h1> <h1 class="page-title">我的居民:共{{pagination.totalRows}}</h1>
<div class="search-div"> <div class="search-div">
<div class="search-input"> <div class="search-input">
<el-form :model="searchData" ref="searchData" :inline="true" :label-width="labelWidth"> <el-form :model="searchData" ref="searchData" :inline="true">
<el-form-item label="性别:" prop="patientName"> <el-form-item label="性别:" prop="patientName">
<el-input v-model="searchData.patientName" size="small" placeholder="请输入姓名" clearable></el-input> <el-select v-model="searchData.sex" size="small" clearable :popper-append-to-body="false">
<el-option
v-for="item in sexList"
:key="item.no"
:label="item.value"
:value="item.no">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="年龄段:" prop="mobile"> <el-form-item label="年龄段:" prop="mobile">
<el-input v-model="searchData.mobile" size="small" placeholder="请输入手机号" clearable></el-input> <el-select v-model="searchData.age" size="small" clearable :popper-append-to-body="false">
<el-option
v-for="item in agesList"
:key="item.value"
:label="item.value"
:value="item.value">
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="诊断:" prop="startDate" size="small"> <el-form-item label="诊断:" prop="startDate" size="small">
<el-select v-model="searchData.startDate" size="small" clearable :popper-append-to-body="false"> <el-select v-model="searchData.diseaseId" size="small" clearable :popper-append-to-body="false">
<el-option label="全部" value=""></el-option>
<el-option <el-option
v-for="(item, index) in followStartTimeList" v-for="item in diseaseList"
:key="item+index" :key="item.diseaseId"
:label="item" :label="item.diseaseName"
:value="item"> :value="item.diseaseId">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -41,59 +55,63 @@ ...@@ -41,59 +55,63 @@
</el-form> </el-form>
</div> </div>
<div class="search-btn"> <div class="search-btn">
<el-button class="button-green" type="primary" size="small" @click="searchResidentList">查询</el-button> <el-button class="button-green" type="primary" size="small" @click="searchPatientList">查询</el-button>
<el-button class="button-white" plain size="small" @click="resetSearchData('searchData')">重置</el-button> <el-button class="button-white" plain size="small" @click="resetSearchData('searchData')">重置</el-button>
</div> </div>
</div> </div>
<el-table <el-table
:data="notCompleteList" :data="patientList"
:row-key="getRowKeys"
@selection-change="handleSelectionChange"
style="width: 100%;"> style="width: 100%;">
<el-table-column <el-table-column
type="selection" prop="nickname"
width="100"> width="150"
</el-table-column>
<el-table-column
prop="headimgurl"
label="姓名" label="姓名"
width="100"
lign="center"> lign="center">
<template slot-scope="scope">
<img class="user-photo" :src="scope.row.headimgurl"/>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wechatUsername" prop="sex"
width="200" width="80"
label="性别" label="性别"
align="center"> align="center">
<template slot-scope="scope">
<span v-if="scope.row.sex==1"></span>
<span v-if="scope.row.sex==2"></span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="country" prop="age"
label="年龄" label="年龄"
width="80"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wechatCreatedTime" prop="showLabelName"
:show-overflow-tooltip="true"
label="分组" label="分组"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="wechatCreatedTime" prop="showDiseaseNames"
:show-overflow-tooltip="true"
label="诊断" label="诊断"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="120"
label="操作" label="操作"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button v-if="scope.row.isRemind==1" type="text" @click="sendMessageSingle(scope.row)">提醒完善信息</el-button> <el-button type="text" @click="goToDetails(scope.row)">查看详情</el-button>
<el-button v-else-if="scope.row.isRemind==2" type="text" style="color: #999">提醒已发送</el-button>-->
</template> </template>
</el-table-column> </el-table-column>
<div slot="empty">
<div class="table-empty">
<img src="../../../assets/image/no-content1.png">
<p>没有查询到相关结果</p>
</div>
</div>
</el-table> </el-table>
<div class="pagination" v-if="notCompleteList.length"> <div class="pagination" v-if="patientList">
<el-pagination <el-pagination
background background
@size-change="handleSizeChange" @size-change="handleSizeChange"
...@@ -111,7 +129,10 @@ ...@@ -111,7 +129,10 @@
<script> <script>
import BreadCrumb from '../../../components/breadcrumb.vue' import BreadCrumb from '../../../components/breadcrumb.vue'
import { getConstants } from '../../../utils/patients/patientsapi' import { getConstants,
getDiseasesList,
getLabelList,
getPatientList} from '../../../utils/patients/patientsapi'
export default { export default {
name: "not-complete", name: "not-complete",
components: { components: {
...@@ -120,41 +141,150 @@ ...@@ -120,41 +141,150 @@
data() { data() {
return { return {
curmbFirst: '居民管理', curmbFirst: '居民管理',
curmbSecond: '资料不全居民', curmbSecond: '我的居民',
notCompleteList: [], //未完善列表
pagination: { pagination: {
pageNo: 1, pageNo: 1,
pageSize: 15, pageSize: 15,
totalRows: 0,
}, },
searchData: {}, searchData: {},
getRowKeys(row) { selectList: [],
return row.patientId; sexList: [], //性别
}, agesList: [], //年龄
selectList: [] diseaseList: [],
groupList: [],
patientList: []
} }
}, },
created() {
//const vm = this;
},
mounted() { mounted() {
this.getConstantData(); //获取性别、年龄段常量
this.getDiseaseData(); //获取疾病种类
this.getGroupList(); //获取分组
this.getPatients({
...this.searchData
}); //获取居民列表
},
methods: {
getConstantData() {
getConstants({ getConstants({
numList: 'P006,P057', numList: 'P006,P057',
}) }).then((data) => {
if(data.code == "000000") {
this.sexList = data.data.P006;
this.agesList = data.data.P057;
}
}).catch((error) => {
});
}, },
methods: { getDiseaseData() {
handleSelectionChange(val) { getDiseasesList().then((data) => {
this.selectList = val; if(data.code == "000000") {
this.diseaseList = data.data;
}
}).catch((error) => {
});
},
getGroupList() {
getLabelList({
type: 1,
token : localStorage.getItem("token")
}).then((data) => {
if(data.code == "000000") {
this.groupList = data.data.labelNameList;
}
}).catch((error) => {
});
},
getPatients(payload) {
const { pageNo, pageSize} = this.pagination;
let searchParams = {}
if(this.searchData.age) {
let ageBegin = '';
let ageEnd = '';
if(this.searchData.age == '84+') {
ageBegin = '84';
ageEnd = '200';
} else {
const ageItem = this.searchData.age.split('-');
ageBegin = ageItem[0];
ageEnd = ageItem[1];
}
searchParams = {
...payload,
ageBegin,
ageEnd
}
} else {
searchParams = payload
}
getPatientList({
pageNo,
pageSize,
...searchParams
}).then((data) => {
if(data.code == "000000") {
this.patientList = data.data.patientList;
this.pagination.totalRows = data.data.totalRows
this.patientList.forEach((item)=> {
item.disableNum = 1;
let diseaseNames = [];
let groupNames = []
//转化分组
if (item.labelModels) {
item.labelModels.forEach(item => {
groupNames.push(item.label)
});
item.showLabelName = groupNames.join('、');
} else {
item.showLabelName = '-';
}
//转化疾病
if (item.patientTypeModels) {
item.patientTypeModels.forEach(item => {
diseaseNames.push(item.name)
})
item.showDiseaseNames = diseaseNames.join('、');
} else {
item.showDiseaseNames = '-';
}
})
}
}).catch((data) => {
})
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.pagination.pageSize = val this.pagination.pageSize = val
this.getNotComplete() this.getPatients({
...this.searchData
})
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.pagination.pageNo = val this.pagination.pageNo = val
this.getNotComplete() this.getPatients({
...this.searchData
})
},
searchPatientList() {
this.getPatients({
...this.searchData
})
}, },
resetSearchData() {
this.searchData = {}
this.getPatients({
...this.searchData
})
},
goToDetails() {
} }
},
} }
</script> </script>
...@@ -209,6 +339,14 @@ ...@@ -209,6 +339,14 @@
border-radius: 50%; border-radius: 50%;
width: 40px; width: 40px;
} }
.table-empty {
img {
width: 100px;
}
p {
margin-top: -50px;
}
}
} }
/*重置表格选择框*/ /*重置表格选择框*/
.el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner { .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
......
...@@ -78,7 +78,10 @@ ...@@ -78,7 +78,10 @@
<script> <script>
import BreadCrumb from '../../../components/breadcrumb.vue' import BreadCrumb from '../../../components/breadcrumb.vue'
import { getNotCompleteList, sendCompleteMessage, getNotCompleteCount } from '../../../utils/patients/patientsapi' import { getNotCompleteList,
sendCompleteMessage,
getNotCompleteCount,
sendCompleteMessageList} from '../../../utils/patients/patientsapi'
export default { export default {
name: "not-complete", name: "not-complete",
components: { components: {
...@@ -159,13 +162,39 @@ ...@@ -159,13 +162,39 @@
}); });
}, },
sendCompleteMessageMultiple(item) { sendCompleteMessageMultiple() {
if(!this.selectList.length) { if(!this.selectList.length) {
this.$message({ this.$message({
message: '请选择居民', message: '请选择居民',
type: 'warning' type: 'warning'
}); });
return;
} }
let patientIdList = []
this.selectList.forEach(item => {
patientIdList.push(item.patientId)
})
sendCompleteMessageList({
qrcodeType: 1,
patientIds: patientIdList,
}).then((data) => {
if(data.code == "000000") {
this.$message({
message: '已向居民发送提醒',
type: 'success'
});
}else {
this.$message({
message: data.message,
type: 'error'
});
}
}).catch(function (error) {
this.$message({
message: error,
type: 'error'
});
})
}, },
getNotCompleteNum() { getNotCompleteNum() {
getNotCompleteCount().then((data) => { getNotCompleteCount().then((data) => {
...@@ -245,6 +274,7 @@ ...@@ -245,6 +274,7 @@
.el-pagination.is-background .el-pager li:not(.disabled).active { .el-pagination.is-background .el-pager li:not(.disabled).active {
background: #449284 !important; background: #449284 !important;
} }
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册