当前位置: 首页 > news >正文

uniapp粘贴板地址识别 address-parse插件的使用

1: 插件安装

 主要是依靠 address-parse 这个插件:

官网 收货地址自动识别 支持pc、h5、微信小程序 - DCloud 插件市场 

// 首先需要引入插件
npm install address-parse --save

 2:html部分

		<view class=""><view class="center copyContBox"><textarea placeholder='云南省昆明市西山区前福路xxx号,李狗蛋,132xxxxxxxx' v-model="copyContent" style="width: 100%;"></textarea></view><view class="copyBtnBox"><button @click="discernAddAddressBtn" class="copyBtn center">{{$t(`识别地址`)}}</button></view></view><form @submit="formSubmit"><view class='addAddress'><view class='list'><view class='item acea-row row-between-wrapper'><view class='name'>{{$t(`姓名`)}}</view><input type='text' :placeholder='$t(`请输入姓名`)' name='real_name' :value="userAddress.real_name"placeholder-class='placeholder'></input></view><view class='item acea-row row-between-wrapper'><view class='name'>{{$t(`联系电话`)}}</view><input type='number' :placeholder='$t(`请输入联系电话`)' name="phone" :value='userAddress.phone'placeholder-class='placeholder' pattern="\d*"></input></view><view class='item acea-row row-between-wrapper'><view class='name'>{{$t(`所在地区`)}}</view><view class="address"><picker mode="multiSelector" @change="bindRegionChange"@columnchange="bindMultiPickerColumnChange"                     :value="valueRegion" :range="multiArray"><view class='acea-row'><view class="picker">{{region[0]}},{{region[1]}},                {{region[2]}}</view><view class='iconfont icon-dizhi fontcolor'></view></view></picker></view></view><view class='item acea-row row-between-wrapper'><view class='name'>{{$t(`详细地址`)}}</view><input type='text' :placeholder='$t(`请填写具体地址`)' name='detail' placeholder-class='placeholder':value='userAddress.detail'></input></view></view><view class='default acea-row row-middle' @click='ChangeIsDefault'><checkbox-group><checkbox :checked="userAddress.is_default ? true : false" />    {{$t(`设置为默认地址`)}}</checkbox-group></view><button class='keepBnt bg-color' form-type="submit">{{$t(`立即保存`)}}</button><!-- #ifdef MP --><view class="wechatAddress" v-if="!id" @click="getWxAddress">{{$t(`导入微信地址`)}}</view><!-- #endif --></view></form><style scoped lang="scss">.copyContBox{padding: 15rpx;box-sizing: border-box;background-color: #fff;}.copyBtnBox{margin: 15rpx;display: flex;justify-content: flex-end;}.copyBtn{width: 160rpx;height: 60rpx;color: #fff;background-color: #42ca4d;font-size: 25rpx;}.center{display: flex;justify-content: center;align-items: center;}</style>

3:is代码

<script>
import AddressParse from 'address-parse';export default {data() {return {copyContent:"",userAddress: {is_default: false}, //地址详情region: [this.$t(`省`), this.$t(`市`), this.$t(`区`)],}},methods: {discernAddAddressBtn(){let that=this;const result = AddressParse.parse(that.copyContent)[0];if(result==undefined){return  that.$util.Tips({title: that.$t(`粘贴板为空,请将复制的内容放到粘贴板区域`)});}else{if(result.province==""&&result.city==""&&result.area==""&&result.name==""&&result.mobile==""){uni.showModal({title: '温馨提示',content: '请输入正确的地址',success: function (res) {that.userAddress.real_name="";that.userAddress.mobile="";that.userAddress.details="";that.$set(that,'region', ["省","市","区"]);if (res.confirm) {// console.log('用户点击确定',that.useIntegral);} else if (res.cancel) {// console.log('用户点击取消');// 用户点击了取消按钮的相关逻辑可以放在这里}}});}else{that.$set(that.userAddress, 'real_name', result.name);that.$set(that.userAddress, 'phone', result.mobile);if(result.province!=""||result.city!=""||result.area!=""){that.$set(that,'region',[result.province,result.city,result.area]);}else{that.$set(that,'region', ["省","市","区"]);}that.$set(that.userAddress, 'detail', result.details);that.cityId= this.getCityId(that.district,result.province,result.city,result.area).v;}}},// 用粘贴板的省市区 匹配后台返回的省市区 获取城市idgetCityId(arr,province,city,area){if(province!=""&city!=""&area!=""){let obj={}for (let item of arr) {if(item.n == province){if(item.c.length>0){for (let ite of item.c) {if(ite.n == city){if(ite.c.length>0){let obj=ite.c.find((val)=>{return val.n==area})return obj}}}}}}}else{return false;}},},
}
</script>

相关文章:

  • 20240810在荣品RK3588S-AHD开发板的预置Android13下挂载exFAT的256GB的TF卡
  • 十二、OpenCVSharp 中的图像匹配与模板匹配
  • buildroot是啥,用来干什么?怎么用
  • ImportError: DLL load failed: 找不到指定的程序的解决方案
  • GLM4 API 调用方法
  • CH07_数据绑定
  • 电子电气架构 --- 座舱域控制器:一芯多屏快速渗透
  • 【定稿】英飞凌Aurix2G TC3XX CAN模块详解
  • extern在头文件中添加是否必要?(C/C++)
  • 怎么衡量数据仓库模型的优与劣
  • 电池常用,但电芯热电耦合难?科学仿真技术轻松解决
  • 接口优化笔记
  • ThinkPHP5漏洞分析之代码执行
  • LeeCode Practice Journal | Day44_DP11 子序列问题
  • 案例分享—国外毛玻璃效果UI设计案例
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • angular2开源库收集
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Java,console输出实时的转向GUI textbox
  • java概述
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • October CMS - 快速入门 9 Images And Galleries
  • React-redux的原理以及使用
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 前端面试题总结
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 手写双向链表LinkedList的几个常用功能
  • 数组大概知多少
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​学习一下,什么是预包装食品?​
  • ‌移动管家手机智能控制汽车系统
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (0)Nginx 功能特性
  • (52)只出现一次的数字III
  • (ibm)Java 语言的 XPath API
  • (Java入门)学生管理系统
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (回溯) LeetCode 78. 子集
  • (五)c52学习之旅-静态数码管
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原創) 未来三学期想要修的课 (日記)
  • (转)创业家杂志:UCWEB天使第一步
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .NET 4.0中的泛型协变和反变
  • .Net 6.0 处理跨域的方式
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET成年了,然后呢?