Explorar el Código

慢阻肺报表

hwy hace 1 año
padre
commit
1d70953d81

+ 41 - 2
api/statistics-api.js

@ -294,8 +294,28 @@
		getCopdCheckExamineData: function(data){
			return httpRequest.get("copd/statistics/getCopdCheckExamineData", {data: data}); 
		},
		// 慢阻肺第二阶段三级医院入组进度
		getGradeHospitalEntryData: function(data){
			return httpRequest.get("/copd/statistics/getGradeHospitalEntryData", {data: data}); 
		},
	    // 慢阻肺第二阶段社区医院入组进度
	    getCommunityHospitalEntryData: function(data){
	    	return httpRequest.get("/copd/statistics/getCommunityHospitalEntryData", {data: data}); 
	    },
		// 慢阻肺第二阶段三级医院随访进度
		getGradeHospitalFollowData: function(data){
			return httpRequest.get("/copd/statistics/getGradeHospitalFollowData", {data: data}); 
		},
		// 慢阻肺第二阶段社区医院随访进度
		getCommunityHospitalFollowData: function(data){
			return httpRequest.get("/copd/statistics/getCommunityHospitalFollowData", {data: data}); 
		},
		// 慢阻肺第一阶段入组随访进度
		getFirstStageEntryData: function(data){
			return httpRequest.get("/copd/statistics/getFirstStageEntryData", {data: data}); 
		},
		
		
        		
		
		
		
@ -446,7 +466,26 @@
		exportCopdCheckExamineData: function(data, filename){
			return httpRequest.downLoadFileForAjax("copd/statistics/exportCopdCheckExamineData", filename, data);
		},
		
		// 慢阻肺第一阶段入组随访情况统计导出
		exportFirstStageEntryData: function(data, filename){
			return httpRequest.downLoadFileForAjax("/copd/statistics/exportFirstStageEntryData", filename, data);
		},
		// 慢阻肺第二阶段社区医院随访情况导出
		exportCommunityHospitalFollowData: function(data, filename){
			return httpRequest.downLoadFileForAjax("/copd/statistics/exportCommunityHospitalFollowData", filename, data);
		},
		// 慢阻肺第二阶段三级医院随访情况统计导出
		exportGradeHospitalFollowData: function(data, filename){
			return httpRequest.downLoadFileForAjax("/copd/statistics/exportGradeHospitalFollowData", filename, data);
		},
		// 慢阻肺第二阶段社区医院入组情况统计导出
		exportCommunityHospitalEntryData: function(data, filename){
			return httpRequest.downLoadFileForAjax("/copd/statistics/exportCommunityHospitalEntryData", filename, data);
		},
		// 慢阻肺第二阶段三级医院入组情况统计导出
		exportGradeHospitalEntryData: function(data, filename){
			return httpRequest.downLoadFileForAjax("/copd/statistics/exportGradeHospitalEntryData", filename, data);
		},
		
		
		

+ 38 - 4
app/statistics/html/comprehensive-query.html

@ -79,7 +79,13 @@
									handleNodeId!=53&&
									handleNodeId!=54&&
									handleNodeId!=55&&
									handleNodeId!=56' >
									handleNodeId!=56&&
									handleNodeId!=57&&
									handleNodeId!=58&&
									handleNodeId!=59&&
									handleNodeId!=60&&
									handleNodeId!=61
									' >
							<div class="searchDiv" v-if="tabsId!=5">
								<template v-if="handleNodeId!=44&&expertFamilyIdType != 'zhuanke1'&&handleNodeId!=45">
									<el-radio v-model="radio" label="1">按签约年度:</el-radio>
@ -458,7 +464,12 @@
											handleNodeId!=53&&
											handleNodeId!=54&&
											handleNodeId!=55&&
											handleNodeId!=56">
											handleNodeId!=56&&
											handleNodeId!=57&&
											handleNodeId!=58&&
											handleNodeId!=59&&
											handleNodeId!=60&&
											handleNodeId!=61">
								<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>
@ -492,7 +503,12 @@
										handleNodeId!=53&&
										handleNodeId!=54&&
										handleNodeId!=55&&
										handleNodeId!=56">
										handleNodeId!=56&&
										handleNodeId!=57&&
										handleNodeId!=58&&
										handleNodeId!=59&&
										handleNodeId!=60&&
										handleNodeId!=61">
								<el-button type="primary" size="mini" @click="searchHandle(true)">查询</el-button>
								<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
								<span class="eliminate" @click="eliminateClick">清除筛选条件</span>
@ -804,6 +820,12 @@
								<mzf-hxsj v-if="handleNodeId==54"></mzf-hxsj>
								<mzf-watches v-if="handleNodeId==55"></mzf-watches>
								<mzf-timeout-statistics v-if="handleNodeId==56"></mzf-timeout-statistics>
								<mzf-dyjd-rzsfjd v-if="handleNodeId==57" type="dyjdrzsfjd"></mzf-dyjd-rzsfjd>
								<mzf-dejdsjyy-rzjd v-if="handleNodeId==58"></mzf-dejdsjyy-rzjd>
								<mzf-dejdsqyy-rzjd v-if="handleNodeId==59"></mzf-dejdsqyy-rzjd>
								<mzf-dejdsjyy-sfjd v-if="handleNodeId==60"></mzf-dejdsjyy-sfjd>
								<!-- 第二阶段社区医院随访进度 -->
								<mzf-dyjd-rzsfjd v-if="handleNodeId==61" type="dejdsqsfjd"></mzf-dyjd-rzsfjd>
							</div>
							<div v-if="handleNodeShow == 3">
								<el-table v-if="collectCode == 1" border :data="diseaseReport" style="width: 100%" v-loading="loadingTwo" class="mt20" >
@ -861,7 +883,12 @@
										handleNodeId!=53&&
										handleNodeId!=54&&
										handleNodeId!=55&&
										handleNodeId!=56">
										handleNodeId!=56&&
										handleNodeId!=57&&
										handleNodeId!=58&&
										handleNodeId!=59&&
										handleNodeId!=60&&
										handleNodeId!=61">
								<div class="c-t-right mt20">
									<el-pagination 
									  @current-change="handleCurrentChange"
@ -925,6 +952,13 @@
    <script src="../js/zbfzDetail.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfHxsj.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/mzfTimeoutStatistics.js" type="text/javascript" charset="utf-8"></script>
	<script src="../js/dyjdRzsfjd.js" type="text/javascript" charset="utf-8"></script>
	<script src="../js/dejdsjyyRzjd.js" type="text/javascript" charset="utf-8"></script>
	<script src="../js/dejdsqyyRzjd.js" type="text/javascript" charset="utf-8"></script>
	<script src="../js/dejdsjyysfjd.js" type="text/javascript" charset="utf-8"></script>
	<script src="../js/dejdsqyysfjd.js" type="text/javascript" charset="utf-8"></script>
	
</body>
</html>

+ 115 - 0
app/statistics/html/dejdsjyyRzjd.html

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>慢阻肺入组进度</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
</head>
<style>
		
</style>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="flex maxBox">
				   <div class="inquireTime">查询时间 
					<el-date-picker
					  v-model="startTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='startTimeChange'>
					</el-date-picker> ~
					<el-date-picker
					  v-model="endTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='endTimeChange'>
					</el-date-picker>
					</div>
				   <div class="selectedButton">
						<el-button type="primary" size="mini" @click="confirm">查询</el-button>
						<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
						<!-- <el-button type="info" size="mini"  @click="cancel">取消</el-button> -->
				   </div>
			   </div>
		   </div>
			<el-table  
			border 
			:data="dejdsjyyRzDate" 
			:span-method="objectSpanMethod" 
			style="width: 100%" 
			v-loading="loadingTwo" 
			class="mt20" >
				<template >
					<!-- <el-table-column  type="index" width='50' label="序号" align="center"></el-table-column> -->
					<el-table-column prop="areaName" label="行政区" align="center">
					</el-table-column>
					<el-table-column  prop="gradeHospitalName"  label="三级医院" align="center"></el-table-column>
					<el-table-column prop="targetEntryCont" :render-header='renderHeadeRexpert' align="center">
					</el-table-column>
					<el-table-column  prop="firstV1FinishDate" :render-header='renderHeadeRexpert' align="center"></el-table-column>
					<el-table-column prop="v1MonthCount" label="本月新增完成V1入筛选期例" align="center">
					</el-table-column>
					<el-table-column prop="v1AllCount" label="完成V1入筛选期累计例数" align="center"></el-table-column>
					<el-table-column prop="value" label="组别" align="center"></el-table-column>
					<el-table-column prop="firstV2EntryDate" :render-header='renderHeadeRexpert' align="center"></el-table-column>
					<el-table-column label="本月新增例数"align="center">
						<el-table-column prop="v2Count1" label="V2入组" align="center"></el-table-column>
						<el-table-column prop="v2Count2" label="脱落" align="center"></el-table-column>
					</el-table-column>
					<el-table-column label="累计例数"align="center">
						<el-table-column prop="v2Count3" label="V2入组" align="center"></el-table-column>
						<el-table-column prop="v2Count4" label="脱落" align="center"></el-table-column>
					</el-table-column>
					<el-table-column prop="entryRate" :render-header='renderHeadeRexpert' align="center"></el-table-column>
				</template>
			</el-table>
			<!-- <div class="c-t-right mt20">
				<el-pagination 
				  @current-change="handleCurrentChange"
				  :current-page.sync="currentPage"
				  :page-size="currentSize"
				  layout="total, prev, pager, next, jumper"
				  :total="datatotal">
				</el-pagination>
			</div> -->
       </div>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.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" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <!-- <script src="../js/dejdsjyyRzjd.js" type="text/javascript" charset="utf-8"></script> -->
</body>
</html>

+ 328 - 0
app/statistics/html/dejdsjyysfjd.html

@ -0,0 +1,328 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>慢阻肺随访进度</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
</head>
<style>
		
</style>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="flex maxBox">
				   <!-- <div class="title">已选</div>
				   <div class="flex selectedBox">
						<div class="selected" v-for="(item,index) in list" :key="index">
							{{item.type==1?'地区':item.type==2?'三级医院':item.type==3?'社区医院':item.type==4?'分组':item.type==5?'管理状态':'时间'}}:{{item.label}} <i class="el-icon-circle-close" @click="deleteClick(item)"></i>
						</div>
				   </div> -->
				   <div class="inquireTime">查询时间 
					<el-date-picker
					  v-model="startTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='startTimeChange'>
					</el-date-picker> ~
					<el-date-picker
					  v-model="endTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='endTimeChange'>
					</el-date-picker>
			   </div>
				   <div class="selectedButton">
						<el-button type="primary" size="mini" @click="confirm">确定</el-button>
						<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
						<!-- <el-button type="info" size="mini"  @click="cancel">取消</el-button> -->
				   </div>
				   
			   </div>
		   </div>
			<el-table  border :data="mzfSfjdData" :span-method="objectSpanMethod" style="width: 100%" v-loading="loadingTwo" height='650' class="mt20" >
				<template >
					<!-- <el-table-column  type="index" width='50' label="序号" align="center"></el-table-column> -->
				
					<el-table-column prop="areaName" label="行政区" align="center">
					</el-table-column>
					<el-table-column  prop="gradeHospitalName"  label="三级医院" align="center"></el-table-column>
					<el-table-column prop="targetEntryCont" :render-header='renderHeadeRexpert' align="center"></el-table-column>
					<el-table-column prop="v1AllCount" label="完成V1入筛选期累计例数" align="center"></el-table-column>
					<el-table-column prop="firstV2EntryDate" :render-header='renderHeadeRexpert' width="160px" align="center"></el-table-column>
					<!-- <el-table-column  prop="firstV2EntryDate" :render-header='renderHeadeRexpert'  align="center"></el-table-column> -->
					<el-table-column prop="value" label="组别" align="center">
					</el-table-column>
					<!-- <el-table-column  prop="targetEntryCont" label="目标入组数" align="center"></el-table-column>
					<el-table-column  prop="createTime"  label="启动筛选时间" align="center"></el-table-column>
					<el-table-column  prop="firstEntryTime" label="首例入组时间" align="center"></el-table-column> -->
					<el-table-column  prop="" label="完成各随访累计例(次)数" align="center">
					  <el-table-column
						prop=""
						label="v2入组"
						align="center">
							<el-table-column
							prop="v2Count1"
							index=11
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v2Count2"
							index=12
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v2Count3"
							label="累计"
							align="center">
							</el-table-column>
					  </el-table-column>
					  <el-table-column
						prop=""
						label="v3"
						align="center">
							<el-table-column
							prop="v3Count1"
							index=11
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v3Count2"
							index=12
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v3Count3"
							label="累计"
							align="center">
							</el-table-column>
					  </el-table-column>
					  <el-table-column
						prop=""
						label="v4"
						align="center">
							<el-table-column
							prop="v4Count1"
							index=11
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v4Count2"
							index=12
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v4Count3"
							label="累计"
							align="center">
							</el-table-column>
					  </el-table-column>
					  <el-table-column
						prop=""
						label="v5"
						align="center">
							<el-table-column
							prop="v5Count1"
							index=13
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v5Count2"
							index=14
							:render-header='renderHeadeRexpert'
							align="center">
							</el-table-column>
							<el-table-column
							prop="v5Count3"
							label="累计"
							align="center">
							</el-table-column>
						</el-table-column>
						<el-table-column
						prop=""
						label="v6"
						align="center">
							<el-table-column
							prop="v6Count1"
							:render-header='renderHeadeRexpert'
							index=13
							align="center">
							</el-table-column>
							<el-table-column
							prop="v6Count2"
							:render-header='renderHeadeRexpert'
							index=14
							align="center">
							</el-table-column>
							<el-table-column
							prop="v6Count3"
							label="累计"
							align="center">
							</el-table-column>
						</el-table-column>
						<el-table-column
						prop=""
						label="合计"
						align="center">
							<el-table-column
							prop="vAllCount1"
							label="正常访视"
							align="center">
							</el-table-column>
							<el-table-column
							prop="vAllCount2"
							label="超窗"
							align="center">
							</el-table-column>
							<el-table-column
							prop="vAllCount3"
							label="累计"
							align="center">
							</el-table-column>
						</el-table-column>
					</el-table-column>
					<el-table-column label="提前结束研究(脱落)累计例数" align="center">
						<el-table-column prop="v3EndCount" :render-header='renderHeadeRexpert' align="center" index=15></el-table-column>
						<el-table-column prop="v4EndCount":render-header='renderHeadeRexpert' align="center" index=16></el-table-column>
						<el-table-column prop="v5EndCount" :render-header='renderHeadeRexpert' align="center" index=17></el-table-column>
						<el-table-column prop="v6EndCount" :render-header='renderHeadeRexpert' align="center" index=18></el-table-column>
						<el-table-column prop="v3_6EndCount" :render-header='renderHeadeRexpert' align="center" index=19></el-table-column>
					</el-table-column>
					
					
					<el-table-column  prop="" label="提前结束研究(脱落)原因累计例数" align="center">
						  <el-table-column
						  prop="endValue1"
						  :render-header='renderHeadeRexpert'
						  index=20
						  align="center">
							 
						</el-table-column>
						<el-table-column
						  prop="endValue2"
						    :render-header='renderHeadeRexpert'
						  index=21
						  align="center">
							 
						</el-table-column>
						<el-table-column
						  prop="endValue3"
						  index=22
						    :render-header='renderHeadeRexpert'
						  align="center">
							 
						</el-table-column>
						<el-table-column
						  prop="endValue4"
						   :render-header='renderHeadeRexpert'
						  index=23
						  align="center">
							  
						</el-table-column>
						<el-table-column
						  prop="endValue5"
						   :render-header='renderHeadeRexpert'
						  index=24
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="endValue6"
						  index=25
						   :render-header='renderHeadeRexpert'
						  align="center">
							  
						  </el-table-column>
						  <el-table-column
						  prop="endValue7"
						  index=26
						   :render-header='renderHeadeRexpert'
						  align="center">
							 
					  </el-table-column>
					  <el-table-column
						  prop="endValue8"
						   :render-header='renderHeadeRexpert'
						  index=27
						  align="center">
							 
					  </el-table-column>
					  <el-table-column
						  prop="endValue9"
						  :render-header='renderHeadeRexpert'
						  index=28
						  align="center">
							 
					  </el-table-column>
					  <el-table-column
						  prop="endValue10"
						  index=29
						  :render-header='renderHeadeRexpert'
						  align="center">
							  
					  </el-table-column>
					</el-table-column>
					<el-table-column  label="在管(随访中)累计例数" align="center">
						<el-table-column label="v2-v6随访中" prop="manageCount" align="center"></el-table-column>
					</el-table-column>
					<el-table-column label="备注(如果有)" align="center"></el-table-column>
				</template>
			</el-table>
			<!-- <div class="c-t-right mt20">
				<el-pagination 
				  @current-change="handleCurrentChange"
				  :current-page.sync="currentPage"
				  :page-size="currentSize"
				  layout="total, prev, pager, next, jumper"
				  :total="datatotal">
				</el-pagination>
			</div> -->
       </div>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.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" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/dejdsjyysfjd.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

+ 147 - 0
app/statistics/html/dejdsqyyRzjd.html

@ -0,0 +1,147 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>第二阶段社区医院入组进度</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
</head>
<style>
		
</style>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="flex maxBox">
				   <!-- <div class="title">已选</div>
				   <div class="flex selectedBox">
						<div class="selected" v-for="(item,index) in list" :key="index">
							{{item.type==1?'地区':item.type==2?'三级医院':item.type==3?'社区医院':item.type==4?'分组':item.type==5?'管理状态':'时间'}}:{{item.label}} <i class="el-icon-circle-close" @click="deleteClick(item)"></i>
						</div>
				   </div> -->
				   <div class="inquireTime">查询时间 
					<el-date-picker
					  v-model="startTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='startTimeChange'>
					</el-date-picker> ~
					<el-date-picker
					  v-model="endTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='endTimeChange'>
					</el-date-picker>
			   </div>
				   <div class="selectedButton">
						<el-button type="primary" size="mini" @click="confirm">确定</el-button>
						<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
						<!-- <el-button type="info" size="mini"  @click="cancel">取消</el-button> -->
				   </div>
			   </div>
		   </div>
		   
		   
			<el-table  
				border 
				:data="dejdSqyyRzDate" 
				style="width: 100%" 
				v-loading="loadingTwo" 
				height='650' 
				class="mt20" 
				:span-method='objectSpanMethod'
				>
				<template >
					<!-- <el-table-column  type="index" width='50' label="序号" align="center"></el-table-column> -->
					<el-table-column  label="社区中心基本信息" align="center">
						<el-table-column
						  prop="areaName"
						  label="所属区域"
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="gradeHospitalName"
						  label="分管三级医院"
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="communityHospitalName"
						  label="社区中心名称"
						  align="center">
						</el-table-column>
						
					</el-table-column>
					<el-table-column prop="targetEntryCont" :render-header='renderHeadeRexpert' align="center">
					</el-table-column>
					<el-table-column prop="firstV1FinishDate" :render-header='renderHeadeRexpert' align="center" width="160px">
					</el-table-column>
					<el-table-column  prop="v1MonthCount"  label="本周新增完成V1入筛期例数" align="center"></el-table-column>
					<el-table-column prop="v1AllCount" label="完成V1入筛选期累计例数" align="center">
					</el-table-column>
					<el-table-column
					  prop="value"
					  label="组别"
					  align="center">
					</el-table-column>
					<el-table-column prop="firstV2EntryDate" :render-header='renderHeadeRexpert' align="center" width="200px">
					</el-table-column>
					 <el-table-column label="本周新增例数" align="center">
						 <el-table-column  prop="v2Count1" label="V2入组" align="center"></el-table-column>
						 <el-table-column  prop="v2Count2" label="脱落" align="center"></el-table-column>
					 </el-table-column>
					<el-table-column label="累计例数" align="center">
											 <el-table-column  prop="v2Count3" label="V2入组" align="center"></el-table-column>
											 <el-table-column  prop="v2Count4" label="脱落" align="center"></el-table-column>
					</el-table-column>
					<el-table-column  prop="entryRate" :render-header='renderHeadeRexpert' align="center"></el-table-column>
					<!-- <el-table-column  prop="value6" label="备注(如果有)" align="center"></el-table-column> -->
				</template>
			</el-table>
			<!-- <div class="c-t-right mt20">
				<el-pagination 
				  @current-change="handleCurrentChange"
				  :current-page.sync="currentPage"
				  :page-size="currentSize"
				  layout="total, prev, pager, next, jumper"
				  :total="datatotal">
				</el-pagination>
			</div> -->
       </div>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.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" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/dejdsqyyRzjd.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

+ 304 - 0
app/statistics/html/dejdsqyysfjd.html

@ -0,0 +1,304 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>第一阶段入组访问进度</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
</head>
<style>
		
</style>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="flex maxBox">
				   <!-- <div class="title">已选</div>
				   <div class="flex selectedBox">
						<div class="selected" v-for="(item,index) in list" :key="index">
							{{item.type==1?'地区':item.type==2?'三级医院':item.type==3?'社区医院':item.type==4?'分组':item.type==5?'管理状态':'时间'}}:{{item.label}} <i class="el-icon-circle-close" @click="deleteClick(item)"></i>
						</div>
				   </div> -->
				<div class="inquireTime">查询时间 
					<el-date-picker
					  v-model="startTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='startTimeChange'>
					</el-date-picker> ~
					<el-date-picker
					  v-model="endTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='endTimeChange'>
					</el-date-picker>
			   	</div>
				   <div class="selectedButton">
						<el-button type="primary" size="mini" @click="confirm">确定</el-button>
						<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
						<!-- <el-button type="info" size="mini"  @click="cancel">取消</el-button> -->
				   </div>
			   </div>
			   <!-- <div class="flex maxBox mt10">
				   <div class="flex selectedBoxTwo">
						<div class="selectedBoxTwoTitle">地区</div>
						<el-checkbox-group v-model="regionList" @change="change">
							<el-checkbox v-for="(t,x) in regionData" :key="x" :label="t" :key="t.label">{{t.label}}</el-checkbox>
						</el-checkbox-group>
				   </div>
			   </div>
			   <template v-if="show">
				   <div class="flex maxBox mt10">
					   <div class="titleHospital">三级医院</div>
					   <div class="flex selectedHospital" :style="showTwo?'overflow: inherit;height: auto;':'overflow: hidden;height:20px;'">
							<el-checkbox-group v-model="regionListList" @change="change">
								<el-checkbox v-for="(m,i) in tertiaryHospitalsData" :key="i" :label="m" :key="m.label">{{m.label}}</el-checkbox>
							</el-checkbox-group>
					   </div>
					   <div class="selectedButtonTwo" @click="showTwo = !showTwo">
						   {{!showTwo?'更多选项':'收起'}}
						   <i class="el-icon-arrow-down" v-if="!showTwo"></i><i class="el-icon-arrow-up" v-if="showTwo"></i>
					   </div>
				   </div>
				   <div class="flex maxBox mt10">
					   <div class="titleHospital">社区医院</div>
					   <div class="flex selectedHospital" :style="showThree?'overflow: inherit;height: auto;':'overflow: hidden;height:20px;'">
							<el-checkbox-group v-model="communityHospitalsList" @change="change">
								<el-checkbox v-for="(q,n) in communityHospitalsData" :key="n" :label="q" :key="q.label">{{q.label}}</el-checkbox>
							</el-checkbox-group>
					   </div>
					   <div class="selectedButtonTwo" @click="showThree = !showThree">
						   {{!showThree?'更多选项':'收起'}}
						   <i class="el-icon-arrow-down" v-if="!showThree"></i><i class="el-icon-arrow-up" v-if="showThree"></i>
					   </div>
				   </div>
				   <div class="flex maxBox mt10">
					   <div class="flex selectedBoxTwo">
							<div class="selectedBoxTwoTitle">分组</div>
							 <el-checkbox-group v-model="groupingList" @change="change">
								<el-checkbox v-for="(y,d) in groupingData" :key="d" :label="y" :key="y.label">{{y.label}}</el-checkbox>
							</el-checkbox-group>
					   </div>
				   </div>
				   <div class="flex maxBox mt10">
					   <div class="flex selectedBoxTwo">
						   <div class="selectedBoxTwoTitle">管理状态</div>
							<el-checkbox-group v-model="administrationStatusList" @change="change">
								<el-checkbox v-for="(k,e) in administrationStatusData" :key="e" :label="k" :key="k.label">{{k.label}}</el-checkbox>
							</el-checkbox-group>
					   </div>
				   </div>
			   </template>
			   <div class="more" @click="show = !show">{{!show?'更多选项':'收起'}}<i class="el-icon-arrow-down" v-if="!show"></i><i class="el-icon-arrow-up" v-if="show"></i></div> -->
		   </div>
		   
		   
			<el-table 
			 border 
			 :data="mzfSfzmxData" 
			 :span-method="objectSpanMethod"
			 style="width: 100%" 
			 v-loading="loadingTwo" 
			 height='650' 
			 class="mt20" >
				<template >
					<!-- <el-table-column  type="index" width='50' label="序号" align="center"></el-table-column> -->
					<el-table-column>
					<el-table-column  label="社区中心基本信息" align="center">
						<el-table-column
						  prop="areaName"
						  label="所属区域"
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="gradeHospitalName"
						  label="分管三级医院"
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="hospitalName"
						  label="社区中心名称"
						  align="center">
						</el-table-column>
					</el-table-column>
					<el-table-column prop="groupName" label="组别" align="center"></el-table-column>
					<el-table-column prop="groupName" label="目标v2入组例数" align="center"></el-table-column>
					<el-table-column  prop="createTime"  label="完成V1入筛选期累计例数" align="center"></el-table-column>
					 <el-table-column  prop="createTime"  label="首例V2入组时间(YYYY/MM/DD)" align="center"></el-table-column>
					</el-table-column>
					<el-table-column  prop="" label="完成各随访累计例(次)数" align="center">
						<el-table-column
						prop="v1Count"
						label="V2入组"
						align="center">
						<el-table-column label="正常访视" align="center"> </el-table-column>
						<el-table-column label="超窗" align="center"> </el-table-column>
						<el-table-column label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v2Count"
						label="V3"
						align="center">
						<el-table-column label="正常访视" align="center"> </el-table-column>
						<el-table-column label="超窗" align="center"> </el-table-column>
						<el-table-column label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v3Count"
						label="V4"
						align="center">
						<el-table-column label="正常访视" align="center"> </el-table-column>
						<el-table-column label="超窗" align="center"> </el-table-column>
						<el-table-column label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v4Count"
							label="V5"
						align="center">
						<el-table-column label="正常访视" align="center"> </el-table-column>
						<el-table-column label="超窗" align="center"> </el-table-column>
						<el-table-column label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v5Count"
						label="V6"
						align="center">
						<el-table-column label="正常访视" align="center"> </el-table-column>
						<el-table-column label="超窗" align="center"> </el-table-column>
						<el-table-column label="累计" align="center"> </el-table-column>
						</el-table-column>
						<el-table-column
						prop="followAllCount"
						label="合计"
						align="center">
						<el-table-column label="正常访视" align="center"> </el-table-column>
						<el-table-column label="超窗" align="center"> </el-table-column>
						<el-table-column label="累计" align="center"> </el-table-column>
						</el-table-column>
					</el-table-column>
					<el-table-column label="提前结束研究(脱落)累计例数">
						<el-table-column label="V3" align="center"></el-table-column>
						<el-table-column label="V4" align="center"></el-table-column>
						<el-table-column label="V5" align="center"></el-table-column>
						<el-table-column label="V6" align="center"></el-table-column>
						<el-table-column label="合计 align="center"></el-table-column>
					</el-table-column>
					<el-table-column  prop="" label="提前结束研究(脱落)原因累计例数" align="center">
											  <el-table-column
											  prop=""
											  label="SAE"
											  align="center">
												 
											</el-table-column>
											<el-table-column
											  prop=""
											  label="病情恶化"
											  align="center">
												 
											</el-table-column>
											<el-table-column
											  prop=""
											  label="并发其他疾病"
											  align="center">
												 
											</el-table-column>
											<el-table-column
											  prop=""
											  label="自愿退出"
											  align="center">
												  
											</el-table-column>
											<el-table-column
											  prop=""
											  label="研究者终止"
											  align="center">
					
											</el-table-column>
											<el-table-column
											  prop=""
											  label="不符合纳排"
											  align="center">
												  
											  </el-table-column>
											  <el-table-column
											  prop=""
											  label="失访"
											  align="center">
												 
										  </el-table-column>
										  <el-table-column
											  prop=""
											  label="妊娠"
											  align="center">
												 
										  </el-table-column>
										  <el-table-column
											  prop=""
											  label="死亡"
											  align="center">
												 
										  </el-table-column>
										  <el-table-column
											  prop=""
											  label="其他"
											  align="center">
												  
										  </el-table-column>
					
										</el-table-column>
					<el-table-column prop="managedCount" label="在管(随访中)累计例数" align="center">
						<el-table-column label="V2-V6随访中" align="center"></el-table-column>
					</el-table-column>
					<el-table-column prop="fallOffNum" label="备注(如果有)" align="center"></el-table-column>
				</template>
			</el-table>
			<!-- <div class="c-t-right mt20">
				<el-pagination 
				  @current-change="handleCurrentChange"
				  :current-page.sync="currentPage"
				  :page-size="currentSize"
				  layout="total, prev, pager, next, jumper"
				  :total="datatotal">
				</el-pagination>
			</div> -->
       </div>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.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" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/dejdsqyysfjd.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

+ 260 - 0
app/statistics/html/dyjdRzsfjd.html

@ -0,0 +1,260 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>第一阶段入组访问进度</title>
    <meta name="author" content="yihu.com" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
    />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
    <link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="../css/common.css" />
	<link rel="stylesheet" type="text/css" href="../css/mzfWorksheet.css" />
</head>
<style>
		
</style>
<body style="margin: 0;overflow-x: auto;" v-cloak>
    <div id="main" class="">
       <div class="ui-col-1 bgc-fff" style="min-width: 900px;">
		   <div class="flexibleBox">
			   <div class="flex maxBox">
				  
				<div class="inquireTime">查询时间 
					<el-date-picker
					  v-model="startTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='startTimeChange'>
					</el-date-picker> ~
					<el-date-picker
					  v-model="endTime"
					  type="date"
					  placeholder="选择日期"
					  :picker-options="setDisabled"
					  @change='endTimeChange'>
					</el-date-picker>
			   	</div>
				   <div class="selectedButton">
						<el-button type="primary" size="mini" @click="confirm">确定</el-button>
						<el-button type="ff9526" size="mini" @click="exportHandle">导出</el-button>
				   </div>
			   </div>
			  
		   </div>
		   
		   
			<el-table 
			 border 
			 :data="mzfSfjdData" 
			 :span-method="objectSpanMethod"
			 style="width: 100%" 
			 v-loading="loadingTwo" 
			 height='650' 
			 class="mt20" >
				<template >
					<!-- <el-table-column  type="index" width='50' label="序号" align="center"></el-table-column> -->
					<el-table-column>
					<el-table-column  label="社区中心基本信息" align="center">
						<el-table-column
						  prop="areaName"
						  label="所属区域"
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="gradeHospitalName"
						  label="分管三级医院"
						  align="center">
						</el-table-column>
						<el-table-column
						  prop="communityHospitalName"
						  label="社区中心名称"
						  align="center">
						</el-table-column>
					</el-table-column>
					<el-table-column prop="value" label="组别" align="center"></el-table-column>
					<!-- <el-table-column prop="targetEntryCont" label="目标v2入组例数" align="center"></el-table-column> -->
					<el-table-column prop="targetEntryCont" :render-header='renderHeadeRexpert' align="center"></el-table-column>
					<el-table-column  prop="createTime"  :render-header='renderHeadeRexpert' align="center" width="150px" v-if="type==='dyjdrzsfjd'"></el-table-column>
					<el-table-column  prop="v1AllCount" label="完成V1入筛选期累计例数" align="center"></el-table-column>
					 <el-table-column  prop="firstV2EntryDate"  :render-header='renderHeadeRexpert' width="160px" align="center"></el-table-column>
					</el-table-column>
					<el-table-column  label="完成各随访累计例(次)数" align="center">
						<el-table-column
						label="V2入组(例)"
						align="center">
						<el-table-column prop="v2Count1" label="正常访视" align="center"> </el-table-column>
						<el-table-column prop="v2Count2" label="超窗" align="center"> </el-table-column>
						<el-table-column prop="v2Count3" label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v2Count"
						label="V3(例)"
						align="center">
					<el-table-column prop="v3Count1" label="正常访视" align="center"> </el-table-column>
					<el-table-column prop="v3Count2" label="超窗" align="center"> </el-table-column>
					<el-table-column prop="v3Count3" label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v3Count"
						label="V4(例)"
						align="center">
						<el-table-column prop="v4Count1" label="正常访视" align="center"> </el-table-column>
						<el-table-column prop="v4Count2" label="超窗" align="center"> </el-table-column>
						<el-table-column prop="v4Count3" label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v4Count"
							label="V5(例)"
						align="center">
						<el-table-column prop="v5Count1" label="正常访视" align="center"> </el-table-column>
						<el-table-column prop="v5Count2" label="超窗" align="center"> </el-table-column>
						<el-table-column prop="v5Count3" label="累计" align="center"> </el-table-column>
					  </el-table-column>
					  <el-table-column
						prop="v5Count"
						label="V6(例)"
						align="center">
					<el-table-column prop="v6Count1" label="正常访视" align="center"> </el-table-column>
					<el-table-column prop="v6Count2" label="超窗" align="center"> </el-table-column>
					<el-table-column prop="v6Count3" label="累计" align="center"> </el-table-column>
						</el-table-column>
						<el-table-column
						prop="followAllCount"
						label="合计"
						align="center">
						<el-table-column prop="vAllCount1" label="正常访视" align="center"> </el-table-column>
						<el-table-column prop="vAllCount2" label="超窗" align="center"> </el-table-column>
						<el-table-column prop="vAllCount3" label="累计" align="center"> </el-table-column>
						</el-table-column>
					</el-table-column>
					<el-table-column label="提前结束研究(脱落)累计例数" align="center">
						<el-table-column prop="v3EndCount" :render-header='renderHeadeRexpert' align="center" index=15></el-table-column>
						<el-table-column prop="v4EndCount":render-header='renderHeadeRexpert' align="center" index=16></el-table-column>
						<el-table-column prop="v5EndCount" :render-header='renderHeadeRexpert' align="center" index=17></el-table-column>
						<el-table-column prop="v6EndCount" :render-header='renderHeadeRexpert' align="center" index=18></el-table-column>
						<el-table-column prop="v3_6EndCount" :render-header='renderHeadeRexpert' align="center" index=19></el-table-column>
					</el-table-column>
					
					
					<el-table-column  prop="" label="提前结束研究(脱落)原因累计例数" align="center">
						  <el-table-column
						  prop="endValue1"
						  :render-header='renderHeadeRexpert'
						  index=20
						  align="center">
							 
						</el-table-column>
						<el-table-column
						  prop="endValue2"
						    :render-header='renderHeadeRexpert'
						  index=21
						  align="center">
							 
						</el-table-column>
						<el-table-column
						  prop="endValue3"
						  index=22
						    :render-header='renderHeadeRexpert'
						  align="center">
							 
						</el-table-column>
						<el-table-column
						  prop="endValue4"
						   :render-header='renderHeadeRexpert'
						  index=23
						  align="center">
							  
						</el-table-column>
						<el-table-column
						  prop="endValue5"
						   :render-header='renderHeadeRexpert'
						  index=24
						  align="center">
					
						</el-table-column>
						<el-table-column
						  prop="endValue6"
						  index=25
						   :render-header='renderHeadeRexpert'
						  align="center">
							  
						  </el-table-column>
						  <el-table-column
						  prop="endValue7"
						  index=26
						   :render-header='renderHeadeRexpert'
						  align="center">
							 
					  </el-table-column>
					  <el-table-column
						  prop="endValue8"
						   :render-header='renderHeadeRexpert'
						  index=27
						  align="center">
							 
					  </el-table-column>
					  <el-table-column
						  prop="endValue9"
						  :render-header='renderHeadeRexpert'
						  index=28
						  align="center">
							 
					  </el-table-column>
					  <el-table-column
						  prop="endValue10"
						  index=29
						  :render-header='renderHeadeRexpert'
						  align="center">
							  
					  </el-table-column>
					
					</el-table-column>
					<el-table-column  label="在管(随访中)累计例数" align="center">
						<el-table-column prop="manageCount" label="V2-V6随访中" align="center"></el-table-column>
					</el-table-column>
					<el-table-column label="备注(如果有)" align="center"></el-table-column>
				</template>
			</el-table>
			<!-- <div class="c-t-right mt20">
				<el-pagination 
				  @current-change="handleCurrentChange"
				  :current-page.sync="currentPage"
				  :page-size="currentSize"
				  layout="total, prev, pager, next, jumper"
				  :total="datatotal">
				</el-pagination>
			</div> -->
       </div>
    </div>
	<script src="../../../js/FileSaver/FileSaver.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.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" charset="utf-8"></script>
    <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js"></script>
    <script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/statistics/header-prompt.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript" src="../../../api/sign_api.js"></script>
    <script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
    <script src="../js/dyjdRzsfjd.js" type="text/javascript" charset="utf-8"></script>
</body>
</html>

+ 5 - 0
app/statistics/js/comprehensive-query.js

@ -81,6 +81,11 @@ new Vue({
			{label: '慢阻肺呼吸训练数据', id:'54'},
			{label: '慢阻肺手表数据', id:'55'},
			{label: '慢阻肺监查、稽查情况统计', id:'56'},
			 {label: '第一阶段入组随访进度', id:'57'},
			 {label: '第二阶段三级医院入组进度', id:'58'},
			 {label: '第二阶段社区医院入组进度', id:'59'},
			 {label: '第二阶段三级医院随访进度', id:'60'},
			 {label: '第二阶段社区医院随访进度', id:'61'},
		],
		handleNodeShow:1,
		handleNodeId:0,

+ 262 - 0
app/statistics/js/dejdsjyyRzjd.js

@ -0,0 +1,262 @@
var template = ''
$.ajax('../html/dejdsjyyRzjd.html',{
	data: {},
	dataType: 'html',
	cache: false,
	timeout: 60000, 
	async: false,
	error: function(res) {
	},
	success: function(res) {
		template = res
	}
})
Vue.component('mzf-dejdsjyy-rzjd', {
	props: [],
	template: template,
	data: function() {
		return {
			dejdsjyyRzDate:[],
			testArr1: [],
			testArr2: [],
			testPosition1: 0,
			testPosition2: 0,
			list:[],
			startTime:new Date('2023','05','26'),
			endTime:new Date(),
			regionList:[],
			regionData:[
				{label:'全市',id:'1',type:'1'}
			],
			regionListList:[],
			tertiaryHospitalsData:[
				{label:'全部',id:'1',type:'2'}
			],
			communityHospitalsList:[],
			communityHospitalsData:[
				{label:'全部',id:'1',type:'3'}
			],
			groupingList:[],
			groupingData:[
				{label:'全部',id:'1',type:'4'}
			],
			administrationStatusList:[],
			administrationStatusData:[
				{label:'全部',id:'1',type:'5'}
			],
			show:false,
			showTwo:false,
			showThree:false,
			currentPage:1,
			currentSize:10, 
			datatotal:0, //总数
			loadingTwo:false,
			setDisabled:{
				disabledDate:function(time) {
					return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
				}
			},
			s:'',
			e:'',
			mergeObj: {},
			mergeArr: ['areaName', 'gradeHospitalName', 'value','communityHospitalName','targetEntryCont','v1AllCount','firstV1FinishDate','v1MonthCount','entryRate'],
		}
	},
	created: function(){
		this.s = this.startTime.format('yyyy-MM-dd')
		this.e = this.endTime.format('yyyy-MM-dd')
		this.list.unshift({type:'0',id:'time',label:this.s +"~"+ this.e})
		this.getGradeHospitalEntryData()
	},
	watch:{
		'startTime':{
			 handler:function(o) {
				if(!o) {
					this.list.splice(0,1)
				}
			 },
			 deep: true,
			 immediate: true
		},
		'endTime':{
			 handler:function(o) {
				if(!o) {
					this.list.splice(0,1)
				}
			 },
			 deep: true,
			 immediate: true
		},
	},
	methods: {
		getGradeHospitalEntryData:function() {
			var vm = this
			vm.loadingTwo = true
			var data = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd')
			}
			statisticAPI.getGradeHospitalEntryData({
				jsonStr:JSON.stringify(data)
			}).then(function(res){
				if(res.status == 200) {
					console.log(res,'入组随访计划');
					vm.loadingTwo = false
					// vm.dejdsjyyRzDate = res.data
					vm.dejdsjyyRzDate= vm.mergeArrays(res.data.data01,res.data.data02)
					console.log('我是第二阶段三级医院入组进度',vm.dejdsjyyRzDate)
					vm.getSpanArr(vm.dejdsjyyRzDate)
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		//合并新数组
		mergeArrays:function(array1, array2) {
		    var mergedArray = [];
		array1.forEach(function(item1,index){
			array2.slice(index*3,index*3+3).forEach(function(item2){
				 var mergedObj = Object.assign({}, item1, item2, { newDetail: 'Detail ' + i });
				  mergedArray.push(mergedObj);
			})
		})
		    return mergedArray;
		},
		startTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		endTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
				this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
			}
		},
		deleteClick:function(item) {
			if(item.id == "time") {
				this.startTime = ''
				this.endTime = ''
				this.list.splice(0,1)
			}
			var index = this.list.findIndex(function(v){
				return item.id == v.id
			})
			this.list.splice(index,1)
		},
		// 下一页  上一页
		handleCurrentChange:function(val) {
			var vm = this
			vm.currentPage = val
		},
		change:function(val) {
			this.list = this.list.concat(val)
		},
		// 确定
		confirm:function() {
			this.getCopdEntryData()
		},
		// 取消
		// cancel:function() {
		// 	this.startTime = new Date('2023','05','26')
		// 	this.endTime = new Date()
		// 	if(!this.list[0] || this.list[0].type!=0) {
		// 	 this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
		// 	}else{
		// 		this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
		// 	}
		// },
		// 导出
		exportHandle:function() {
			var vm = this
			vm.loadingTwo = true
			var data = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd')
			}
			var jsonStr = JSON.stringify(data)
			statisticAPI.exportGradeHospitalEntryData({
				jsonStr: encodeURIComponent(jsonStr)
			},'慢阻肺第二阶段三级医院入组进度.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
	getSpanArr(data) {
		this.mergeArr.forEach((key, index1) => {
			var count = 0; // 用来记录需要合并行的起始位置
			this.mergeObj[key] = []; // 记录每一列的合并信息
			data.forEach((item, index) => {
				// index == 0表示数据为第一行,直接 push 一个 1
				if(index === 0) {
					this.mergeObj[key].push(1); 
				} else {
					// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
					if(key==='v1MonthCount'||key==='targetEntryCont'||key==='firstV1FinishDate'||key==='v1AllCount'||key==='entryRate'){
						if(item[key] === data[index - 1][key] && this.mergeObj[key][count]%3!=0) {
								this.mergeObj[key][count] += 1;
								this.mergeObj[key].push(0);
						} else {
							// 如果当前行和上一行其值不相等 
							count = index; // 记录当前位置 
							this.mergeObj[key].push(1); // 重新push 一个 1
						}
					}else{
						if(item[key] === data[index - 1][key]  ) {
								this.mergeObj[key][count] += 1;
								this.mergeObj[key].push(0);
						} else {
							// 如果当前行和上一行其值不相等 
							count = index; // 记录当前位置 
							this.mergeObj[key].push(1); // 重新push 一个 1
						}
					}
					
				}
			})
		})
	},
	
	//得到行、列的合并值
	objectSpanMethod: function({row, column, rowIndex, columnIndex}) {
	    if(this.mergeArr.indexOf(column.property) !== -1) { 
	        // 判断其值是不是为0 
	        if(this.mergeObj[column.property][rowIndex]) { 
	            return [this.mergeObj[column.property][rowIndex], 1]
	        } else {
	            // 如果为0则为需要合并的行
	            return [0, 0]; 
	        }
	    }
	},	
	
	renderHeadeRexpert: function(h, item) {
				var index = item.$index
			  return [
				index=='2'?'目标V2入组例数':index=='3'?'首例V1入筛时间(YYYY/MM/DD)':index=='7'?'首例V2入组时间(YYYY/MM/DD)':index=='10'?'入组完成率':'',
				h(
				  'el-tooltip',
				  {
					props: {
					  content: (function() {
						return 	index=='2'?'即目标入组例数(与管理目标数一致)':index=='3'?'完成V1的提交时间,即“第一例完成V1并成功纳入筛选期的访视日期':index=='7'?'查询第一个入组的时间(访视2触发入组,统计第一个做访视2的患者,且是完成访视2提交的时间。)':index=='10'?'入组完成率=已入组/目标V2入组例数':''
					  })(),
					  placement: 'top'
					}
				  },
				  [
					h('span', {
					  class: {
						'el-icon-question': true
					  }
					})
				  ]
				)
			  ]
			},
	
	}
})

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 285 - 0
app/statistics/js/dejdsjyysfjd.js


+ 290 - 0
app/statistics/js/dejdsqyyRzjd.js

@ -0,0 +1,290 @@
var template = ''
$.ajax('../html/dejdsqyyRzjd.html',{
	data: {},
	dataType: 'html',
	cache: false,
	timeout: 60000, 
	async: false,
	error: function(res) {
	},
	success: function(res) {
		template = res
	}
})
Vue.component('mzf-dejdsqyy-rzjd', {
	props: [],
	template: template,
	data: function() {
		return {
			dejdSqyyRzDate:[],
			testArr1: [],
			testArr2: [],
			testArr3: [],
			// testArr4: [],
			testPosition1: 0,
			testPosition2: 0,
			testPosition3: 0,
			// testPosition4: 0,
			list:[],
			startTime:new Date('2023','05','26'),
			endTime:new Date(),
			regionList:[],
			regionData:[
				{label:'全市',id:'1',type:'1'}
			],
			regionListList:[],
			tertiaryHospitalsData:[
				{label:'全部',id:'1',type:'2'}
			],
			communityHospitalsList:[],
			communityHospitalsData:[
				{label:'全部',id:'1',type:'3'}
			],
			groupingList:[],
			groupingData:[
				{label:'全部',id:'1',type:'4'}
			],
			administrationStatusList:[],
			administrationStatusData:[
				{label:'全部',id:'1',type:'5'}
			],
			show:false,
			showTwo:false,
			showThree:false,
			currentPage:1,
			currentSize:10, 
			datatotal:0, //总数
			loadingTwo:false,
			setDisabled:{
				disabledDate:function(time) {
					return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
				}
			},
			s:'',
			e:'',
			courseArr: [],
			coursePos: 0,
			mergeObj: {},
            mergeArr: ['areaName', 'gradeHospitalName', 'entryRate','communityHospitalName','targetEntryCont','v1MonthCount','v1AllCount','firstV1FinishDate'],
		}
	},
	created: function(){
		this.s = this.startTime.format('yyyy-MM-dd')
		this.e = this.endTime.format('yyyy-MM-dd')
		this.list.unshift({type:'0',id:'time',label:this.s +"~"+ this.e})
		this.getCommunityHospitalEntryData()
	},
	watch:{
		'startTime':{
			 handler:function(o) {
				if(!o) {
					this.list.splice(0,1)
				}
			 },
			 deep: true,
			 immediate: true
		},
		'endTime':{
			 handler:function(o) {
				if(!o) {
					this.list.splice(0,1)
				}
			 },
			 deep: true,
			 immediate: true
		},
	},
	methods: {
		getCommunityHospitalEntryData:function() {
			var vm = this
			vm.loadingTwo = true
			var data = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd')
			}
			statisticAPI.getCommunityHospitalEntryData({
				jsonStr:JSON.stringify(data)
			}).then(function(res){
				if(res.status == 200) {
					vm.loadingTwo = false
					// vm.dejdSqyyRzDate =res.data
					vm.dejdSqyyRzDate= vm.mergeArrays(res.data.data01,res.data.data02)
					console.log('第二阶段社区医院入组进度',vm.dejdSqyyRzDate)
					vm.getSpanArr(vm.dejdSqyyRzDate)
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		 mergeArrays:function(array1, array2) {
		    var mergedArray = [];
		array1.forEach(function(item1,index){
			array2.slice(index*3,index*3+3).forEach(function(item2){
				 var mergedObj = Object.assign({}, item1, item2, { newDetail: 'Detail ' + i });
				  mergedArray.push(mergedObj);
			})
		})
		    return mergedArray;
		},
		startTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		endTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
				this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
			}
		},
		deleteClick:function(item) {
			if(item.id == "time") {
				this.startTime = ''
				this.endTime = ''
				this.list.splice(0,1)
			}
			var index = this.list.findIndex(function(v){
				return item.id == v.id
			})
			this.list.splice(index,1)
		},
		// 下一页  上一页
		handleCurrentChange:function(val) {
			var vm = this
			vm.currentPage = val
		},
		change:function(val) {
			this.list = this.list.concat(val)
		},
		// 确定
		confirm:function() {
			this.getCopdEntryCommunityData()
		},
		// 取消
		cancel:function() {
			this.startTime = new Date('2023','05','26')
			this.endTime = new Date()
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		// 导出
		exportHandle:function() {
			var vm = this
			vm.loadingTwo = true
			var data = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd')
			}
			var jsonStr = JSON.stringify(data)
			statisticAPI.exportCommunityHospitalEntryData({
				jsonStr: encodeURIComponent(jsonStr)
			},'慢阻肺第二阶段社区医院入组总明细.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
		// getSpanArr方法
		// getSpanArr(data) {
		// 	this.mergeArr.forEach((key, index1) => {
		// 		var count = 0; // 用来记录需要合并行的起始位置
		// 		this.mergeObj[key] = []; // 记录每一列的合并信息
		// 		data.forEach((item, index) => {
		// 			// index == 0表示数据为第一行,直接 push 一个 1
		// 			if(index === 0) {
		// 				this.mergeObj[key].push(1); 
		// 			} else {
		// 				// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
		// 				if(item[key] === data[index - 1][key]) { 
		// 					this.mergeObj[key][count] += 1;
		// 					this.mergeObj[key].push(0);
		// 				} else {
		// 					// 如果当前行和上一行其值不相等 
		// 					count = index; // 记录当前位置 
		// 					this.mergeObj[key].push(1); // 重新push 一个 1
		// 				}
		// 			}
		// 		})
		// 	})
		// },
		getSpanArr(data) {
			this.mergeArr.forEach((key, index1) => {
				var count = 0; // 用来记录需要合并行的起始位置
				this.mergeObj[key] = []; // 记录每一列的合并信息
				data.forEach((item, index) => {
					// index == 0表示数据为第一行,直接 push 一个 1
					if(index === 0) {
						this.mergeObj[key].push(1); 
					} else {
						// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
						if(key==='v1MonthCount'||key==='targetEntryCont'||key==='firstV1FinishDate'||key==='v1AllCount'||key==='entryRate'){
							if(item[key] === data[index - 1][key] && this.mergeObj[key][count]%3!=0) {
									this.mergeObj[key][count] += 1;
									this.mergeObj[key].push(0);
							} else {
								// 如果当前行和上一行其值不相等 
								count = index; // 记录当前位置 
								this.mergeObj[key].push(1); // 重新push 一个 1
							}
						}else{
							if(item[key] === data[index - 1][key]  ) {
									this.mergeObj[key][count] += 1;
									this.mergeObj[key].push(0);
							} else {
								// 如果当前行和上一行其值不相等 
								count = index; // 记录当前位置 
								this.mergeObj[key].push(1); // 重新push 一个 1
							}
						}
						
					}
				})
			})
		},
		//得到行、列的合并值
		objectSpanMethod: function({row, column, rowIndex, columnIndex}) {
            if(this.mergeArr.indexOf(column.property) !== -1) { 
                // 判断其值是不是为0 
                if(this.mergeObj[column.property][rowIndex]) { 
                    return [this.mergeObj[column.property][rowIndex], 1]
                } else {
                    // 如果为0则为需要合并的行
                    return [0, 0]; 
                }
            }
		},
renderHeadeRexpert: function(h, item) {
			var index = item.$index
			console.log(index,"我是index",item)
		  return [
			index=='1'?'目标V2入组例数':index=='2'?'首例V1入筛时间(YYYY/MM/DD)':index=='9'?'入组完成率(%)':index=='6'?'首例V2入组时间':'',
			h(
			  'el-tooltip',
			  {
				props: {
				  content: (function() {
					return index=='1'?'即目标入组例数(与管理目标数一致)':index=='2'?'完成V1的提交时间,即“第一例完成V1并成功纳入筛选期的访视日期':index=='9'?'入组完成率=已入组/目标V2入组例数':index=='6'?'查询第一个入组的时间(访视2触发入组,统计第一个做访视2的患者,且是完成访视2提交的时间。)':''
				  })(),
				  placement: 'top'
				}
			  },
			  [
				h('span', {
				  class: {
					'el-icon-question': true
				  }
				})
			  ]
			)
		  ]
		},
	}
})

+ 216 - 0
app/statistics/js/dejdsqyysfjd.js

@ -0,0 +1,216 @@
var template = ''
$.ajax('../html/dejdsqyysfjd.html',{
	data: {},
	dataType: 'html',
	cache: false,
	timeout: 60000, 
	async: false,
	error: function(res) {
	},
	success: function(res) {
		template = res
	}
})
Vue.component('mzf-dejdsqyy-sfjd', {
	props: [],
	template: template,
	data: function() {
		return {
			mzfSfzmxData:[],
			testArr1: [],
			testArr2: [],
			testArr3: [],
			testArr4: [],
			testPosition1: 0,
			testPosition2: 0,
			testPosition3: 0,
			testPosition4: 0,
			list:[],
			startTime:new Date('2023','05','26'),
			endTime:new Date(),
			regionList:[],
			regionData:[
				{label:'全市',id:'1',type:'1'}
			],
			regionListList:[],
			tertiaryHospitalsData:[
				{label:'全部',id:'1',type:'2'}
			],
			communityHospitalsList:[],
			communityHospitalsData:[
				{label:'全部',id:'1',type:'3'}
			],
			groupingList:[],
			groupingData:[
				{label:'全部',id:'1',type:'4'}
			],
			administrationStatusList:[],
			administrationStatusData:[
				{label:'全部',id:'1',type:'5'}
			],
			show:false,
			showTwo:false,
			showThree:false,
			currentPage:1,
			currentSize:10, 
			datatotal:0, //总数
			loadingTwo:false,
			setDisabled:{
				disabledDate:function(time) {
					return time.getTime() < new Date('2023','05','26') || time.getTime() > Date.now();
				}
			},
			s:'',
			e:'',
			mergeObj: {},
            mergeArr: ['areaName', 'gradeHospitalName', 'hospitalName', 'groupName',],
		}
	},
	created: function(){
		this.s = this.startTime.format('yyyy-MM-dd')
		this.e = this.endTime.format('yyyy-MM-dd')
		this.list.unshift({type:'0',id:'time',label:this.s +"~"+ this.e})
		this.getCopdFollowDetailData()
	},
	watch:{
		'startTime':{
			 handler:function(o) {
				if(!o) {
					this.list.splice(0,1)
				}
			 },
			 deep: true,
			 immediate: true
		},
		'endTime':{
			 handler:function(o) {
				if(!o) {
					this.list.splice(0,1)
				}
			 },
			 deep: true,
			 immediate: true
		},
	},
	methods: {
		getCopdFollowDetailData:function() {
			var vm = this
			vm.loadingTwo = true
			var data = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd')
			}
			statisticAPI.getCopdFollowDetailData({
				jsonStr:JSON.stringify(data)
			}).then(function(res){
				if(res.status == 200) {
					console.log(res,'sfmx');
					vm.loadingTwo = false
					vm.mzfSfzmxData = res.data
					vm.getSpanArr(vm.mzfSfzmxData)
				}
			}).catch(function(err){
				vm.loadingTwo = false
			})
		},
		startTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = o.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		endTimeChange:function(o) {
			if(!this.list[0] || this.list[0].type!=0) {
				this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ o.format('yyyy-MM-dd')
			}
		},
		deleteClick:function(item) {
			if(item.id == "time") {
				this.startTime = ''
				this.endTime = ''
				this.list.splice(0,1)
			}
			var index = this.list.findIndex(function(v){
				return item.id == v.id
			})
			this.list.splice(index,1)
		},
		// 下一页  上一页
		handleCurrentChange:function(val) {
			var vm = this
			vm.currentPage = val
		},
		change:function(val) {
			this.list = this.list.concat(val)
		},
		// 确定
		confirm:function() {
			this.getCopdFollowDetailData()
		},
		// 取消
		cancel:function() {
			this.startTime = new Date('2023','05','26')
			this.endTime = new Date()
			if(!this.list[0] || this.list[0].type!=0) {
			 this.list.unshift({type:'0',id:'time',label:this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')})
			}else{
				this.list[0].label = this.startTime.format('yyyy-MM-dd') +"~"+ this.endTime.format('yyyy-MM-dd')
			}
		},
		// 导出
		exportHandle:function() {
			var vm = this
			vm.loadingTwo = true
			var data = {
				startTime:this.startTime.format('yyyy-MM-dd'),
				endTime:this.endTime.format('yyyy-MM-dd')
			}
			var jsonStr = JSON.stringify(data)
			statisticAPI.exportCopdFollowDetailData({
				jsonStr: encodeURIComponent(jsonStr)
			},'慢阻肺随访总明细.xls').then(function(res){
				vm.loadingTwo = false
			})
		},
		
		getSpanArr(data) {
			this.mergeArr.forEach((key, index1) => {
				var count = 0; // 用来记录需要合并行的起始位置
				this.mergeObj[key] = []; // 记录每一列的合并信息
				data.forEach((item, index) => {
					// index == 0表示数据为第一行,直接 push 一个 1
					if(index === 0) {
						this.mergeObj[key].push(1); 
					} else {
						// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位
						if(item[key] === data[index - 1][key]) { 
							this.mergeObj[key][count] += 1;
							this.mergeObj[key].push(0);
						} else {
							// 如果当前行和上一行其值不相等 
							count = index; // 记录当前位置 
							this.mergeObj[key].push(1); // 重新push 一个 1
						}
					}
				})
			})
		},
		//得到行、列的合并值
		objectSpanMethod: function({row, column, rowIndex, columnIndex}) {
            if(this.mergeArr.indexOf(column.property) !== -1) { 
                // 判断其值是不是为0 
                if(this.mergeObj[column.property][rowIndex]) { 
                    return [this.mergeObj[column.property][rowIndex], 1]
                } else {
                    // 如果为0则为需要合并的行
                    return [0, 0]; 
                }
            }
		},
		
	}
})

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 319 - 0
app/statistics/js/dyjdRzsfjd.js