information-analyze.vue 12.7 KB
 <template>
 	<div class="container resource close-left-menu contaNEW">

	  <div class="pop-banner clearfix">
	   <!--  <div class="operate-btns">
	        <a href="javascript:;" class="fbtn fb-refresh">刷新</a>
	        <a href="javascript:void(0)" class="fbtn fb-modify">修改</a>
	        <a href="employee-edit.html" class="fbtn fb-add">添加</a>
	        <a href="javascript:void(0)" class="fbtn fb-save">保存</a>
	        
	      </div> -->
	    <h3 class="current-module">销售出库数据分析</h3>
	  </div> 
	  <nav class="o_nav_4 clearfix"> 
	      <li><a class="pandect-sort active" href="javascript:;"></a></li>
	      <li><a class="region-sort" href="javascript:;" v-link="{path:'/informationAnalyze2'}"></a></li>
	      <li><a class="hospital-sort" href="javascript:;" v-link="{path:'/informationAnalyze3'}"></a></li>
	      <li><a class="firm-sort" href="javascript:;"></a></li>
	      <li><a class="category-sort" href="javascript:;" v-link="{path:'/informationAnalyze4'}"></a></li>
	      <li><a class="salesman-sort" href="javascript:;"></a></li>
	  </nav>

	  <div class="pd-form mt-20 fast-search-form">
	      <div class="group-row">
	      	<div class="form-group fl" style='width: 540px;'>
	          <label for="cn3" class="label w60 fl">时间范围</label>
	          <div class="control control-filtering control-filtering-green fl ml-10" style='width:460px;'>
	            <a class="option" :class="{'all active':search.search_EQ_date==1}" href="javascript:;" @click='search.search_EQ_date=1'>近一周</a>
	            <a class="option" :class="{'all active':search.search_EQ_date==2}" href="javascript:;" style='margin: 4px 14px;' @click='search.search_EQ_date=2'>近一月</a>
	            <a class="option" :class="{'all active':search.search_EQ_date==3}" href="javascript:;" style='margin: 4px 14px;' @click='search.search_EQ_date=3'>近三月</a>
	            <a class="option" :class="{'all active':search.search_EQ_date==4}" href="javascript:;" style='margin: 4px 14px;' @click='search.search_EQ_date=4'>近六月</a>
	            <a class="option" :class="{'all active':search.search_EQ_date==5}" href="javascript:;" style='margin: 4px 14px;' @click='search.search_EQ_date=5'>近一年</a>
	            <a class="option" :class="{'all active':search.search_EQ_date==6}" href="javascript:;" style='margin: 4px 14px;' @click='search.search_EQ_date=6'>其他</a>
	          </div>
	        </div>
	        <div class="form-group" style="width: 414px;" v-if='search.search_EQ_date==6'>
	          <label for="cn3" class="label label-xf"></label>
	          <div class="control control-date" style="width: 414px;height:34px;overflow: inherit;">
	            <div style="width: 46%;float: left">
                	<datepicker :target.sync='search.search_Start_date' :readonly="readonlyFlag" title="时间范围" placeholder="时间范围"
                	styleobj="width:100% !important;border-radius:8px 0px 0px 8px !important;"></datepicker>
              	</div>
	            <span class="text-and"></span>
	            <div style="width: 46%;float: left">
                	<datepicker :target.sync='search.search_End_date' :readonly="readonlyFlag" title="时间范围" placeholder="时间范围"
                	styleobj="width:100% !important;border-radius:0px 8px 8px 0px !important;"></datepicker>
              	</div>
	          </div>
	        </div>   
	      </div>
	      <div class="group-row t-right">
	        <button class="fast-analy-form-btn btn-d btn-d-lg btn-d-activate btn-d-circle" @click='getData'>分 析</button>
	      </div>
	    </div> 
	    <div class="fpart" v-if='rental'>
	      <div class="fheader">
	        <h4 class="fh-rental">总额概况</h4>
	      </div>
	      <div class="rental-survey clearfix">
	        <div class="survey-money survey-com">
	          <p>总金额</p>
	          <p>
	            <i>{{rental.totalMoney}}</i>万元
	          </p>
	        </div>
	        <div class="survey-variety survey-com">
	          <p>品种数</p>
	          <p>
	            <i>{{rental.totalSum}}</i>
	          </p>
	        </div>
	        <div class="survey-output survey-com">
	          <p>出库单总量</p>
	          <p>
	            <i>{{rental.totalNum}}</i>
	          </p>
	        </div>
	        <div class="survey-output2 survey-com">
	          <p>明细条目数</p>
	          <p>
	            <i>{{rental.totalDetailNum}}</i>
	          </p>
	        </div>
	      </div>
	    </div>
	    <div class="fpart" v-if='rental'>
	      <div class="fheader">
	        <h4 class="fh-extremum">极值均值</h4>
	      </div>
	      <div class="rental-survey extremum clearfix">
	        <div class="survey-money survey-com">
	          <p>出库单最多</p>
	          <p>
	            <i>{{rental.maxDoDate}}</i>
	            <i class="ml-10">{{rental.maxDoSum}}</i>
	          </p>
	        </div>
	        <div class="survey-variety survey-com">
	          <p>总金额最高</p>
	          <p>
	            <i>{{rental.maxMoneyDate}}</i>
	            <i class="ml-10">{{rental.maxMoneySum}}</i>
	          </p>
	        </div>
	        <div class="survey-output survey-com">
	           <p>平均值</p>
	           <p>
	             日均
	             <i class="ml-10">{{rental.avgNum}}</i>

	             <i class="ml-10">{{rental.avgDetailNum}}</i>
	             条明细
	             <i class="ml-10">{{rental.avgMoney}}</i>
	             万元
	          </p>
	         
	        </div>
	      </div>
	    </div>
	    <div class="fpart">
	      <div class="fheader">
	        <h4 class="fh-tendency">趋势分析</h4>
	   <!--      <div class="stretch ml-20">
	          <div class="stretch-pull">
	          </div>
	        </div> -->
	      </div>
	      <div class="epi-form">
	      	<div class="group-row">
		        <div class="form-group form-radio">
		          <label class="label">趋势分类</label>
		          <div class="control radio-control w700">
		          	<input type="radio" id="radio3" v-model="search.search_EQ_cycle" value='1'>
		            <label class="radio" for="radio3">总额趋势</label>
		            <input type="radio" id="radio1" v-model="search.search_EQ_cycle" value='2'>
		            <label class="radio" for="radio1">增长率趋势(同比)</label>
		            <input type="radio" id="radioi2" v-model="search.search_EQ_cycle" value='3'>
		            <label class="radio" for="radioi2">增长率趋势(环比)</label>
		          </div>
		        </div>
		      </div>
		      <div class="group-row">
		      	<div class="form-group form-radio">
		          <label class="label">趋势周期</label>
		          <div class="control radio-control">
		          	<input type="radio" id="radio03" v-model="search.search_EQ_classify" value='1'>
		            <label class="radio" for="radio03"></label>
		            <input type="radio" id="radio01" v-model="search.search_EQ_classify" value='2'>
		            <label class="radio" for="radio01"></label>
		            <input type="radio" id="radio04" v-model="search.search_EQ_classify" value='3'>
		            <label class="radio" for="radio04"></label>
		            <input type="radio" id="radio02" v-model="search.search_EQ_classify" value='4'>
		            <label class="radio" for="radio02"></label>
		          </div>
		        </div>
		      </div>
		      <div class="group-row">
		      	<div class="form-group form-radio">
		          <label class="label text-color-blue">切换维度</label>
		          <div class="control radio-control">
		          	<input type="radio" id="radio11" v-model="search.search_EQ_FLAG" value='1'>
		            <label class="radio" for="radio11">金额</label>
		            <input type="radio" id="radio12" v-model="search.search_EQ_FLAG" value='2'>
		            <label class="radio" for="radio12">品种数</label>
		            <input type="radio" id="radio13" v-model="search.search_EQ_FLAG" value='3'>
		            <label class="radio" for="radio13">条目数</label>
		            <input type="radio" id="radio14" v-model="search.search_EQ_FLAG" value='4'>
		            <label class="radio" for="radio14">单量</label>
		          </div>
		        </div>
		      </div>
	      </div>
	    </div>
	    <div  style='width:100%;height:400px;'>
	    	<div id='echart1' style='width:100%;height:400px;'></div>
	    </div>
	</div>
 </template>
 <script>
var echarts_api=require('../../options/echarts_api.js')
module.exports={
  data:function(){
    return {
    	search:{
    		search_EQ_date:1,
    		search_Start_date:'',
    		search_End_date:'',
    		search_EQ_cycle:1,
    		search_EQ_classify:1,
    		search_EQ_FLAG:1
    	},
    	rental:{},
    	rowVlaue:[],
    	row:[],
    	rowName:'',
    }
  },methods:{
 	getData:function(){   
    	var self=this;
    	if(self.search.search_EQ_date==6){

    		if(!self.search.search_Start_date || !self.search.search_End_date){
                layer.msg('请输入正确的日期格式,如1992-03-02');
    			return;
    		}
    	}
    	Ajax.get('/supplierSupplierReport/getSaleOverView',self.search)
          .then(function(response){
            var data = response.data.data;
           	self.rental=data;
        });
         setTimeout(function(){
         	  self.chart();
        }.bind(this),1000)
      
    	// this.echarts();
    },
    chart:function(){
    	var self=this;
    	self.row=[];
    	self.rowVlaue=[];

    	Ajax.get('/supplierSupplierReport/getSaleOverViewAnalysis',self.search)
          .then(function(response){
            var res = response.data.data;
            var test= /\d+(\.\d{2})/;;
            // 处理回调的value值
            var Y,W,YW;
            for(var a=0;a<res.length;a++){


            	 if(self.search.search_EQ_classify==2){
		            	for(var i=0;i<res.length;i++){

		            		Y=res[i].row.substr(0 , 4 );
		            	 	W=res[i].row.substr(4 , 2 );
		            		YW=Y+'年'+W+'周';
		            		self.row.push( YW );
		            	}
		            }else{
		            	self.row.push(res[a].row);
		            }


            	if(self.search.search_EQ_FLAG==1){

	            	self.rowVlaue.push( test.exec(res[a].value)[0] );
	            	
	            }else if(self.search.search_EQ_FLAG==3){

	            	self.rowVlaue.push(  parseInt(res[a].value) );
	            }else{
	            	self.rowVlaue.push( res[a].value );
	            }

            }
           	self.echarts();
        });
          
    },
    echarts:function(){ 
    	var self=this;
    	var rowName;
    	if(self.search.search_EQ_cycle==2 || self.search.search_EQ_cycle==3){
    		rowName='%';
    	}else if(self.search.search_EQ_FLAG==1){
    		rowName='元';
    	}else if(self.search.search_EQ_FLAG==2){
    		rowName='个';
    	}else if(self.search.search_EQ_FLAG==3){
    		rowName='条';
    	}else if(self.search.search_EQ_FLAG==4){
    		rowName='张';
    	}

    	self.rowName=rowName;
    	this.chart1=echarts_api.init('echart1',{
		       	title: {
			        text: ''
			    },
			    tooltip : {
			        trigger: 'axis',
			        axisPointer: {
			            type: 'cross',
			            label: {
			                backgroundColor: '#6a7985'
			            }
			        }
			    },
			    legend: {
			        data:['出库单']
			    },
			    toolbox: {
			        feature: {
			            saveAsImage: {

			            }
			        }
			    },
			    grid: {
			        left: '3%',
			        right: '4%',
			        bottom: '3%',
			        containLabel: true
			    },
			    xAxis : [
			        {
			            type : 'category',
			            boundaryGap : true,
			            data : self.row,
			        }
			    ],
			    yAxis : [
			        {
			            type : 'value',
			            boundaryGap : false,
			            // data :['0','200','400','600','800','1000']  
			        }
			    ],
			    series : [
			        {
			            name:self.rowName,
			            type:'line',
			            stack: '总量',
			            areaStyle: {opacity:0},
			            itemStyle:{
			            	normal:{
			            		borderWidth:5,
			            		borderType:'solid',
			            		shadowColor:'#49A7E5',
			            		shadowBlur:10
			            	}
			            	
			            },
			            showAllSymbol:true,
			            color:["#49A7E5"] ,
			            data:self.rowVlaue,
			            symbolSize:5,
			            
			        },
			    ]

	           },'echart1') 
    }
  },route:{
    activate:function(){
    	this.getData();
        // setTimeout(function(){
        //   this.echarts();
        // }.bind(this),1000)   
    }
  },
  watch:{
  	'search.search_EQ_FLAG':function(){
  		this.chart();
  	},
  	'search.search_EQ_classify':function(){
  		this.chart();
  	},
  	'search.search_EQ_cycle':function(){
  		this.chart();
  	},
  	'search.search_EQ_date':function(){
  		this.getData();
  	}
  }
}
</script>