更新记录

1.0.1(2023-07-27)

优化

  1. 优化图标字体命名

1.0.0(2023-07-15)

初始版本 1.0.0,基于 Vue3 的城市选择弹窗组件,支持定位、字母索引、单选、多选、主题换色。

  1. 支持单选
  2. 支持多选
  3. 支持主题换色
  4. 支持字母索引
  5. 支持拼音筛选
  6. 支持拼音缩写筛选
  7. 支持名称筛选
  8. 支持 App、小程序定位到当前城市
  9. 可直接使用自带城市数据或自定义业务城市数据

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue
钉钉小程序 快手小程序 飞书小程序 京东小程序
×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

da-city-selector

一个基于 Vue3 的城市选择弹窗组件,支持 App、小程序定位、单选、多选、筛选、主题换色。

组件一直在更新,遇到问题可在下方讨论。

功能概述

  1. 支持单选
  2. 支持多选
  3. 支持主题换色
  4. 支持字母索引
  5. 支持拼音筛选
  6. 支持拼音缩写筛选
  7. 支持名称筛选
  8. 支持 App、小程序定位到当前城市
  9. 可直接使用自带城市数据或自定义业务城市数据

关于使用

可在右侧的使用 HBuilderX 导入插件下载示例项目ZIP,方便快速上手。

可通过下方的示例及文档说明,进一步了解使用组件相关细节参数。

插件地址:https://ext.dcloud.net.cn/plugin?id=13596

组件示例

<template>
  <DaCitySelector
    :visible="citySelectorVisible"
    themeColor="#dd524d"
    :multiple="true"
    :multipleLimit="5"
    :cityValue="citySelectedValue"
    @confirm="handleConfirm"
    @close="handleClose"></DaCitySelector>
  <button @click="onShowCitySelector()">选择城市</button>
  <view>{{ cityNames }}</view>
</template>
import { defineComponent, ref } from 'vue'

import DaCitySelector from '@/components/da-city-selector/index.vue'
export default defineComponent({
  components: { DaCitySelector },
  setup() {
    const citySelectedValue = ref(null)

    const cityItems = ref([])
    const cityNames = ref('')

    const citySelectorVisible = ref(false)

    function onShowCitySelector() {
      // 加载已选内容
      citySelectedValue.value = cityItems.value?.map((k) => k.id)

      citySelectorVisible.value = true
    }

    function handleConfirm(val) {
      console.log('handleConfirm ==>', val)

      cityItems.value = val || []
      cityNames.value = cityItems.value.map((k) => k.name).join('、')

      citySelectorVisible.value = false
    }
    function handleClose() {
      console.log('handleClose ==>')
      citySelectorVisible.value = false
    }

    return {
      citySelectorVisible,
      citySelectedValue,

      cityItems,
      cityNames,

      onShowCitySelector,
      handleConfirm,
      handleClose,
    }
  },
})

组件参数

属性 类型 默认值 必填 说明
visible Boolean false 是否显示弹窗
cityData Array - 城市数据,如果为空则使用组件自带的城市数据;数据格式参考下方
cityValue Array|String|Number - 默认已选数据
multiple Boolean false 是否多选
multipleLimit Number 0 多选个数限制,0 为不限制
themeColor String #007aff 主题色
placeholder String 请输入城市名称/拼音 搜索提示文本
showLocate Boolean true 是否显示定位城市,不支持 H5
mapKey String - 腾讯地图 key,用来转换经纬度为城市信息

cityData数据格式为:

[
  {
    first_char: '字母',
    [
      {id: '城市Code',name: '城市名称',sname: '城市缩写',pinyin: '城市名称拼音'}
    ]
  }
]

mapKey 申请地址:https://lbs.qq.com/dev/console/key/add

组件事件

事件名称 回调参数 说明
confirm (values) => void 确定选择时回调
close () => void 返回时回调

组件版本

v1.0.1

差异化

已通过测试

  • H5 页面
  • 微信小程序
  • 支付宝、钉钉小程序
  • 字节跳动、抖音、今日头条小程序
  • 百度小程序
  • 飞书小程序
  • QQ 小程序
  • 京东小程序

未测试

  • 快手小程序由于非企业用户暂无演示
  • 快应用、360 小程序因 Vue3 支持的原因暂无演示

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问