总结使用vant 时遇到的一些问题
1, Field 输入框 Popup 弹出层 Picker 选择器
在使用过程中 发现很多官方API说的都不是很清楚
以下是使用实例
效果图
HTML部分
<li>
<van-field
clickable
required
is-link
input-align="center"
label-width="2rem"
label="账户"
:value="areaName"
disabled="true"
placeholder="关联账户"
@click="areaShow=true"
style="height:1rem; font-size: 0.3rem;line-height: 1rem;"
/>
<van-popup v-model="areaShow" position="bottom">
<van-area
:area-list="areaList"
@confirm='confirmFn'
@change='onChange'
@cancel="areaShow=false"
title="请选择关联账户"
/>
</van-popup>
</li>
导入组件
import { Picker, Popup, Field, ,Area } from "vant";
Vue.use(Picker).use(Popup).use(Field)..use(Area);
columns:[],
selectvalue:'',
selectclick:false,
aMap:'',
areaShow:false,
在使用中 发现columns对象数组的values只能是字符串类型
但是数据给我返回的类型是有特殊格式2336 *** 1760
所以在这里就使用到了new Map()
// res.accounts为接口返回的数据
if(res.accounts.length>0){
let v = this
let aMap=new Map();
for(var i=0;i<res.accounts.length;i++){
if(i==0){
this.usingCard=res.accounts[i].accountnumber;
this.guanlianzhanghu=res.accounts[i].accountid;
}
v.crdtnoSrr= {};
v.crdtnoSrr.cardNoOld=(res.accounts[i].accountnumber);
v.crdtnoSrr.cardNoNew=(res.accounts[i].accountnumber);
v.crdtnoSrrOld.push(res.accounts[i].accountnumber);
aMap.set(res.accounts[i].accountnumber,res.accounts[i].accountid);
}
//console.log("v.crdtnoSrrOld", v.crdtnoSrrOld);
this.aMap=aMap;
// console.log("this.aMap",this.aMap);
this.columns = [
{ values: this.crdtnoSrrOld }
]
以上就是处理数据的方法
点击确认事件
selonConfirm(selectvalue, index) {
console.log(selectvalue);
let aMap = this.aMap.get(selectvalue[0])
console.log("aMap",aMap);
sessionStorage.setItem("aMap", JSON.stringify(aMap)); //最后用sessionStorage存起来 再上传到数据库
this.selectvalue = selectvalue[0];
this.selectclick = false
//Toast("当前值:"+ selectvalue + ",当前索引:"+index);
},