Browse Source

长处方统计分析优化

raolu 6 years ago
parent
commit
a6359b0e66

+ 16 - 3
app/statistics/html/prescription-analysis.html

@ -12,6 +12,7 @@
        <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/element-ui.css"/>
        <link rel="stylesheet" type="text/css" href="../css/common.css"/>
        <style>
            .chart-center-text{position: absolute; width: 100%; top: 50%; margin-top: -17px;}
@ -19,7 +20,14 @@
    </head>
    <body>
        <div id="main" class="c-hide">
            <header-tab :appname="appname" :isback="isback" :isrefresh="isrefresh" :isfilter="isfilter" :isopen="false" ></header-tab>
            <header-tab 
                appname="长处方分析" 
                isback="true" 
                isrefresh="true" 
                isfilter="true" 
                isdownload="true"
                @download="exportData"
            ></header-tab>
            <header-prompt></header-prompt>
            <div v-show="sumType==1" class="order-tag-panel">
                <ul class="l-banner">
@ -120,9 +128,11 @@
                </div>
            </div>
            
            <bar-chart v-show="sumType==1 || sumType==3" class="mt15" @getbardata="getBarData" :barid="'barChart'+ sumType"></bar-chart>
            <!--<bar-chart v-show="sumType==3" class="mt15" @getbardata="getBarData" :barid="'barChart'+ sumType"></bar-chart>-->
            
            <line-chart v-show="sumType==2" @getlinedata="getPaymentLineData"></line-chart>
            <line-chart v-show="sumType==1 || sumType==3" class="mt15" @getlinedata="getBarData" lineid="lineChart1" :show-date-panel="1" :dateValue="dateValue"></line-chart>
            
            <line-chart v-show="sumType==2" @getlinedata="getPaymentLineData" lineid="lineChart2"></line-chart>
            
            <div v-show="sumType==4" class="mt10 c-border">
                <div class="plr10 ptb10 c-border-b">
@ -143,6 +153,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="../../../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>
@ -153,6 +164,8 @@
        <script src="../../../component/statistics/area-data-panel.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/statistics/team-info.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/prescription-analysis.js" type="text/javascript" charset="utf-8"></script>
    </body>
</html>

+ 43 - 0
app/statistics/js/exportExcel.js

@ -0,0 +1,43 @@
// 将一个sheet转成最终的excel文件的blob对象,然后利用URL.createObjectURL下载
function sheet2blob(sheet, sheetName) {
    sheetName = sheetName || 'sheet1';
    var workbook = {
        SheetNames: [sheetName],
        Sheets: {}
    };
    workbook.Sheets[sheetName] = sheet;
    // 生成excel的配置项
    var wopts = {
        bookType: 'xlsx', // 要生成的文件类型
        bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
        type: 'binary'
    };
    var wbout = XLSX.write(workbook, wopts);
    var blob = new Blob([s2ab(wbout)], {type:"application/octet-stream"});
    // 字符串转ArrayBuffer
    function s2ab(s) {
        var buf = new ArrayBuffer(s.length);
        var view = new Uint8Array(buf);
        for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
        return buf;
    }
    return blob;
}
function openDownloadDialog(url, saveName)
{
    if(typeof url == 'object' && url instanceof Blob)
    {
        url = URL.createObjectURL(url); // 创建blob地址
    }
    var aLink = document.createElement('a');
    aLink.href = url;
    aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
    var event;
    if(window.MouseEvent) event = new MouseEvent('click');
    else
    {
        event = document.createEvent('MouseEvents');
        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    }
    aLink.dispatchEvent(event);
}

+ 103 - 33
app/statistics/js/prescription-analysis.js

@ -5,11 +5,6 @@ Vue.use(Vuedals.default);
new Vue({
    el: "#main",
    data: {
        appname: "长处方分析",
        isback: true,
        isrefresh: true,
        isfilter: true,
        isopen: true,
        //页面请求参数
        level: '',
        area: '',
@ -19,11 +14,15 @@ new Vue({
        dateType: 1, //折线图坐标值1-日,2-周,3-月
        startDate: "",
        endDate: "",
        sDate: "", //折线图中自定义的时间
        eDate: "", //折线图中自定义的时间
        tagCode: 1, //顶部各个tag标签对应的值
        sumType: 1, //记录从筛选页面选择的统计维度 1-订单统计,2-费用统计,3-配送统计,4-年龄统计
        sumTypeName: "订单统计",
        disease: "", //疾病类型
        diseaseName: "全部",
        chooseYear: '',
        dateValue: [],
        orderTagDatas: {
            total: 0,
            finishCount: 0,
@ -111,6 +110,10 @@ new Vue({
                    vm.sumTypeName = data.sumTypeName;
                    vm.disease = data.disease;
                    vm.diseaseName = data.diseaseName;
                    vm.chooseYear = data.chooseYear;
                    
                    vm.startDate = getStartDate(vm.chooseYear);
                    vm.endDate = getEndDate(vm.chooseYear)
                    
                    //将参数职位初始值
                    vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
@ -138,14 +141,16 @@ new Vue({
                        disease: vm.disease,
                        dateType: vm.dateType
                    });
                    EventBus.$emit('update-statistics-year',{selectDate: vm.sumTypeName} );//显示统计维度的名称
                    EventBus.$emit('update-dimension-name', {dimensionVal: vm.diseaseName});//显示疾病类型的名称
                    EventBus.$emit('update-statistics-year',{selectDate: vm.chooseYear} );//显示统计维度的名称
                    EventBus.$emit('update-dimension-name', {dimensionVal: vm.sumTypeName});//显示疾病类型的名称
                    EventBus.$emit('update-dimension2-name', {dimensionVal2: vm.diseaseName});//显示疾病类型的名称
                    EventBus.$emit('update-statistics-time', {});//更新统计时间
                },
                component: 'prescription-filter',
                props: {
                    sumType: vm.sumType,
                    disease: vm.disease
                    disease: vm.disease,
                    chooseYear: vm.chooseYear
                }
            });
        });
@ -189,7 +194,14 @@ new Vue({
            })
        },
        getBarData: function(arg){
            this.dateType = arg.dateType;
            this.dateType = arg.dateType || this.dateType;
            var dateValue = arg.dateValue;
            console.log(arg);
            if(dateValue){
                this.dateValue = arg.dateValue;
                this.sDate = dateValue[0];
                this.eDate = dateValue[1];
            }
            loadData([1], this);
        },
        getPaymentLineData: function(arg){
@ -223,6 +235,37 @@ new Vue({
                disease: this.disease,
                dateType: this.dateType
            })
        },
        exportData: function(){
            var sheet = XLSX.utils.table_to_sheet($('#listTable')[0]);
            var disease = this.diseaseName == "全部" ? "" : this.diseaseName,
                areaName = this.area == "350200" ? "厦门市" : this.areaTitle,
                fileName = areaName + disease;
            switch(this.sumType){
                case 1:
                    var names = ["续方总量", "已完成", "居民取消", "审核未通过", "进行中", "其他原因取消"];
                    fileName += names[this.tagCode - 1];
                    if(this.tagCode > 1){
                        fileName += "订单";
                    }
                    break;
                case 2:
                    var names = ["费用总计", "人均费用"];
                    fileName += "续方"+names[this.tagCode -1];
                    break;
                case 3:
                    var names = ["居民自取", "物流配送", "健管师配送"];
                    fileName += names[this.tagCode - 1] + "订单";
                    break;
                case 4:
                    fileName += "续方人数";
                    break;
                default:
                    fileName += "续方情况";
                    break;
            }
            
            openDownloadDialog(sheet2blob(sheet), fileName+'.xlsx');
        }
    }
});
@ -238,13 +281,26 @@ function initData(vm){
    vm.lowLevel = vm.level - 1;
    vm.area = vm.userRole.code;
    vm.areaTitle = vm.userRole.name;
    var now = new Date(),
        year = now.getFullYear();
    if(now.getMonth() < 6){
        vm.chooseYear = year - 1;
    }else {
        vm.chooseYear = year;
    }
    vm.startDate = vm.sDate = getStartDate(vm.chooseYear);
    vm.endDate = vm.eDate = getEndDate(vm.chooseYear);
    
    vm.dateValue = [vm.sDate, vm.eDate];
    
    EventBus.$emit('update-area-name', {areaName: vm.areaTitle});
    
    var now = new Date();
    vm.endDate = now.format("yyyy-MM-dd");
    
    EventBus.$emit('update-statistics-year',{selectDate: vm.sumTypeName} );//显示统计维度的名称
    EventBus.$emit('update-dimension-name', {dimensionVal: vm.diseaseName});//显示疾病类型的名称
    EventBus.$emit('update-statistics-year',{selectDate: vm.chooseYear} );
    EventBus.$emit('update-dimension-name', {dimensionVal: vm.sumTypeName});//显示统计维度的名称
    EventBus.$emit('update-dimension2-name', {dimensionVal2: vm.diseaseName});//显示疾病类型的名称
}
function initReqParams(vm){
@ -255,53 +311,53 @@ function initReqParams(vm){
            //tagCode: 1.总量,2.已完成,3.居民取消,4.审核不通过,5.进行中,6.其他原因取消
            reqParam = [{
                url: "/statistics/getPrescriptionCount",
                data: {level: vm.level, area: vm.area, disease: vm.disease}
                data: {level: vm.level, area: vm.area, disease: vm.disease, year: vm.chooseYear}
            },{
                url: "/statistics/getPrescriptionTotalHistogram",
                data: {level: vm.level, area: vm.area, disease: vm.disease, type: vm.tagCode, interval: vm.dateType}
                data: {level: vm.level, area: vm.area, disease: vm.disease, type: vm.tagCode, interval: vm.dateType, year: vm.chooseYear, startTime: vm.sDate, endTime: vm.eDate}
            },{
                url: "/statistics/getPrescriptionTotalLowLevel",
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, type: vm.tagCode}
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, type: vm.tagCode, year: vm.chooseYear, startTime: vm.startDate, endTime: vm.endDate}
            }];
            break;
        case 2: 
            //dateType: 折线图坐标值1-日,2-周,3-月
            //tagCode: 1.总量,2.平均值
            vm.startDate = getBeforeMonthStartDate(3, vm.dateType);
//          vm.startDate = getBeforeMonthStartDate(3, vm.dateType);
            reqParam = [{
                url: "/statistics/getPrescriptionCost",
                data: {level: vm.level, area: vm.area, disease: vm.disease}
                data: {level: vm.level, area: vm.area, disease: vm.disease, year: vm.chooseYear}
            },{
                url: "/statistics/getPrescriptionCostAvgLine",
                data: {level: vm.level, area: vm.area, disease: vm.disease, type: vm.dateType, startDate: vm.startDate, endDate: vm.endDate}
                data: {level: vm.level, area: vm.area, disease: vm.disease, type: vm.dateType, year: vm.chooseYear, startDate: vm.startDate, endDate: vm.endDate}
            },{
                url: "/statistics/getPrescriptionCostLowLevel",
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, type: vm.tagCode}
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, type: vm.tagCode, year: vm.chooseYear, startTime: vm.startDate, endTime: vm.endDate}
            }];
            break;
        case 3: 
            //tagCode: 1.自取,2.快递配送,3.健管师配送
            reqParam = [{
                url: "/statistics/getPrescriptionDispatchingTotal",
                data: {level: vm.level, area: vm.area, disease: vm.disease}
                data: {level: vm.level, area: vm.area, disease: vm.disease, year: vm.chooseYear}
            },{
                url: "/statistics/getPrescriptionDispatchingHistogram",
                data: {level: vm.level, area: vm.area, disease: vm.disease, type: vm.tagCode, interval: vm.dateType}
                data: {level: vm.level, area: vm.area, disease: vm.disease, type: vm.tagCode, interval: vm.dateType, year: vm.chooseYear, startTime: vm.sDate, endTime: vm.eDate}
            },{
                url: "/statistics/getPrescriptionDispatchingLowLevel",
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, type: vm.tagCode}
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, type: vm.tagCode, year: vm.chooseYear, startTime: vm.startDate, endTime: vm.endDate}
            }];
            break;
        case 4: 
            reqParam = [{
                url: "/statistics/getPrescriptionAgeTotal",
                data: {level: vm.level, area: vm.area, disease: vm.disease}
                data: {level: vm.level, area: vm.area, disease: vm.disease, year: vm.chooseYear}
            },{
                url: "/statistics/getPrescriptionAgeHistogram",
                data: {level: vm.level, area: vm.area, disease: vm.disease}
                data: {level: vm.level, area: vm.area, disease: vm.disease, year: vm.chooseYear, startTime: vm.startDate, endTime: vm.endDate}
            },{
                url: "/statistics/getPrescriptionAgeLowLevel",
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease}
                data: {level: vm.level, lowlevel: vm.lowLevel, area: vm.area, disease: vm.disease, year: vm.chooseYear, startTime: vm.startDate, endTime: vm.endDate}
            }];
            break;  
        default:
@ -415,20 +471,34 @@ function handleSecondPanelData(data, vm){
                xAxisData.push(item.date);
                seriesData.push(item.count);
            }
            var names;
            var names,panelName;
            if(vm.sumType == 1){
                names = ["续方总量", "已完成", "居民取消", "审核未通过", "进行中", "其他原因取消"];
                panelName = "续方订单趋势";
            }else if(vm.sumType == 3){
                panelName = "订单配送趋势";
                names = ["居民自取", "物流配送", "健管师配送"];
            }
            EventBus.$emit("draw-bar-chart", {
                panelName: "近半年统计",
                xData: xAxisData,
                yData: seriesData,
                quotaName: names[vm.tagCode - 1],
                color: color,
//          EventBus.$emit("draw-bar-chart", {
//              panelName: "近半年统计",
//              xData: xAxisData,
//              yData: seriesData,
//              quotaName: names[vm.tagCode - 1],
//              color: color,
//              unit: "笔",
//              selectedDateType: vm.dateType
//          });
            
            console.log(vm.dateValue);
            EventBus.$emit("draw-line-chart", {
                panelName : panelName,
                quotaNames : ["订单数"],
                xData : xAxisData,
                yDatas : [seriesData],
                colors : [color],
                unit: "笔",
                selectedDateType: vm.dateType
                selectedDateType: vm.dateType,
                dateValue: vm.dateValue
            });
            break;
        case 2:
@ -444,7 +514,7 @@ function handleSecondPanelData(data, vm){
            yDatas.push(yData);
            
            EventBus.$emit("draw-line-chart", {
                panelName : "近三个月人均费用趋势",
                panelName : "人均费用趋势",
                quotaNames : ["人均费用"],
                xData : xData,
                yDatas : yDatas,

File diff suppressed because it is too large
+ 17 - 0
app/statistics/js/xlsx.core.min.js


File diff suppressed because it is too large
+ 23 - 0
app/statistics/js/xlsx.full.min.js


+ 9 - 2
component/statistics/header-prompt.js

@ -3,7 +3,8 @@ Vue.component('header-prompt', {
					<span class="c-666">{{areaName}}</span> (\
					<span class="c-666">{{jieZhiTime}}</span>)\
					<span class="c-12b7f5 ml20 mr20">{{selectDate}}</span>\
					<span class="c-12b7f5">{{dimensionVal}}</span>\
					<span class="c-12b7f5 mr20">{{dimensionVal}}</span>\
					<span v-show="dimensionVal2" class="c-12b7f5">{{dimensionVal2}}</span>\
			</div>',
	props: [],
	data: function() {
@ -11,7 +12,8 @@ Vue.component('header-prompt', {
			areaName:"",
			jieZhiTime:"",
			selectDate:"",
			dimensionVal:""
			dimensionVal:"",
			dimensionVal2: ""
		}
	},
	mounted: function() {
@ -38,6 +40,11 @@ Vue.component('header-prompt', {
			vm.dimensionVal = arg.dimensionVal;
		});
		
		//更新维度2名称
		EventBus.$on('update-dimension2-name', function(arg){
		    vm.dimensionVal2 = arg.dimensionVal2;
		});
		
		//更新所有信息
		EventBus.$on('update-all-prompt-info', function(arg) {
			vm.areaName = arg.areaName;

+ 5 - 1
component/statistics/header-tab.js

@ -7,11 +7,12 @@ Vue.component('header-tab', {
				<img v-show="isrefresh" @click="refresh" src="../../../images/shuaxin_icon.png" width="18" height="18" class="vam" />\
			</div>\
			<div class="fr mt10">\
			    <img v-show="isdownload" @click="download" src="../../../images/download.png" width="18" height="18" class="mr10" />\
				<img v-show="isfilter" @click="filter" src="../../../images/xuanzhe_icon.png" width="18" height="18" class="mr10" />\
				<img v-show="isopen" @click="open" src="../../../images/zhankai_icon.png" width="18" height="18" />\
			</div>\
		</div>',
	props: ["appname","code","isback", "isrefresh","isfilter","isopen"],
	props: ["appname","code","isback", "isrefresh","isfilter","isopen", "isdownload"],
	data: function() {
		return {
			
@ -36,6 +37,9 @@ Vue.component('header-tab', {
		//展开事件
		open:function(){
			EventBus.$emit('open-click', {});
		},
		download: function(){
		    this.$emit('download', {});
		}
	}
})

+ 84 - 16
component/statistics/line-chart.js

@ -1,4 +1,6 @@
(function(){
    var startDate,
        endDate;
    Vue.component('line-chart',{
        template: '<div class="mtb10 bgc-fff c-border pb10">\
            <div class="ui-grid ui-grid-middle plr10 c-border-b">\
@ -11,20 +13,80 @@
                    --><span class="date-tag" :class="{active: selectedDateType == 3}" data-type="3" @click="changeType(3)">月</span>\
                </div>\
            </div>\
            <div class="clearfix mt5 plr10">\
                <div class="fl c-f12 c-909090"><span>{{startDate}}</span> ~ <span>{{endDate}}</span>数据</div>\
                <div class="fr c-f12 c-909090">单位:{{unit}}</div>\
            <div class="ui-grid ui-grid-middle mt5 plr10">\
                <div v-if="showDatePanel" class="ui-col-1" >\
                    <span>数据时间:</span>\
                    <el-date-picker\
                      v-model="dateValue"\
                      type="daterange"\
                      align="right"\
                      unlink-panels\
                      range-separator="至"\
                      start-placeholder="开始日期"\
                      end-placeholder="结束日期"\
                      :default-value="defaultValue"\
                      :picker-options="pickerOptions2"\
                      @change="dateChange"\
                    >\
                    </el-date-picker>\
                </div>\
                <div v-if="!showDatePanel" class="ui-col-1 c-f12 c-909090"><span>{{startDate}}</span> ~ <span>{{endDate}}</span>数据</div>\
                <div class="ui-col-0 c-f12 c-909090">单位:{{unit}}</div>\
            </div>\
            <div class="line-chart" id="lineChart" style="height: 200px; width: 100%;"></div>\
            <div class="line-chart" :id="lineid" style="height: 200px; width: 100%;"></div>\
        </div>',
        props:[],
        props:['lineid', 'showDatePanel'],
        data: function(){
            return {
                selectedDateType: 1,
                startDate: "", //数据展示时显示的开始时间
                endDate: "", //数据展示时显示的结束时间
                panelName: "",
                unit: "人"
                unit: "人",
                dateValue: "",
                defaultValue: [],
                pickerOptions2: {
                    shortcuts: [{
                        text: '最近一周',
                        onClick(picker) {
                          var end = new Date();
                          var start = new Date();
                          start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
                          picker.$emit('pick', [start, end]);
                        }
                    }, {
                        text: '最近一个月',
                        onClick(picker) {
                          var end = new Date();
                          var start = new Date();
                          start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                          picker.$emit('pick', [start, end]);
                        }
                    }, {
                        text: '最近三个月',
                        onClick(picker) {
                          var end = new Date();
                          var start = new Date();
                          start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
                          picker.$emit('pick', [start, end]);
                        }
                    }],
                    disabledDate: function(d){
                        var start = new Date(startDate),
                            end = new Date(endDate);
                        return d < start || d > end;
                    }
                }
            }
        },
        watch:{
            dateValue: function(val){
//              this.$emit("getlinedata", {dateValue: val});
                if(val){
                    startDate = this.dateValue[0];
                    endDate = this.dateValue[1];
                }
                
            }
        },
        methods: {
@ -32,6 +94,11 @@
                this.selectedDateType = type;
                //触发页面更新折线图的数据,触发器是父类页面自定在组件上的
                this.$emit("getlinedata", {dateType: type});
            },
            dateChange: function(val){
                var start = val[0].format("yyyy-MM-dd"),
                    end = val[1].format("yyyy-MM-dd");
                this.$emit("getlinedata", {dateType: this.selectedDateType, dateValue: [start, end]});
            }
        },
        mounted: function(){
@ -44,23 +111,24 @@
                if(arg.unit){
                    vm.unit = arg.unit;
                }
                vm.dateValue = arg.dateValue;
                drawLine(vm, arg);
            })
        }
    });
    
    function drawLine(vm, arg){
        var lineCharts = echarts.init(document.getElementById('lineChart'));
        var lineCharts = echarts.init(document.getElementById(vm.lineid));
        var xData = arg.xData,
            yDatas = arg.yDatas,
            names = arg.quotaNames,
            colors = arg.colors,
            markLineValue = arg.markLineValue,
            markLineName = arg.markLineName;
        //处理数据, 数据按照10条数一屏展示
        var lastIndex = xData.length % 10;
        if(xData.length >10 ){  
            dataZoom_end = 100-(9/xData.length)*100;  
        //处理数据, 数据按照20条数一屏展示
//      var lastIndex = xData.length % 20;
        if(xData.length > 20 ){  
            dataZoom_end = 100-(19/xData.length)*100;  
        }else{  
            dataZoom_end = 0;
        }
@ -102,7 +170,7 @@
                                vm.startDate = value;
                                return value.substr(5,2)+"月"+value.substr(8,2);
                            }else{
                                if(index == 9){
                                if(index == 19){
                                    vm.endDate = value;
                                }
                                return value.substr(8,2);
@ -112,7 +180,7 @@
                            if(index == 0){
                                vm.startDate = value.substr(0,4)+"年"+val;
                            }else{
                                if(index == 9){
                                if(index == 19){
                                    vm.endDate = value.substr(0,4)+"年"+val;
                                }
                            }
@ -136,12 +204,12 @@
                start: dataZoom_end,
                end: 100,
                type: 'slider',
                zoomLock: true,
                zoomLock: false,
            },{ //下面这个属性是内容区域配置
                start: dataZoom_end,
                end: 100,
                type: 'inside',
                zoomLock: true,
                zoomLock: false,
            }]
        };
        var series = [];
@ -193,7 +261,7 @@
            }});
        }
//          console.log(JSON.stringify(options));
        $("#lineChart").removeAttr('_echarts_instance_')
        $("#"+vm.lineid).removeAttr('_echarts_instance_')
        lineCharts.setOption(options);
        window.lineCharts = lineCharts;
    }

+ 23 - 3
component/statistics/prescription-filter.js

@ -9,6 +9,10 @@
            <div class="c-row mt20 plr20">\
                <div v-for="dis in diseases" class="c-33 mt10" :class="{\'active\': disease==dis.code}" @click="selectDisease(dis.code)"><a>{{dis.name}}</a></div>\
            </div>\
            <div class="mt10 ml10 filter-title">年度维度</div>\
            <div class="c-row mt20 plr20">\
                <div v-for="year in years" class="c-33 mt10" :class="{\'active\': chooseYear==year}" @click="selectYear(year)"><a>{{year}}</a></div>\
            </div>\
            <div id="footer">\
                <div class="c-row btn-wrap c-border-top fr">\
                    <div class="div-foot-btn mr20" @click="resetClick">\
@ -20,7 +24,7 @@
                </div>\
            </div>\
        </div>',
        props:['sumType', 'disease'],
        props:['sumType', 'disease', 'chooseYear'],
        data: function(){
            return {
                types: [{
@ -45,7 +49,8 @@
                },{
                    code: "HP0047",
                    name: "糖尿病"
                }]
                }],
                years: []
            }
        },
        methods: {
@ -55,6 +60,9 @@
            selectDisease: function(val){
                this.disease = val;
            },
            selectYear: function(val){
                this.chooseYear = val;
            },
            resetClick:function(){
                this.sumType = this.types[0].value;
                this.disease = this.diseases[0].code;
@ -68,7 +76,8 @@
                    sumType: vm.sumType,
                    sumTypeName: type.name,
                    disease: vm.disease,
                    diseaseName: dis.name
                    diseaseName: dis.name,
                    chooseYear: vm.chooseYear
                });
            }
        },
@ -80,6 +89,17 @@
            if(!this.disease){
                this.disease = this.diseases[0].code;
            }
            var now = new Date(),
                year = now.getFullYear();
            if(now.getMonth() < 6){
                year = year - 1;
            }
            for(i=year; i>=2017; i--){
                this.years.push(i);
            }
            if(!this.chooseYear){
                this.chooseYear = year;
            }
        }
    })
})()

File diff suppressed because it is too large
+ 1 - 0
css/element-ui.css


BIN
css/fonts/element-icons.ttf


BIN
css/fonts/element-icons.woff


BIN
images/download.png


File diff suppressed because it is too large
+ 1 - 0
js/element-ui.js