sitecolumn.vue 3.71 KB
<style>
.plafform_sitetypeselect{border:1px #f1f1f1 solid;}
.plafform_sitetypeselect ul{padding: 0px;margin:0px;height:30px;line-height:30px;background:#4aa8e5;font-size:0px;}
.plafform_sitetypeselect ul li{cursor: pointer;padding:0px 20px;
display: inline-block;color:#fff;font-size: 14px;}
.plafform_sitetypeselect ul li:hover{
	text-decoration: underline;
}
.plafform_sitetypeselect ul li.current{
  background:#fff;color:#4aa8e5;
}
.plafform_sitetypeselect >div{padding:20px;}
.plafform_sitetypeselect >div >a{padding:3px 8px;
  padding-right:10px;color:#333;font-size:12px;}
.plafform_sitetypeselect >div >a:hover,
.plafform_sitetypeselect >div > a.current{
  background:#4aa8e5;color:#fff;
}
</style>

<template>
<div class="plafform_sitetypeselect">
  <ul class="">
      <li :class="{'current':tabindex==0}" 
      v-on:click="tabindex=0">平台</li>
      <li  :class="{'current':tabindex==1}"
      v-on:click="tabindex=1">分类</li>
      <li  :class="{'current':tabindex==2}"
      v-on:click="tabindex=2">栏目</li>
  </ul>
  <div v-show="tabindex==0">

      <a href="javascript:" v-for="item in list1"
      v-on:click="select1=item.code"
      :class="{'current':select1==item.code}">{{item.title}}</a>
  </div>
  <div  v-show="tabindex==1">
  	<p v-show="list2.length==0">请先选择平台</p>
       <a href="javascript:" v-for="item in list2"
      v-on:click="select2=item.code"
      :class="{'current':select2==item.code}">{{item.title}}</a>
  </div>
  <div  v-show="tabindex==2">
  	<p v-show="list3.length==0">请先选择分类</p>
      <a href="javascript:" v-for="item in list3"
      v-on:click="select3=$index"
      :class="{'current':select3===$index}">      
      {{item.title}}</a>
  </div>




</div>
</template>
<script>
module.exports={
	props:{
		title:{
			type:String,default:''
		},url:{
			type:String,default:''
		}
	},
	data:function(){
		return {
			dataobj:{},list1:[],list2:[],list3:[],
			tabindex:0,select1:'',select2:'',select3:''
		}
	},watch:{
		'$route.path':function(e){

			this.getData();
		},
		'select1':function(val){

			if(val==""){
				return ;
			}
			var s=[];
			for(var i=0;i<this.dataobj.length;i++){
				if(this.dataobj[i].code==val){
					s=this.dataobj[i].menuList;
				}
			}
			/*var arr=[];
			for(var item in s){

				arr.push(item);
			}*/
			this.list2=s;
			this.select2='';
			this.select3='';
			this.list3=''
			this.tabindex=1;
		},'select2':function(val){
			if(val=="" || this.select1==""){
				return ;
			}
			//var s=this.dataobj[this.select1][val];

			var a;
	        for(var i=0;i<this.dataobj.length;i++){
	            if(this.dataobj[i].code==this.select1){
	              a=this.dataobj[i].menuList;	              
	            }
	        }
	        var b;
	        for(var i=0;i<a.length;i++){
	            if(a[i].code==this.select2){
	              b=a[i].menuList;              
	            }
	        }

			this.list3=b;
			this.select3='';
			this.tabindex=2;
		},'select3':function(val){
			var that=this;

			if(val==="" || this.select1==="" ){
				return ;
			}
			var s=this.list3[val]

			this.title=s.title;
			this.url=s.link;
			setTimeout(function(){
				//that.tabindex=0;
				that.select3='';
				that.select2='';
				that.select1=''
				that.tabindex=0;
			},100)
		}
	},methods:{
		getData:function(){
			var that=this;
			Ajax.post('/platform/sys_helper_queryRefSelect').then(function(res){
				var result=res.data;

		        var data=result.data;
		        if(result.errorCode==0){
		        	that.dataobj=data;
		            /*var arr=[]
		            for(var item in data){

		            	arr.push(item)
		            }
		            that.list1=arr;*/
		            this.$set('list1',data);
		        }
			}.bind(this))
		}
	},ready:function(){
		this.getData();
	}
}
</script>