Ver código fonte

统计分析:资质分析、补助分析、响应分析、服务工单分析

chenyue 6 anos atrás
pai
commit
1ebf46f922

+ 4 - 0
api/home-api.js

@ -3,6 +3,10 @@
    	baseinfo: function(data) {
			return httpRequest.post("doctor/baseinfo", {data: data})
		},
	    //获取省市区  type:省1,市2,区3  
		getDistrict:function(data) {
            return httpRequest.post("common/district", {data: data})
    },		
    }
    exports.homeAPI = homeAPI;

+ 7 - 6
api/http-request.js

@ -1,5 +1,5 @@
(function($) {
    var publish_version = true;
    var publish_version = false;
    var isInner = false; //发布线上后有内外网的配置
    var docInfo = "app_storage";
    var agentName = "wlyyAgentForDoc";
@ -25,16 +25,17 @@
            imgServer = "http://10.95.22.10:8011/";
        }
    } else { // 测试环境配置
        server = "http://192.168.131.172:9092/wlyy/"
        imserver = "http://192.168.131.172:3000/api/v2";
        socketUrl = "http://192.168.131.172:3000";
        server = "http://172.26.0.118:9092/wlyy/"
        imserver = "http://172.26.0.118:3000/api/v2";
        socketUrl = "http://172.26.0.118:3000";
//      server = "http://192.168.131.154:8080/"
        articleServer="http://192.168.131.172:9092/wlyy/"
        articleServer="http://172.26.0.118:9092/wlyy/"
//   server = "http://192.168.131.130:8080/";
//		server = "http://192.168.131.123:8080/"; // 明芬
//      server = "http://192.168.131.127:8060/"; //逸祥
//      server = "http://192.168.131.24:8080/"; //仕杰
//		server = "http://192.168.131.143:8080/"; // 志南
//      server = "http://192.168.131.143:8080/"; // 志南
//      server = "http://192.168.131.24:8082/"; // 文彬
//      imserver = "http://192.168.131.24:3000/api/v2"
//      socketUrl = "http://192.168.131.24:3000";
//		server = "http://192.168.131.144:8080/";//冬梅

+ 25 - 1
api/statistics-api.js

@ -62,7 +62,31 @@
        //按月份获得个月的评价平均分
        getAVGSocreByMonth: function(data){
            return httpRequest.get("/statistics/getAVGSocreByMonth", {data: data});
        }
        },
        //资质分析
        doorQualificationAnalyze: function(data){
            return httpRequest.get("/doctor/statisticAnalyze/doorQualificationAnalyze", {data: data});
        },
        //资质分析导出excel
        doorQualificationAnalyzeExport:httpRequest.server+"doctor/statisticAnalyze/doorQualificationAnalyzeExport",
        //响应速度分析
        doorResponseAnalyze: function(data){
            return httpRequest.get("/doctor/statisticAnalyze/doorResponseAnalyze", {data: data});
        },
        //响应速度分析导出excel
        doorResponseAnalyzeExport:httpRequest.server+"doctor/statisticAnalyze/doorResponseAnalyzeExport",
        //服务工单分析
        doorServiceOrderAnalyze: function(data){
            return httpRequest.get("/doctor/statisticAnalyze/doorServiceOrderAnalyze", {data: data});
        },
        //服务工单分析导出excel
        doorServiceOrderAnalyzeExport:httpRequest.server+"doctor/statisticAnalyze/doorServiceOrderAnalyzeExport",
        //补助费用
        subsidyExpense: function(data){
            return httpRequest.get("/doctor/statisticAnalyze/subsidyExpense", {data: data});
        },
        //补助费用导出excel
        subsidyExpenseExport:httpRequest.server+"doctor/statisticAnalyze/subsidyExpenseExport",
    }
    exports.statisticAPI = statisticAPI;

+ 36 - 0
app/statistics/css/common.css

@ -783,3 +783,39 @@ body .el-table th.gutter{
.el-table td, .el-table th{
	padding: 8px 0;
}
.bgc-12B7F5,.bgc1-12B7F5{
    background-color: #12B7F5;  
}
.bgc-12B7F5:hover{
    background-color: #00adee;
    color: #fff;
}
.c-12B7F5{
    color: #12B7F5; 
}
.bgc-FF9630,.bgc1-FF9630{
    background-color: #FF9630;
}
.bgc-FF9630:hover{
    background-color: #f58920;
    color: #fff;
}
.c-FF9630{
    color: #FF9630;
}
.btn{
    color:#fff;
    width: 80px;    
    padding: 4px 8px;
    height: 28px;
}
.searchDiv .el-input__inner,.searchDiv  .el-input__icon{
    height: 28px;
    line-height: 28px;
}
.searchDiv .el-date-editor .el-range-separator{
    height: 28px;
    line-height: 28px;
    width: 10%;
}

+ 22 - 15
app/statistics/html/qualifications-analysis.html

@ -12,7 +12,9 @@
		<link rel="shortcut icon" href="../../../favicon.ico">
		<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/cross.css" />
        <link rel="stylesheet" type="text/css" href="../../../css/flex.css" />
        <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
		<link rel="stylesheet" type="text/css" href="../css/common.css" />
@ -25,42 +27,46 @@
	<body>
		<div id="main" class="c-hide" v-cloak>
			<header-tab appname="资质分析" isback="true" isrefresh="true" isdownload="true" @download="exportData"></header-tab>
			<header-tab appname="资质分析" isback="true" isrefresh="true"></header-tab>
			<div class="mt20 plr10">
				<div class="ui-grid">
					<div class="ui-col-0">
						<span class="c-f16 c-333 pr10">时间</span>
				<div class="flex searchDiv">
					<div class="f_s_0">
						<span class="c-f16 c-333 pr10">时&emsp;&emsp;间</span>
						<el-date-picker v-model="dateValue" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="defaultValue" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
						</el-date-picker>
					</div>
					<div class="ui-col-0 ml30">
						<span class="c-f16 c-333 pr10">范围</span>
					<div class="f_s_0 ml20">
						<span class="c-f16 c-333 pr10">区域范围</span>
						<el-select v-model="valueArea" placeholder="请选择">
							<el-option v-for="item in optionsArea" :key="item.value" :label="item.label" :value="item.value">
							<el-option v-for="item in optionsArea" :key="item.code" :label="item.name" :value="item.code">
							</el-option>
						</el-select>
					</div>
					<div class="f_g_1 ml20">					    
                        <span class="btn bgc-12B7F5 fl" @click="initData()">搜索</span>
                        <span class="btn bgc-FF9630 ml20 fr" @click="exportData()">导出</span>
					</div>
				</div>
				<el-table border :data="tableData" style="width: 100%" class="mt20">
					<el-table-column prop="date" label="地区/机构" min-width="200">
					<el-table-column prop="area" label="地区/机构" min-width="200">
						<template slot-scope="scope">
							<div @click="treeClick(scope.row,scope.$index)" style="cursor: pointer;">
								<template v-if="scope.row.children && scope.row.children.length > 0">
									<i class="el-icon-arrow-down" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-if="scope.row.open"></i>
									<i class="el-icon-arrow-right" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-else></i>
									<span>{{ scope.row.date }}</span>
									<span>{{ scope.row.area }}</span>
								</template>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.date }}</span>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.area }}</span>
							</div>
						</template>
					</el-table-column>
					<el-table-column prop="name" label="合计(人)"  align="right" header-align="center">
					<el-table-column prop="all" label="合计(人)"  align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="name" label="待审核(人)" align="right" header-align="center">
					<el-table-column prop="examine" label="待审核(人)" align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="name" label="已通过(人)" align="right" header-align="center">
					<el-table-column prop="pass" label="已通过(人)" align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="name" label="未通过(人)" align="right" header-align="center">
					<el-table-column prop="nopass" label="未通过(人)" align="right" header-align="center">
					</el-table-column>
				</el-table>
			</div>
@ -76,6 +82,7 @@
		<script src="../../../plugins/echarts/3.8.5/echarts.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js"></script>
		<script src="../../../component/common/vuedals.js" type="text/javascript" charset="utf-8"></script>

+ 109 - 0
app/statistics/html/response-speed-analysis.html

@ -0,0 +1,109 @@
<!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="shortcut icon" href="../../../favicon.ico">
		<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/flex.css" />
        <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
		<link rel="stylesheet" type="text/css" href="../css/common.css" />
	</head>
	<style>
		.el-table th{
			background: #F5F5FA;
		}
	</style>
	<body>
		<div id="main" class="c-hide" v-cloak>
			<header-tab appname="资质分析" isback="true" isrefresh="true"></header-tab>
			<div class="mt20 plr10">
				<div class="flex searchDiv">
                    <div class="f_s_0">
                        <span class="c-f16 c-333 pr10">时&emsp;&emsp;间</span>
                        <el-date-picker v-model="dateValue" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="defaultValue" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
                        </el-date-picker>
                    </div>
                    <div class="f_s_0 ml20">
                        <span class="c-f16 c-333 pr10">区域范围</span>
                        <el-select v-model="valueArea" placeholder="请选择">
                            <el-option v-for="item in optionsArea" :key="item.code" :label="item.name" :value="item.code">
                            </el-option>
                        </el-select>
                    </div>
                    <div class="f_s_0 ml20">
                        <span class="c-f16 c-333 pr10">类型</span>
                        <el-select v-model="roleType" placeholder="请选择">
                            <el-option label="调度员" value="1">
                            </el-option>
                            <el-option label="服务人员" value="2">
                            </el-option>
                        </el-select>
                    </div>
                    <div class="f_g_1 ml20">                        
                        <span class="btn bgc-12B7F5 fl" @click="initData()">搜索</span>
                        <span class="btn bgc-FF9630 ml20 fr" @click="exportData()">导出</span>
                    </div>
                </div>
				<el-table border :data="tableData" style="width: 100%" class="mt20">
					<el-table-column prop="area" label="地区/机构" min-width="200">
						<template slot-scope="scope">
							<div @click="treeClick(scope.row,scope.$index)" style="cursor: pointer;">
								<template v-if="scope.row.children && scope.row.children.length > 0">
									<i class="el-icon-arrow-down" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-if="scope.row.open"></i>
									<i class="el-icon-arrow-right" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-else></i>
									<span>{{ scope.row.area }}</span>
								</template>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.area }}</span>
							</div>
						</template>
					</el-table-column>
					<el-table-column prop="h01" label="0-1h(个)"  align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="h12" label="1-2h(个)" align="right" header-align="center">
					</el-table-column>
                    <el-table-column prop="h23" label="2-3h(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="h34" label="3-4h(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="h45" label="4-5h(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="h5more" label="5h以上(个)" align="right" header-align="center">
                    </el-table-column>
				</el-table>
			</div>
			<!--模态框组件-->
			<vuedals></vuedals>
		</div>
		<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="../../../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="../../../plugins/echarts/3.8.5/echarts.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js"></script>
		<script src="../../../component/common/vuedals.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/xlsx.core.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/exportExcel.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/response-speed-analysis.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

+ 114 - 0
app/statistics/html/service-sheet-analysis.html

@ -0,0 +1,114 @@
<!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="shortcut icon" href="../../../favicon.ico">
		<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/flex.css" />
        <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
		<link rel="stylesheet" type="text/css" href="../css/common.css" />
	</head>
	<style>
		.el-table th{
			background: #F5F5FA;
		}
		.font-normal{
		    line-height: 28px;
		}
		.wenhao{
		    background: url(../../../images/icon_wenhao2.png) no-repeat;
		    background-size: contain;
		    color: #999;		    
		}
	</style>
	<body>
		<div id="main" class="c-hide" v-cloak>
			<header-tab appname="资质分析" isback="true" isrefresh="true"></header-tab>
			<div class="mt20 plr10">
				<div class="flex searchDiv">
                    <div class="f_s_0">
                        <span class="c-f16 c-333 pr10">时&emsp;&emsp;间</span>
                        <el-date-picker v-model="dateValue" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="defaultValue" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
                        </el-date-picker>
                    </div>
                    <div class="f_s_0 ml20">
                        <span class="c-f16 c-333 pr10">区域范围</span>
                        <el-select v-model="valueArea" placeholder="请选择">
                            <el-option v-for="item in optionsArea" :key="item.code" :label="item.name" :value="item.code">
                            </el-option>
                        </el-select>
                    </div>
                    <div class="f_g_1 ml20">                        
                        <span class="btn bgc-12B7F5 fl" @click="initData()">搜索</span>
                        <span class="btn bgc-FF9630 ml20 fr" @click="exportData()">导出</span>
                    </div>
                </div>
				<el-table border :data="tableData" style="width: 100%" class="mt20">
					<el-table-column prop="area" label="地区/机构" min-width="200">
                        <template slot-scope="scope">
                            <div @click="treeClick(scope.row,scope.$index)" style="cursor: pointer;">
                                <template v-if="scope.row.children && scope.row.children.length > 0">
                                    <i class="el-icon-arrow-down" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-if="scope.row.open"></i>
                                    <i class="el-icon-arrow-right" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-else></i>
                                    <span>{{ scope.row.area }}</span>
                                </template>
                                <span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.area }}</span>
                            </div>
                        </template>
                    </el-table-column>
                    <el-table-column prop="all" label="合计(个)"  align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="waitinglist" label="待派单(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="waitingorder" label="待确认(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="waitingservice" label="待服务(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="waitingpay" label="待付款(个)"  align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="waitingcomment" label="待评价(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="completed" label="已完成(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="cancelled" label="已取消(个)" align="right" header-align="center">
                    </el-table-column>
                    <el-table-column prop="evaluateSplit" align="right" header-align="center" :render-header="customFieldColumn" width="150px">
                    </el-table-column>
				</el-table>
			</div>
			<!--模态框组件-->
			<vuedals></vuedals>
		</div>
		<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="../../../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="../../../plugins/echarts/3.8.5/echarts.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js"></script>
		<script src="../../../component/common/vuedals.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/statistics/header-tab.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/xlsx.core.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/exportExcel.js" type="text/javascript" charset="utf-8"></script>
		<script src="../js/service-sheet-analysis.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

+ 36 - 29
app/statistics/html/subsidy-cost.html

@ -3,7 +3,7 @@
	<head>
		<meta charset="UTF-8">
		<title>补助费用</title>
		<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" />
@ -12,6 +12,8 @@
		<link rel="shortcut icon" href="../../../favicon.ico">
		<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/flex.css" />
        <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
@ -20,53 +22,57 @@
	<body>
		<div id="main" class="c-hide" v-cloak>
			<header-tab appname="补助费用" isback="true" isrefresh="true" isdownload="true" @download="exportData"></header-tab>
			<header-tab appname="补助费用" isback="true" isrefresh="true"></header-tab>
			<div class="mt20 plr10">
				<div class="ui-grid">
					<div class="ui-col-0">
						<span class="c-f16 c-333 pr10">时间</span>
						<el-date-picker v-model="dateValue" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="defaultValue" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
						</el-date-picker>
					</div>
					<div class="ui-col-0 ml30">
						<span class="c-f16 c-333 pr10">范围</span>
						<el-select v-model="valueArea" placeholder="请选择">
							<el-option v-for="item in optionsArea" :key="item.value" :label="item.label" :value="item.value">
							</el-option>
						</el-select>
					</div>
				</div>
				<div class="flex searchDiv">
                    <div class="f_s_0">
                        <span class="c-f16 c-333 pr10">时&emsp;&emsp;间</span>
                        <el-date-picker v-model="dateValue" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="defaultValue" value-format="yyyy-MM-dd" :picker-options="pickerOptions">
                        </el-date-picker>
                    </div>
                    <div class="f_s_0 ml20">
                        <span class="c-f16 c-333 pr10">区域范围</span>
                        <el-select v-model="valueArea" placeholder="请选择">
                            <el-option v-for="item in optionsArea" :key="item.code" :label="item.name" :value="item.code">
                            </el-option>
                        </el-select>
                    </div>
                    <div class="f_g_1 ml20">                        
                        <span class="btn bgc-12B7F5 fl" @click="initData()">搜索</span>
                        <span class="btn bgc-FF9630 ml20 fr" @click="exportData()">导出</span>
                    </div>
                </div>
				<el-table border :data="tableData" style="width: 100%" class="mt20">
					<el-table-column prop="date" label="地区/机构" min-width="200">
					<el-table-column prop="area" label="地区/机构" min-width="200">
						<template slot-scope="scope">
							<div @click="treeClick(scope.row,scope.$index)" style="cursor: pointer;">
								<template v-if="scope.row.children && scope.row.children.length > 0">
									<i class="el-icon-arrow-down" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-if="scope.row.open"></i>
									<i class="el-icon-arrow-right" :style="'margin-left:'+(scope.row.level-1)*2+'em;'" v-else></i>
									<span>{{ scope.row.date }}</span>
									<span>{{ scope.row.area }}</span>
								</template>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.date }}</span>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.area }}</span>
							</div>
						</template>
					</el-table-column>
    				<el-table-column label="补助费用">
						<el-table-column prop="name" label="合计(元)" width="120" align="right" header-align="center">
    				<el-table-column label="补助费用" header-align="center">
						<el-table-column prop="subsidy_all" label="合计(元)" width="120" align="right" header-align="center">
						</el-table-column>
						<el-table-column prop="name" label="医生/护士(元)"width="130" align="right" header-align="center">
						<el-table-column prop="subsidy_nurse" label="医生/护士(元)"width="130" align="right" header-align="center">
						</el-table-column>
						<el-table-column prop="name" label="主治医师(元)"width="120" align="right" header-align="center">
						<el-table-column prop="subsidy_attending" label="主治医师(元)"width="120" align="right" header-align="center">
						</el-table-column>
						<el-table-column prop="name" label="副高及以上(元)"width="135" align="right" header-align="center">
						<el-table-column prop="subsidy_senior" label="副高及以上(元)"width="135" align="right" header-align="center">
						</el-table-column>
					</el-table-column>
    				<el-table-column label="上门出诊人次">
						<el-table-column prop="name" label="合计(元)"width="120" align="right" header-align="center">
    				<el-table-column label="上门出诊人次" header-align="center">
						<el-table-column prop="outcalls_all" label="合计(人次)"width="110" align="right" header-align="center">
						</el-table-column>
						<el-table-column prop="name" label="医生/护士(元)" width="130" align="right" header-align="center">
						<el-table-column prop="outcalls_nurse" label="医生/护士(人次)" width="140" align="right" header-align="center">
						</el-table-column>
						<el-table-column prop="name" label="主治医师(元)"width="120" align="right" header-align="center">
						<el-table-column prop="outcalls_attending" label="主治医师(人次)"width="140" align="right" header-align="center">
						</el-table-column>
						<el-table-column prop="name" label="副高及以上(元)"width="135" align="right" header-align="center">
						<el-table-column prop="outcalls_senior" label="副高及以上(人次)"width="150" align="right" header-align="center">
						</el-table-column>
					</el-table-column>
				</el-table>
@ -83,6 +89,7 @@
		<script src="../../../plugins/echarts/3.8.5/echarts.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/statistics-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/home-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js"></script>
		<script src="../../../component/common/vuedals.js" type="text/javascript" charset="utf-8"></script>

+ 6 - 6
app/statistics/js/home.js

@ -42,21 +42,21 @@ new Vue({
			label: '长处方分析',
			url: 'prescription-analysis.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			photo: '../../../images/zigetongji_icon.png',
			label: '资质分析',
			url: 'qualifications-analysis.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			photo: '../../../images/buzhufeiyong_icon.png',
			label: '补助费用统计',
			url: 'subsidy-cost.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			photo: '../../../images/gongdanfenxi_icon.png',
			label: '服务工单分析',
			url: 'prescription-analysis.html'
			url: 'service-sheet-analysis.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			photo: '../../../images/xiangyinfenxi_icon.png',
			label: '响应速度分析',
			url: 'prescription-analysis.html'
			url: 'response-speed-analysis.html'
		}],
		signRateData: {
		    signTask: {

+ 55 - 82
app/statistics/js/qualifications-analysis.js

@ -14,86 +14,9 @@ Vue.use(Vuedals.default);
new Vue({
	el: "#main",
	data: {
		tableData: [{
			id: "1",
			date: '2016-05-02',
			name: '王小虎',
			level: 1,
			address: '上海市普陀区金沙江路 1518 弄',
			children: [{
				id: "11",
				date: '2016-05-02',
				name: '王小虎',
				level: 2,
				address: '上海市普陀区金沙江路 1518 弄',
				children: [{
					id: "111",
					date: '2016-05-02',
					name: '王小虎',
					level: 3,
					address: '上海市普陀区金沙江路 1518 弄'
				}, {
					id: "112",
					level: 3,
					date: '2016-05-02',
					name: '王小虎',
					address: '上海市普陀区金沙江路 1518 弄'
				}, {
					id: "113",
					level: 3,
					date: '2016-05-02',
					name: '王小虎',
					address: '上海市普陀区金沙江路 1518 弄'
				}]
			}, {
				id: "12",
				level: 2,
				date: '2016-05-02',
				name: '王小虎',
				address: '上海市普陀区金沙江路 1518 弄'
			}, {
				id: "13",
				level: 2,
				date: '2016-05-02',
				name: '王小虎',
				address: '上海市普陀区金沙江路 1518 弄'
			}]
		}, {
			id: "2",
			level: 1,
			date: '2016-05-04',
			name: '王小虎',
			address: '上海市普陀区金沙江路 1517 弄'
		}, {
			id: "3",
			level: 1,
			date: '2016-05-01',
			name: '王小虎',
			address: '上海市普陀区金沙江路 1519 弄'
		}, {
			id: "4",
			level: 1,
			date: '2016-05-03',
			name: '王小虎',
			address: '上海市普陀区金沙江路 1516 弄'
		}],
		tableData: [],
		valueArea: "",
		optionsArea: [{
			value: '选项1',
			label: '黄金糕'
		}, {
			value: '选项2',
			label: '双皮奶'
		}, {
			value: '选项3',
			label: '蚵仔煎'
		}, {
			value: '选项4',
			label: '龙须面'
		}, {
			value: '选项5',
			label: '北京烤鸭'
		}],
		optionsArea: [],
		dateValue: "",
		defaultValue: ['00:00:00', '23:59:59'],
		pickerOptions: {
@ -153,8 +76,8 @@ new Vue({
		var start = new Date();
		start.setFullYear(start.getFullYear() - 1);
		vm.dateValue = [start, end]
        vm.getDistrict()
		//初始化数据
		vm.initData()
		$("#main").removeClass("c-hide");
		//监听后退按钮的操作
		EventBus.$on("back-click", function(arg) {
@ -171,13 +94,63 @@ new Vue({
	},
	methods: {
		initData: function() {
			util.treeTableXcode(this.tableData);
		    var vm=this
		    var startDate,endDate
		    if(typeof(vm.dateValue[0])!="string"){
		        startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
		    }else{
		        startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
		    }		   
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
            statisticAPI.doorQualificationAnalyze(params).then(function(res) {
                if(res.status == 200) {
                    vm.tableData=res.data
                    util.treeTableXcode(vm.tableData);
                } else {
                    vm.$message.error(res.msg)
                }
            })			
		},
		changeDateValue: function() {
			alert(JSON.stringify(this.dateValue))
		},
		getDistrict: function() {
		    var vm=this
		    var params={
		        type:3,code:"350200"
		    }
		    homeAPI.getDistrict(params).then(function(res) {
                if(res.status == 200) {
                    vm.optionsArea=res.list
                    vm.valueArea=vm.optionsArea[0].code
                    vm.initData()
                } else {
                    vm.$message.error(res.msg)
                }
            })
		},
		exportData: function() {
			
            var vm=this
		    var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
//          var str="http://192.168.131.24:8082/doctor/statisticAnalyze/doorQualificationAnalyzeExport?area=350203&startDate=2018-03-25&endDate=2019-03-25"
			var str = statisticAPI.doorQualificationAnalyzeExport+"?area="+vm.valueArea+"&startDate="+startDate+"&endDate="+endDate;
            window.open(str, "接收包数据导出")//导出数据
		},
		treeClick: function(item, index) {
			if(item.open) {

+ 195 - 0
app/statistics/js/response-speed-analysis.js

@ -0,0 +1,195 @@
var reqList = [];
var util = {};
util.treeTableXcode = function(data, xcode) {
	xcode = xcode || "";
	for(var i = 0; i < data.length; i++) {
		var item = data[i];
		item.xcode = xcode + i;
		if(item.children && item.children.length > 0) {
			util.treeTableXcode(item.children, item.xcode + "-");
		}
	}
};
Vue.use(Vuedals.default);
new Vue({
	el: "#main",
	data: {
		tableData: [],
		valueArea: "",
		optionsArea: [],
		roleType:"1",  //1、调度员,2、服务医生
		dateValue: "",
		defaultValue: ['00:00:00', '23:59:59'],
		pickerOptions: {
			shortcuts: [{
				text: '最近一周',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
					picker.$emit('pick', [start, end]);
				}
			}, {
				text: '最近一个月',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setMonth(start.getMonth() - 1);
					picker.$emit('pick', [start, end]);
				}
			}, {
				text: '最近三个月',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setMonth(start.getMonth() - 3);
					picker.$emit('pick', [start, end]);
				},
			}, {
				text: '最近半年',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setMonth(start.getMonth() - 6);
					picker.$emit('pick', [start, end]);
				},
			}, {
				text: '最近一年',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setFullYear(start.getFullYear() - 1);
					picker.$emit('pick', [start, end]);
				},
			}],
			disabledDate: function(d) {
				return d > new Date();
			}
		}
	},
	components: {
		vuedals: Vuedals.Component
	},
	mounted: function() {
		var vm = this
		//初始化时间
		var end = new Date();
		var start = new Date();
		start.setFullYear(start.getFullYear() - 1);
		vm.dateValue = [start, end]
		//初始化数据
        vm.getDistrict()
		$("#main").removeClass("c-hide");
		//监听后退按钮的操作
		EventBus.$on("back-click", function(arg) {
			history.go(-1);
		});
		//监听页面刷新
		EventBus.$on("refresh-click", function(arg) {
			alert("刷新")
			vm.initData()
		});
		window.onresize = function() {
			
		}
	},
	methods: {		
        initData: function() {
            var vm=this
            var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,roleType:vm.roleType
            }
            statisticAPI.doorResponseAnalyze(params).then(function(res) {
                if(res.status == 200) {
                    vm.tableData=res.data
                    util.treeTableXcode(vm.tableData);
                } else {
                    vm.$message.error(res.msg)
                }
            })          
        },
        changeDateValue: function() {
            alert(JSON.stringify(this.dateValue))
        },
        getDistrict: function() {
            var vm=this
            var params={
                type:3,code:"350200"
            }
            homeAPI.getDistrict(params).then(function(res) {
                if(res.status == 200) {
                    vm.optionsArea=res.list
                    vm.valueArea=vm.optionsArea[0].code
                    vm.initData()
                } else {
                    vm.$message.error(res.msg)
                }
            })
        },
        exportData: function() {
            var vm=this
            var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
            var str = statisticAPI.doorResponseAnalyzeExport+"?area="+vm.valueArea+"&startDate="+startDate+"&endDate="+endDate+"&roleType="+vm.roleType;
            window.open(str, "接收包数据导出")//导出数据
        },
		treeClick: function(item, index) {
			if(item.open) {
				this.collapse(item, index);
			} else {
				this.expand(item, index);
			}
		},
		expand: function(item, index) {
			if(!item.children) {
				return index;
			}
			//展开
			for(var i = 0; item.children && i < item.children.length; i++) {
				var child = item.children[i];
				this.tableData.splice(++index, 0, child);
				if(child.children && child.children.length > 0 && child.open) {
					index = this.expand(child, index);
				}
			}
			item.open = true;
			return index;
		},
		collapse: function(item, index) {
			if(!item.children) {
				return index;
			}
			//收缩
			item.open = false;
			var len = 0;
			for(var i = index + 1; i < this.tableData.length - 1; i++) {
				var xcode = this.tableData[i].xcode;
				if(xcode.startsWith(item.xcode + "-")) {
					len++;
				} else {
					break;
				}
			}
			this.tableData.splice(index + 1, len);
		}
	}
});

+ 201 - 0
app/statistics/js/service-sheet-analysis.js

@ -0,0 +1,201 @@
var reqList = [];
var util = {};
util.treeTableXcode = function(data, xcode) {
	xcode = xcode || "";
	for(var i = 0; i < data.length; i++) {
		var item = data[i];
		item.xcode = xcode + i;
		if(item.children && item.children.length > 0) {
			util.treeTableXcode(item.children, item.xcode + "-");
		}
	}
};
Vue.use(Vuedals.default);
new Vue({
	el: "#main",
	data: {
		tableData: [],
		valueArea: "",
		optionsArea: [],
		dateValue: "",
		defaultValue: ['00:00:00', '23:59:59'],
		pickerOptions: {
			shortcuts: [{
				text: '最近一周',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
					picker.$emit('pick', [start, end]);
				}
			}, {
				text: '最近一个月',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setMonth(start.getMonth() - 1);
					picker.$emit('pick', [start, end]);
				}
			}, {
				text: '最近三个月',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setMonth(start.getMonth() - 3);
					picker.$emit('pick', [start, end]);
				},
			}, {
				text: '最近半年',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setMonth(start.getMonth() - 6);
					picker.$emit('pick', [start, end]);
				},
			}, {
				text: '最近一年',
				onClick: function(picker) {
					var end = new Date();
					var start = new Date();
					start.setFullYear(start.getFullYear() - 1);
					picker.$emit('pick', [start, end]);
				},
			}],
			disabledDate: function(d) {
				return d > new Date();
			}
		}
	},
	components: {
		vuedals: Vuedals.Component
	},
	mounted: function() {
		var vm = this
		//初始化时间
		var end = new Date();
		var start = new Date();
		start.setFullYear(start.getFullYear() - 1);
		vm.dateValue = [start, end]
		//初始化数据
        vm.getDistrict()
		$("#main").removeClass("c-hide");
		//监听后退按钮的操作
		EventBus.$on("back-click", function(arg) {
			history.go(-1);
		});
		//监听页面刷新
		EventBus.$on("refresh-click", function(arg) {
			alert("刷新")
			vm.initData()
		});
		window.onresize = function() {
			
		}
	},
	methods: {
        initData: function() {
            var vm=this
            var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
            statisticAPI.doorServiceOrderAnalyze(params).then(function(res) {
                if(res.status == 200) {
                    vm.tableData=res.data
                    util.treeTableXcode(vm.tableData);
                } else {
                    vm.$message.error(res.msg)
                }
            })          
        },
        changeDateValue: function() {
            alert(JSON.stringify(this.dateValue))
        },
        getDistrict: function() {
            var vm=this
            var params={
                type:3,code:"350200"
            }
            homeAPI.getDistrict(params).then(function(res) {
                if(res.status == 200) {
                    vm.optionsArea=res.list
                    vm.valueArea=vm.optionsArea[0].code
                    vm.initData()
                } else {
                    vm.$message.error(res.msg)
                }
            })
        },
        exportData: function() {
            var vm=this
            var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
            var str = statisticAPI.doorServiceOrderAnalyzeExport+"?area="+vm.valueArea+"&startDate="+startDate+"&endDate="+endDate;
            window.open(str, "接收包数据导出")//导出数据
        },
		treeClick: function(item, index) {
			if(item.open) {
				this.collapse(item, index);
			} else {
				this.expand(item, index);
			}
		},
		expand: function(item, index) {
			if(!item.children) {
				return index;
			}
			//展开
			for(var i = 0; item.children && i < item.children.length; i++) {
				var child = item.children[i];
				this.tableData.splice(++index, 0, child);
				if(child.children && child.children.length > 0 && child.open) {
					index = this.expand(child, index);
				}
			}
			item.open = true;
			return index;
		},
		collapse: function(item, index) {
			if(!item.children) {
				return index;
			}
			//收缩
			item.open = false;
			var len = 0;
			for(var i = index + 1; i < this.tableData.length - 1; i++) {
				var xcode = this.tableData[i].xcode;
				if(xcode.startsWith(item.xcode + "-")) {
					len++;
				} else {
					break;
				}
			}
			this.tableData.splice(index + 1, len);
		},
		customFieldColumn (h, { column, $index }) {
            return h('span', {style:'height:23px;line-height:28px;'}, [
                h('el-popover', { props: { placement: 'top', width: '200',trigger: 'hover', content: '评价均分=“已完成”工单总评分/“已完成”工单数量' }}, [
                    h('span', {slot: 'reference',class:'font-normal'}, ['评价均分(分)',h('span',{class:'wenhao'},'....')])
                ])
            ])
        },
	}
});

+ 62 - 90
app/statistics/js/subsidy-cost.js

@ -14,86 +14,9 @@ Vue.use(Vuedals.default);
new Vue({
	el: "#main",
	data: {
		tableData: [{
			id: "1",
			date: '2016-05-02',
			name: '王小虎',
			level: 1,
			address: '上海市普陀区金沙江路 1518 弄',
			children: [{
				id: "11",
				date: '2016-05-02',
				name: '王小虎',
				level: 2,
				address: '上海市普陀区金沙江路 1518 弄',
				children: [{
					id: "111",
					date: '2016-05-02',
					name: '王小虎',
					level: 3,
					address: '上海市普陀区金沙江路 1518 弄'
				}, {
					id: "112",
					level: 3,
					date: '2016-05-02',
					name: '王小虎',
					address: '上海市普陀区金沙江路 1518 弄'
				}, {
					id: "113",
					level: 3,
					date: '2016-05-02',
					name: '王小虎',
					address: '上海市普陀区金沙江路 1518 弄'
				}]
			}, {
				id: "12",
				level: 2,
				date: '2016-05-02',
				name: '王小虎',
				address: '上海市普陀区金沙江路 1518 弄'
			}, {
				id: "13",
				level: 2,
				date: '2016-05-02',
				name: '王小虎',
				address: '上海市普陀区金沙江路 1518 弄'
			}]
		}, {
			id: "2",
			level: 1,
			date: '2016-05-04',
			name: '王小虎',
			address: '上海市普陀区金沙江路 1517 弄'
		}, {
			id: "3",
			level: 1,
			date: '2016-05-01',
			name: '王小虎',
			address: '上海市普陀区金沙江路 1519 弄'
		}, {
			id: "4",
			level: 1,
			date: '2016-05-03',
			name: '王小虎',
			address: '上海市普陀区金沙江路 1516 弄'
		}],
		tableData: [],
		valueArea: "",
		optionsArea: [{
			value: '选项1',
			label: '黄金糕'
		}, {
			value: '选项2',
			label: '双皮奶'
		}, {
			value: '选项3',
			label: '蚵仔煎'
		}, {
			value: '选项4',
			label: '龙须面'
		}, {
			value: '选项5',
			label: '北京烤鸭'
		}],
		optionsArea: [],
		dateValue: "",
		defaultValue: ['00:00:00', '23:59:59'],
		pickerOptions: {
@ -154,7 +77,7 @@ new Vue({
		start.setFullYear(start.getFullYear() - 1);
		vm.dateValue = [start, end]
		//初始化数据
		vm.initData()
        vm.getDistrict()
		$("#main").removeClass("c-hide");
		//监听后退按钮的操作
		EventBus.$on("back-click", function(arg) {
@ -168,16 +91,65 @@ new Vue({
			
		}
	},
	methods: {
		initData: function() {
			util.treeTableXcode(this.tableData);
		},
		changeDateValue: function() {
			alert(JSON.stringify(this.dateValue))
		},
		exportData: function() {
			
		},
	methods: {		
        initData: function() {
            var vm=this
            var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
            statisticAPI.subsidyExpense(params).then(function(res) {
                if(res.status == 200) {
                    vm.tableData=res.data
                    util.treeTableXcode(vm.tableData);
                } else {
                    vm.$message.error(res.msg)
                }
            })          
        },
        changeDateValue: function() {
            alert(JSON.stringify(this.dateValue))
        },
        getDistrict: function() {
            var vm=this
            var params={
                type:3,code:"350200"
            }
            homeAPI.getDistrict(params).then(function(res) {
                if(res.status == 200) {
                    vm.optionsArea=res.list
                    vm.valueArea=vm.optionsArea[0].code
                    vm.initData()
                } else {
                    vm.$message.error(res.msg)
                }
            })
        },
        exportData: function() {
            var vm=this
            var startDate,endDate
            if(typeof(vm.dateValue[0])!="string"){
                startDate=vm.dateValue[0].format("yyyy-MM-dd")
                endDate=vm.dateValue[1].format("yyyy-MM-dd")
            }else{
                startDate=vm.dateValue[0]
                endDate=vm.dateValue[1]
            }          
            var params={
                userAgent:localStorage.getItem('wlyyAgentForDoc'),
                area:vm.valueArea,startDate:startDate,endDate:endDate,
            }
            var str = statisticAPI.subsidyExpenseExport+"?area="+vm.valueArea+"&startDate="+startDate+"&endDate="+endDate;
            window.open(str, "接收包数据导出")//导出数据
        },
		treeClick: function(item, index) {
			if(item.open) {
				this.collapse(item, index);

+ 58 - 0
css/flex.css

@ -0,0 +1,58 @@
.flex{
    display:-webkit-box;
    display:-webkit-flex;
    display:flex;
}
/* 垂直排列 */
.flex_co{
    display: flex;
    display: -webkit-flex;
    flex-direction: column;
}
/*  垂直水平居中 */ 
.f_xy_c{    
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
}
.f_y_c{
    -webkit-align-items: center;
    align-items: center;
}
.f_x_c{
    -webkit-justify-content: center;
    justify-content: center;
}
/* 存在剩余空间放大 */
.f_g_1{
    -webkit-flex-grow:1;
    flex-grow:1;
}
/* 空间不够也不缩小 */
.f_s_0{
    -webkit-flex-shrink:0;
    flex-shrink:0;
}
.f_x_s{
    -webkit-justify-content: space-between;
    justify-content: space-between;
}
.f_y_s{
    align-items: flex-start;
    -webkit-align-items: flex-start;
}
.f_wrap{
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}
.ellipsis{
    white-space:nowrap;/*强制文本在一行内显示*/
    text-overflow:ellipsis; /*溢出省略号,支持ie、safari(webkit)*/
    -o-text-overflow:ellipsis; /*溢出省略号,支持opera*/
    overflow:hidden;/*溢出隐藏*/
}

BIN
images/buzhufeiyong_icon.png


BIN
images/gongdanfenxi_icon.png


BIN
images/icon_wenhao2.png


BIN
images/xiangyinfenxi_icon.png


BIN
images/zigetongji_icon.png


Diferenças do arquivo suprimidas por serem muito extensas
+ 10944 - 3
js/vue.js