Mint UI實(shí)現(xiàn)A-Z字母排序的城市選擇列表
本文實(shí)例為大家分享了Mint Ul實(shí)現(xiàn)A-Z字母排序的城市選擇列表的具體代碼,供大家參考,具體內(nèi)容如下
效果圖如下:

項(xiàng)目文件存放路徑圖:

pinying.js 和 city.json文件下載傳送門(mén)
所有代碼如下:
<template>
<mt-index-list>
<mt-index-section v-for="letter in citySortArr" :key="letter" :index="letter">
<mt-cell v-for="cityName in cityArr" :key="cityName" v-if="cityName.key == letter" :title="cityName.value "></mt-cell>
</mt-index-section>
</mt-index-list>
</template>
<script>
import city from "../assets/json/city"http://導(dǎo)入所有城市的JSON
import { makePy } from "../assets/js/pinying"http://導(dǎo)入插件獲取所有城市中文的大寫(xiě)首字母
export default {
data () {
return {
arr: [],//存放初始篩選的城市名稱
cityArr: [],//存放第二次篩選后所有城市名稱
citySort: [],//存放初始獲取城市首字母大寫(xiě)的數(shù)組
citySortArr: []//存放第二次篩選重復(fù),不存在的城市首字母數(shù)組
};
},
created () {
/**
* 將json數(shù)據(jù)中的無(wú)用數(shù)據(jù)剔除
*/
for (let i in city) {
if (city[i].name != "請(qǐng)選擇") {//將第一層數(shù)據(jù)中為 “請(qǐng)選擇” 的剔除掉
this.arr.push(city[i].name);
for (let j in city[i].sub) {//將第二層數(shù)據(jù)中為 “請(qǐng)選擇 和 其他” 的剔除掉
if (
city[i].sub[j].name != "請(qǐng)選擇" &&
city[i].sub[j].name != "其他"
) {
this.arr.push(city[i].sub[j].name);//將處理后的數(shù)據(jù)存放在數(shù)組中,等待第二次篩選處理
}
}
}
}
/**
* 配置相關(guān)數(shù)據(jù)
*/
for (let k in this.arr) {
let cityKey = makePy(this.arr[k])[0].substring(0, 1);//獲取每一個(gè)市區(qū)的首字母
let cityValue = this.arr[k];//獲取所有市區(qū)
this.citySort[cityKey] = cityKey;//利用對(duì)象特性,剔除重復(fù)的字母,并將剔除后的字母存進(jìn)對(duì)象中
//將所有市區(qū)信息 以( 字母 - 市區(qū)名 )的格式存在至數(shù)組中
this.cityArr[k] = {
key: cityKey,
value: cityValue
};
}
/**
* 將處理后的首字母數(shù)據(jù)對(duì)象,存放至數(shù)組中
*/
for (let p in this.citySort) {
this.citySortArr.push(this.citySort[p]);
}
/**
* 將真實(shí)存在的市區(qū)首字母按A-Z進(jìn)行排序
*/
this.citySortArr = this.citySortArr.sort();
}
};
</script>
<style>
.mint-cell-title {
flex: 0 0 auto;
}
.mint-indexsection-index {
text-align: left;
}
</style>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)離線地圖+leaflet+高德瓦片的詳細(xì)代碼
這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)離線地圖+leaflet+高德瓦片的詳細(xì)代碼,Vue Leaflet是一種結(jié)合了Vue框架和Leaflet庫(kù)的前端技術(shù),用于展示和操作天地圖,需要的朋友可以參考下2023-10-10
vue項(xiàng)目前端微信JSAPI與外部H5支付相關(guān)實(shí)現(xiàn)過(guò)程及常見(jiàn)問(wèn)題
這篇文章主要介紹了vue項(xiàng)目前端微信JSAPI與外部H5支付相關(guān)實(shí)現(xiàn)過(guò)程及常見(jiàn)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
vue中實(shí)現(xiàn)支持txt,docx,xlsx,mp4格式文件預(yù)覽功能(純前端)
對(duì)于Vue你可以實(shí)現(xiàn)文件的預(yù)覽功能,這篇文章主要給大家介紹了關(guān)于vue中實(shí)現(xiàn)支持txt,docx,xlsx,mp4格式文件預(yù)覽功能的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
vue異步axios獲取的數(shù)據(jù)渲染到頁(yè)面的方法
今天小編就為大家分享一篇vue異步axios獲取的數(shù)據(jù)渲染到頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
vue動(dòng)畫(huà)打包后失效問(wèn)題的解決方法
這篇文章主要介紹了vue動(dòng)畫(huà)打包后失效問(wèn)題的解決方法,在文中給大家提到了vue-cli 打包后自定義動(dòng)畫(huà)未執(zhí)行的解決方法,需要的朋友可以參考下2018-09-09
Vue實(shí)現(xiàn)動(dòng)態(tài)路由的示例詳解
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)動(dòng)態(tài)路由的相關(guān)知識(shí),主要涉及到兩個(gè)方面:一是路由的動(dòng)態(tài)添加,二是基于路由的參數(shù)變化來(lái)動(dòng)態(tài)渲染組件,下面就跟隨小編一起深入學(xué)習(xí)一下動(dòng)態(tài)路由的實(shí)現(xiàn)吧2024-02-02
vue @click與@click.native,及vue事件機(jī)制的使用分析
這篇文章主要介紹了vue @click與@click.native,及vue事件機(jī)制的使用分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04

