[improvement] AddressEdit: add more props (#1790)

This commit is contained in:
neverland 2018-09-12 21:47:55 +08:00 committed by GitHub
parent 4aca189f49
commit bd815a5839
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 39 additions and 15 deletions

View File

@ -1,10 +1,10 @@
<template> <template>
<div> <div :class="b()">
<field <field
v-on="$listeners" v-on="$listeners"
ref="field"
rows="1"
autosize autosize
ref="field"
:rows="detailRows"
:clearable="!isAndroid" :clearable="!isAndroid"
type="textarea" type="textarea"
maxlength="200" maxlength="200"
@ -51,6 +51,7 @@ export default create({
value: String, value: String,
error: Boolean, error: Boolean,
focused: Boolean, focused: Boolean,
detailRows: Number,
searchResult: Array, searchResult: Array,
showSearchResult: Boolean showSearchResult: Boolean
}, },

View File

@ -3,6 +3,7 @@
<cell-group> <cell-group>
<field <field
v-model="data.name" v-model="data.name"
clearable
maxlength="15" maxlength="15"
:label="$t('name')" :label="$t('name')"
:placeholder="$t('namePlaceholder')" :placeholder="$t('namePlaceholder')"
@ -11,6 +12,7 @@
/> />
<field <field
v-model="data.tel" v-model="data.tel"
clearable
type="tel" type="tel"
:label="$t('tel')" :label="$t('tel')"
:placeholder="$t('telPlaceholder')" :placeholder="$t('telPlaceholder')"
@ -18,16 +20,19 @@
@focus="onFocus('tel')" @focus="onFocus('tel')"
/> />
<field <field
v-show="showArea"
readonly readonly
:label="$t('area')" :label="$t('area')"
:placeholder="$t('areaPlaceholder')" :placeholder="$t('areaPlaceholder')"
:value="areaText" :value="areaText"
@click="showArea = true" @click="showAreaPopup = true"
/> />
<address-edit-detail <address-edit-detail
v-show="showDetail"
:focused="detailFocused" :focused="detailFocused"
:value="data.addressDetail" :value="data.addressDetail"
:error="errorInfo.addressDetail" :error="errorInfo.addressDetail"
:detail-rows="detailRows"
:search-result="searchResult" :search-result="searchResult"
:show-search-result="showSearchResult" :show-search-result="showSearchResult"
@focus="onFocus('addressDetail')" @focus="onFocus('addressDetail')"
@ -65,14 +70,14 @@
</van-button> </van-button>
</div> </div>
<popup v-model="showArea" position="bottom" :lazy-render="false" :get-container="getAreaContainer"> <popup v-model="showAreaPopup" position="bottom" :lazy-render="false" :get-container="getAreaContainer">
<van-area <van-area
ref="area" ref="area"
:loading="!areaListLoaded" :loading="!areaListLoaded"
:value="data.areaCode" :value="data.areaCode"
:area-list="areaList" :area-list="areaList"
@confirm="onAreaConfirm" @confirm="onAreaConfirm"
@cancel="showArea = false" @cancel="showAreaPopup = false"
/> />
</popup> </popup>
</div> </div>
@ -126,6 +131,18 @@ export default create({
showSearchResult: Boolean, showSearchResult: Boolean,
saveButtonText: String, saveButtonText: String,
deleteButtonText: String, deleteButtonText: String,
showArea: {
type: Boolean,
default: true
},
showDetail: {
type: Boolean,
default: true
},
detailRows: {
type: Number,
default: 1
},
addressInfo: { addressInfo: {
type: Object, type: Object,
default: () => ({ ...defaultData }) default: () => ({ ...defaultData })
@ -143,7 +160,7 @@ export default create({
data() { data() {
return { return {
data: {}, data: {},
showArea: false, showAreaPopup: false,
detailFocused: false, detailFocused: false,
errorInfo: { errorInfo: {
tel: false, tel: false,
@ -209,7 +226,7 @@ export default create({
}, },
onAreaConfirm(values) { onAreaConfirm(values) {
this.showArea = false; this.showAreaPopup = false;
this.data.areaCode = values[2].code; this.data.areaCode = values[2].code;
this.assignAreaValues(values); this.assignAreaValues(values);
this.$emit('change-area', values); this.$emit('change-area', values);
@ -290,6 +307,10 @@ export default create({
}); });
}, },
setAddressDetail(value) {
this.data.addressDetail = value;
},
getAreaContainer() { getAreaContainer() {
return document.body; return document.body;
} }

View File

@ -53,7 +53,7 @@ exports[`renders demo correctly 1`] = `
</div> </div>
<!----> <!---->
</div> </div>
<div> <div class="van-address-edit-detail">
<div rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-cell van-hairline van-field"> <div rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-cell van-hairline van-field">
<!----> <!---->
<div class="van-cell__title"><span>详细地址</span> <div class="van-cell__title"><span>详细地址</span>

View File

@ -51,7 +51,7 @@ exports[`create a AddressEdit 1`] = `
</div> </div>
<!----> <!---->
</div> </div>
<div> <div class="van-address-edit-detail">
<div rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-cell van-hairline van-field"> <div rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-cell van-hairline van-field">
<!----> <!---->
<div class="van-cell__title"><span>详细地址</span> <div class="van-cell__title"><span>详细地址</span>
@ -156,7 +156,7 @@ exports[`create a AddressEdit with props 1`] = `
</div> </div>
<!----> <!---->
</div> </div>
<div> <div class="van-address-edit-detail">
<div rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-cell van-hairline van-field"> <div rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-cell van-hairline van-field">
<!----> <!---->
<div class="van-cell__title"><span>详细地址</span> <div class="van-cell__title"><span>详细地址</span>

View File

@ -27,9 +27,11 @@
color: $gray-dark; color: $gray-dark;
} }
&-detail__finish { &-detail {
&__finish {
color: $blue; color: $blue;
font-size: 12px; font-size: 12px;
display: block; display: block;
} }
}
} }