提交 808198c8 编写于 作者: yi.li's avatar yi.li

Merge branch 'dev-patients-20190513' of...

Merge branch 'dev-patients-20190513' of 192.168.110.53:com.pica.cloud.education.frontend/pica.cloud.web-education-admin into dev-patients-20190513
<template> <template>
<div> <div>
<v-header :userName="userName" :portrait="portrait" :idType="idType"></v-header> <v-header :userName="userName" :portrait="portrait" :idType="idType"></v-header>
<v-slidebar :authList="authList" :tokenValue="token"></v-slidebar> <v-slidebar :authList="authList" :tokenValue="token" :notCompleteCount="redNum"></v-slidebar>
<el-container> <el-container>
<div class="content" id="body-content"> <div class="content" id="body-content">
<transition name="router-fade" mode="out-in"> <transition name="router-fade" mode="out-in">
...@@ -25,6 +25,7 @@ import VFooter from './views/layout/footer.vue' ...@@ -25,6 +25,7 @@ import VFooter from './views/layout/footer.vue'
import { base64decode, isNotEmptyUtils, getUrlParamsMap } from "./utils/utils.js" import { base64decode, isNotEmptyUtils, getUrlParamsMap } from "./utils/utils.js"
import { mapActions, mapGetters } from 'vuex' import { mapActions, mapGetters } from 'vuex'
import { getLoginUrl } from './utils/index.js' import { getLoginUrl } from './utils/index.js'
import { getRedNum } from './utils/patients/patientsapi'
let vm = null let vm = null
export default { export default {
components:{ components:{
...@@ -38,7 +39,8 @@ export default { ...@@ -38,7 +39,8 @@ export default {
token: '', token: '',
userName: '', userName: '',
portrait: '', portrait: '',
authList: {} authList: {},
redNum: 0,
} }
}, },
computed:{ computed:{
...@@ -51,7 +53,7 @@ export default { ...@@ -51,7 +53,7 @@ export default {
vm.getToken() vm.getToken()
}, },
mounted() { mounted() {
vm.getRedData()
}, },
methods: { methods: {
// 解密token // 解密token
...@@ -107,8 +109,29 @@ export default { ...@@ -107,8 +109,29 @@ export default {
vm.$message.info(res.message) vm.$message.info(res.message)
} }
}) })
} },
} getRedData() {
getRedNum({
openTime: (new Date()).getTime()
}).then((data) => {
if(data.code == '000000') {
vm.redNum = data.data
}
}).catch(error => {
vm.$message.error(error)
})
}
},
watch: {
$route:{
deep:true,
handler:function(newVal){
if(vm.$route.path == '/patients-manage/not-complete/uncompleted-list'){ //避免重复请求
vm.redNum = 0
}
}
}
}
} }
</script> </script>
......
...@@ -117,8 +117,8 @@ ...@@ -117,8 +117,8 @@
} }
}, },
created(){ created(){
this.token = 'D34A213A354849A0B08A241771F7A675'; // this.token = 'D34A213A354849A0B08A241771F7A675';
// this.token = localStorage.getItem('storageToken'); this.token = localStorage.getItem('storageToken');
this.headers.token = this.token this.headers.token = this.token
}, },
computed: { computed: {
......
...@@ -115,10 +115,10 @@ const patientsRouters = { ...@@ -115,10 +115,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: {
......
...@@ -21,8 +21,8 @@ service.interceptors.request.use(config => { ...@@ -21,8 +21,8 @@ service.interceptors.request.use(config => {
if( config.headers['sysCode']==undefined) { if( config.headers['sysCode']==undefined) {
config.headers['sysCode'] = 12 config.headers['sysCode'] = 12
} }
config.headers['token'] = 'D34A213A354849A0B08A241771F7A675' // config.headers['token'] = 'D34A213A354849A0B08A241771F7A675'
// config.headers['token'] = localStorage.getItem('storageToken') config.headers['token'] = localStorage.getItem('storageToken')
config.headers['deviceInfo'] = JSON.stringify({ "app_channel": "", "app_mac": "", "app_uuid": "", "app_version": "", "device_brand": "", "device_ip": "", "device_model": "", "device_net": "", "device_ops": "", "resolution_wh": "", "system_level": "", "device_type": '10' }) config.headers['deviceInfo'] = JSON.stringify({ "app_channel": "", "app_mac": "", "app_uuid": "", "app_version": "", "device_brand": "", "device_ip": "", "device_model": "", "device_net": "", "device_ops": "", "resolution_wh": "", "system_level": "", "device_type": '10' })
} }
// if (config.data && config.data.setEntry) { // if (config.data && config.data.setEntry) {
......
...@@ -5,7 +5,29 @@ import { getBaseUrl, getSaasDomain, getSaasApiDomain } from '@/utils/index' ...@@ -5,7 +5,29 @@ import { getBaseUrl, getSaasDomain, getSaasApiDomain } from '@/utils/index'
const headers = { const headers = {
sysCode: 9 sysCode: 9
} }
/*常量API*/
export const getConstants = (params) => {
return fetch({
headers,
url: getBaseUrl(`basic-data/constants/`),
method: 'get',
params: params,
description: '获取常量',
})
};
/*居民管理*/ /*居民管理*/
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,
...@@ -16,6 +38,16 @@ export const getDiseasesList = (params) => { ...@@ -16,6 +38,16 @@ export const getDiseasesList = (params) => {
}) })
}; };
export const getLabelList = (params) => {
return fetch({
headers,
url: getBaseUrl(`healths/labels/`),
method: 'get',
params: params,
description: '获取分组列表',
})
}
// 获取七牛上传token // 获取七牛上传token
export const getQiniuToken = (params) => { export const getQiniuToken = (params) => {
return fetch({ return fetch({
...@@ -48,25 +80,42 @@ export const getNotCompleteList = (params) => { ...@@ -48,25 +80,42 @@ 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 sendCompleteMessageList = (data) => {
return fetch({
headers,
url: getBaseUrl(`healths/patients/list/remind`),
method: 'post',
data: data,
description: '批量提醒居民完善信息',
})
};
export const getNotCompleteCount = (params) => { export const getNotCompleteCount = (params) => {
return fetch({ return fetch({
headers, headers,
url: getBaseUrl(`healths/patients/uncomplate/counts`), url: getBaseUrl(`healths/patients/uncomplate/counts`),
method: 'get', method: 'get',
data: params, params: params,
description: '获取未完善居民人数', description: '获取未完善居民人数',
}) })
}; };
export const getRedNum = (params) => {
return fetch({
headers,
url: getBaseUrl(`healths/patients/uncompleted/last/counts`),
method: 'get',
params: params,
description: '获取小红点数据',
})
};
export const getPatientDetail = (patientId) => { export const getPatientDetail = (patientId) => {
return fetch({ return fetch({
headers, headers,
......
...@@ -8,6 +8,14 @@ ...@@ -8,6 +8,14 @@
<el-menu-item v-for="(subItem,i) in item.subs" :key="i" :index="'/'+subItem.index"> <el-menu-item v-for="(subItem,i) in item.subs" :key="i" :index="'/'+subItem.index">
<i class="sub-icon" :class="subItem.icon"></i> <i class="sub-icon" :class="subItem.icon"></i>
{{subItem.title}} {{subItem.title}}
<p class="redNum"
v-if="subItem.title == '资料不全居民'
&&notCompleteCount
&&$route.path!='/patients-manage/not-complete/uncompleted-list'"
>
<span v-if="notCompleteCount>999">+999</span>
<span v-else>{{notCompleteCount}}</span>
</p>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
</template> </template>
...@@ -33,6 +41,9 @@ export default { ...@@ -33,6 +41,9 @@ export default {
authList: { authList: {
type: Object, type: Object,
default: () => {} default: () => {}
},
notCompleteCount: {
type: Number,
} }
}, },
data() { data() {
...@@ -92,7 +103,7 @@ export default { ...@@ -92,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'
} }
] ]
} }
...@@ -158,6 +169,19 @@ export default { ...@@ -158,6 +169,19 @@ export default {
// background: #06232C !important; // background: #06232C !important;
// } // }
} }
.redNum {
display: inline-block;
border-radius: 10px;
margin-left: 15px;
background: #EE263E;
color: #fff;
font-size: 12px;
line-height: 12px;
padding: 5px 10px;
span {
display: block;
}
}
} }
</style> </style>
......
...@@ -53,8 +53,9 @@ ...@@ -53,8 +53,9 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="name" prop="name"
width="120"> width="120"
操作 label="操作"
>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
......
...@@ -8,23 +8,16 @@ ...@@ -8,23 +8,16 @@
<el-input v-model="labelName" placeholder="请输入分组名称" size="small"></el-input> <el-input v-model="labelName" placeholder="请输入分组名称" size="small"></el-input>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="primary" size="small" class="create-new-label">查询</el-button> <el-button type="primary" size="small" class="create-new-label" @click="getList">查询</el-button>
<el-button type="default" size="small" class="create-new-label">重置</el-button> <el-button type="default" size="small" class="create-new-label" @click="resetLabelName">重置</el-button>
</el-col> </el-col>
<el-col :span="6" class="right"> <el-col :span="6" class="right">
<el-button type="primary" size="small" class="create-new-label">新建分组</el-button> <el-button type="primary" size="small" class="create-new-label" :disabled="labelNameList.length >= 999">新建分组</el-button>
</el-col> </el-col>
</el-row> </el-row>
<p class="total-label">共:75个分组</p> <p class="total-label">共:{{labelNameList.length}}个分组</p>
<div class="label-list"> <div class="label-list" v-if="labelNameList && labelNameList.length>0">
<el-tag class="each-label" @click="goToDetail">高新区(34人)</el-tag> <el-tag class="each-label" @click="goToDetail" v-for="(item, index) in labelNameList" :key="index">{{item.labelName}}({{item.labelPatientNums}}人)</el-tag>
<el-tag class="each-label">高血压(64人)</el-tag>
<el-tag class="each-label">权力的游戏(34人)</el-tag>
<el-tag class="each-label">端到端(34人)</el-tag>
<el-tag class="each-label">高新区(34人)</el-tag>
<el-tag class="each-label">高血压(64人)</el-tag>
<el-tag class="each-label">权力的游戏(34人)</el-tag>
<el-tag class="each-label">端到端(34人)</el-tag>
</div> </div>
</div> </div>
</div> </div>
...@@ -32,6 +25,8 @@ ...@@ -32,6 +25,8 @@
<script> <script>
import BreadCrumb from "@/components/breadcrumb.vue"; import BreadCrumb from "@/components/breadcrumb.vue";
import * as commonUtil from "@/utils/utils"; import * as commonUtil from "@/utils/utils";
import { getLabelList } from '@/utils/patients/patientsapi'
export default { export default {
...@@ -40,22 +35,42 @@ ...@@ -40,22 +35,42 @@
curmbFirst: "居民管理", curmbFirst: "居民管理",
curmbSecond: "分组管理", curmbSecond: "分组管理",
labelName: '', labelName: '',
labelNameList: [],
} }
}, },
components: { components: {
BreadCrumb, BreadCrumb,
}, },
created(){ created(){
// 获取分组列表 this.getList();
this.getLabelList();
}, },
// 挂载到Dom完成时 // 挂载到Dom完成时
mounted: function() { mounted: function() {
commonUtil.resizeHeight(); commonUtil.resizeHeight();
}, },
methods: { methods: {
getLabelList(){ getList(){
console.log('获取分组列表...'); // 获取分组列表
let num = {
type: 1,
token : localStorage.getItem("token"),
};
if(this.labelName){
num.labelName = this.labelName;
}
commonUtil.openLoading(this);
getLabelList(num).then(data => {
commonUtil.closeLoading(this);
// console.log('获取分组列表>> ', data)
if(data.data && data.data.labelNameList){
this.labelNameList = data.data.labelNameList;
}
}).catch(err => {
console.log('error: ', err)
});
},
resetLabelName(){
this.labelName = '';
}, },
goToDetail(){ goToDetail(){
this.$router.push({path: '/patients-manage/labels-manage/labels-detail'}) this.$router.push({path: '/patients-manage/labels-manage/labels-detail'})
...@@ -119,8 +134,9 @@ ...@@ -119,8 +134,9 @@
/*定义滚动条轨道 内阴影+圆角*/ /*定义滚动条轨道 内阴影+圆角*/
&::-webkit-scrollbar-track &::-webkit-scrollbar-track
{ {
border-radius: 10px; // border-radius: 10px;
background-color: rgb(241, 239, 239); // background-color: rgb(241, 239, 239);
// background: #fff;
} }
/*定义滑块 内阴影+圆角*/ /*定义滑块 内阴影+圆角*/
&::-webkit-scrollbar-thumb &::-webkit-scrollbar-thumb
......
...@@ -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: {
...@@ -99,9 +102,6 @@ ...@@ -99,9 +102,6 @@
selectList: [] selectList: []
} }
}, },
created() {
//const vm = this;
},
mounted() { mounted() {
this.getNotComplete() this.getNotComplete()
this.getNotCompleteNum() this.getNotCompleteNum()
...@@ -125,15 +125,14 @@ ...@@ -125,15 +125,14 @@
pageSize, pageSize,
}).then((data) => { }).then((data) => {
if(data.code == "000000") { if(data.code == "000000") {
this.notCompleteList = data.data this.notCompleteList = data.data;
console.log('1212',this.notCompleteList)
} }
}).catch(function (error) { }).catch((error) => {
this.$message({ this.$message({
message: error, message: error,
type: 'error' type: 'error'
}); });
}); })
}, },
sendMessageSingle(item) { //发送单个提醒 sendMessageSingle(item) { //发送单个提醒
sendCompleteMessage({ sendCompleteMessage({
...@@ -151,33 +150,59 @@ ...@@ -151,33 +150,59 @@
type: 'error' type: 'error'
}); });
} }
}).catch(function (error) { }).catch((error) => {
this.$message({ this.$message({
message: error, message: error,
type: 'error' type: 'error'
}); });
}); })
}, },
sendCompleteMessageMultiple(item) { sendCompleteMessageMultiple() {
if(!this.selectList.length) { if(!this.selectList.length) {
this.$message({
message: '请选择居民',
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({ this.$message({
message: '请选择居民', message: '已向居民发送提醒',
type: 'warning' type: 'success'
});
}else {
this.$message({
message: data.message,
type: 'error'
}); });
} }
}).catch((error) => {
this.$message({
message: error,
type: 'error'
});
})
}, },
getNotCompleteNum() { getNotCompleteNum() {
getNotCompleteCount().then((data) => { getNotCompleteCount().then((data) => {
if(data.code == "000000") { if(data.code == "000000") {
this.pagination.totalRows = data.data; this.pagination.totalRows = data.data;
} }
}).catch(function (error) { }).catch((error) => {
this.$message({ this.$message({
message: error, message: error,
type: 'error' type: 'error'
}); });
}); })
} }
} }
} }
...@@ -245,6 +270,7 @@ ...@@ -245,6 +270,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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册