实现按汉字拼音首字母分组排序

html:

 <van-index-bar class="controls" :sticky="false" :index-list="indexList" :sticky-offset-top="100">
   <template v-for="control in showControls" >
       <van-index-anchor :index="control.letter" :key="control.letter" >{{control.letter}}</van-index-anchor>
        <van-cell class="cell" :title="area.cn_name" v-for="area in control.data" :key="area.letter"/>
    </template>
 </van-index-bar>

js:

data(){
  	return{
       	controls:[], //所有布控点
        showControls:[], //展示的布控点
        indexList:[],//右侧索引
    }
},
created(){
 	this.getProject(3);
},
methods:{
	//获取数据
	getProject(projectId){
            // 获取项目布控点和围栏数据
            this.$Axios.post(url,qs.stringify({
                        id:projectId,
                        t: Date.parse(new Date())
                    })).then(res=>{
                        if(res.data.status == 1){
                            let project = res.data.project;
                            console.log("监控点和围栏数据:"); 
                            console.log(project);  
                            this.controls = this.cnNameSort(project.areas);
                            this.showControls = this.controls;
                            let _this = this;
                            this.showControls.forEach(control=>{
                                _this.indexList.push(control.letter);
                            })
                            console.log(this.controls);                                             
                        }
                        if(res.data.status == 0){
                            console.log("返回数据失败");
                        }
                    }).catch(err=>{
                        console.log(err);
                    })
    },
    //按汉字拼音首字母分组排序                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
	cnNameSort(arr) {
            if(!String.prototype.localeCompare)
                return null;
            
            var letters = "#ABCDEFGHJKLMNOPQRSTWXYZ".split('');
            var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');
            
            var segs = [];
            var curr;
            letters.forEach(function(item,i){
                curr = {letter: item, data:[]};
                arr.forEach(function(item2){
                    if((!zh[i-1] || zh[i-1].localeCompare(item2.cn_name.trim()) <= 0) && item2.cn_name.trim().localeCompare(zh[i]) == -1) {
                        curr.data.push(item2);
                    }
                });
                if(curr.data.length) {
                    segs.push(curr);
                    curr.data.sort(function(a,b){
                        return a.cn_name.trim().localeCompare(b);
                    });
                }
            });
            return segs;
        },
}

后台数据:
在这里插入图片描述
最终页面效果:
在这里插入图片描述
参考:https://blog.csdn.net/lzrit/article/details/90600894

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值