npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cainiaofe/cn-address

v0.4.1

Published

地址选择器

Downloads

110

Readme

通用文档

基于 @cainiaofe/cn-ui 版本

Getting Started

tnpm i

tnpm start

Running the tests

tnpm run test

组件名称

菜鸟地址选择组件

简介

内部采用地址库标准数据,支持国内外数据和单选多选,支持多种数据源

支持功能

功能支持包括:

  • 国家或地区选择
  • 默认值设置,设置后默认选中
  • 支持受控和非受控两种模式
  • 区划选择
  • 禁用选择器
  • 单选或多选
  • 区划层级设置(可对全部或单独某个国家设置国家)
  • 快捷操作栏是否开启(仅多选模式),全选、反选、取消
  • 指定某个国家区划选择
  • 已删除区划数据是否显示
  • 标记已删除数据(显示已删除数据时生效)
  • 指定某几个国家显示
  • 指定某几个国家不显示
  • 过滤黑名单区划(非国家级别区划)
  • 数据源支持 mtop 地址库数据、自定义接口形式, 接口要求,以及 cdn 形式,需传入 cdn 地址
  • 数据版本定制
  • 支持菜鸟地址库数据lazada数据
  • 区划数据自动升级
  • 支持与 CnFilter 结合使用
  • 支持与 Form 结合使用
  • 多语言支持,数据多语言及文案
  • 支持搜索功能
  • 支持预览模式
  • 区划排序,默认按字母进行排序。可选值 ID(按 id 排序)和 EN(按 en 或 pinyin 名称排序)
  • 选择即生效(单选模式)
  • 仅叶子节点可选(多选模式)
  • 最多显示多少个 tag(多选模式)
  • 支持 useDetailValue 模式
  • 支持 useDetailMap 自定义映射
  • value 可接收string或者对象类型数据

API

| 属性 | 是否必填 | 默认值 | 说明 | | -------------------- | -------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | value | 否 | [] (单选时为'') | (受控)当前值, 传入最后一级的 regionId。 例如 广东省-广州市-天河区 则传入天河区的 regionId - 440106 | | defaultValue | 否 | [] (单选时为'') | (非受控)默认值 | | onChange | 否 | (value: String/Array, data: Object/Array, extra: Object) => {} | 选中值改变时触发的回调函数 - value 选中的值, 例如 广东省-广州市-天河区对应 regionId - data 选中的数据 - extra 额外参数 | | onVisibleChange | 否 | (visible, type) => {} | 下拉框显示或关闭时触发事件的回调函数 | | multiple | 否 | true | 是否多选 | | disabled | 否 | false | 是否禁用选择器 | | showTopLevel | 否 | false | 是否展示【国家】层级,iso 指定某个国家时生效 | | showSearch | 否 | false | 开启搜索。cdn 模式和 mtop 模式行为不同 | | showFooter | 否 | false | 开启底部快捷操作(全选、反选、清除),仅多选模式下生效 | | dataLanguage | 否 | local | 地址数据国际化, 缺省为 local。可选值为 ISO 码,如 CN、EN,iso 码列表 | | locale | 否 | - | 文案多语言,默认中文。文案内置中、英、日、韩、俄、西班牙、法、葡语言包,也可自行传入。 | | maxLevel | 否 | 4 | 设置显示到几级地址。针对所有国家都生效 | | levelConfig | 否 | - | 只有在多个国家时(iso='')生效,适用于单独设置某个国家区划层级,优先级高于 maxLevel。示例: { CN: 2 }, key 为国家对应 iso | | iso | 否 | CN | 设置某个国家数据(开启所有国家时设置为 '') iso 码列表 | | maxTagCount | 否 | - | 最多显示多少个 tag, 仅在多选模式下有效 | | maxTagPlaceholder | 否 | - | 隐藏多余 tag 时显示的内容,在 maxTagCount 生效时起作用 | | changeOnSelect | 否 | false | 是否选中即发生改变, 仅在单选模式下有效 | | canOnlyCheckLeaf | 否 | false | 是否仅叶子节点可勾选,仅在多选模式下有效 | | showDisabledDivision | 否 | false | 地址数据库中,是否展示已删除数据 | | markedDeletion | 否 | true | 标记已删除数据,配置已删除数据显示时生效 | | needSkipLevelData | 否 | true | 是否需要跳级数据,例如,maxLevel = 3, showTopLevel = false, 广东省-中山市 广东省-东莞市 下没有区, 直接到街道, 开启 false 就不显示 | | includeList | 否 | [] | 国家列表显示,设置只显示某些国家,ISO 码['CN', 'SG']。只在开启全部国家时生效(iso='') iso 码列表 | | excludeList | 否 | [] | 国家列表显示,隐藏某些国家, ISO 码['CN', 'SG']。只在开启全部国家时生效(iso='') iso 码列表 | | blackList | 否 | [] | 过滤某些区划不显示,数组内为区划 id。不包括国家级别,过滤国家请使用 excludeList | | divisionSort | 否 | - | 区划排序,默认按字母进行排序。可选值 ID 和 EN | | readOnly | 否 | - | 预览模式 | | useDetailValue | 否 | false | 将onChange的第一个参数由字符串转化为对象格式,使用方式见示例或参考文章。 0.1.9版本后新增 | | useDetailMap | 否 | - | 将默认 useDetailValue 结构转化为自定义字段。仅 useDetailValue 开启时生效。 | | mtopConfig | 否 | - | 设置 mtop 配置相关,参数见文档, 例如{ subDomain: 'm' } | | config | 是 | configProps | 地址库参数 |

  • configProps 地址库参数:

| 字段名 | 是否必填 | 缺省 | 说明 | | --------------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | apiModel | 否 | mtop | mtop api cdn, api 需要后端实现 5 个接口,地址数据找客户要或其他渠道,地址库接口要求; mtop 要申请 businessId,mtop 模式下回填数据量受限制,50 条,通过 config.maxLength 控制,回填数据大了会卡死,回填数据大用 cdn 模式; cdn 注意一定要用菜鸟地址库提供的数据(最顶级来源要 实时 从地址库的 cdn 拿,不允许私自存储,可以用自己的 cdn) | | cdnUrl | 否 | | apiModel 为 cdn 模式下的 cdn 地址 当前版本:https://division-data.alicdn.com/simple/addr_mtop_20220401.js 可以自己搞 cdn 数据,但必须实时从该地址获取,确保数据受地址团队控制 | | businessId | 是 | 无 | apiModel 为 mtop 时必填,组件唯一标识。需要向地址库申请的唯一 id,走 mtop 时必填,否则无法正常调用。申请 ID 请钉钉联系@曦辉,或点此申请 | | urlBase | 是 | 无 | apiModel 为 api 时必填,host 地址,如https://oneapi.alibaba-inc.com/mock/CNBP | | applicationType | 否 | query | ---- | | realm | 否 | default | ---- | | apiType | 否 | cndzk | 接口类型- lazada:对应 Lazada 数据接口,https://yuque.antfin-inc.com/docs/share/a2827674-93d3-4250-b6c0-50a907c0a253?#,有问题可联系@曦辉 ,谢谢~- cndzk:对应地址库数据接口,https://yuque.antfin-inc.com/docs/share/f5248ac3-c07a-4c58-8acd-c2e4aaf2c225?# |

  • 地址库数据参考
dataLanguage为local时,取值为 names[item.language]
此时item.language = 'CN'
{
  "disable": false,
  "id": "310000",
  "iso": "CN",
  "language": "CN",
  "leaf": false,
  "level": 2,
  "names": {
    "EN": "Shanghai",
    "CN": "上海"
  }
}

用例

<CnAddress
	className='w'
	onChange={(v, data, extra) => {
		console.log(v, data, extra);
	}}
	maxLevel={5}
	iso='CN'
	showTopLevel={true}
	config={{
		businessId: '', // 填申请并填写
	}}
/>