mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-05-22 14:39:16 +08:00
feat(AddressEdit): add click feedback of area cell (#5120)
This commit is contained in:
parent
592bcafda0
commit
d8e30bdcac
@ -53,24 +53,25 @@ export default createComponent({
|
|||||||
return searchResult.map(express => (
|
return searchResult.map(express => (
|
||||||
<Cell
|
<Cell
|
||||||
key={express.name + express.address}
|
key={express.name + express.address}
|
||||||
class={bem('search-item')}
|
clickable
|
||||||
label={express.address}
|
|
||||||
border={false}
|
border={false}
|
||||||
icon="location-o"
|
icon="location-o"
|
||||||
clickable
|
label={express.address}
|
||||||
|
class={bem('search-item')}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
this.onSelect(express);
|
this.onSelect(express);
|
||||||
}}
|
}}
|
||||||
scopedSlots={{
|
scopedSlots={{
|
||||||
title: () =>
|
title: () => {
|
||||||
express.name && (
|
if (express.name) {
|
||||||
<div
|
const text = express.name.replace(
|
||||||
domPropsInnerHTML={express.name.replace(
|
value,
|
||||||
value,
|
`<span class=${bem('keyword')}>${value}</span>`
|
||||||
`<span class=${bem('keyword')}>${value}</span>`
|
);
|
||||||
)}
|
|
||||||
/>
|
return <div domPropsInnerHTML={text} />;
|
||||||
)
|
}
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
));
|
));
|
||||||
|
@ -272,6 +272,7 @@ export default createComponent({
|
|||||||
<Field
|
<Field
|
||||||
vShow={this.showArea}
|
vShow={this.showArea}
|
||||||
readonly
|
readonly
|
||||||
|
clickable
|
||||||
label={t('area')}
|
label={t('area')}
|
||||||
placeholder={t('areaPlaceholder')}
|
placeholder={t('areaPlaceholder')}
|
||||||
rightIcon="arrow"
|
rightIcon="arrow"
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
&__search-item {
|
&__search-item {
|
||||||
background-color: #f2f3f5;
|
background-color: @gray-2;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__keyword {
|
&__keyword {
|
||||||
|
@ -17,7 +17,7 @@ exports[`renders demo correctly 1`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
|
@ -15,7 +15,7 @@ exports[`create a AddressEdit 1`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
@ -54,7 +54,7 @@ exports[`create a AddressEdit with props 1`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
@ -107,7 +107,7 @@ exports[`set-default 1`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
@ -160,7 +160,7 @@ exports[`show area component 1`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
@ -213,7 +213,7 @@ exports[`show area component 2`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
@ -266,7 +266,7 @@ exports[`valid area placeholder confirm 1`] = `
|
|||||||
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="van-cell van-field">
|
<div role="button" tabindex="0" class="van-cell van-cell--clickable van-field">
|
||||||
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
<div class="van-cell__title van-field__label"><span>地区</span></div>
|
||||||
<div class="van-cell__value">
|
<div class="van-cell__value">
|
||||||
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control">
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
z-index: @contact-list-add-button-z-index;
|
z-index: @contact-list-add-button-z-index;
|
||||||
padding: 5px 16px;
|
padding: 5px 16px;
|
||||||
background-color: #fff;
|
background-color: @white;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__add {
|
&__add {
|
||||||
|
@ -9,7 +9,7 @@ import Radio from '../radio';
|
|||||||
import RadioGroup from '../radio-group';
|
import RadioGroup from '../radio-group';
|
||||||
|
|
||||||
// Types
|
// Types
|
||||||
import { CreateElement, RenderContext } from 'vue/types';
|
import { CreateElement, RenderContext, VNode } from 'vue/types';
|
||||||
import { DefaultSlots } from '../utils/types';
|
import { DefaultSlots } from '../utils/types';
|
||||||
|
|
||||||
export type ContactListItem = {
|
export type ContactListItem = {
|
||||||
@ -67,14 +67,17 @@ function ContactList(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Content() {
|
function Content() {
|
||||||
return [
|
const nodes = ([`${item.name},${item.tel}`] as unknown[]) as VNode[];
|
||||||
`${item.name},${item.tel}`,
|
|
||||||
item.isDefault && props.defaultTagText && (
|
if (item.isDefault && props.defaultTagText) {
|
||||||
|
nodes.push(
|
||||||
<Tag type="danger" round class={bem('item-tag')}>
|
<Tag type="danger" round class={bem('item-tag')}>
|
||||||
{props.defaultTagText}
|
{props.defaultTagText}
|
||||||
</Tag>
|
</Tag>
|
||||||
)
|
);
|
||||||
];
|
}
|
||||||
|
|
||||||
|
return nodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -84,11 +87,10 @@ function ContactList(
|
|||||||
center
|
center
|
||||||
class={bem('item')}
|
class={bem('item')}
|
||||||
valueClass={bem('item-value')}
|
valueClass={bem('item-value')}
|
||||||
// @ts-ignore
|
|
||||||
scopedSlots={{
|
scopedSlots={{
|
||||||
|
icon: LeftIcon,
|
||||||
default: Content,
|
default: Content,
|
||||||
'right-icon': RightIcon,
|
'right-icon': RightIcon,
|
||||||
icon: LeftIcon
|
|
||||||
}}
|
}}
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
/>
|
/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user