php 三级联动修改默认值,vue里面的省市区三级联动vue-area-linkage,设置初始值和把修改的值传给后台。为什么编辑的时候显示的还是第一赋值的。如何修改...

vue里面的省市区三级联动vue-area-linkage,设置初始值和把修改的值传给后台。为什么编辑的时候显示的还是第一赋值的。如何修改

发布时间:2018-09-28 12:02,

浏览次数:1900

, 标签:

vue

area

linkage

vue-area-linkage

点这里看demo:https://dwqs.github.io/vue-area-linkage/

安装

这里安装v5之后的版本

npm i --save vue-area-linkage area-data

在mian.js里面注册

import VueAreaLinkage from 'vue-area-linkage';

import 'vue-area-linkage/dist/index.css';

Vue.use(VueAreaLinkage);

然后再具体使用的页面引入

import { AreaCascader } from "vue-area-linkage"

import { pca, pcaa } from 'area-data';

同时data数据中定义

selected: [], //数组对应的就是选中的那个省市区。根据type来确定是省市区汉字的数组还是编码组成的数组。

//selected[0]省。selected[1]市。selected[2]区。 pca: pca, pcaa: pcaa

使用,可以选择两种方式来写都行。

1,使用area-select 来写

// 省市 // 省市区:

2,使用area-cascader 来写

:data="pca">

// 省市 // 省市区:

:data="pcaa">

area-select 组件   type可以指定返回的数据格式的类型是编码还是中文

参数 类型 可选值 默认值 说明

type String all/code/text code 设置返回的数据格式

placeholders Array - [] 设置 placeholder text

level Number 0/1/2 1 设置联动层级(0-只选省份/1-省市联动/2-省市区联动)

size String small/medium/large medium 设置输入框的大小

disabled Boolean - false 是否禁用

data Object - - 地区数据(v5需要传入)

icon String - area-select-icon 自定义下拉小图标

v4 仅支持省市区联动,即 v4 不再支持 level 的值为 3(省市区街联动)

area-cascader 组件

参数 类型 可选值 默认值 说明

type String all/code/text code 设置返回的数据格式

placeholder String - '' 设置 placeholder text

level Number 0/1 0 设置联动层级(0-省市联动/1-省市区联动)

size String small/medium/large medium 设置输入框的大小

separator String - '-' 显示选中文本的分隔符

disabled Boolean - false 是否禁用

data Object - - 地区数据(v5需要传入)

获取默认值。只能靠编码来显示,如果你只写对应的中文根本显示不出来啊。所以接口的数据是对应编码。

this.selected[0] = pcaa[86][res.data.addrprovinceid];

//res.data.addrprovinceid省对应的id

this.selected[1] = pcaa

[res.data.addrprovinceid][res.data.addrcityid];  //res.data.addrcityid省对应的id

this.selected[2] = pcaa

[res.data.addrcityid][res.data.addrcountyid];    //res.data.addrcountyid省对应的id

为什么编辑的时候显示的还是第一赋值的。如何修改。

在使用的时候有个详情页面每次看到的就是某个人所在的地址。但是发现打开第一个窗口是对的,再打开第二个人的窗口还是显示第一个人的。并且在js的里面我明明从新赋值了,打印出来也是正确的。

然后我想可能是js里面改变了但是dom元素没变,想到用this.$set(this.selected,0, pcaa[86]

[res.data.addrprovinceid]) 但是没有用。

最后就在里面写了一个v-if。相当于每次打开的时候重新加载

v-if="cityshow"  >

然后打开页面的方法里面调用

//清空已选择的地区

iscityShow(){

this.cityshow = false;

this.selected = [];

var t = setTimeout(() => {this.cityshow = true},0);

},

最后就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值