一:需求描述
在添加收货地址时,为了方便代理下单(因为代理都是下各种不同地址的订单,输入地址的时候,是否可以直接复制粘贴 整个,智能识别,或者直接读取粘贴的内容)
二: 具体实现
GitHub上有个开源的项目(插件),实现国内地址地区智能解析,无需完整地址也能正确匹配
实现思路:
1
npm 安装 开发时依赖
npm install address-parse --save
2在需要的组件中引入
import AddressParse from 'address-parse';
3书写地址识别框的样式
4在data中定义属性用来接收用户填入的地址信息
5methods中实现方法
<!--智能解析框-->
3书写地址识别框的样式
<div class="addressBox">
<u-input class="analysis" v-model="message" :type="type" :border="border" :height="height" :auto-height="autoHeight"placeholder="智能解析:粘贴或者输入整段文字,自动识别姓名、号码、地址,如:段佳佳13112345678浙江省杭州市西湖区某某路某某某大厦001号" />
<div class="parseBtnbox">
<text class="cleanBtn" @click="clean">清空</text>
<button class="parseBtn" @click="parseAddress">识别</button>
</div>
</div>
2在需要的组件中引入
import AddressParse from 'address-parse'; //引入地址解析实例
4在data中定义属性用来接收用户填入的地址信息
5methods中实现方法:
clean() { //地址解析,清空
this.message = ''
console.log(this.message)
},
parseAddress() { //地址解析
console.log(this.message)
/*判断解析的地址内容不为空*/
if (this.message != '') {
const result = AddressParse.parse(this.message);
this.name=result[0].name;
this.phone=result[0].mobile;
this.address=result[0].details;
this.input=`${result[0].province}-${result[0].city}-${result[0].area}`
} else {
console.log('请输入你要解析的地址')
this.toast('请输入您要解析的地址信息')
}
}