uni——app、H5省市区选择
2023-09-14 09:04:08 时间
案例演示
步骤
封装的组件,之后引用组件。
父:
<pickerAddress @change="change">
<input type="text" placeholder="请选择所在地区" :value="value" />
<image :src="$common.image('/static/personal/addressNext.png')" mode="aspectFill" class="next"></image>
</pickerAddress>
import pickerAddress from "@/components/citySelect/citySelect.vue"
export default {
components: {
pickerAddress
},
data() {
return {
// 城市选择
value: ""
};
},
methods:{
// 城市选择
change(data) {
this.value = data.data.join('')
console.log(this.value);
}
}
}
组件:
citySelect文件:
<template>
<picker @change="bindPickerChange" @columnchange="columnchange" :range="array" range-key="name" :value="value"
mode="multiSelector" style="display:flex;justify-content: space-between;">
<slot></slot>
</picker>
</template>
<script>
import AllAddress from '@/components/citySelect/data.js'
let selectVal = ['', '', '']
export default {
data() {
return {
value: [0, 0, 0],
array: [],
index: 0
}
},
created() {
this.initSelect()
},
methods: {
// 初始化地址选项
initSelect() {
this.updateSourceDate() // 更新源数据
.updateAddressDate() // 更新结果数据
.$forceUpdate() // 触发双向绑定
},
// 地址控件改变控件
columnchange(d) {
this.updateSelectIndex(d.detail.column, d.detail.value) // 更新选择索引
.updateSourceDate() // 更新源数据
.updateAddressDate() // 更新结果数据
.$forceUpdate() // 触发双向绑定
},
/**
* 更新源数据
* */
updateSourceDate() {
this.array = []
this.array[0] = AllAddress.map(obj => {
return {
name: obj.name
}
})
this.array[1] = AllAddress[this.value[0]].cityList.map(obj => {
return {
name: obj.name
}
})
this.array[2] = AllAddress[this.value[0]].cityList[this.value[1]].areaList.map(obj => {
return {
name: obj.name
}
})
return this
},
/**
* 更新索引
* */
updateSelectIndex(column, value) {
let arr = JSON.parse(JSON.stringify(this.value))
arr[column] = value
if (column === 0) {
arr[1] = 0
arr[2] = 0
}
if (column === 1) {
arr[2] = 0
}
this.value = arr
return this
},
/**
* 更新结果数据
* */
updateAddressDate() {
selectVal[0] = this.array[0][this.value[0]].name
selectVal[1] = this.array[1][this.value[1]].name
selectVal[2] = this.array[2][this.value[2]].name
return this
},
/**
* 点击确定
* */
bindPickerChange(e) {
this.$emit('change', {
index: this.value,
data: selectVal,
array: this.array
})
return this
}
}
}
</script>
<style>
</style>
data.js
放不下了 放资源里吧
相关文章
- 手把手教你制作一款iOS越狱App,伪装微信位置
- 手机APP抓包过程
- uni-app实战---社区交友APP(环境搭建)
- uni-app引入sortable列表拖拽,兼容App和H5
- 我的Compose开源项目《出行防疫App》已发布
- 软件版本号命名规则参考标准_怎么修改app版本号名称
- APP软件:推荐几款非常好用的学习神器,赶快收藏吧!
- 浅谈量化合约对冲系统APP开发方案
- ios分发平台搭建_app分发下载
- MobSF一款可以扫描APP漏洞的平台
- Hbuilder用自有证书打包 ios App上架AppStore流程
- H5/APP客服端源码/uniapp在线客服系统源码开源了,全源码代码解读及发行安装教程
- 如何在H5页面或者移动端Uniapp/vue中接入在线客服系统,h5客服系统的接入方法
- H5页面唤醒 支付宝App 指定页面
- 人脸识别App不能超范围采集信息
- Linux下的打造智能App之旅(linux系统app)
- 安卓APP配合MSSQL强势发力,创新移动应用体验(安卓app mssql)
- 基于MSSQL的手机APP编程实践(mssql编程app)
- 肯德基APP上乘体验Redis助力(肯德基app redis)
- 手机App连接网站MySQL数据库实现跨平台通讯(app连接网站mysql)
- 基于App与MySQL交互实现数据读写示例(app读写mysql例子)
- App 搭配 MySQL一场创新型移动数据处理之旅(app能不能用MySQL)
- App测试技术利用Mysql助力质量保障(app测试mysql)
- App应用提交到MySQL中的实践与探索(app提交mysql)
- App企业使用MySQL实现信息管理梦想(app企业用mysql)
- MYSQL文档下载APP,安装即可轻松下载全系列MYSQL文档,方便快捷,实用高效(MYSQL下载文档app)
- 利用Oracle云App,体验极致科技享受(oracle云app)
- App与Oracle融合,拥抱数据驱动未来(app与oracle)
- Oracle中APP的强力删除(oracle中app删除)
- 既轻又快,我们用华为 P50 Pro 体验了所有的鸿蒙原生 App
- 国家互金专委会上线网贷查询APP,提供出借端查验服务
- 招商银行App 9.0上线:当一个十岁的App谈「新基建」与「杀手锏」