information-analyze4.vue 13 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-download" @click='download'>导出</a>
	      </div>
	    <h3 class="current-module">销售出库数据分析</h3>
	  </div> 
	  <nav class="o_nav_4 clearfix">
	      <li><a class="pandect-sort" href="javascript:;" v-link="{path:'/informationAnalyze'}"></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 active" href="javascript:;"></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">时间范围</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">
	        <div class="form-group fl" style='width: 800px;'>
	          <label for="cn3" class="label w60">分析维度</label>
	          <div class="control control-filtering control-filtering-green fl ml-10" style='width:440px;'>
	            <a class="option" href="javascript:;" @click='search.search_EQ_FLAG="amount"' :class="{'all active':search.search_EQ_FLAG=='amount'}">金额</a>
	            <a class="option" href="javascript:;" @click='search.search_EQ_FLAG="frequency"' style='margin: 4px 14px;'  :class="{'all active':search.search_EQ_FLAG=='frequency'}">订货次数</a>
	          </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">
		    <table class=" itable itable-thead-13px itable-td-long-text">
		      <thead>
		        <tr>
		          <th class="w60">名次</th>
		          <th class="w140">商品名称</th>
		          <th class="w80">规格</th>
		          <th class="w70">单位</th>
		          <th class="w140">生产厂商</th>
		          <th class="w130">注册证号/批准文号</th>
		          <th class="w80">单价</th>
		          <th class="w80" v-if='search.search_EQ_FLAG=="amount"'>总金额</th>
		          <th class="w80" v-if='search.search_EQ_FLAG=="frequency"'>订货次数</th>
		          <th class="w120">操作</th>
		        </tr>
		      </thead>
		      <tbody >
		      	 <tr v-if='list.length==0 || list==null'> 
		            <td colspan="10">
		            暂无符合条件的记录
		            </td> 
		        </tr>
		        <tr class="txt_v" v-for="item in list">
		          <td>{{$index+1}}</td>
		          <td class="t-left pr10">{{item.goodsName}}</td>
		          <td>{{item.goodsSpec}}</td>
		          <td>{{item.goodsUnit}}</td>
		          <td class="t-left pr10">{{item.manufacturer}}</td>
		          <td class="t-left pr10">{{item.registKey}}</td>
		          <td class="t-right pr10">{{item.price| numDigit 2 | numFmt}}</td>
		          <td class="t-right pr10" v-if='search.search_EQ_FLAG=="amount"'>{{item.amount| numDigit 2 | numFmt}}</td>
		          <td class="t-right pr10" v-if='search.search_EQ_FLAG=="frequency"'>{{item.frequency}}</td>
		          <td><a class="btn button-green mar-none" href="javascript:;" @click="chart(item.goodsGuid,true)">历史趋势</a></td>
		        </tr>
		      </tbody>
		    </table>
		    <pagination
		      @page-change="getData"
		      :page-no.sync="search.page"
		      :total-pages.sync="search.totalPages">  
		    </pagination>
		</div>
	    <div class="fpart" v-if='chartFlag' id="tendency">
	      <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="radio03" v-model="search.search_EQ_cycle" value="1">
		            <label class="radio" for="radio03">总额趋势</label>
		            <input type="radio" id="radio01" v-model="search.search_EQ_cycle" value="2">
		            <label class="radio" for="radio01">增长率趋势(同比)</label>
		            <input type="radio" id="radio02" v-model="search.search_EQ_cycle" value="3">
		            <label class="radio" for="radio02">增长率趋势(环比)</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="radio1" v-model="search.search_EQ_classify" value="1">
		            <label class="radio" for="radio1"></label>
		            <input type="radio" id="radio2" v-model="search.search_EQ_classify" value="2">
		            <label class="radio" for="radio2"></label>
		            <input type="radio" id="radio3" v-model="search.search_EQ_classify" value="3">
		            <label class="radio" for="radio3"></label>
		            <input type="radio" id="radio4" v-model="search.search_EQ_classify" value="4">
		            <label class="radio" for="radio4"></label>
		          </div>
		        </div>
		      </div>
	      </div>
	    </div>
		<div  style='width:100%;height:600px;' v-if='chartFlag'>
	    	<div id='echart1' style='width:100%;height:600px;'></div>
	    </div>
	</div>
</template>
 <script>
var echarts_api=require('../../options/echarts_api.js')
module.exports={
  data:function(){
    return {
    	search:{
    	  pageSize: 10,
          pageNo: 1,
          totalPages: 0,
          total:0,
          search_EQ_date:1,
          search_Start_date:'',
          search_End_date:'',
          search_EQ_FLAG:'amount',
          search_EQ_cycle:1,
          search_EQ_classify:1,
          search_EQ_goodsguid:''
    	},
    	list:{},
    	chartFlag:false,
    	row:[],
    	rowVlaue:[],
    	rowName:'',
    	stateFlag:true
    }
  },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/getVarietiesView',self.search)
          .then(function(response){
            var res = response.data.data;
           	self.list=res.list;
           	self.search.total=res.total;
           	self.search.totalPages=res.totalPages;
        });
    	// this.echarts();
    },
    // 导出魔板
    download:function(){
    	var self=this;
    	
    	Ajax.get('/supplierSupplierReport/exportVarietiesView',self.search)
          .then(function(response){
            var res = response.data;
            window.open(res);
        })
    },

        down: function () {
            var divheight = document.getElementById("echart1").offsetHeight;
            var bodyheight = document.body.clientHeight;
            var downheight = bodyheight - divheight;
                $('html,body').animate({scrollTop: downheight + 750}, 800)
        },
   	// 历史趋势图标查询
    chart:function(guid,falg){
    	var self=this;
    	// $('.tendency')
    	// console.log('')
    	self.chartFlag=true;
    	self.row=[];
    	self.rowVlaue=[];
    	if(falg){
			self.search.search_EQ_goodsguid=guid;
    	}
    	if(self.stateFlag){
    		self.stateFlag=false;
	    	Ajax.get('/supplierSupplierReport/getVarietiesViewHistory',self.search)
	          .then(function(response){
	            var res = response.data.data;
	            var test= /\d+(\.\d{2})/;;


	            // 金额和订货数判断
	            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=="amount" && self.search.search_EQ_cycle==1){
	            		self.rowVlaue.push( test.exec(res[a].value)[0] );
	            	}else{

	            		self.rowVlaue.push( res[a].value );
	            	}
	            }
            self.echarts();
	            self.down();
           
        }) 
       } 
    },
    // 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=="amount"){
    		rowName='元';
    	}else if(self.search.search_EQ_FLAG=='frequency'){
    		rowName='次数';
    	}

    	self.rowName=rowName;
    	this.chart1=echarts_api.init('echart1',{
		       	title: {
			        text: ''
			    },
			    tooltip : {
			        trigger: 'axis',
			        axisPointer: {
			            type: 'cross',
			            label: {
			                backgroundColor: '#6a7985'
			            }
			        }
			    },
			    toolbox: {
			        feature: {
			            saveAsImage: {}
			        }
			    },
			    grid: {
			        left: '3%',
			        right: '5%',
			        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') 
    	self.stateFlag=true;
    }
  },route:{
    activate:function(){
    	this.getData();

    }
  },
  watch:{
  	'search.search_EQ_FLAG':function(){
  		this.getData();
  	},
  	'search.search_EQ_classify':function(){              
  		this.chart();
  	},
  	'search.search_EQ_cycle':function(){
  		this.chart();
  	},
  	'search.search_EQ_date':function(){
  		this.getData();
  	}
  }
}
</script>