Explorar o código

Merge branch 'master' of http://192.168.1.220:10080/raolu/PC-application

chenyue %!s(int64=6) %!d(string=hai) anos
pai
achega
f973131289

+ 1 - 0
api/http-request.js

@ -18,6 +18,7 @@
            server = "http://10.95.22.10:8011/wlyy/"
            imserver = "http://10.95.22.138:3000/api/v2";
            socketUrl = "http://10.95.22.138:3000";
            articleServer = "http://10.95.22.10:8011/wlyy/"
            loginUrl = "../../login/login.html";
            imgServer = "http://10.95.22.10:8011/";
        }

+ 61 - 0
api/sign_api.js

@ -0,0 +1,61 @@
(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})
		},
		// 获取申请签约信息
		signing: function(data) {
			return httpRequest.post("doctor/family_contract/patient_signing", {data: data})
		},
		// 获取续签信息
		signOuttime: function(data) {
			return httpRequest.post("doctor/family_contract/patient_signing_outtime", {data: data})
		},
		// 医生下的团队
		teamLimit: function(data) {
			return httpRequest.get("doctor/admin-teams/team/" + data.doctorId + "/teamsLimit", {data: data})
		},
		// 公共字典
		getDictByDictName: function(data) {
			return httpRequest.get("common/getDictByDictName", {data:data})
		},
		// 居民标签
		patientLabel: function(data) {
			return httpRequest.post("doctor/patient_label_info/patient_label", {data: data})
		},
		// 服务标签
		getSigndict: function(data) {
			return httpRequest.get("doctor/sign/getSigndict")
		},
		// 团队成员
		teamMember: function(data) {
			return httpRequest.get("doctor/admin-teams/" + data.teamId + "/members", {data: data})
		},
		// 签约消息处理
		sign: function(data) {
			return httpRequest.post("doctor/family_contract/sign", {data: data})
		}
	}
    exports.signAPI = signAPI;
})(window)

+ 2 - 0
app/article/css/article.css

@ -53,6 +53,8 @@ p{margin: 0;}
    top: 30px;
    right: 0;
    width: 120px;
    margin: 0;
    padding: 0;
    background: #fff;
    z-index: 9;
}

+ 5 - 3
app/article/html/article.html

@ -126,7 +126,7 @@
		                iDisplayLength: 10, // pagesize
		                sEcho: 1, // 插件自带
		                roleType: roleType, // 1、普通医生,2、管理员
		                patient: httpData['code'] // 居民CODE
//		                patient: httpData['code'] // 居民CODE
		            },
		            pushObj: {
		                firstLevelCategoryId: null, // 文章一级分类
@ -164,8 +164,9 @@
				            firstlevelId: firstlevelId || null,
				            secondLevelId: null
			            }
//			            vm.levelArr1=[];
			            var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
			           	jbscAPI.getCategoryList(num, firstlevelId).then(function(res){
			           	jbscAPI.getCategoryList(data).then(function(res){
			           		top.layer.close(loadding);
				            if (res.status == 200) {
				                if (num == 1) {
@ -180,6 +181,7 @@
			        },
			        queryArticlePcList:function(obj) {
			        	var vm=this;
			        	vm.articleList=[];
			        	var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
			            jbscAPI.queryArticlePcList(obj).then(function(res){
			            	top.layer.close(loadding);
@ -309,7 +311,7 @@
								msg='发送成功';				    			
				    			icon=1;
				    		}
				            top.layer.msg(msg && res.msg, {icon: icon});
				            top.layer.msg(msg || res.msg, {icon: icon});
			            })   
				    }
			    }

+ 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>

+ 2 - 2
app/jbsc/html/view_screening_results.html

@ -155,7 +155,7 @@
						</ul>
					</div>
					<div class="other-advice" v-if="result.doctorOtherAdvice">
						<span class="orange-text">补充建议:</span><span v-text="result.doctorOtherAdvice || '无'"></span>
						<p><span class="orange-text">补充建议:</span><span v-text="result.doctorOtherAdvice || '无'"></span></p>
					</div>
				</div>
				
@ -229,7 +229,7 @@
							closeBtn: 1,
							shift: 5,
							shadeClose: false, //点击遮罩关闭层
							content: "../../article/html/article.html?code="+this.userInfo.code+'&resultCode='+vm.resultCode
							content: "../../article/html/article.html?code="+this.userInfo.patient_code+'&resultCode='+vm.resultCode
						});
				  	},
				  	jkzg:function(){

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

@ -0,0 +1,28 @@
.w40 {width: 40px;}
.h40 {height: 40px;}
.lh40 {line-height: 40px;}
.lh80 {line-height: 81px;}
.b-r-50 {border-radius: 50%;}
ul {list-style: none;}
.w-20-1 {width: calc(20% - 1px);}
.w-30-1 {width: calc(30% - 1px);}
.w-40 {width: 40%;}
.w-40-1 {width: calc(40% - 1px);}
.w-50-1 {width: calc(50% - 1px);}
.w-60-1 {width: calc(60% - 1px);}
.h60 {height: 60px;}
.btn-red, .btn-red:hover, .btn-red:focus {background-color: red; color: #fff;}
.w-100 {width: 100%;}
.pull-list {top: 41px;width: 100%;}
.pull-list li {padding-left: 20px;}
.set-bg {background: url(../../../images/tiaozhuan_xia_icon.png) no-repeat no-repeat calc(100% - 10px) center;}
.right-arrow {background: url(../../../images/tiaozhuan_icon.png) no-repeat no-repeat calc(100% - 10px) center; background-size: 8px 15px;}
.reason_list span {height: 24px; padding: 0 10px; background-color: #fff; line-height: 24px; border-radius: 12px; border: 1px solid #12b7f5; color: #12B7F5;}
.reason_list span.active {background-color: #12b7f5; color: #fff;}
#reason {
	height: 120px;
	width: 100%;
	padding: 10px 20px;
	outline: none;
	resize:none;
}

+ 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;
}

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

@ -0,0 +1,118 @@
<!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_manage.css" />
		<link rel="stylesheet" href="../css/sign_handle.css" />
	</head>
	<body>
		<div id="app" class="p20 mb10">
			<dl class="clearfix">
				<dt class="fl">
					<img class="fl w40 h40 b-r-50" :src="patientInfo.photo" alt="居民头像" />
				</dt>
				<dd class="fl ml10 c-999">
					<p class="m0"><span class="c-333 c-f16">{{patientInfo.name}}</span><span class="ml10 c-f14">({{patientInfo.sex == 1 ? "男" : "女"}}&emsp;{{patientInfo.age && patientInfo.age > 0 ? patientInfo.age : "未知"}}岁)</span></p>
					<p class="c-f12 m0">申请时间: {{patientInfo.jtSign.applyDate || patientInfo.applyDate}}</p>
				</dd>
			</dl>
			<h3>居民信息</h3>
			<ul class="m0 p0 mb20 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">{{patientInfo.idCard}}</span>
					<span class="fl w-20-1 c-border-r pl20 c-999">手机号</span>
					<span class="fl w-30-1 pl20">{{patientInfo.mobile}}</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">{{patientInfo.jtSign.ssc}}</span>
					<span class="fl w-20-1 c-border-r pl20 c-999">医疗保险号</span>
					<span class="fl w-30-1 pl20">{{patientInfo.medicareNumber}}</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">{{patientInfo.countryName}}</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">{{patientInfo.address ? patientInfo.address : ""}}</span>
				</li>
			</ul>
			<h3>签约信息</h3>
			<ul class="m0 p0 mb20 lh40 c-border-t c-border-r c-border-l c-t-left c-333">
				<li class="c-border-b clearfix">
					<div class="fl w-50-1">
						<div class="m0 c-border-b clearfix">
							<span class="fl w-40 c-border-r pl20 c-999">签约团队</span>
							<div class="c-position-r fl w-60-1 c-border-r">
								<p class="pl20 w-100 set-bg" @click="selectStatus(1)">{{signInfo.adminTeamCode ? showTeamName(signInfo.adminTeamCode) : "请选择签约团队"}}</p>
								<ul class="pull-list m0 p0 c-border-l c-border-r c-border-b" v-if="isShowList1">
			                        <li class="cur-pit c-999" v-for="(team, index) in teamList" :key="index" @click="selectLi(1, team)">{{team.name}}(已签约{{team.signCount}}人)</li>
			                    </ul>
							</div>
						</div>
						<p class="m0 c-border-b clearfix">
							<span class="fl w-40 c-border-r pl20 c-999">全科医生</span>
							<span class="fl w-60-1 c-border-r pl20">{{patientInfo.jtSign.doctorName}}</span>
						</p>
						<div class="m0 c-border-b clearfix">
							<span class="fl w-40 c-border-r pl20 c-999">健康管理师</span>
							<div class="c-position-r fl w-60-1 c-border-r">
								<p class="pl20 w-100 set-bg" @click="selectStatus(2)">{{signInfo.healthDoctorName ? signInfo.healthDoctorName : "请选择健康管理师"}}</p>
								<ul class="pull-list m0 p0 c-border-l c-border-r c-border-b" v-if="isShowList2">
			                        <li class="cur-pit c-999" v-for="(member, index) in memberList" :key="index" @click="selectLi(2, member)">{{member.name}}</li>
			                    </ul>
							</div>
						</div>
						<div class="m0 clearfix">
							<span class="fl w-40 c-border-r pl20 c-999">政府补贴</span>
							<div class="c-position-r fl w-60-1 c-border-r">
								<p class="pl20 w-100 set-bg" @click="selectStatus(3)">{{signInfo.expenses ? showExpensesName(signInfo.expenses) : "请选择健康管理师"}}</p>
								<ul class="pull-list m0 p0 c-border-l c-border-r c-border-b" v-if="isShowList3">
			                        <li class="cur-pit c-999" v-for="(dict, index) in dictList" :key="index" @click="selectLi(3, dict)">{{dict.value}}</li>
			                    </ul>
							</div>
						</div>
					</div>
					<div class="fl w-50-1">
						<div class="clearfix c-border-b">
							<div class="fl w-40 c-border-r c-999">
								<p class="m0 pl20 c-border-b">服务类型</p>
								<p class="m0 pl20">居民标签</p>
							</div>
							<div class="fl w-60-1 right-arrow">
								<p class="m0 pl20">{{showTit4}}</p>
								<p class="m0 pl20">{{showTit5}}</p>
							</div>
						</div>
						<div class="lh80 clearfix">
							<span class="fl w-40 c-border-r pl20 c-999">已上传凭证</span>
							<div class="fl w-60-1 ptb10 pl20">
								<img class="fl h60" src="../../../images/d-default.png" alt="凭证" />
							</div>
						</div>
					</div>
				</li>
			</ul>
			<div class="c-t-center pt20">
				<span class="btn btn-red plr20" @click="refuse()">拒绝签约</span>
				<span class="btn btn-blue plr20 ml30" @click="sign(1)">同意签约</span>
			</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 src="../js/sign_handle.js" type="text/javascript"></script>
	</body>
</html>

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

@ -0,0 +1,289 @@
<!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,
							patientInfo: 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) {
			        	var status = list.renewFlag == 1 || list.renewFlag == 2 ? 1 : 0;
			        	layer.open({
							type: 2,
							//				  offset: ['100px'], //右下角弹出
							area: ['80%', '648px'],
							shade: 0.5,
							title: '签约申请处理',
							fixed: true, //不固定
							maxmin: false,
							closeBtn: 1,
							shift: 5,
							shadeClose: false, //点击遮罩关闭层
							content: "sign_handle.html?patientCode="+list.patientCode+'&signCode='+list.code + '&msgId=' + list.id + '&status=' + status
						});
			        },
			        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>

+ 276 - 0
app/sign/js/sign_handle.js

@ -0,0 +1,276 @@
var httpData=GetRequest(),
	doctorInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'));
var refuseReason = null;
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
	})
}
function getReason(ele) {
	if(ele.hasClass("active")) {
		ele.removeClass("active")
		refuseReason = null
		return false;
	}
	ele.addClass("active").siblings().removeClass("active");
	refuseReason = ele.html();
}
new Vue({
    el: "#app",
    data: {
    	isShowList1: false,
    	isShowList2: false,
    	isShowList3: false,
    	showTit3: "请选择补贴类型",
    	showTit4: "请选择服务类型",
    	showTit5: "请选择居民标签",
    	patientInfo: null,
    	teamList: null,
    	memberList: null,
    	dictList: null,
    	signInfo: {
            signType: 1,
            majorDoctor: null,
            majorDoctorName: null,
            healthLabel: null,
            customLabel: null,
            disease: null,
            patientIDcard: null, // 必填
            adminTeamCode: null,
            msgid: httpData.msgId, // 消息id(必填)
            patient: httpData.patientCode,
            healthDoctor: null,
            healthDoctorName: null,
            type: 1,
            expenses: null,
            group: null,
            //添加服务类型数据
            sevId: null,
            // 拒绝参数
//		                adminTeamCode:0,
//		                type: 2,
       		refuseReason: null
        },
    },
    mounted: function() {
    	if (httpData.status == 0) {
    		this.signing()
    	} else {
    		this.signOuttime();
    	}
    	this.getDictByDictName();
    	this.teamLimit();
    },
    methods: {
    	signing: function() {
    		var vm = this,
    			loadding = layer.load(0, {shade: false}),
    			params = {
    				patient: httpData.patientCode
    			}
			signAPI.signing(params).then(function(res) {
				layer.close(loadding)
				if(res.status == 200) {
					vm.patientInfo = res.data
				} else {
					showErrorMessage(res.msg);
				}
			})
    	},
    	signOuttime: function() {
    		var vm = this,
    			loadding = layer.load(0, {shade: false}),
    			params = {
    				patient: httpData.patientCode
    			}
			signAPI.signOuttime(params).then(function(res) {
				layer.close(loadding)
				if(res.status == 200) {
					vm.patientInfo = res.data
					vm.signInfo.adminTeamCode = vm.patientInfo.jtSign.adminTeamId
					vm.signInfo.healthDoctorName = vm.patientInfo.jtSign.doctorHealthName
					vm.signInfo.healthDoctor = vm.patientInfo.jtSign.doctorHealth
					vm.signInfo.expenses = vm.patientInfo.jtSign.expensesType
					vm.teamMember()
				} else {
					showErrorMessage(res.msg);
				}
			})
    	},
    	getDictByDictName: function() {
    		var vm =this,
    			loadding = layer.load(0, {shade: false}),
    			params = {
    				name: "SIGN_EXPENSES"
    			}
			signAPI.getDictByDictName(params).then(function(res) {
				layer.close(loadding)
				if(res.status == 200) {
					vm.dictList = res.list
				} else {
					showErrorMessage(res.msg);
				}
			})
    	},
    	teamLimit: function() {
    		var vm = this,
    			loadding = layer.load(0, {shade: false}),
    			params = {
    				doctorId: doctorInfo.uid
    			}
			signAPI.teamLimit(params).then(function(res) {
				layer.close(loadding)
				if(res.status == 200) {
					vm.teamList = res.data
				} else {
					showErrorMessage(res.msg);
				}
			})
    	},
    	teamMember: function() {
    		var vm = this,
    			loadding = layer.load(0, {shade: false}),
    			params = {
    				teamId: vm.signInfo.adminTeamCode
    			}
			signAPI.teamMember(params).then(function(res) {
				layer.close(loadding)
				vm.memberList = []
				if(res.status == 200) {
					$.each(res.data, function(i, v) {
		                if(v.level == 3 || v.level == 2)
		                    vm.memberList.push(v);
		            });
				} else {
					showErrorMessage(res.msg);
				}
			})
   		},
    	selectStatus: function(num) {
    		if(num == 1) {
    			this.isShowList2 = false;
    			this.isShowList3 = false;
    			this.isShowList1 = !this.isShowList1;
    		} else if (num == 2) {
    			if(!this.signInfo.adminTeamCode) {
    				showWarningMessage("请先选择签约团队")
    			}
    			this.isShowList1 = false;
    			this.isShowList3 = false;
    			this.isShowList2 = !this.isShowList2;
    		} else {
    			this.isShowList1 = false;
    			this.isShowList2 = false;
    			this.isShowList3 = !this.isShowList3;
    		}
            
        },
        selectLi: function(num, data) {
        	if(num == 1) {
        		this.isShowList1 = false;
	            this.signInfo.adminTeamCode = data.id;
	            if(!this.memberList) {
	            	this.teamMember()
	            }
        	}
        	if(num == 2) {
        		this.isShowList2 = false;
	            this.signInfo.healthDoctorName = data.name
	            this.signInfo.healthDoctor = data.code
        	}
			if(num == 3) {
				this.isShowList3 = false;
				this.signInfo.expenses = data.code;
			}
        },
        showTeamName: function(teamCode) {
        	var teamName;
        	if(!this.teamList) {
        		return "请选择签约团队";
        	}
        	for(var i = 0, len = this.teamList.length; i < len; i++) {
        		if(teamCode == this.teamList[i].id) {
        			teamName = this.teamList[i].name;
        		}
        	}
        	return teamName
        },
        showExpensesName: function(code) {
        	var expensesName;
        	if(!this.dictList) {
        		return "请选择补贴类型";
        	}
        	for(var i = 0, len = this.dictList.length; i < len; i++) {
        		if(code == this.dictList[i].code) {
        			expensesName = this.dictList[i].value;
        		}
        	}
        	return expensesName
        },
        refuse: function() {
        	var vm = this;
        	layer.open({
				type: 1,
				area: ['400px', '300px'],
				shade: 0.5,
				title: '拒绝签约原因',
				shift: 2,
				shadeClose: false, //点击遮罩关闭层
				content: '<div class="p20 pb0"><div class="reason_list clearfix"><span class="fl mr10 mb20" onclick="getReason($(this))">居民信息填写不详</span><span class="fl mr10 mb20" onclick="getReason($(this))">签约人数已满</span><span class="fl mb20" onclick="getReason($(this))">家庭医生变更</span></div><textarea id="reason" maxLength="200" placeholder="可选择填写其他拒签原因(限200字以内)"></textarea></div>',
				btn: ['提 交', '取 消'],
				yes:function(index, layero) {
					if(!refuseReason) {
						if(!$("#reason").val()) {
							showWarningMessage("请选择或输入拒绝理由!");
							layer.close(index);
							return false
						}
						vm.signInfo.refuseReason = $("#reason").val()
						vm.signInfo.adminTeamCode = 0
						vm.signInfo.type = 2
						vm.sign()
					}
					layer.close(index);
				},
				success: function(layero){
					layero.find('.layui-layer-btn').css('text-align', 'center')
				}
			});
        },
        sign: function() {// type:1签约 2拒签
        	var vm = this,
    			loadding = layer.load(0, {shade: false});
			signAPI.sign(vm.signInfo).then(function(res) {
				layer.close(loadding)
				if(res.status == 200) {
					
				} else {
					showErrorMessage(res.msg);
				}
			})
        }
    }
})

BIN=BIN
images/jiankangjiaoyu_icon.png


BIN=BIN
images/jibingshaicha_icon.png


BIN=BIN
images/qianyuguanli02_icon.png


BIN=BIN
images/qianyuguanli_icon.png


BIN=BIN
images/suifangjihua_icon.png


BIN=BIN
images/tiaozhuan_icon.png


BIN=BIN
images/tiaozhuan_xia_icon.png


BIN=BIN
images/tongjifenxi_icon.png


BIN=BIN
images/xiazhan_icon.png


BIN=BIN
images/xufangguanli_icon.png