Browse Source

pc-app - i健康pc端v1.7.2.3需求

chenyubai 2 years ago
parent
commit
e7e29b1524

+ 64 - 0
api/statistics-api.js

@ -154,6 +154,44 @@
		getAnnualAssessment: function(data){
		    return httpRequest.get("statisticsExport/getAnnualAssessment", {data: data});
		},
		// 体征数据列表
		getHealthList: function(data){
		    return httpRequest.get("statisticsExport/getHealthList", {data: data});
		},
		// 上转预约列表
		getDoctorReservationList: function(data){
		    return httpRequest.get("statisticsExport/getDoctorReservationList", {data: data});
		},
		// 微信绑定列表
		getWexinBindingList: function(data){
		    return httpRequest.get("statisticsExport/getWexinBindingList", {data: data});
		},
		// 查询上转预约科室和医院
		getReservationHosAndDept: function(data){
		    return httpRequest.get("statisticsExport/getReservationHosAndDept", {data: data});
		},
		//  获取汇总数据的专科医院
		getSpecialHospital: function(data){
		    return httpRequest.get("statisticsExport/getSpecialHospital", {data: data});
		},
		//专病汇总查询
		getSpecialDiseaseReport: function(data){
		    return httpRequest.get("statisticsExport/getSpecialDiseaseReport", {data: data});
		},
		//体征分析查询
		getDeviceHealthReport: function(data){
		    return httpRequest.get("statisticsExport/getDeviceHealthReport", {data: data});
		},
		//上门汇总
		getDoorServerOrderReport: function(data){
		    return httpRequest.get("statisticsExport/getDoorServerOrderReport", {data: data});
		},
		
		
		
		
		
		
		
		// 综合分析导出
		statisticsExportExport: function(data, filename){
@ -191,6 +229,32 @@
		appAdminToExcel: function(data, filename){
			return httpRequest.downLoadFileForAjax("third/door/appAdminToExcel", filename, data);
		},
		//体征数据导出
		exportHealthList: function(data, filename){
			return httpRequest.downLoadFileForAjax("statisticsExport/exportHealthList", filename, data);
		},
		//上转预约导出
		exportDoctorReservationList: function(data, filename){
			return httpRequest.downLoadFileForAjax("statisticsExport/exportDoctorReservationList", filename, data);
		},
		//微信绑定导出
		exportWexinBindingList: function(data, filename){
			return httpRequest.downLoadFileForAjax("statisticsExport/exportWexinBindingList", filename, data);
		},
		// 专病汇总导出
		exportSpecialDiseaseReport: function(data, filename){
			return httpRequest.downLoadFileForAjax("statisticsExport/exportSpecialDiseaseReport", filename, data);
		},
		// 体征分析导出
		exportDeviceHealthReport: function(data, filename){
			return httpRequest.downLoadFileForAjax("statisticsExport/exportDeviceHealthReport", filename, data);
		},
		// 上门汇总导出
		exportDoorServerOrderReport: function(data, filename){
			return httpRequest.downLoadFileForAjax("statisticsExport/exportDoorServerOrderReport", filename, data);
		},
		
		
		
        
    }

+ 1 - 1
app/rehabilitation/html/rehabilitation_management.html

@ -150,7 +150,7 @@
						</div>
						<div>
							<div v-for="(o, i) in medicalRecordsList" class="w-row flex vc c-f14 c-border plr10 ptb5 link-control mt10" @click="viewMedicalDetail(o)">
								<span class="c-666 mr15">
								<span class="c-666 mr15" v-if="o">
									{{o&&o.admissionTime?formatter(o.admissionTime):formatter(o.createTime)}}
								</span>
								<div class="flex1 c-12b7f5 ellipsis-1">

+ 9 - 8
app/statistics/html/annual-appraisal-report.html

@ -42,16 +42,16 @@
		        			<el-select v-model="chooseYear" style="width:120px;" class="pr20">
				                <el-option v-for="(item , index) in years" :key="index" :label="item" :value="item"></el-option>
				            </el-select>
				           <!-- <el-radio v-model="radio" label="2">创建时间:</el-radio>
				           <el-radio v-model="radio" label="2">创建时间:</el-radio>
				            <el-date-picker v-model="start" type="date" unlink-panels placeholder="开始日期" value-format="yyyy-MM-dd" style="width:140px;"  :clearable="false" :picker-options="pickerOptions">
							</el-date-picker>
							<span class="c-999">-</span>
							<el-date-picker v-model="end" type="date" unlink-panels placeholder="结束日期" value-format="yyyy-MM-dd"  style="width:140px;"  :clearable="false" :picker-options="pickerOptions">
							</el-date-picker> -->
							</el-date-picker>
		        		</div>
		        		<div class="searchDiv mt20">
		        			<label class="c-333 c-f14" for="">数据范围:</label>
		        			<el-select v-model="rangeCode" style="width:100px;" class="pr10">
		        			<el-select v-model="rangeCode" style="width:100px;" class="pr10" @change='rangeCodeChange'>
				                <el-option v-for="(item , index) in rangeList" :key="index" :label="item.name" :value="item.code"></el-option>
				            </el-select>
		        			<label class="c-333 c-f14" for="" v-if="initlevel == 4||initlevel == 3">地区:</label>
@ -72,14 +72,15 @@
			        	<div>
			        		<el-table border :data="tabledata" style="width: 100%" max-height="720" class="mt20" v-loading="isloading">
			        			<el-table-column fixed type="index" label="序号" width="50" min-width="50" align="center"></el-table-column>
								<el-table-column prop="hospitalName" label="社区名称" width="250" align="center" show-overflow-tooltip></el-table-column>
								<el-table-column prop="hospitalName" v-if="rangeCode != 'team'" label="社区名称" width="250" align="center" show-overflow-tooltip></el-table-column>
								<el-table-column prop="teamName" v-if="rangeCode == 'team'" label="团队名称" width="250" align="center" show-overflow-tooltip></el-table-column>
								<el-table-column prop="hospital" label="社区code" align="center" width="100"></el-table-column>
								<el-table-column prop="signAmount" label="签约量(已扣费)" align="center" width="120"></el-table-column>
								<el-table-column prop="peopleNum" label="人口数" align="center"></el-table-column>
								<el-table-column prop="signRange" label="签约率" align="center" show-overflow-tooltip></el-table-column>
								<el-table-column prop="peopleNum" v-if="rangeCode != 'team'" label="人口数" align="center"></el-table-column>
								<el-table-column prop="signRange" v-if="rangeCode != 'team'" label="签约率" align="center" show-overflow-tooltip></el-table-column>
								<el-table-column prop="sixFiveNumSign" width="130" label="老年人签约量" align="center"></el-table-column>
								<el-table-column prop="sixFiveNum" width="130" label="老年人人口数" align="center" ></el-table-column>
								<el-table-column prop="sixFiveNumSignRange" width="130" label="老年人签约率" align="center" ></el-table-column>
								<el-table-column prop="sixFiveNum" v-if="rangeCode != 'team'" width="130" label="老年人人口数" align="center" ></el-table-column>
								<el-table-column prop="sixFiveNumSignRange" v-if="rangeCode != 'team'" width="130" label="老年人签约率" align="center" ></el-table-column>
								<el-table-column prop="binding" label="绑定量  " align="center" ></el-table-column>
								<el-table-column prop="bindingRange" label="绑定率" align="center" ></el-table-column>
								<el-table-column prop="birthdaySend" width="130" label="生日祝福推送量 " align="center" ></el-table-column>

+ 246 - 51
app/statistics/html/comprehensive-query.html

@ -22,34 +22,75 @@
		.el-table th{
			background: #F5F5FA;
		}
.el-radio-button:first-child .el-radio-button__inner{
	border-radius: 15px 0 0 15px;
}
.el-radio-button:last-child .el-radio-button__inner{
	border-radius:  0 15px 15px 0;
}
.line1{
	line-height:1;
}
.formLeft{
	margin-left: 20px;
}
.formWidth{
	width:120px;
}
		.el-radio-button:first-child .el-radio-button__inner{
			border-radius: 15px 0 0 15px;
		}
		.el-radio-button:last-child .el-radio-button__inner{
			border-radius:  0 15px 15px 0;
		}
		.line1{
			line-height:1;
		}
		.formLeft{
			margin-left: 20px;
		}
		.formWidth{
			width:120px;
		}
		.formWidth200{
			width:200px;
		}
		.tabs{
			width: 300px;
			height: 35px;
			line-height: 35px;
			border: 1px solid red;
			margin: 10px;
			border: 1px solid #f1f1f1;
			display: flex;
		}
		.tabsBox{
			width: 33%;
			text-align: center;
			border: 1px solid #F1F1F1;
			height: 100%;
			cursor: pointer;
		}
		.resetSelected{
			width: 98%;
			position: absolute;
			text-align: center;
			cursor: pointer;
			top: 770px;
		}
		.eliminate{
			margin-left: 20px;
			cursor:pointer ;
		}
</style>
<body style="margin: 0;overflow-x: auto;">
    <div id="main" class="c-hide ">
        <header-tab appname="综合查询" isback="true" isrefresh="true"></header-tab>
        <div class="p20 bgc-f2f3f5"  v-loading.fullscreen.lock="fullscreenLoading">  
        <header-tab appname="数据查询" isback="true" isrefresh="true"></header-tab>
        <div class="tabs">
			<div class="tabsBox" v-for="(item,index) in tabsList" :key='index' :style="item.show?'background:#409EFF;color:#fff;':''" @click="tabsClick(item)">{{item.text}}</div>
        </div>
		<div class="p20 bgc-f2f3f5"  v-loading.fullscreen.lock="fullscreenLoading">  
        	<div  style="border:1px solid #d7dce6">
		        <div class="ui-grid  bgc-f2f3f5">
		        	<div class="ui-col-0 pr15" style="min-width: 220px;border-right:1px solid #d7dce6;overflow-y:auto;" :style="{ height: height + 'px' }">
		        		<el-tree class="bgc-f2f3f5" ref="tree"  :data="treedata" show-checkbox node-key="id" :props="defaultProps" @node-click="treedataClick"  @check-change="treedataClick">
						</el-tree>
						<el-tree highlight-current class="bgc-f2f3f5" :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
		        	<div class="ui-col-0 pr15" style="min-width: 220px;border-right:1px solid #d7dce6;overflow-y:auto;position: relative;" :style="{ height: height + 'px' }">
						<template v-if="tabsId == 1">
							<el-tree class="bgc-f2f3f5" ref="tree"  :data="treedata" show-checkbox node-key="id" :props="defaultProps" @node-click="treedataClick"  @check-change="treedataClick">
							</el-tree>
						</template>
						<template v-if="tabsId == 2">
							<el-tree highlight-current class="bgc-f2f3f5" :data="detailInquire" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
						</template>
						<template v-if="tabsId == 3">
							<el-tree class="bgc-f2f3f5" ref="collectTree"  :data="collect" show-checkbox node-key="id" :props="defaultProps"   @check-change="collectClick" @check='collCheck'>
							</el-tree>
						</template>
						<div class="resetSelected" v-if="tabsId != 2"> <div @click="reset">重置已选</div>  </div>
		        	</div>
		        	<div class="ui-col-1 bgc-fff p20" style="min-width: 900px;">
						<div class="searchDiv">
@ -64,7 +105,7 @@
							<el-date-picker v-model="end" type="date" unlink-panels placeholder="结束日期" value-format="yyyy-MM-dd"  style="width:140px;"  :clearable="false" :picker-options="pickerOptions">
							</el-date-picker>
						</div>
						<div class="mt10 flex line1" v-if="handleNodeId==3">
						<div class="mt10 flex line1" v-if="handleNodeId==33">
							<div >咨询状态:</div>
							<el-radio-group v-model="radio1">
								<el-radio :label="1">已回复</el-radio>
@ -72,7 +113,7 @@
								<el-radio :label="2">未及时回复</el-radio>
							</el-radio-group>
						</div>
						<div v-if="handleNodeId==4" class="searchDiv">
						<div v-if="handleNodeId==34" class="searchDiv">
							<div class="mt10  flex line1" >
								<div >咨询状态:</div>
								<el-radio-group v-model="radio2">
@ -112,7 +153,7 @@
								</el-form>
							</div>
						</div>
						<div v-if="handleNodeId==5" class="searchDiv">
						<div v-if="handleNodeId==35" class="searchDiv">
							<div class="mt10 flex line1" >
								<div >下转状态:</div>
								<el-radio-group v-model="radio3">
@ -141,7 +182,7 @@
								</el-form>
							</div>
						</div>
						<div v-if="handleNodeId==6" class="searchDiv">
						<div v-if="handleNodeId==36" class="searchDiv">
							<div class="mt10 flex line1" >
								<div >发送状态:</div>
								<el-radio-group v-model="radio4">
@ -160,7 +201,7 @@
								</el-form>
							</div>
						</div>
						<div v-if="handleNodeId==7" class="searchDiv">
						<div v-if="handleNodeId==37" class="searchDiv">
							<div class="mt10 flex line1" >
								<div >工单状态:</div>
								<el-radio-group v-model="radio5">
@ -190,7 +231,7 @@
								</el-form>
							</div>
						</div>
						<div v-if="handleNodeId==8" class="searchDiv">
						<div v-if="handleNodeId==38" class="searchDiv">
							<div class="mt10 flex line1" >
								<div >续方状态:</div>
								<el-radio-group v-model="radio6">
@ -228,26 +269,119 @@
								</el-form>
							</div>
						</div>
						<div v-if="handleNodeId==39" class="searchDiv">
							<div class="mt10  flex" >
								<div >设备类型:</div>
								<el-radio-group v-model="facility">
									<el-radio :label="2">血压仪</el-radio>
									<el-radio :label="1">血糖仪</el-radio>
								</el-radio-group>
							</div>
							<div  style="height: 35px;" class="mt5">
								<el-form  :model="form6" class="flex">
									<el-form-item label="居民姓名:" class="flex">
										<el-input v-model="form6.resident"  placeholder="请输入居民姓名查询"></el-input>
									</el-form-item>
									<el-form-item label="医生姓名:" class="flex formLeft">
										<el-input v-model="form6.doctor"  placeholder="请输入医生姓名查询"></el-input>
									</el-form-item>
								</el-form>
							</div>
							<div class="mt10  flex" >
								<div >疾病类型:</div>
								<el-radio-group v-model="illness">
									<el-radio :label="4">高血压</el-radio>
									<el-radio :label="5">糖尿病</el-radio>
								</el-radio-group>
							</div>
						</div>
						<div v-if="handleNodeId==40" class="searchDiv">
							<div  style="height: 35px;" class="mt5">
								<el-form  :model="form7" class="flex">
									<el-form-item label="患者姓名:" class="flex">
										<el-input v-model="form7.resident"  placeholder="请输入患者姓名查询"></el-input>
									</el-form-item>
									<el-form-item label="预约医生:" class="flex formLeft">
										<el-input v-model="form7.doctorTwo"  placeholder="请输入预约医生姓名查询"></el-input>
									</el-form-item>
									<el-form-item label="签约医生:" class="flex formLeft">
										<el-input v-model="form7.doctorOne"  placeholder="请输入签约医生姓名查询"></el-input>
									</el-form-item>
									<el-form-item label="预约医院:" class="flex formLeft">
										<el-select v-model="form7.hospital" class='formWidth200' placeholder="请选择" @change='hospitalChange'>
											<el-option  v-for="(item,index) in hospitalData" :key="item.value"    :value="item.value" :label="item.label"></el-option>
										</el-select>
									</el-form-item>
									<el-form-item label="预约科室:" class="flex formLeft">
										<el-select v-model="form7.administrativeOffice" class='formWidth200' placeholder="请选择">
											<el-option  v-for="(item,index) in administrativeOffice" :key="item.value"    :value="item.value" :label="item.label"></el-option>
										</el-select>
									</el-form-item>
								</el-form>
							</div>
						</div>
						<div v-if="handleNodeId==41" class="searchDiv">
							<div  style="height: 35px;" class="mt5">
								<el-form  :model="form5" class="flex">
									<el-form-item label="微信是否关注:" class="flex">
										<el-select v-model="form8.renew" class='formWidth' placeholder="请选择">
											<el-option  v-for="(item,index) in options" :key="item.value"    :value="item.value" :label="item.label"></el-option>
										</el-select>
									</el-form-item>
								</el-form>
								
							</div>
						</div>
						<div v-if="collectCode==2" class="searchDiv">
							<div class="mt10  flex" >
								<div >设备类型:</div>
								<el-radio-group v-model="facilitySign">
									<el-radio :label="2">血压仪</el-radio>
									<el-radio :label="1">血糖仪</el-radio>
								</el-radio-group>
							</div>
						</div>
						<div v-if="collectCode==3" class="searchDiv">
							<div class="mt10 flex line1" >
								<div >工单状态:</div>
								<el-radio-group v-model="radio9">
									<el-radio :label="3">已接单</el-radio>
									<el-radio :label="2">待接单</el-radio>
									<el-radio :label="5">待评价</el-radio>
									<el-radio :label="4">待服务</el-radio>
									<el-radio :label="1">待派单</el-radio>
									<el-radio :label="-1">已取消</el-radio>
									<el-radio :label="6">已完成</el-radio>
								</el-radio-group>
							</div>
						</div>
						
		        		<div class="searchDiv mt10">
		        			<label class="c-333 c-f14" for="">数据范围:</label>
		        			<el-select v-model="rangeCode" style="width:100px;" class="pr10">
				                <el-option v-for="(item , index) in rangeList" :key="index" :label="item.name" :value="item.code"></el-option>
				            </el-select>
		        			<label class="c-333 c-f14" for="" v-if="initlevel == 4||initlevel == 3">地区:</label>
		        			<el-select v-model="areaCode" style="width:100px;" class="pr10" v-if="initlevel == 4||initlevel == 3">
		        			<label class="c-333 c-f14" for="" v-if="(initlevel == 4||initlevel == 3)&&rangeCode!='specHos'">地区:</label>
		        			<el-select v-model="areaCode" style="width:100px;" class="pr10" v-if="(initlevel == 4||initlevel == 3)&&rangeCode!='specHos'">
				                <el-option v-for="(item , index) in areaList" :key="index" :label="item.name" :value="item.code"></el-option>
				            </el-select>
		        			<label class="c-333 c-f14" for="" v-show="rangeCode!='town'">社区:</label>
		        			<el-select v-model="communityCode" style="width:200px;" class="pr10" v-show="rangeCode!='town'">
		        			<label class="c-333 c-f14" for="" v-show="rangeCode!='town'&&rangeCode!='specHos'">社区:</label>
		        			<el-select v-model="communityCode" style="width:200px;" class="pr10" v-show="rangeCode!='town'&&rangeCode!='specHos'">
				                <el-option v-for="(item , index) in communityList" :key="index" :label="item.name" :value="item.code"></el-option>
				            </el-select>
		        			<label class="c-333 c-f14" for="" v-show="rangeCode == 'team'">团队:</label>
		        			<el-select v-model="teamCode" style="width:150px;" class="pr10" v-show="rangeCode == 'team'">
				                <el-option v-for="(item , index) in teamList" :key="index" :label="item.name" :value="item.id"></el-option>
				            </el-select>
							
							<label class="c-333 c-f14" for="" v-show="rangeCode == 'specHos'">医院:</label>
							<el-select v-model="specHosName" style="width:150px;" class="pr10" v-show="rangeCode == 'specHos'">
							    <el-option v-for="(item , index) in specHosList" :key="index" :label="item.name" :value="item.code"></el-option>
							</el-select>
							
				            <el-button type="primary" size="mini" @click="searchHandle">查询</el-button>
				            <el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
							<span class="eliminate" @click="eliminateClick">清除筛选条件</span>
		        		</div>
			        	<div>
			        		<el-table border :data="tabledata" style="width: 100%" class="mt20" v-loading="isloading" v-if="handleNodeShow==1">
@ -259,7 +393,7 @@
			                    </el-table-column>
							</el-table>
							<div v-if="handleNodeShow==2">
								<el-table border :data="analyseData" style="width:100%" class="mt20" v-if="handleNodeId==3" v-loading="loadingTwo">
								<el-table border :data="analyseData" style="width:100%" class="mt20" v-if="handleNodeId==33" v-loading="loadingTwo">
									<el-table-column fixed  type="index" label="序号" width="50" min-width="50" align="center"></el-table-column>
									<el-table-column  prop="hospitalName" label="社区名称" align="center"></el-table-column>
									<el-table-column  prop="name" label="居民" align="center"></el-table-column>
@ -271,27 +405,27 @@
									<el-table-column  prop="healthDochor" label="健管师" align="center"></el-table-column>
									<el-table-column  prop="familyDoctor" label="家庭医生" align="center"></el-table-column>
								</el-table>
								<el-table border :data="analyseData" style="width: 100%" v-loading="loadingTwo" class="mt20" v-if="handleNodeId==4 || handleNodeId==5 || handleNodeId==6 || handleNodeId==7 || handleNodeId==8">
								<el-table border :data="analyseData" style="width: 100%" v-loading="loadingTwo" class="mt20" v-if="handleNodeId==34 || handleNodeId==35 || handleNodeId==36 || handleNodeId==37 || handleNodeId==38">
									<el-table-column fixed  type="index" label="序号" width="50" min-width="50" align="center"></el-table-column>
									<el-table-column  prop="hospitalName" label="社区名称" align="center"></el-table-column>
									
									<el-table-column  prop="name" label="居民" align="center" v-if="handleNodeId<=5 || handleNodeId==7 || handleNodeId==8"></el-table-column>
									<el-table-column  prop="patientName" label="居民" align="center" v-if="handleNodeId>=6 && handleNodeId!=7 && handleNodeId!=8"></el-table-column>
									<el-table-column  prop="name" label="居民" align="center" v-if="handleNodeId<=35 || handleNodeId==37 || handleNodeId==38"></el-table-column>
									<el-table-column  prop="patientName" label="居民" align="center" v-if="handleNodeId>=36 && handleNodeId!=37 && handleNodeId!=38"></el-table-column>
									
									<el-table-column  prop="sscNum" label="医保卡" align="center" v-if="handleNodeId<=5"></el-table-column>
									<el-table-column  prop="ssc" label="医保卡" align="center" v-if="handleNodeId>=6"></el-table-column>
									<el-table-column  prop="sscNum" label="医保卡" align="center" v-if="handleNodeId<=35"></el-table-column>
									<el-table-column  prop="ssc" label="医保卡" align="center" v-if="handleNodeId>=36"></el-table-column>
									
									<el-table-column  prop="idcardNum" label="身份证" align="center" v-if="handleNodeId<=5"></el-table-column>
									<el-table-column  prop="idcard" label="身份证" align="center" v-if="handleNodeId>=6"></el-table-column>
									<el-table-column  prop="idcardNum" label="身份证" align="center" v-if="handleNodeId<=35"></el-table-column>
									<el-table-column  prop="idcard" label="身份证" align="center" v-if="handleNodeId>=36"></el-table-column>
									
									<el-table-column  prop="mobile" label="手机号" align="center"></el-table-column>
									<el-table-column  prop="address" label="地址" align="center"></el-table-column>  
									<el-table-column  prop="doctorName" label="签约医生" align="center" v-if="handleNodeId!=8"></el-table-column>
									<el-table-column  prop="signDoctor" label="签约医生" align="center" v-if="handleNodeId==8"></el-table-column>
									<el-table-column  prop="doctorHealthName" label="健管师" align="center" v-if="handleNodeId==6"></el-table-column>
									<el-table-column  prop="doctorHealth" label="健管师" align="center" v-if="handleNodeId==7 || handleNodeId==8"></el-table-column>
									<el-table-column  prop="healthDocorName" label="健管师" align="center" v-if="handleNodeId==4 || handleNodeId==5"></el-table-column>
									<template v-if="handleNodeId==4">
									<el-table-column  prop="doctorName" label="签约医生" align="center" v-if="handleNodeId!=38"></el-table-column>
									<el-table-column  prop="signDoctor" label="签约医生" align="center" v-if="handleNodeId==38"></el-table-column>
									<el-table-column  prop="doctorHealthName" label="健管师" align="center" v-if="handleNodeId==36"></el-table-column>
									<el-table-column  prop="doctorHealth" label="健管师" align="center" v-if="handleNodeId==37 || handleNodeId==38"></el-table-column>
									<el-table-column  prop="healthDocorName" label="健管师" align="center" v-if="handleNodeId==34 || handleNodeId==35"></el-table-column>
									<template v-if="handleNodeId==34">
										<el-table-column  prop="replyTime" label="签约时间" align="center"></el-table-column>
										<el-table-column  prop="serverTypeName" label="人群" align="center"></el-table-column>
										<el-table-column  prop="isUpdateStr" label="改签" align="center"></el-table-column>
@ -299,7 +433,7 @@
										<el-table-column  prop="isOutStr" label="退签" align="center"></el-table-column>
										<el-table-column  prop="isBindWX" label="绑定微信" align="center"></el-table-column>
									</template>
									<template v-if="handleNodeId==5">
									<template v-if="handleNodeId==35">
										<el-table-column  prop="createTime" label="下转时间" align="center"></el-table-column>
										<el-table-column  prop="statusStr" label="下转状态" align="center"></el-table-column>
										<el-table-column  prop="specialistName" label="专科医生" align="center"></el-table-column>
@ -308,12 +442,12 @@
										<el-table-column  prop="isManagerStr" label="是否管理" align="center"></el-table-column>
										<el-table-column  prop="managerTime" label="管理时间" align="center"></el-table-column>
									</template>
									<template v-if="handleNodeId==6">
									<template v-if="handleNodeId==36">
										<el-table-column  prop="createTime" label="祝福时间" align="center"></el-table-column>
										<el-table-column  prop="status" label="发送状态" align="center"></el-table-column>
										<el-table-column  prop="sendDoctorName" label="发送人" align="center"></el-table-column>
									</template>
									<template v-if="handleNodeId==7">
									<template v-if="handleNodeId==37">
										<el-table-column  prop="serverDoctor" label="服务医生" align="center"></el-table-column>
										<el-table-column  prop="statusName" label="工单状态" align="center"></el-table-column>
										<el-table-column  prop="typeValue" label="服务类型" align="center"></el-table-column>
@ -322,7 +456,7 @@
										<el-table-column  prop="dispatcher_name" label="调度员" align="center"></el-table-column>
										<el-table-column  prop="serviceTimes" label="服务次数" align="center"></el-table-column>
									</template>
									<template v-if="handleNodeId==8">
									<template v-if="handleNodeId==38">
										<el-table-column  prop="serverDoctor" label="服务医生" align="center"></el-table-column>
										<el-table-column  prop="statusName" label="状态" align="center"></el-table-column>
										<el-table-column  prop="diagnosisName" label="疾病类型" align="center"></el-table-column>
@ -332,7 +466,68 @@
										<el-table-column  prop="finish_time" label="取药时间" align="center"></el-table-column>
									</template>
								</el-table>
								 
								<el-table v-if="handleNodeId==39" border :data="getHealthData" style="width: 100%" v-loading="loadingTwo" class="mt20" >
									<template >
										<el-table-column  type="index" label="序号" align="center"></el-table-column>
										<el-table-column  prop="hospitalName" label="社区名称" align="center"></el-table-column>
										<el-table-column  prop="name" label="居民姓名" align="center"></el-table-column>
										<el-table-column  prop="mobile" label="手机号码" align="center"></el-table-column>
										<el-table-column  prop="address" label="地址" align="center"></el-table-column>
										<el-table-column  prop="doctorName" label="医生姓名" align="center"></el-table-column>
										<el-table-column  prop="deviceName" label="设备名称" align="center"></el-table-column>
										<el-table-column  prop="deviceSN" label="设备SN码" align="center"></el-table-column>
										<el-table-column  prop="deviceSim" label="SIM卡号码" align="center"></el-table-column>
										<el-table-column  prop="createTime" label="创建时间" align="center"></el-table-column>
										<el-table-column  prop="uploadTimes" label="上传次数" align="center"></el-table-column>
										<el-table-column  prop="errorTimes" label="异常体征次数" align="center"></el-table-column>
										<el-table-column  prop="errorIntervene" label="干预体征次数" align="center"></el-table-column>
										<el-table-column  prop="serviceTypeName" label="疾病类型(高血压/糖尿病)" align="center"></el-table-column>
									</template>
								</el-table>
								<el-table v-if="handleNodeId==40" border :data="reservationData" style="width: 100%" v-loading="loadingTwo" class="mt20" >
									<template >
										<el-table-column  type="index" label="序号" align="center"></el-table-column>
										<el-table-column  prop="name" label="患者姓名" align="center"></el-table-column>
										<el-table-column  prop="age" label="年龄" align="center"></el-table-column>
										<el-table-column  prop="sex" label="性别" align="center"></el-table-column>
										<el-table-column  prop="signDoctorName" label="签约医生" align="center"></el-table-column>
										<el-table-column  prop="mobile" label="患者手机号码" align="center"></el-table-column>
										<el-table-column  prop="reservationHospitalName" label="预约医院" align="center"></el-table-column>
										<el-table-column  prop="reservationDoctorName" label="预约医生" align="center"></el-table-column>
										<el-table-column  prop="deptName" label="预约科室" align="center"></el-table-column>
										<el-table-column  prop="reservationTime" label="预约时间" align="center"></el-table-column>
									</template>
								</el-table>
								<el-table v-if="handleNodeId==41" border :data="wexinBindingData" style="width: 100%" v-loading="loadingTwo" class="mt20" >
									<template >
										<el-table-column  type="index" label="序号" align="center"></el-table-column>
										<el-table-column  prop="name" label="居民姓名" align="center"></el-table-column>
										<el-table-column  prop="mobile" label="手机号码" align="center"></el-table-column>
										<el-table-column  prop="birthday" label="出生日期" align="center"></el-table-column>
										<el-table-column  prop="sex" label="性别" align="center"></el-table-column>
										<el-table-column  prop="doctorName" label="全科医生" align="center"></el-table-column>
										<el-table-column  prop="doctorHealthName" label="健管师" align="center"></el-table-column>
										<el-table-column  prop="hospitalName" label="社区医院" align="center"></el-table-column>
										<el-table-column  prop="sick_village_name" label="居委会" align="center"></el-table-column>
										<el-table-column  prop="address" label="住址" align="center"></el-table-column>
										<el-table-column  prop="apply_date" label="签约时间" align="center"></el-table-column>
										<el-table-column  prop="bindingState" label="是否关注" align="center"></el-table-column>
									</template>
								</el-table>
							</div>
							<div v-if="handleNodeShow == 3">
								<el-table v-if="collectCode == 1" border :data="diseaseReport" style="width: 100%" v-loading="loadingTwo" class="mt20" >
									<el-table-column v-if='diseaseReport.length!=0' type="index" label="序号" align="center"></el-table-column>
									<el-table-column v-for='(item,index) in diseaseColumn'  :prop="item"  :label='diseaseHeader[index]' align="center"></el-table-column>
								</el-table>
								<el-table v-if="collectCode == 2" border :data="getDeviceReport" style="width: 100%" v-loading="loadingTwo" class="mt20" >
									<el-table-column v-if='getDeviceReport.length!=0' type="index" label="序号" align="center"></el-table-column>
									<el-table-column v-for='(item,index) in getDeviceColumn'  :prop="item"  :label='getDeviceHeader[index]' align="center"></el-table-column>
								</el-table>
								<el-table v-if="collectCode == 3" border :data="getDoorReport" style="width: 100%" v-loading="loadingTwo" class="mt20" >
									<el-table-column v-if='getDoorReport.length!=0' type="index" label="序号" align="center"></el-table-column>
									<el-table-column v-for='(item,index) in getDoorColumn'  :prop="item"  :label='getDoorHeader[index]' align="center"></el-table-column>
								</el-table>
							</div>
							<div class="c-t-right mt20">
								<el-pagination 

+ 44 - 40
app/statistics/js/annual-appraisal-report.js

@ -75,51 +75,61 @@ new Vue({
		vm.listFunction()
	},
	methods: {
		listFunction:function(){
		rangeCodeChange:function() {
			
		},
		parameter:function() {
			var vm = this
			vm.isloading = true
			statisticAPI.getAnnualAssessment({
			var time = vm.beforeReq()
			var v = {
				signYear:vm.chooseYear,
				team:vm.teamCode,
				startDate:time.start,
				endDate:time.end,
				area:vm.areaCode=="350200"?"":vm.areaCode,
				hospital:vm.communityCode,
				range:vm.rangeCode,
			}).then(function(res){
				console.log(res,"年度考核报表")
			}
			return v
		},
		listFunction:function(){
			var vm = this
			vm.isloading = true
			statisticAPI.getAnnualAssessment(vm.parameter()).then(function(res){
				// console.log(res,"年度考核报表")
				if(res.status == 200) {
					vm.tabledata = res.data
					vm.isloading = false
				}else{
					toastr.error(res.msg)
					vm.isloading = false
				}
			})
		},
		// beforeReq:function(flag){
		// 	var vm=this,startDate="",endDate=""
		// 	if(vm.radio=="1"){
		// 		startDate = getStartDate(vm.chooseYear-1)
		// 		endDate = getEndDate(vm.chooseYear)
		// 	}else{
		// 		if(!vm.start&&!vm.end){
		// 			this.$message({
		// 	          message: '请选择创建时间',
		// 	          type: 'warning'
		// 	        });
		// 	        return false
		// 		}else{
		// 			if(vm.start>vm.end){
		// 				this.$message({
		// 		          message: '开始时间应早于结束时间',
		// 		          type: 'warning'
		// 		        });
		// 		        return false
		// 			}else{
		// 				startDate = vm.start
		// 				endDate = vm.end
		// 			}
		// 		}
		// 	}
		// 	return {start:startDate,end:endDate}
		// },
		beforeReq:function(flag){
			var vm=this,startDate="",endDate=""
			if(vm.radio=="2"){
				if(!vm.start&&!vm.end){
					this.$message({
			          message: '请选择创建时间',
			          type: 'warning'
			        });
			        return false
				}else{
					if(vm.start>vm.end){
						this.$message({
				          message: '开始时间应早于结束时间',
				          type: 'warning'
				        });
				        return false
					}else{
						startDate = vm.start
						endDate = vm.end
					}
				}
			}
			return {start:startDate,end:endDate}
		},
		searchHandle:function(){
			
			var vm = this
@ -164,13 +174,7 @@ new Vue({
			var areaCode = vm.areaCode=="350200"?"":vm.areaCode
			vm.fullscreenLoading = true
			if(vm.datatotal.length!=0){
				statisticAPI.statisticsExportExportAnnualAssessment({
					signYear: vm.chooseYear,
					area: areaCode,
					hospital: vm.communityCode,
					range:vm.rangeCode,
					team: vm.teamCode,
				},"年度考核报表.xls").then(function(res){
				statisticAPI.statisticsExportExportAnnualAssessment(vm.parameter(),"年度考核报表.xls").then(function(res){
					vm.fullscreenLoading = false
					// var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
					// FileSaver.saveAs(blob, "hello world.txt");

+ 670 - 101
app/statistics/js/comprehensive-query.js

@ -47,15 +47,18 @@ new Vue({
       	communityCode:"",
       	teamList:[{code:"",name:"全部"}],
       	teamCode:"",
		data: [{
		detailInquire: [{
		  label: '明细查询',
		  children: [
			  {label: '咨询分析', },
			  {label: '签约分析', },
			  {label: '专病分析', },
			  {label: '生日祝福分析', },
			  {label: '上门服务分析', },
			  {label: '长处方分析', },
			  {label: '咨询分析', id:'33'},
			  {label: '签约分析', id:'34'},
			  {label: '专病分析', id:'35'},
			  {label: '生日祝福分析', id:'36'},
			  {label: '上门服务分析', id:'37'},
			  {label: '长处方分析', id:'38'},
			  {label: '体征数据分析', id:'39'},
			  {label: '上转预约明细', id:'40'},
			  {label: '微信绑定明细', id:'41'},
			]
		}],
		handleNodeShow:1,
@ -68,6 +71,7 @@ new Vue({
		radio6:'',
		radio7:'',
		radio8:'',
		radio9:'',
		cities:[{value:'高血压',num:'4'}, 
				{value:'糖尿病',num:'5'},
				{value:'65岁以上人群',num:'3'},
@ -93,9 +97,6 @@ new Vue({
		],
		serveSpecialCities:[],
		options: [{
		  value: '请选择',
		  label: ''
		}, {
		  value: '1',
		  label: '是'
		}, {
@ -138,6 +139,80 @@ new Vue({
		serviceTypeDataType:'',
		fullscreenLoading:false,
		derive:'',
		tabsList:[
			{id:'1',text:'综合查询',show:true},
			{id:'2',text:'明细查询',show:false},
			{id:'3',text:'汇总数据',show:false},
		],
		tabsId:'1',
		facility:'',    //体征数据分析  - 设备类型
		illness:'',    //体征数据分析  - 疾病类型
		form6:{
			resident:'',
			doctor:'',
		},
		form7:{
			resident:'',
			doctorOne:'',
			hospital:'',
			doctorTwo:'',
			administrativeOffice:'',
		},
		getHealthData:[],
		form8:{
			renew:'',
		},
		reservationData:[],
		wexinBindingData:[],
		hospitalData:[],
		administrativeOffice:[],
		collect:[
			{
				id: "kfxzrs,kfxzrc,szrs,szrc",
				label: "专病汇总",
				code:'1',
				children:[
					{id: "kfxzrs",label:'康复下转人数',code:'1',},
					{id: "kfxzrc",label:'康复下转人次',code:'1',},
					{id: "szrs",label:'上转人数',code:'1',},
					{id: "szrc",label:'上转人数',code:'1',},
				],
			},
			{
				id: "scsbs,scrc,yctzrc,gyrc",
				label: "体征数据汇总",
				code:'2',
				children:[
					{id: "scsbs",label:'上传设备数',code:'2'},
					{id: "scrc",label:'上传人次',code:'2'},
					{id: "yctzrc",label:'异常体征人次',code:'2'},
					{id: "gyrc",label:'干预人次',code:'2'},
				],
			},
			{
				id: "fwgd",
				label: "上门服务汇总",
				code:'3',
				children:[
					{id: "fwgd",label:'服务工单',code:'3'}
				],
			},
		],
		specHosName:'',
		specHosList:[],
		collectCode:'',
		diseaseReport:[],
		diseaseColumn:[],
		diseaseHeader:[],
		facilitySign:'',
		getDeviceReport:[],
		getDeviceColumn:[],	
		getDeviceHeader:[],
		getDoorReport:[],
		getDoorColumn:[],
		getDoorHeader:[],
		
		isCheck: false,
	},
	components: {
		vuedals: Vuedals.Component
@ -168,10 +243,129 @@ new Vue({
		vm.height = document.body.offsetHeight - 85
		window.onresize = function () {
			vm.height = document.body.offsetHeight - 85
			console.log(vm.height)
		}
	},
	methods: {
		reset:function() {
			if(this.tabsId == 1) {
				this.getTreeList()
			}else{
				this.collect = [
					{
						id: "kfxzrs,kfxzrc,szrs,szrc",
						label: "专病汇总",
						code:'1',
						children:[
							{id: "kfxzrs",label:'康复下转人数',code:'1'},
							{id: "kfxzrc",label:'康复下转人次',code:'1'},
							{id: "szrs",label:'下转人数',code:'1'},
							{id: "szrc",label:'下转人数',code:'1'},
						],
					},
					{
						id: "scsbs,scrc,yctzrc,gyrc",
						label: "体征数据汇总",
						code:'2',
						children:[
							{id: "scsbs",label:'上传设备数',code:'2'},
							{id: "scrc",label:'上传人次',code:'2'},
							{id: "yctzrc",label:'异常体征人次',code:'2'},
							{id: "gyrc",label:'干预人次',code:'2'},
						],
					},
					{
						id: "fwgd",
						label: "上门服务汇总",
						code:'3',
						children:[
							{id: "fwgd",label:'服务工单',code:'3'}
						],
					},
				]
			}
		},
		// 清除
		eliminateClick:function() {
			this.radio = '1'
			this.radio1 = ''
			this.radio2 = ''
			this.radio3 = ''
			this.radio4 = ''
			this.radio5 = ''
			this.radio6 = ''
			this.radio7 = ''
			this.radio8 = ''
			this.radio9 = ''
			this.form = {
				endorseTheTicket:'',
				renew:'',
				backToSign:'',
				WeChat:'',
			}
			this.form2 = {
				juniorCollege:'',
				family:'',
				resident:'',
			}
			this.form3 = {
				family:'',
				resident:'',
			}
			this.form4 = {
				family:'',
				resident:'',
			}
			this.form5 = {
				family:'',
				resident:'',
			}
			this.facility = ''    //体征数据分析  - 设备类型
			this.illness = ''    //体征数据分析  - 疾病类型
			this.form6 = {
				resident:'',
				doctor:'',
			}
			this.form7 = {
				resident:'',
				doctorOne:'',
				hospital:'',
				doctorTwo:'',
				administrativeOffice:'',
			}
			this.form8 = {
				renew : ''
			}
			this.facilitySign = ''
			initData(this)
			// initTime(this)
			// initScope(this)
			
		},
		tabsClick:function(item) {
			var vm = this
			vm.tabsId = item.id
			vm.tabsList.forEach(function(res){
				if(res.id == item.id) {
					res.show = true
				}else{
					res.show = false
				}
			})
			vm.eliminateClick()
		},
		// 获取汇总数据的专科医院
		specHosData:function() {
			var vm = this
			statisticAPI.getSpecialHospital().then(function(res){
				if(res.status == 200) {
					res.data.forEach(function(item){
						vm.specHosList.push(
							{code:item.code,name:item.name}
						)
					})
				}
			})
		},
		getDiseaseTypeList:function() {
			var vm = this
			statisticAPI.getDiseaseTypeList({}).then(function(res){
@ -197,7 +391,7 @@ new Vue({
		},
		
		
		// 统计分析树形图
		// 综合析树形图
		treedataClick:function(name,data) {
			var vm = this
			vm.handleNodeShow = 1
@ -207,16 +401,54 @@ new Vue({
			// initTime(vm)    
			// initScope(vm)
		},
		// 点击明细分析树形图
		// 汇总树形图
		collectClick:function(data,isCheck) {
			var vm = this
			vm.derive = data.label
			vm.handleNodeShow = 3
			vm.currentPage = 1
			vm.radio = '1'    //签约年度  --创建时间
			vm.isCheck = isCheck
		},
		collCheck:function(data,name) {
			// console.log(arguments)
			var vm = this
			vm.collect.forEach(function(item){
				item.children.forEach(function(o) {
					if(o.code != data.code) {
						vm.$refs.collectTree.setChecked(o, false, true)
					}
				})
				if(data.id == item.id) {
					vm.$refs.collectTree.setChecked(item, vm.isCheck, true)
				} else {
					item.children.forEach(function(o) {
						if(data.id == o.id) {
							vm.$refs.collectTree.setChecked(o, vm.isCheck, true)
						}
					})
				}
			})
			
			vm.handleNodeId = 'huizongshuju'
			vm.collectCode = data.code
			if(data.code == 1) {
				vm.rangeList=[{name:"按区",code:"town"},{name:"按社区",code:"hospital"},{name:"按团队",code:"team"},{name:"按专科医院",code:"specHos"}]
				vm.specHosData()
			}else{
				vm.rangeList=[{name:"按区",code:"town"},{name:"按社区",code:"hospital"},{name:"按团队",code:"team"}]
			}
		},
		// 点击明细查询树形图
		handleNodeClick:function(name,data) {
			var vm = this
			vm.derive = name.label
			if(data.id>=3) {      //明细查询以下
			if(data.id>=33) {      //明细查询以下
				vm.handleNodeShow = 2  //  明细查询tabs为2
				vm.tableHeader = []    //  选择统计的数组
				vm.analyseData = []    //  明细查询数组
			}
			vm.handleNodeId = data.id    //切换后的id
			vm.handleNodeId = data.data.id    //切换后的id
			vm.radio = '1'        //签约年度  --创建时间
			vm.radio1 = ''      //咨询分析咨询状态
			vm.radio2 = ''
@ -258,6 +490,73 @@ new Vue({
			
			vm.analysFunction(vm.handleNodeId)    //明细查询列表查询 
		},
		analysFunction:function(id) {
			var vm = this
			// idcard =  idcard.replace(/^(.{6})(?:\d+)(.{4})$/,"$1****$2")    身份证 医保卡 脱敏显示
			
			if(id == 33) {
				// 咨询分析
				vm.getConsultList()
			}else if(id == 34) {
				// 签约分析
				vm.getSignList()
			}else if(id == 35) {
				// 专病分析
				vm.getSickList()
			}else if(id == 36) {
				// 生日祝福分析
				vm.getBirthdayPatientList()
			}else if(id == 37) {
				// 上门服务分析
				vm.getDoorServiceList()
			}else if(id == 38) {
				// 长处方分析
				vm.getPrescriptionList()
			}else if(id == 39) {
				// 体征数据
				vm.physicalSignData()
			}else if(id == 40) {
				// 上转预约
				vm.upTransferAppointment()
			}else if(id == 41) {
				// 微信绑定
				vm.wechatBinding()
			}
		},
		// 下转预约获取医生,科室
		getReservationHosAndDept:function(data) {
			var vm = this
			statisticAPI.getReservationHosAndDept({
				hospital:data?data:'',
				type:data?'2':'',
			}).then(function(res){
				if(res.status == 200) {
					if(data) {
						vm.administrativeOffice = []
						res.data.forEach(function(item){
							vm.administrativeOffice.push({
								value: item.code,
								label: item.name
							})
						})
					}else{
						vm.hospitalData = []
						res.data.forEach(function(item){
							vm.hospitalData.push({
								value: item.code,
								label: item.name
							})
						})
					}
				}
			})
		},
		hospitalChange:function(data) {
			var vm = this
			vm.getReservationHosAndDept(data)
		},
		
		
		// 咨询分析
		getConsultList:function() {
			var vm = this
@ -483,34 +782,226 @@ new Vue({
				}
			})
		},
		analysFunction:function(id) {
		//体征数据分析传参
		getHealthParameter:function() {
			var vm = this
			// idcard =  idcard.replace(/^(.{6})(?:\d+)(.{4})$/,"$1****$2")    身份证 医保卡 脱敏显示
			
			if(id == 3) {
				// 咨询分析
				vm.getConsultList()
			}else if(id == 4) {
				// 签约分析
				vm.getSignList()
			}else if(id == 5) {
				// 专病分析
				vm.getSickList()
			}else if(id == 6) {
				// 生日祝福分析
				vm.getBirthdayPatientList()
			}else if(id == 7) {
				// 上门服务分析
				vm.getDoorServiceList()
			}else if(id == 8) {
				// 长处方分析
				vm.getPrescriptionList()
			return {
				signYear :vm.radio=='1'?vm.chooseYear:'',     //签约年度
				team :vm.teamCode,     //团队
				area :vm.areaCode=='350200'?'':vm.areaCode,   //地区
				hospital :vm.communityCode, //社区
				range :vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				startDate :vm.radio=='2'?vm.searchJsonTime.start:'',   //开始时间
				endDate :vm.radio=='2'?vm.searchJsonTime.end:'',    //结束时间
				name:vm.form6.resident,   // 居民姓名
				category :vm.facility,   //设备类型
				doctorName:vm.form6.doctor,  //医生姓名
				serverType:vm.illness,  //签约疾病类型
				pageSize:vm.currentSize,
				page:vm.currentPage,
				
				
			}
		},
		//体征数据分析
		physicalSignData:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.getHealthList(vm.getHealthParameter()).then(function(res){
				if(res.status == 200) {
					// console.log(res,"体征数据")
					vm.getHealthData = res.data.detailModelList
					vm.datatotal = res.data.total
					vm.loadingTwo = false
				}
				if(res.status == -1) {
					vm.loadingTwo = false
					vm.$message.error(res.msg)
				}
			})
		},
		//上转预约传参
		reservationParameter:function() {
			var vm = this
			return {
				signYear :vm.radio=='1'?vm.chooseYear:'',     //签约年度
				team :vm.teamCode,     //团队
				area :vm.areaCode=='350200'?'':vm.areaCode,   //地区
				hospital :vm.communityCode, //社区
				range :vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				startDate :vm.radio=='2'?vm.searchJsonTime.start:'',   //开始时间
				endDate :vm.radio=='2'?vm.searchJsonTime.end:'',    //结束时间
				name:vm.form7.resident,   // 居民姓名
				doctorName:vm.form7.doctorOne,  //签约医生姓名
				reservationHospital:vm.form7.hospital,   //签约医院
				reservationDept:vm.form7.administrativeOffice,     //预约科室
				reservationDoctorName:vm.form7.doctorTwo,  //预约医生
				pageSize:vm.currentSize,
				page:vm.currentPage,
				
				
			}
		},
		// 上转预约
		upTransferAppointment:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.getDoctorReservationList(vm.reservationParameter()).then(function(res){
				if(res.status == 200) {
					// console.log(res,"上转预约")
					vm.reservationData = res.data.detailModelList
					vm.datatotal = res.data.total
					vm.loadingTwo = false
					vm.getReservationHosAndDept()
				}
				if(res.status == -1) {
					vm.loadingTwo = false
					vm.$message.error(res.msg)
				}
			})
		},
		//微信绑定传参
		wexinBindingParameter:function() {
			var vm = this
			return {
				signYear :vm.radio=='1'?vm.chooseYear:'',     //签约年度
				team :vm.teamCode,     //团队
				area :vm.areaCode=='350200'?'':vm.areaCode,   //地区
				hospital :vm.communityCode, //社区
				range :vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				startDate :vm.radio=='2'?vm.searchJsonTime.start:'',   //开始时间
				endDate :vm.radio=='2'?vm.searchJsonTime.end:'',    //结束时间
				binging:vm.form8.renew,   //是否绑定微信
				pageSize:vm.currentSize,
				page:vm.currentPage,
				
			}
		},
		// 微信绑定
		wechatBinding:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.getWexinBindingList(vm.wexinBindingParameter()).then(function(res){
				if(res.status == 200) {
					// console.log(res,"微信绑定")
					res.data.detailModelList.forEach(function(res){
						res.sex = res.sex==1?'男':'女'
						res.apply_date = new Date(res.apply_date).format('yyyy-MM-dd HH:mm:ss')
					})
					vm.wexinBindingData = res.data.detailModelList
					vm.datatotal = res.data.total
					vm.loadingTwo = false
				}
				if(res.status == -1) {
					vm.loadingTwo = false
					vm.$message.error(res.msg)
				}
			})
		},
		//专病汇总传参
		getSpecialParameter:function() {
			var vm = this
			var parameter = {
				signYear:vm.radio=='1'?vm.chooseYear:'',     //签约年度
				team:vm.teamCode,     //团队
				area:vm.areaCode=='350200'?'':vm.areaCode,   //地区
				hospital :vm.specHosName?vm.specHosName:vm.communityCode, //专病医院
				range:vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				startDate:vm.radio=='2'?vm.searchJsonTime.start:'',   //开始时间
				endDate:vm.radio=='2'?vm.searchJsonTime.end:'',    //结束时间
				menu:vm.beforeReq().checked,
				// pageSize:vm.currentSize,
				// page:vm.currentPage,
			}
			return parameter
		},
		// 专病汇总
		getSpecialDiseaseReport:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.getSpecialDiseaseReport(vm.getSpecialParameter()).then(function(res){
				if(res.status == 200) {
					vm.loadingTwo = false
					vm.diseaseReport = res.data.list
					vm.diseaseColumn = res.data.column	
					vm.diseaseHeader = res.data.header
				}
			})
		},
		
		
		//体征分析传参
		getDeviceParameter:function() {
			var  vm = this
			var parameter = {
				signYear:vm.radio=='1'?vm.chooseYear:'',     //签约年度
				team:vm.teamCode,     //团队
				area:vm.areaCode=='350200'?'':vm.areaCode,   //地区
				hospital :vm.communityCode, //医院
				range:vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				startDate:vm.radio=='2'?vm.searchJsonTime.start:'',   //开始时间
				endDate:vm.radio=='2'?vm.searchJsonTime.end:'',    //结束时间
				category:vm.facilitySign,
				menu:vm.beforeReq().checked,
				// pageSize:vm.currentSize,
				// page:vm.currentPage,
			}
			return parameter
		},
		
		// 体征分析数据
		getDeviceHealthReport:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.getDeviceHealthReport(vm.getDeviceParameter()).then(function(res){
				if(res.status == 200) {
					vm.loadingTwo = false
					// console.log(res,"sss")
					vm.getDeviceReport = res.data.list
					vm.getDeviceColumn = res.data.column	
					vm.getDeviceHeader = res.data.header
				}
			})
		},
		//上门汇总传参
		getDoorParameter:function() {
			var  vm = this
			var parameter = {
				signYear:vm.radio=='1'?vm.chooseYear:'',     //签约年度
				team:vm.teamCode,     //团队
				area:vm.areaCode=='350200'?'':vm.areaCode,   //地区
				hospital :vm.communityCode, //医院
				status:vm.radio9,
				range:vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				startDate:vm.radio=='2'?vm.searchJsonTime.start:'',   //开始时间
				endDate:vm.radio=='2'?vm.searchJsonTime.end:'',    //结束时间
				menu:vm.beforeReq().checked,
				// pageSize:vm.currentSize,
				// page:vm.currentPage,
			}
			return parameter
		},
		// 上门汇总
		getDoorServerOrderReport:function() {
			var vm = this
			vm.loadingTwo = true
			statisticAPI.getDoorServerOrderReport(vm.getDoorParameter()).then(function(res){
				if(res.status == 200) {
					vm.loadingTwo = false
					// console.log(res,"sss")
					vm.getDoorReport = res.data.list
					vm.getDoorColumn = res.data.column	
					vm.getDoorHeader = res.data.header
				}
			})
		},
		
		
		getTreeList:function(){
			var vm=this
			statisticAPI.exportTreeList({rang:vm.rangeCode}).then(function(res){
				if(res.status == 200){
					// console.log(res,"Sddd")
					vm.treedata = [],jindex=0
					_.each(res.data,function(item,index){
						vm.treedata.push({
@ -528,6 +1019,7 @@ new Vue({
					})
				}
			})
			
		},
		beforeReq:function(flag){
			var vm=this,startDate="",endDate="",checked=[]
@ -564,8 +1056,13 @@ new Vue({
					}
				}
			}
			if(vm.handleNodeId == 0) {
				var checkTree = vm.$refs.tree.getCheckedNodes(true);
			if(vm.handleNodeId == 0 || vm.handleNodeId == 'huizongshuju') {
				var checkTree
				if(vm.handleNodeId == 0) {
					checkTree = vm.$refs.tree.getCheckedNodes(true);
				}else{
					checkTree = vm.$refs.collectTree.getCheckedNodes(true);
				}
				if(checkTree.length){
					if(!flag){
						vm.tableHeader = []
@ -590,10 +1087,12 @@ new Vue({
				});
				return false
			}
			
			return {start:startDate,end:endDate,checked:checked.join(",")}
		},
		// 查询
		searchHandle:function(){
			// console.log(this.beforeReq())
			var vm = this
			vm.searchJsonTime = vm.beforeReq()
			vm.currentPage = 1
@ -614,24 +1113,42 @@ new Vue({
					}
					vm.getStatisticDataList()
				}
			}else if(vm.handleNodeId == 3) {
			}else if(vm.handleNodeId == 33) {
				// 咨询分析
				vm.getConsultList()
			}else if(vm.handleNodeId == 4) {
			}else if(vm.handleNodeId == 34) {
				// 签约分析
				vm.getSignList()
			}else if(vm.handleNodeId == 5) {
			}else if(vm.handleNodeId == 35) {
				// 专病分析
				vm.getSickList()
			}else if(vm.handleNodeId == 6) {
			}else if(vm.handleNodeId == 36) {
				// 生日祝福分析
				vm.getBirthdayPatientList()
			}else if(vm.handleNodeId == 7) {
			}else if(vm.handleNodeId == 37) {
				// 上门服务分析
				vm.getDoorServiceList()
			}else if(vm.handleNodeId == 8) {
			}else if(vm.handleNodeId == 38) {
				// 长处方分析
				vm.getPrescriptionList()
			}else if(vm.handleNodeId == 39) {
				// 体征数据
				vm.physicalSignData()
			}else if(vm.handleNodeId == 40) {
				// 上转预约
				vm.upTransferAppointment()
			}else if(vm.handleNodeId == 41) {
				// 微信绑定
				vm.wechatBinding()
			}else if(vm.collectCode == 1) {
				// 专病汇总
				vm.getSpecialDiseaseReport()
			}else if(vm.collectCode == 2) {
				// 体征数据汇总
				vm.getDeviceHealthReport()
			}else if(vm.collectCode == 3) {
				// 上门服务汇总
				vm.getDoorServerOrderReport()
			}
		},
		getStatisticDataList:function(){
@ -697,7 +1214,7 @@ new Vue({
					// let str = httpRequest.server + 'statisticsExport/export?startDate='+searchJson.start+'&endDate='+searchJson.end+'&quotaStr='+searchJson.checked+'&range='+vm.rangeCode+'&area='+areaCode+'&hospital='+vm.communityCode+'&team='+vm.teamCode+'&timeLevel='+vm.timeLevel
					// window.location.href = str
				}
			}else if(vm.handleNodeId == 3) {
			}else if(vm.handleNodeId == 33) {
				// 咨询分析
				if(vm.analyseData.length!=0) {
					statisticAPI.statisticsExportExportConsultList({
@ -724,9 +1241,9 @@ new Vue({
					// var str = httpRequest.server + 'statisticsExport/exportConsultList?year='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
					// '&status='+vm.radio1+'&area='+areaCode+'&hospital='+vm.communityCode+'&rang='+vm.rangeCode+'&team='+vm.teamCode
					// window.location.href = str
				}
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 4) {
			}else if(vm.handleNodeId == 34) {
				// 签约分析
				if(vm.analyseData.length!=0) {
					statisticAPI.statisticsExportExportSignList({
@ -745,23 +1262,15 @@ new Vue({
						team: vm.teamCode,
					},vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
						// var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
						// FileSaver.saveAs(blob, "hello world.txt");
						// FileSaver()
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					
					// var str = httpRequest.server + 'statisticsExport/exportSignList?year='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
					// '&serverType='+vm.serverType+'&status='+vm.radio2+'&isUpdate='+vm.form.endorseTheTicket+'&isAdd='+vm.form.renew+'&isOut='+vm.form.backToSign+'&isBindWX='+vm.form.WeChat+
					// '&area='+areaCode+'&hospital='+vm.communityCode+'&rang='+vm.rangeCode+'&team='+vm.teamCode
					// window.location.href = str
				}
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 5) {
			}else if(vm.handleNodeId == 35) {
				// 专病分析
				if(vm.analyseData.length!=0) {
					statisticAPI.statisticsExportExportSickList({
@ -779,22 +1288,15 @@ new Vue({
						team: vm.teamCode,
					},vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
						// var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
						// FileSaver.saveAs(blob, "hello world.txt");
						// FileSaver()
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					// var str = httpRequest.server + 'statisticsExport/exportSickList?year='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
					// '&diseaseType='+vm.diseaseDataType+'&status='+vm.radio3+'&doctorName='+vm.form2.juniorCollege+'&familyDoctorName='+vm.form2.family+'&patientName='+vm.form2.resident+
					// '&area='+areaCode+'&hospital='+vm.communityCode+'&rang='+vm.rangeCode+'&team='+vm.teamCode
					// window.location.href = str
				}
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 6) {
			}else if(vm.handleNodeId == 36) {
				// 生日祝福分析
				if(vm.analyseData.length!=0) {
					statisticAPI.statisticsExportGetBirthdayPatientListExport({
@ -812,23 +1314,15 @@ new Vue({
						page:vm.currentPage,
					},vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
						// var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
						// FileSaver.saveAs(blob, "hello world.txt");
						// FileSaver()
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					// var str = httpRequest.server + 'statisticsExport/getBirthdayPatientListExport?signYear='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
					// '&patientName='+vm.form5.resident+'&doctorName='+vm.form5.family+'&status='+vm.radio4+
					// '&area='+areaCode+'&hospital='+vm.communityCode+'&range='+vm.rangeCode+'&team='+vm.teamCode+'&pageSize=500000'+'&page='+vm.currentPage
					// console.log(str,"str生日祝福")
					// window.location.href = str
				}
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 7) {
			}else if(vm.handleNodeId == 37) {
				// 上门服务分析
				if(vm.analyseData.length!=0) {
					statisticAPI.statisticsExportExportDoorServiceList({
@ -847,23 +1341,15 @@ new Vue({
						page:vm.currentPage,
					},vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
						// var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
						// FileSaver.saveAs(blob, "hello world.txt");
						// FileSaver()
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					// var str = httpRequest.server + 'statisticsExport/exportDoorServiceList?signYear='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
					// '&patientName='+vm.form5.resident+'&doctorName='+vm.form5.family+'&status='+vm.radio5+'&type='+vm.serviceTypeDataType+
					// '&area='+areaCode+'&hospital='+vm.communityCode+'&range='+vm.rangeCode+'&team='+vm.teamCode+'&pageSize'+vm.currentSize+'&page='+vm.currentPage
					// // console.log(str,"str上门服务分析")
					// window.location.href = str
				}
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 8) {
			}else if(vm.handleNodeId == 38) {
				// 长处方分析 
				if(vm.analyseData.length!=0) {
					statisticAPI.statisticsExportExportPrescriptionList({
@ -883,22 +1369,96 @@ new Vue({
						page:vm.currentPage,
					},vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
						// var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
						// FileSaver.saveAs(blob, "hello world.txt");
						// FileSaver()
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					// var str = httpRequest.server + 'statisticsExport/exportPrescriptionList?signYear='+chooseYear+'&startDate='+startDate+'&endDate='+endDate+
					// '&patientName='+vm.form5.resident+'&doctorName='+vm.form5.family+'&status='+vm.radio6+'&diagnosisName='+vm.radio7+'&dispensaryType='+vm.radio8+
					// '&area='+areaCode+'&hospital='+vm.communityCode+'&range='+vm.rangeCode+'&team='+vm.teamCode+'&pageSize=500000'+'&page='+vm.currentPage
					// console.log(str,"str长处方分析")
					// window.location.href = str
				}
					 
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 39) {
				// 体征数据
				if(vm.getHealthData.length!=0) {
					statisticAPI.exportHealthList(vm.getHealthParameter(),vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					 
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 40) {
				// 上转预约
				if(vm.reservationData.length!=0) {
					statisticAPI.exportDoctorReservationList(vm.reservationParameter(),vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					 
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.handleNodeId == 41) {
				// 微信绑定数据
				if(vm.wexinBindingData.length!=0) {
					statisticAPI.exportWexinBindingList(vm.wexinBindingParameter(),vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					 
				}else{vm.fullscreenLoading = false}
				
			}else if(vm.collectCode == 1) {
				// 专病汇总
				if(vm.diseaseReport.length!=0) {
					statisticAPI.exportSpecialDiseaseReport(vm.getSpecialParameter(),vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					 
				}else{vm.fullscreenLoading = false}
			}else if(vm.collectCode == 2) {
				// 体征分析
				if(vm.getDeviceReport.length!=0) {
					statisticAPI.exportDeviceHealthReport(vm.getDeviceParameter(),vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					 
				}else{vm.fullscreenLoading = false}
			}else if(vm.collectCode == 3) {
				// 上门汇总
				if(vm.getDoorReport.length!=0) {
					statisticAPI.exportDoorServerOrderReport(vm.getDoorParameter(),vm.derive+".xls").then(function(res){
						vm.fullscreenLoading = false
					})
					.catch(function(err){
						toastr.info(err)
						vm.fullscreenLoading = false
						console.error(err)
					})
					 
				}else{vm.fullscreenLoading = false}
			}
		},
		backClick:function(){
@ -924,24 +1484,33 @@ new Vue({
      		vm.currentPage = val
			if(vm.handleNodeId == 0) {
				vm.getStatisticDataList()
			}else if(vm.handleNodeId == 3) {
			}else if(vm.handleNodeId == 33) {
				// 咨询分析
				vm.getConsultList()
			}else if(vm.handleNodeId == 4) {
			}else if(vm.handleNodeId == 34) {
				// 签约分析
				vm.getSignList()
			}else if(vm.handleNodeId == 5) {
			}else if(vm.handleNodeId == 35) {
				// 专病分析
				vm.getSickList()
			}else if(vm.handleNodeId == 6) {
			}else if(vm.handleNodeId == 36) {
				// 生日祝福分析
				vm.getBirthdayPatientList()
			}else if(vm.handleNodeId == 7) {
			}else if(vm.handleNodeId == 37) {
				// 上门服务分析
				vm.getDoorServiceList()
			}else if(vm.handleNodeId == 8) {
			}else if(vm.handleNodeId == 38) {
				// 长处方分析
				vm.getPrescriptionList()
			}else if(vm.handleNodeId == 39) {
				// 体征数据
				vm.physicalSignData()
			}else if(vm.handleNodeId == 40) {
				// 上转预约
				vm.upTransferAppointment()
			}else if(vm.handleNodeId == 41) {
				// 微信绑定
				vm.wechatBinding()
			}
      	},
      	//获取省市区  type:区3