[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
5 changed files with 39 additions and 15 deletions

View File

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