索引列表组件,可实现类似通讯录效果。组件内节点将被添加到列表上方。
const res = {
result: [
[{
cidx: [0, 15],
fullname: "北京市",
id: "110000",
location: {
lat: 39.90469,
lng: 116.40717
},
name: "北京",
pinyin: ["bei", "jing"]
}, {
cidx: [16, 31],
fullname: "天津市",
id: "120000",
location: {lat: 39.0851, lng: 117.19937},
name: "天津",
pinyin: ["tian", "jin"]
}, {
cidx: [32, 42],
fullname: "河北省",
id: "130000",
location: {lat: 38.03599, lng: 114.46979},
name: "河北",
pinyin: ["he", "bei"],
}, {
cidx: [43, 53],
fullname: "山西省",
id: "140000",
location: {lat: 37.87343, lng: 112.56272},
name: "山西",
pinyin: ["shan", "xi"],
}]
]
}
Page({
onLoad(options) {
this.getCitys()
},
onChoose(e) {
console.log("onChoose", e)
},
getCitys() {
const _this = this
const cities = res.result[0]
// 按拼音排序
cities.sort((c1, c2) => {
let pinyin1 = c1.pinyin.join("")
let pinyin2 = c2.pinyin.join("")
return pinyin1.localeCompare(pinyin2)
})
// 添加首字母
const map = new Map()
for (const city of cities) {
const alpha = city.pinyin[0].charAt(0).toUpperCase()
if (!map.has(alpha)) map.set(alpha, [])
map.get(alpha).push({ name: city.fullname })
}
const keys = []
for (const key of map.keys()) {
keys.push(key)
}
keys.sort()
const list = []
for (const key of keys) {
list.push({
alpha: key,
subItems: map.get(key)
})
}
_this.setData({list})
}
})
<mp-indexList class="city__list" list="{{list}}" bindchoose="onChoose">
<view class="page">
<view class="page__hd">
<view class="page__title">Index List</view>
<view class="page__desc">类通讯录列表</view>
</view>
<view class="page__bd">
</view>
</view>
</mp-indexList>
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
list | Array<listItem> | [] | 是 | 列表数据 |
vibrated | boolean | true | 否 | 索引上滑动时是否产生振动,仅 iOS 生效 |
bindchoose | eventhandle | 否 | 选择列表项, e.detail={name} |
属性 | 类型 | 说明 |
---|---|---|
alpha | string | 首字母(大写) |
subItems | Array<subItem> | 子元素集合 |
属性 | 类型 | 说明 |
---|---|---|
name | string | 名称 |
lottie-miniprogramlottie 动画库适配小程序的版本。lottie 的相关介绍与动画生成方法等请参考官方说明依赖小程序基础库版本 = 2...
提示在阅读文档之前,你应该已经熟悉了这两个 Vue 基础和创建组件。在 Vue Mastery 上观看关于组合式 API 的免费视频。通过创建 ...
本节例子中代码使用的单文件组件语法#ref接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象具有指向内部值的单个 prop...
本节例子中代码使用的单文件组件语法#ref接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象具有指向内部值的单个 prop...