更新记录
1.0.1(2025-06-30) 下载此版本
修改源数据类型bug
调整组件样式
1.0.0(2025-06-30) 下载此版本
1、区划选择,支持树形静态数据、层级动态数据
2、支持树形子项字段、区划名字段、区划编号字段重定义
3、回传常用数据,方便小伙伴使用
平台兼容性
uni-app
Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | √ | - | - | - | - |
微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
---|---|---|---|---|---|---|---|---|---|---|
√ | - | - | - | - | - | - | - | - | - | - |
uni-app x
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
√ | √ | 5.0 | 12 | - | √ |
其他
多语言 | 暗黑模式 | 宽屏模式 |
---|---|---|
× | × | √ |
sjx-area-select
该组件为uni_modules组件,下载导入后可以全局直接使用,无需在页面中引入、声明组件
Props
字段 | 类型 | 默认值 | 可选值 | 功能描述 | 更新时间 |
---|---|---|---|---|---|
isTree | Boolean | true | true|false | 源数据是否是树形结构 | 2025-06-30 |
areaArr | Array | [] | ~ | 源数据 | 2025-06-30 |
requestData | Array | [] | ~ | 动态加载下一级数据时,下一级数据 | 2025-06-30 |
childsName | String | 'childs' | ~ | 树形结构子项字段 | 2025-06-30 |
areaName | String | 'areaName' | ~ | 区划名字段 | 2025-06-30 |
areaNumber | String | 'areaNumber' | ~ | 区划编号字段 | 2025-06-30 |
Events
内置点击tabs重新选择区划
事件名 | 默认值 | 功能描述 | 更新时间 |
---|---|---|---|
areaClick | ~ | 区划点击事件,回传点击区划对象、当前区划名、当前区划编号、全区划名数组、是否是最后一项 | 2025-06-30 |
代码演示
页面代码
<template>
<view style="padding: 20px;">
<button type="primary" @click="selectArea">动态选择区域</button>
<sjx-area-select style="min-height: 100px;" v-if="isShow" :areaArr="firstArea" @areaClick='getArea'
areaName="name" areaNumber="code" :isTree="false" :requestData="requestData"></sjx-area-select>
<button type="primary" @click="selectAreaTree" style="margin-top: 10px;">静态选择区域</button>
<sjx-area-select v-if="isShowStatic" :areaArr="areaArr" @areaClick='getAreaTree' areaName="name"
areaNumber="code" childsName="children"></sjx-area-select>
</view>
</template>
动态选择区域
selectArea() {
this.isShow = true
},
/* item--当前项;areaName--当前区划名;areaNameArr--全区全名称数组;areaNumber--当前区划代码;isLeaf--是否是最后一级 */
getArea(item, areaName, areaNameArr, areaNumber, isLeaf) {
console.log('区划全名称', areaNameArr.join('#'));
/* 模拟接口请求 */
setTimeout(() => {
if (this.count % 5 == 4) {
this.count = 0
this.requestData = []
this.isShow = false
} else {
this.requestData = [{
name: `区划1-${this.count}`,
code: 'num'
}, {
name: `区划2-${this.count}`,
code: 'num'
}, {
name: `区划3-${this.count}`,
code: 'num'
}]
this.count++
}
}, 1000)
}
静态选择区域
selectAreaTree() {
this.isShowStatic = true
},
/* item--当前项;areaName--当前区划名;areaNameArr--全区全名称数组;areaNumber--当前区划代码;isLeaf--是否是最后一级 */
getAreaTree(item, areaName, areaNameArr, areaNumber, isLeaf) {
console.log('区划全名称', areaNameArr.join('#'));
this.isShowStatic = !isLeaf
}
关于我
1、如有不足或不方便的地方,请指出,我尽快完善。
2、各位小伙伴如果需要其他插件的话,请留言,我会根据实际需求及自身能力完成插件或给出建议。
谢谢大家!