瀏覽代碼

签约管理列表及接口对接完成

linehang 6 年之前
父節點
當前提交
c43b5dc110

+ 29 - 0
api/sign_api.js

@ -0,0 +1,29 @@
(function(exports) {
    var signAPI = {
		//签约管理列表
		signList: function(data) {
			return httpRequest.get("doctor/sign/sign_info", {data: data})
		},
		//获取签约数据
		signCount:function(data){
			return httpRequest.get("doctor/sign/sign_info_count", {data: data})
		},
		// 是否全部提醒关注
		isRemainFocus: function(data) {
			return httpRequest.post("doctor/sign/is_remind_focus_all", {data: data})
		},
		// 是否全部提醒缴费
		isRemainMoney: function(data) {
			return httpRequest.post("doctor/sign/is_remind_expenses_all", {data: data})
		},
		// 提醒关注
		remainFocus: function(data) {
			return httpRequest.post("doctor/family_contract/wechat_focus_remind", {data: data})
		},
		// 提醒缴费
		remainMoney: function(data) {
			return httpRequest.post("doctor/family_contract/expenses_remind", {data: data})
		}
	}
    exports.signAPI = signAPI;
})(window)

+ 14 - 7
app/home/html/menu.html

@ -26,8 +26,9 @@
            .col-xs-6.disabled{
                background-color: #f2f4f6;
            }
            .col-xs-6.active {background-color: #12b7f5;}
            .col-xs-6.active>a{
                color: #12b7f5;
                color: #fff;
            }
        </style>
    </head>
@ -36,34 +37,40 @@
            <div class="row">
                <div class="col-xs-6" :class="{'active': selectedTab == 1, 'disabled': disableTabs.indexOf(1)>-1}">
                    <a href="" target="view_frame" @click="chooseTab(1)">
                        <img :src="selectedTab==1?'../../../images/xufangguanli02_icon.png':'../../../images/xufangguanli_icon.png'">
                        <img :src="selectedTab==1?'../../../images/xufangguanli_icon.png':'../../../images/xufangguanli02_icon.png'">
                        <div class="mt10 c-f16">续方管理</div>
                    </a>                    
                </div>
                <div class="col-xs-6" :class="{'active': selectedTab==2, 'disabled': disableTabs.indexOf(2)>-1}">
                    <a href="../../../../health-education/index.html" target="view_frame">
                        <img :src="selectedTab==2?'../../../images/jiankangjiaoyu02_icon.png':'../../../images/jiankangjiaoyu_icon.png'">
                    <a href="../../../../health-education/index.html" target="view_frame" @click="chooseTab(2)">
                        <img :src="selectedTab==2?'../../../images/jiankangjiaoyu_icon.png':'../../../images/jiankangjiaoyu02_icon.png'">
                        <div class="mt10 c-f16">健康教育</div>
                    </a>
                </div>
                <div class="col-xs-6" :class="{'active': selectedTab == 3, 'disabled': disableTabs.indexOf(3)>-1}">
                    <a href="../../followup/html/followup_tabs.html" target="view_frame" @click="chooseTab(3)">
                        <img :src="selectedTab==3?'../../../images/suifangjihua02_icon.png':'../../../images/suifangjihua_icon.png'">
                        <img :src="selectedTab==3?'../../../images/suifangjihua_icon.png':'../../../images/suifangjihua02_icon.png'">
                        <div class="mt10 c-f16">随访计划</div>
                    </a>
                </div>
                <div class="col-xs-6" :class="{'active': selectedTab == 4, 'disabled': disableTabs.indexOf(4)>-1}">
                    <a href="../../statistics/html/home.html" target="view_frame" @click="chooseTab(4)">
                        <img :src="selectedTab == 4?'../../../images/tongjifenxi02_icon.png' : '../../../images/tongjifenxi_icon.png'">
                        <img :src="selectedTab == 4?'../../../images/tongjifenxi_icon.png' : '../../../images/tongjifenxi02_icon.png'">
                        <div class="mt10 c-f16">统计分析</div>
                    </a>
                </div>
                <div class="col-xs-6" :class="{'active': selectedTab == 5, 'disabled': disableTabs.indexOf(5)>-1}">
                    <a href="../../jbsc/html/statistics.html" target="view_frame" @click="chooseTab(5)">
                        <img :src="selectedTab == 5?'../../../images/jibingshaicha02_icon.png' : '../../../images/jibingshaicha_icon.png'">
                        <img :src="selectedTab == 5?'../../../images/jibingshaicha_icon.png' : '../../../images/jibingshaicha02_icon.png'">
                        <div class="mt10 c-f16">疾病筛查</div>
                    </a>
                </div>
                <div class="col-xs-6" :class="{'active': selectedTab == 6, 'disabled': disableTabs.indexOf(6)>-1}">
                    <a href="../../sign/html/sign_manage.html" target="view_frame" @click="chooseTab(6)">
                        <img :src="selectedTab == 6?'../../../images/qianyuguanli_icon.png' : '../../../images/qianyuguanli02_icon.png'">
                        <div class="mt10 c-f16">签约管理</div>
                    </a>
                </div>
            </div>
        </div>
        <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>

+ 7 - 0
app/sign/css/sign_handle.css

@ -0,0 +1,7 @@
.w40 {width: 40px;}
.h40 {height: 40px;}
.lh40 {line-height: 40px;}
.b-r-50 {border-radius: 50%;}
ul {list-style: none;}
.w-20-1 {width: calc(20% - 1px);}
.w-30-1 {width: calc(30% - 1px);}

+ 82 - 0
app/sign/css/sign_manage.css

@ -0,0 +1,82 @@
p {margin-bottom: 0; margin-top: 0;}
.re-title .name{font-size: 18px;font-weight: bold;color: #333;height: 40px;line-height: 40px;display: inline-block;padding: 0px 20px;}
.re-title .team{font-size: 14px;color: #333;display: inline-block;}
.no-select{-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select:none}
.re-title{border-bottom:solid 1px #ededed;}
.lh28 {line-height: 28px;}
.plr5 {padding-left: 5px; padding-right: 5px;}
.bgc-12b7f5 {background-color: #12b7f5;}
.w40 {width: 32px; height: 24px; text-indent: 0.5em;}
.lh24 {height: 24px; line-height: 24px;}
.h30 {height: 30px; line-height: 30px}
.lh40 {line-height: 40px}
.w-10-1 {width: calc(10% - 1px)}
.w-14 {width: 14%}
.w-18-1 {width: calc(18% - 1px)}
.w-20-1 {width: calc(20% - 1px)}
.list-tit {
    display: inline-block;
    width: 110px;
    height: 28px;
    padding: 0 5px;
    border: 1px solid #e1e1e1;
}
.set-bg {
    background: url("../../../images/tiaozhuan_xia_icon.png") no-repeat 105px center;
}
.pull-list {
    position: absolute;
    top: 30px;
    right: 0;
    width: 120px;
    background: #fff;
    z-index: 9;
}
.pull-list li {
    padding: 0 5px;
}
.pull-list li:hover {
    background-color: #e1e1e1;
}
.sosou-btn {
    float: right;
    width: 20px;
    height: 28px;
    background: url(../../../images/sousuo_icon.png) no-repeat no-repeat center center;
    background-size: 16px 16px;
    cursor: pointer;
}
.inp::-webkit-input-placeholder {
    color: #999;
}
.operate:hover {text-decoration: underline;}
.operate:active {color: red;}
.page-btn {
    height: 24px;
    width: 24px;
    padding: 0;
    background: #fff;
    color: #ccc;
}
.sure-btn {
    height: 26px;
    width: 36px;
    border-radius: 0;
    border: 0;
    padding: 0;
    line-height: 26px;
}
.btn-active {
    background-color: #12b7f5;
    color: #fff;
}
ul {
	list-style: none;
}
input {border: 0;outline:none;}
.h22 {height: 22px;}
.c-12b7f5 {color: #12b7f5;}
.cur-pit {cursor: pointer;}
span.c-12b7f5:active {
	text-decoration: underline;
}

+ 70 - 0
app/sign/html/sign_handle.html

@ -0,0 +1,70 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>签约申请处理</title>
		<link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css"/>
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link rel="stylesheet" href="../css/sign_handle.css" />
	</head>
	<body>
		<div id="app" class="p20">
			<dl class="clearfix">
				<dt class="fl">
					<img class="fl w40 h40 b-r-50" src="../../../images/d-default.png" alt="居民头像" />
				</dt>
				<dd class="fl ml10 c-999">
					<p class="m0"><span class="c-333 c-f16">王国维</span><span class="ml10 c-f14">(男 27岁 已缴费)</span></p>
					<p class="c-f12 m0">申请时间: 2018-07-13 14:36:00</p>
				</dd>
			</dl>
			<h3>居民信息</h3>
			<ul class="m0 p0 lh40 c-border-t c-border-r c-border-l c-t-left c-333">
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">身份证号</span>
					<span class="fl w-30-1 c-border-r pl20">xxx</span>
					<span class="fl w-20-1 c-border-r pl20 c-999">手机号</span>
					<span class="fl w-30-1 pl20">xxx</span>
				</li>
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">医保卡号</span>
					<span class="fl w-30-1 c-border-r pl20">xxx</span>
					<span class="fl w-20-1 c-border-r pl20 c-999">医疗保险号</span>
					<span class="fl w-30-1 pl20">xxx</span>
				</li>
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">所属居委会</span>
					<span class="fl w-80-1 pl20">xxx</span>
				</li>
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">详细地址</span>
					<span class="fl w-80-1 pl20">xxx</span>
				</li>
			</ul>
			<h3>签约信息</h3>
			<ul class="m0 p0 lh40 c-border-t c-border-r c-border-l c-t-left c-333">
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">签约团队</span>
					<span class="fl w-30-1 c-border-r pl20">xxx</span>
					<span class="fl w-20-1 c-border-r pl20 c-999">服务类型</span>
					<span class="fl w-30-1 pl20">xxx</span>
				</li>
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">全科医生</span>
					<span class="fl w-30-1 c-border-r pl20">xxx</span>
					<span class="fl w-20-1 c-border-r pl20 c-999">居民标签</span>
					<span class="fl w-30-1 pl20">xxx</span>
				</li>
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">所属居委会</span>
					<span class="fl w-80-1 pl20">xxx</span>
				</li>
				<li class="c-border-b clearfix">
					<span class="fl w-20-1 c-border-r pl20 c-999">详细地址</span>
					<span class="fl w-80-1 pl20">xxx</span>
				</li>
			</ul>
		</div>
	</body>
</html>

+ 288 - 0
app/sign/html/sign_manage.html

@ -0,0 +1,288 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>签约管理</title>
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link rel="stylesheet" type="text/css" href="../css/sign_manage.css"/>
	</head>
	<body class="m0">
	<div id="app" v-cloak>
		<div class="re-title no-select">
			<div class="name">签约管理</div>
		</div>
		<div class="c-h100 p10">
	        <div class="c-h100  c-border">
	            <div class="lh28 pt10 plr10 clearfix">
	                <div class="c-position-r fl mr20 mb10">
						签约状态:<span class="list-tit set-bg cur-pit c-999" @click="selectStatus()">{{statusTit}}</span>
	                    <ul class="pull-list m0 p0 c-border-l c-border-r c-border-b" v-if="isShowList">
	                        <li class="cur-pit c-999" v-for="(status, index) in statusArr" :key="index" @click="selectLi(status)">{{status.statusName}}</li>
	                    </ul>
	                </div>
	                <p class="fl plr5 c-border mb10"><input type="text" v-model="keyword" class="inp c-999" placeholder="搜索居民姓名、身份证"><span class="sosou-btn" @click="suosou()"></span></p>
	                <p class="fr btn plr10 mb10 c-fff h30 bgc-12b7f5 cur-pit" v-if="statusCode == 3 && isFocus" @click="remainFocus(1)">全部提醒关注</p>
	                <p class="fr btn plr10 mb10 c-fff h30 bgc-12b7f5 cur-pit" v-if="statusCode == 5 && isMoney" @click="remainMoney(1)">全部提醒缴费</p>
	            </div>
	            <ul class="c-border-t lh40 p0 c-t-center">
	                <li class="c-border-b c-999 clearfix">
	                    <span class="fl w-14">居民姓名</span>
	                    <span class="fl w-20-1 c-border-l">{{ statusCode == 3 ? "签约时间" : (statusCode == 1 ? "申请时间" : "预签约时间")}}</span>
	                    <span class="fl w-10-1 c-border-l">性别</span>
	                    <span class="fl w-10-1 c-border-l">年龄</span>
	                    <span class="fl w-10-1 c-border-l">类型</span>
	                    <span class="fl w-18-1 c-border-l">联系方式</span>
	                    <span class="fl w-18-1 c-border-l">操作</span>
	                </li>
	                <li v-for="(list, index) in resultList" :key="index" class="c-border-b clearfix">
	                    <span class="fl w-14">{{list.patientName || ""}}</span>
	                    <span class="fl w-20-1 c-border-l">{{list.applyDate || "无时间记录"}}</span>
	                    <span class="fl w-10-1 c-border-l">{{list.sex == 1 ? '男' : '女'}}</span>
	                    <span class="fl w-10-1 c-border-l">{{list.age || 0}}岁</span>
	                    <span class="fl w-10-1 c-border-l">{{+list.renewFlag ? '续签' : '新签'}}</span>
	                    <span class="fl w-18-1 c-border-l">{{list.mobile || "无联系方式"}}</span>
	                    <p class="fl w-18-1 c-border-l">
	                    	<span v-if="statusCode == 1" class="mr10 c-12b7f5 cur-pit" @click="handle(list)">处理</span>
	                        <span v-if="list.status == 1" class="mr10 c-12b7f5 cur-pit" @click="looking(list)">查看</span>
	                        <span v-if="list.expensesRemindStatus == 0" class="mr10 c-12b7f5 cur-pit" @click="remainMoney(0, list)">提醒缴费</span>
	                        <span v-if="!list.openid && list.wechatFocusRemind == 0" class="c-12b7f5 cur-pit" @click="remainFocus(0, list)">提醒关注</span>
	                        <span v-if="list.expensesRemindStatus == 1 || (list.wechatFocusRemind == 1 && !list.openid)" class="c-999">已提醒</span>
	                    </p>
	                </li>
	            </ul>
	            <div class="mt20 mb10 lh24 pr30 c-t-center clearfix" v-show="resultList.length">
	                <div class="fr ml10 clearfix">
	                    <span class="fl c-border w40 m0">
	                        <input class="fl w40 h22 c-f999" v-model="editPage" />
	                    </span>
	                    <span class="fr bgc-12b7f5 c-fff c-f12 btn sure-btn" @click="setPage(editPage)">跳转</span>
	                </div>
	                <span class="fr btn page-btn ml10" @click="setPage(page + 2)" v-if="page == 1 && (page + 2) <= allPage">{{page + 2}}</span>
	                <span class="fr btn page-btn ml10" @click="setPage(page + 1)" v-if="(page + 1) <= allPage">{{page + 1}}</span>
	                <span class="fr btn page-btn ml10 btn-active">{{page}}</span>
	                <span class="fr btn page-btn ml10"  @click="setPage(page - 1)" v-if="page != 1">{{page - 1}}</span>
	                <span class="fr btn page-btn ml10"  @click="setPage(page - 2)" v-if="page > 2 && page == allPage">{{page - 2}}</span>
	                <span class="fr">当前第{{page}}页,共{{allPage}}页,{{allRecords}}条数据</span>
	            </div>
	            <p class="pt60 c-t-center c-999 c-f24" v-show="!resultList.length">无数据</p>
	        </div>
	    </div>
	</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/jquery-2.2.4.js"></script>
        <script src="../../../plugins/layer/layer.min.js"></script>
        <script src="../../../js/bootstrap.min.js"></script>
        <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript"></script>
		<script src="../../../api/sign_api.js" type="text/javascript"></script>
		<script type="text/javascript">
			var doctorType = JSON.parse(window.localStorage.getItem('wlyyAgent')).doctorType
			
			function showSuccessMessage(msg) {
				layer.msg(msg, {
					icon: 1
				})
			}
			
			function showErrorMessage(msg) {
				layer.msg(msg, {
					icon: 5
				})
			}
			
			function showWarningMessage(msg) {
				layer.msg(msg, {
					icon: 2
				})
			}
			
			function showInfoMessage(msg) {
				layer.msg(msg, {
					icon: 6
				})
			}
			
			new Vue({
                el: "#app",
                data: {
		            isShowList: false,
		            keyword: "",
		            isFocus: false,
		            isMoney: false,
		            statusTit: '已签约',
		            statusCode: 3,
		            statusArr: [{
		                statusName: '待签约',
		                statusCode: '1'
		            }, {
		                statusName: '待缴费',
		                statusCode: '5'
		            }, {
		                statusName: '已签约',
		                statusCode: '3'
		            }],
		            resultList: [],
		            editPage: null,
		            page: 1,
		            allPage: null,
		            allRecords: null,
		            allCount: null
                },
                mounted: function() {
                	this.isRemainFocus();
                	this.isRemainMoney();
                	this.signCount();
                },
                methods: {
                	signCount: function() {
                		var vm = this,
                			loadding = layer.load(0, {shade: false});
						signAPI.signCount().then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								vm.allCount = res.data;
								vm.signList();
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                	isRemainFocus: function() {
                		var vm = this,
                			loadding = layer.load(0, {shade: false});
						signAPI.isRemainFocus().then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								if(!res.data) {
									vm.isFocus = true;
								}
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                	isRemainMoney: function() {
                		var vm = this,
                			loadding = layer.load(0, {shade: false});
						signAPI.isRemainMoney().then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								if(!res.data) {
									vm.isMoney = true;
								}
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                	signList: function() {
                		var vm = this
						var params = {
							doctorType: doctorType, //疾病类型
							status: vm.statusCode, //处理方式(1待签约 5待缴费 3已签约)
							page: vm.page,
							pageSize: 10,
							keyword: vm.keyword
						}
						var loadding = layer.load(0, {shade: false});
						signAPI.signList(params).then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								if(vm.statusCode == 3) {
									vm.allRecords = vm.allCount.signCount
								} else if(vm.statusCode == 5) {
									vm.allRecords = vm.allCount.waitPayCount
								} else {
									vm.allRecords = vm.allCount.waitSignCount
								}
								vm.allPage = Math.ceil(vm.allRecords / 10)
								vm.resultList = res.data.list
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                    selectStatus: function() {
			            this.isShowList = !this.isShowList;
			        },
			        selectLi: function(data) {
			            this.isShowList = false;
			            if (this.statusTit === data.statusName) {
			                return false;
			            }
			            this.page = 1;
			            this.statusTit = data.statusName;
			            this.statusCode = data.statusCode;
			            this.signList();
			        },
			        suosou: function() {
			        	this.page = 1;
			        	this.signList();
			        },
			        handle: function(list) {
			        	layer.open({
							type: 2,
							//				  offset: ['100px'], //右下角弹出
							area: ['80%', '648px'],
							shade: 0.5,
							title: '签约申请处理',
							fixed: true, //不固定
							maxmin: true,
							closeBtn: 1,
							shift: 5,
							shadeClose: false, //点击遮罩关闭层
							content: "sign_handle.html?patientCode="+list.patientCode+'&signCode='+list.code
						});
			        },
			        looking: function(list) {},
			        remainMoney: function(status, list) {
			        	var vm = this,
			        		loading = layer.load(0, {shade: false})
			        		param = {
			        			patient: list ? list.patientCode : "",
			        			all: status
			        		}
			        	signAPI.remainMoney(param).then(function(res) {
			        		layer.close(loading)
							if(res.status == 200) {
								showSuccessMessage(res.msg)
								vm.signList()
							} else {
								showErrorMessage(res.msg);
							}
			        	})
			        },
			        remainFocus: function(status, list) {
			        	var vm = this,
			        		loading = layer.load(0, {shade: false})
			        		param = {
			        			patient: list ? list.patientCode : "",
			        			all: status
			        		}
			        	signAPI.remainFocus(param).then(function(res) {
			        		layer.close(loading)
							if(res.status == 200) {
								showSuccessMessage(res.msg)
								vm.signList()
							} else {
								showErrorMessage(res.msg);
							}
			        	})
			        },
			        setPage: function(key) {
			            if (+key && +key > 0 && +key <= this.allPage) {
			                this.page = +key;
			                this.signList()
			            } else {
			                showWarningMessage('无效的页数跳转!');
			            }
			        }
                }
            })
		</script>
	</body>
</html>

二進制
images/jiankangjiaoyu_icon.png


二進制
images/jibingshaicha_icon.png


二進制
images/qianyuguanli02_icon.png


二進制
images/qianyuguanli_icon.png


二進制
images/suifangjihua_icon.png


二進制
images/tiaozhuan_xia_icon.png


二進制
images/tongjifenxi_icon.png


二進制
images/xufangguanli_icon.png