Forráskód Böngészése

统计分析-资质分析和补助费用页面

chenyue 6 éve
szülő
commit
712cff43d0

+ 1 - 1
app/home/html/index.html

@ -34,7 +34,7 @@
       </style>
    </head>
    <body>
    	<div class="flex-box" style="align-items: stretch;">
    	<div id="wrapper" class="flex-box" style="align-items: stretch;">
    		<iframe style="width: 250px;height: calc(100vh);" frameborder='0' src="menu.html" noresize="noresize" id="tab"></iframe>
       	 	<iframe class="flex-box-item" src="href:aboutblank;" frameborder='0' name="view_frame" id="main" class="p10" noresize="noresize"></iframe>
    	</div>

+ 17 - 1
app/statistics/css/common.css

@ -766,4 +766,20 @@ a {
	color: #323232;
	width: 116px;
	margin-left: -58px;
}
}
.c-row.n-row .c-20:nth-child(5n+1){
	margin-left: 0;
}
body .el-table th.gutter{
    display: table-cell!important;
}
[v-cloak] {
    display: none;
}
.el-table th>.cell{
	font-weight: normal;
}
.el-table td, .el-table th{
	padding: 8px 0;
}

+ 3 - 3
app/statistics/html/home.html

@ -92,9 +92,9 @@
                    <span class="section-label c-f14">服务分析</span>
                    <div class="grey-line"></div>
                </div>
                <div class="section-body mtb30">
                    <div class="c-row">
                        <div v-for="item in serviceAnalysis" @click="showDetail(item.url)" class="c-20 c-t-center">
                <div class="section-body mb30 mt10">
                    <div class="c-row n-row">
                        <div v-for="item in serviceAnalysis" @click="showDetail(item.url)" class="c-20 mt20 c-t-center clearfix">
                            <img :src="item.photo">
                            <div class="c-f12 c-999 mt10">{{item.label}}</div>
                        </div>

+ 89 - 0
app/statistics/html/qualifications-analysis.html

@ -0,0 +1,89 @@
<!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/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" isdownload="true" @download="exportData"></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>
				<el-table border :data="tableData" style="width: 100%" class="mt20">
					<el-table-column prop="date" 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>
								</template>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.date }}</span>
							</div>
						</template>
					</el-table-column>
					<el-table-column prop="name" label="合计(人)"  align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="name" label="待审核(人)" align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="name" label="已通过(人)" align="right" header-align="center">
					</el-table-column>
					<el-table-column prop="name" label="未通过(人)" 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="../../../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/qualifications-analysis.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

+ 96 - 0
app/statistics/html/subsidy-cost.html

@ -0,0 +1,96 @@
<!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/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>
	<body>
		<div id="main" class="c-hide" v-cloak>
			<header-tab appname="补助费用" isback="true" isrefresh="true" isdownload="true" @download="exportData"></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>
				<el-table border :data="tableData" style="width: 100%" class="mt20">
					<el-table-column prop="date" 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>
								</template>
								<span v-else :style="'margin-left:'+(scope.row.level-1)*2+'em;'">{{ scope.row.date }}</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>
						<el-table-column prop="name" 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>
						<el-table-column prop="name" 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>
						<el-table-column prop="name" 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>
						<el-table-column prop="name" label="副高及以上(元)"width="135" align="right" header-align="center">
						</el-table-column>
					</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="../../../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/subsidy-cost.js" type="text/javascript" charset="utf-8"></script>
	</body>
</html>

+ 16 - 0
app/statistics/js/home.js

@ -41,6 +41,22 @@ new Vue({
			photo: '../../../images/changcufangfenxi_icon.png',
			label: '长处方分析',
			url: 'prescription-analysis.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			label: '资质分析',
			url: 'qualifications-analysis.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			label: '补助费用统计',
			url: 'subsidy-cost.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			label: '服务工单分析',
			url: 'prescription-analysis.html'
		}, {
			photo: '../../../images/changcufangfenxi_icon.png',
			label: '响应速度分析',
			url: 'prescription-analysis.html'
		}],
		signRateData: {
		    signTask: {

+ 222 - 0
app/statistics/js/qualifications-analysis.js

@ -0,0 +1,222 @@
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: [{
			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 弄'
		}],
		valueArea: "",
		optionsArea: [{
			value: '选项1',
			label: '黄金糕'
		}, {
			value: '选项2',
			label: '双皮奶'
		}, {
			value: '选项3',
			label: '蚵仔煎'
		}, {
			value: '选项4',
			label: '龙须面'
		}, {
			value: '选项5',
			label: '北京烤鸭'
		}],
		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.initData()
		$("#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() {
			util.treeTableXcode(this.tableData);
		},
		changeDateValue: function() {
			alert(JSON.stringify(this.dateValue))
		},
		exportData: function() {
			
		},
		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);
		}
	}
});

+ 221 - 0
app/statistics/js/subsidy-cost.js

@ -0,0 +1,221 @@
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: [{
			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 弄'
		}],
		valueArea: "",
		optionsArea: [{
			value: '选项1',
			label: '黄金糕'
		}, {
			value: '选项2',
			label: '双皮奶'
		}, {
			value: '选项3',
			label: '蚵仔煎'
		}, {
			value: '选项4',
			label: '龙须面'
		}, {
			value: '选项5',
			label: '北京烤鸭'
		}],
		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.initData()
		$("#main").removeClass("c-hide");
		//监听后退按钮的操作
		EventBus.$on("back-click", function(arg) {
			history.go(-1);
		});
		//监听页面刷新
		EventBus.$on("refresh-click", function(arg) {
			vm.initData()
		});
		window.onresize = function() {
			
		}
	},
	methods: {
		initData: function() {
			util.treeTableXcode(this.tableData);
		},
		changeDateValue: function() {
			alert(JSON.stringify(this.dateValue))
		},
		exportData: function() {
			
		},
		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);
		}
	}
});