import{e as a,o as n,G as t}from"./vendor.js";const l={class:"markdown-body"},p=t(`
Address \u5730\u5740
\u4ECB\u7ECD
\u6309\u9700\u52A0\u8F7D\u8BF7\u52A0\u8F7D\u5BF9\u5E94\u4F9D\u8D56\u7EC4\u4EF6 Icon Popup Elevator
\u5B89\u88C5
import { createApp } from 'vue';
import { Address, Popup, Elevator } from '@nutui/nutui';
import { Address, Popup, Elevator } from '@nutui/nutui-taro';
const app = createApp();
app.use(Address);
app.use(Popup);
app.use(Elevator);
\u4EE3\u7801\u6F14\u793A
\u9009\u62E9\u81EA\u5B9A\u4E49\u5730\u5740
<nut-cell title="\u9009\u62E9\u5730\u5740" :desc="text" is-link @click="showAddress"></nut-cell>
<nut-address
v-model:visible="showPopup"
:province="province"
:city="city"
:country="country"
:town="town"
@change="onChange"
@close="close"
custom-address-title="\u8BF7\u9009\u62E9\u6240\u5728\u5730\u533A"
></nut-address>
setup() {
const showPopup = ref(false);
const address = reactive({
province:[
{ id: 1, name: '\u5317\u4EAC' },
{ id: 2, name: '\u5E7F\u897F' },
{ id: 3, name: '\u6C5F\u897F' },
{ id: 4, name: '\u56DB\u5DDD' }
],
city:[
{ id: 7, name: '\u671D\u9633\u533A' },
{ id: 8, name: '\u5D07\u6587\u533A' },
{ id: 9, name: '\u660C\u5E73\u533A' },
{ id: 6, name: '\u77F3\u666F\u5C71\u533A' }
],
country:[
{ id: 3, name: '\u516B\u91CC\u5E84\u8857\u9053' },
{ id: 9, name: '\u5317\u82D1' },
{ id: 4, name: '\u5E38\u8425\u4E61' }
],
town:[]
})
const text = ref('\u8BF7\u9009\u62E9\u5730\u5740')
const showAddress = () => {
showPopup.value = !showPopup.value;
};
const onChange = (cal) => {
const name = address[cal.next]
if (name.length < 1) {
showPopup.value = false;
}
};
const close = val => {
console.log(val);
text.value = val.data.addressStr;
};
return { showPopup, text, showAddress, onChange, close, ...toRefs(address) };
}
\u9009\u62E9\u81EA\u5B9A\u4E49\u5730\u57402
<nut-cell title="\u9009\u62E9\u5730\u5740" :desc="text" type="custom2" is-link @click="showAddress"></nut-cell>
<nut-address
v-model:visible="showPopup"
:province="province"
:city="city"
:country="country"
:town="town"
@change="onChange"
@close="close"
custom-address-title="\u8BF7\u9009\u62E9\u6240\u5728\u5730\u533A"
></nut-address>
setup() {
const showPopup = ref(false);
const address = reactive({
province: [
{ id: 1, name: '\u5317\u4EAC', title: 'B' },
{ id: 2, name: '\u5E7F\u897F', title: 'G' },
{ id: 3, name: '\u6C5F\u897F', title: 'J' },
{ id: 4, name: '\u56DB\u5DDD', title: 'S' },
{ id: 5, name: '\u6D59\u6C5F', title: 'Z' }
],
city: [
{ id: 7, name: '\u671D\u9633\u533A', title: 'C' },
{ id: 8, name: '\u5D07\u6587\u533A', title: 'C' },
{ id: 9, name: '\u660C\u5E73\u533A', title: 'C' },
{ id: 6, name: '\u77F3\u666F\u5C71\u533A', title: 'S' },
{ id: 3, name: '\u516B\u91CC\u5E84\u8857\u9053', title: 'B' },
{ id: 9, name: '\u5317\u82D1', title: 'B' }
],
country: [
{ id: 3, name: '\u516B\u91CC\u5E84\u8857\u9053', title: 'B' },
{ id: 9, name: '\u5317\u82D1', title: 'B' },
{ id: 4, name: '\u5E38\u8425\u4E61', title: 'C' }
],
town:[]
})
const text = ref('\u8BF7\u9009\u62E9\u5730\u5740')
const showAddress = () => {
showPopup.value = !showPopup.value;
};
const onChange = (cal) => {
const name = address[cal.next]
if (name.length < 1) {
showPopup.value = false;
}
};
const close = val => {
console.log(val);
text.value = val.data.addressStr;
};
return { showPopup, text, showAddress, onChange, close, ...toRefs(address) };
}
\u9009\u62E9\u5DF2\u6709\u5730\u5740
<nut-cell title="\u9009\u62E9\u5730\u5740" :desc="text" is-link @click="showAddressExist"></nut-cell>
<nut-address
v-model:visible="showPopupExist"
type="exist"
:exist-address="existAddress"
@close="close"
:is-show-custom-address="false"
@selected="selected"
exist-address-title="\u914D\u9001\u81F3"
></nut-address>
setup() {
const showPopupExist = ref(false);
const existAddress = ref([
{
id: 1,
addressDetail: 'th ',
cityName: '\u77F3\u666F\u5C71\u533A',
countyName: '\u57CE\u533A',
provinceName: '\u5317\u4EAC',
selectedAddress: true,
townName: ''
},{
id: 2,
addressDetail: '12_ ',
cityName: '\u7535\u996D\u9505',
countyName: '\u6276\u7EE5\u53BF',
provinceName: '\u5317\u4EAC',
selectedAddress: false,
townName: ''
},{
id: 3,
addressDetail: '\u53D1\u5927\u6C34\u6BD4 ',
cityName: '\u653E\u5230',
countyName: '\u5E7F\u5B81\u8857\u9053',
provinceName: '\u9493\u9C7C\u5C9B\u5168\u533A',
selectedAddress: false,
townName: ''
},{
id: 4,
addressDetail: '\u8FD8\u662F\u60F3\u5427\u767E\u5EA6\u5427 ',
cityName: '\u7814\u53D1',
countyName: '\u516B\u91CC\u5E84\u8857\u9053',
provinceName: '\u5317\u4EAC',
selectedAddress: false,
townName: ''
}
]);
const text = ref('\u8BF7\u9009\u62E9\u5730\u5740')
const showAddressExist = () => {
showPopupExist.value = true;
};
const close = val => {
if (val.type == 'exist') {
const {provinceName,cityName,countyName,townName,addressDetail} = val.data
text.value = provinceName + cityName + countyName + townName + addressDetail;
} else {
text.value = val.data.addressStr;
}
};
const selected = (prevExistAdd, nowExistAdd, arr) => {
console.log(prevExistAdd);
console.log(nowExistAdd);
};
return { showPopupExist, existAddress, showAddressExist, text, close, selected };
}
\u81EA\u5B9A\u4E49\u56FE\u6807
<nut-cell title="\u9009\u62E9\u5730\u5740" :desc="text" is-link @click="showCustomImg"></nut-cell>
<nut-address
v-model:visible="showPopupCustomImg"
type="exist"
:existAddress="existAddress"
@close="close"
:is-show-custom-address="false"
@selected="selected3"
:default-icon="defaultIcon"
:selected-icon="selectedIcon"
:close-btn-icon="closeBtnIcon"
></nut-address>
setup() {
const showPopupCustomImg = ref(false);
const icon = reactive({
selectedIcon: 'heart-fill',
defaultIcon: 'heart1',
closeBtnIcon: 'close',
backBtnIcon: 'left'
});
const existAddress = ref([
{
id: 1,
addressDetail: 'th ',
cityName: '\u77F3\u666F\u5C71\u533A',
countyName: '\u57CE\u533A',
provinceName: '\u5317\u4EAC',
selectedAddress: true,
townName: ''
},{
id: 2,
addressDetail: '12_ ',
cityName: '\u7535\u996D\u9505',
countyName: '\u6276\u7EE5\u53BF',
provinceName: '\u5317\u4EAC',
selectedAddress: false,
townName: ''
},{
id: 3,
addressDetail: '\u53D1\u5927\u6C34\u6BD4 ',
cityName: '\u653E\u5230',
countyName: '\u5E7F\u5B81\u8857\u9053',
provinceName: '\u9493\u9C7C\u5C9B\u5168\u533A',
selectedAddress: false,
townName: ''
},{
id: 4,
addressDetail: '\u8FD8\u662F\u60F3\u5427\u767E\u5EA6\u5427 ',
cityName: '\u7814\u53D1',
countyName: '\u516B\u91CC\u5E84\u8857\u9053',
provinceName: '\u5317\u4EAC',
selectedAddress: false,
townName: ''
}
]);
const text = ref('\u8BF7\u9009\u62E9\u5730\u5740')
const showCustomImg = () => {
showPopupCustomImg.value = true;
};
const close = val => {
if (val.type == 'exist') {
const {provinceName,cityName,countyName,townName,addressDetail} = val.data
text.value = provinceName + cityName + countyName + townName + addressDetail;
} else {
text.value = val.data.addressStr;
}
};
const selected = (prevExistAdd, nowExistAdd, arr) => {
console.log(prevExistAdd);
console.log(nowExistAdd);
};
return { showPopupCustomImg, existAddress, text, showCustomImg, close, selected, ...toRefs(icon) };
}
\u81EA\u5B9A\u4E49\u5730\u5740\u4E0E\u5DF2\u6709\u5730\u5740\u5207\u6362
<nut-cell title="\u9009\u62E9\u5730\u5740" :desc="text" is-link @click="showAddressOther"></nut-cell>
<nut-address
v-model:visible="showPopupOther"
type="exist"
:exist-address="existAddress"
:province="province"
:city="city"
:country="country"
:town="town"
:back-btn-icon="backBtnIcon"
@close="close"
@selected="selected"
custom-and-exist-title="\u9009\u62E9\u5176\u4ED6\u5730\u5740"
@switch-module="switchModule"
@close-mask="closeMask"
></nut-address>
setup() {
const showPopupOther = ref(false);
const address = reactive({
province:[
{ id: 1, name: '\u5317\u4EAC' },
{ id: 2, name: '\u5E7F\u897F' },
{ id: 3, name: '\u6C5F\u897F' },
{ id: 4, name: '\u56DB\u5DDD' }
],
city:[
{ id: 7, name: '\u671D\u9633\u533A' },
{ id: 8, name: '\u5D07\u6587\u533A' },
{ id: 9, name: '\u660C\u5E73\u533A' },
{ id: 6, name: '\u77F3\u666F\u5C71\u533A' }
],
country:[
{ id: 3, name: '\u516B\u91CC\u5E84\u8857\u9053' },
{ id: 9, name: '\u5317\u82D1' },
{ id: 4, name: '\u5E38\u8425\u4E61' }
],
town:[]
})
const existAddress = ref([
{
id: 1,
addressDetail: 'th ',
cityName: '\u77F3\u666F\u5C71\u533A',
countyName: '\u57CE\u533A',
provinceName: '\u5317\u4EAC',
selectedAddress: true,
townName: ''
},
{
id: 2,
addressDetail: '12_ ',
cityName: '\u7535\u996D\u9505',
countyName: '\u6276\u7EE5\u53BF',
provinceName: '\u5317\u4EAC',
selectedAddress: false,
townName: ''
},
{
id: 3,
addressDetail: '\u53D1\u5927\u6C34\u6BD4 ',
cityName: '\u653E\u5230',
countyName: '\u5E7F\u5B81\u8857\u9053',
provinceName: '\u9493\u9C7C\u5C9B\u5168\u533A',
selectedAddress: false,
townName: ''
},
{
id: 4,
addressDetail: '\u8FD8\u662F\u60F3\u5427\u767E\u5EA6\u5427 ',
cityName: '\u7814\u53D1',
countyName: '\u516B\u91CC\u5E84\u8857\u9053',
provinceName: '\u5317\u4EAC',
selectedAddress: false,
townName: ''
}
]);
const backBtnIcon = ref('left')
const text = ref('\u8BF7\u9009\u62E9\u5730\u5740')
const showAddressOther = () => {
showPopupOther.value = true;
};
const close = val => {
if (val.type == 'exist') {
const {provinceName,cityName,countyName,townName,addressDetail} = val.data
text.value = provinceName + cityName + countyName + townName + addressDetail;
} else {
text.value = val.data.addressStr;
}
};
const selected = (prevExistAdd, nowExistAdd, arr) => {
console.log(prevExistAdd);
console.log(nowExistAdd);
};
const switchModule = cal => {
if (cal.type == 'custom') {
console.log('\u70B9\u51FB\u4E86\u201C\u9009\u62E9\u5176\u4ED6\u5730\u5740\u201D\u6309\u94AE');
} else {
console.log('\u70B9\u51FB\u4E86\u81EA\u5B9A\u4E49\u5730\u5740\u5DE6\u4E0A\u89D2\u7684\u8FD4\u56DE\u6309\u94AE');
}
};
const closeMask = val => {
console.log('\u5173\u95ED\u5F39\u5C42', val);
};
return { showPopupOther, text, showAddressOther, switchModule, closeMask, close, selected, backBtnIcon, ...toRefs(address) };
}
API
| \u5B57\u6BB5 | \u8BF4\u660E | \u7C7B\u578B | \u9ED8\u8BA4\u503C |
|---|
| v-model:visible | \u662F\u5426\u6253\u5F00\u5730\u5740\u9009\u62E9 | String | \u2018\u2019 |
| type | \u5730\u5740\u9009\u62E9\u7C7B\u578B exist/custom/custom2 | String | \u2018custom\u2019 |
| province | \u7701\uFF0C\u6BCF\u4E2A\u7701\u7684\u5BF9\u8C61\u4E2D\uFF0C\u5FC5\u987B\u6709 name \u5B57\u6BB5\uFF0C\u5982\u679C\u7C7B\u578B\u9009\u62E9 custom2\uFF0C\u5FC5\u987B\u6307\u5B9A title \u5B57\u6BB5\u4E3A\u9996\u5B57\u6BCD | Array | [] |
| city | \u5E02\uFF0C\u6BCF\u4E2A\u5E02\u7684\u5BF9\u8C61\u4E2D\uFF0C\u5FC5\u987B\u6709 name \u5B57\u6BB5\uFF0C\u5982\u679C\u7C7B\u578B\u9009\u62E9 custom2\uFF0C\u5FC5\u987B\u6307\u5B9A title \u5B57\u6BB5\u4E3A\u9996\u5B57\u6BCD | Array | [] |
| country | \u53BF\uFF0C\u6BCF\u4E2A\u53BF\u7684\u5BF9\u8C61\u4E2D\uFF0C\u5FC5\u987B\u6709 name \u5B57\u6BB5\uFF0C\u5982\u679C\u7C7B\u578B\u9009\u62E9 custom2\uFF0C\u5FC5\u987B\u6307\u5B9A title \u5B57\u6BB5\u4E3A\u9996\u5B57\u6BCD | Array | [] |
| town | \u4E61/\u9547\uFF0C\u6BCF\u4E2A\u4E61/\u9547\u7684\u5BF9\u8C61\u4E2D\uFF0C\u5FC5\u987B\u6709 name \u5B57\u6BB5\uFF0C\u5982\u679C\u7C7B\u578B\u9009\u62E9 custom2\uFF0C\u5FC5\u987B\u6307\u5B9A title \u5B57\u6BB5\u4E3A\u9996\u5B57\u6BCD | Array | [] |
| height | \u5F39\u5C42\u4E2D\u5185\u5BB9\u5BB9\u5668\u7684\u9AD8\u5EA6\uFF0C\u4EC5\u5728type="custom2"\u65F6\u6709\u6548 | String\u3001Number | \u2018200px\u2019 |
| exist-address | \u5DF2\u5B58\u5728\u5730\u5740\u5217\u8868\uFF0C\u6BCF\u4E2A\u5730\u5740\u5BF9\u8C61\u4E2D\uFF0C\u5FC5\u4F20\u503CprovinceName\u3001cityName\u3001countyName\u3001townName\u3001addressDetail\u3001selectedAddress\uFF08\u5B57\u6BB5\u89E3\u91CA\u89C1\u4E0B\uFF09 | Array | [] |
| default-icon | \u5DF2\u6709\u5730\u5740\u5217\u8868\u9ED8\u8BA4\u56FE\u6807\uFF0Ctype=\u2018exist\u2019 \u65F6\u751F\u6548 | String | \u2018\u2019 |
| selected-icon | \u5DF2\u6709\u5730\u5740\u5217\u8868\u9009\u4E2D\u56FE\u6807\uFF0Ctype=\u2018exist\u2019 \u65F6\u751F\u6548 | String | \u2018\u2019 |
| close-btn-icon | \u81EA\u5B9A\u4E49\u5173\u95ED\u5F39\u6846\u6309\u94AE\u56FE\u6807 | string | - |
| back-btn-icon | \u81EA\u5B9A\u4E49\u5730\u5740\u4E0E\u5DF2\u6709\u5730\u5740\u5207\u6362\u65F6\uFF0C\u81EA\u5B9A\u4E49\u8FD4\u56DE\u7684\u6309\u94AE\u56FE\u6807 | String | - |
| is-show-custom-address | \u662F\u5426\u53EF\u4EE5\u5207\u6362\u81EA\u5B9A\u4E49\u5730\u5740\u9009\u62E9\uFF0Ctype=\u2018exist\u2019 \u65F6\u751F\u6548 | Boolean | true |
| custom-address-title | \u81EA\u5B9A\u4E49\u5730\u5740\u9009\u62E9\u6587\u6848\uFF0Ctype=\u2018custom\u2019 \u65F6\u751F\u6548 | String | \u2018\u8BF7\u9009\u62E9\u6240\u5728\u5730\u533A\u2019 |
| exist-address-title | \u5DF2\u6709\u5730\u5740\u6587\u6848 \uFF0Ctype=\u2018exist\u2019 \u65F6\u751F\u6548 | String | \u2018\u914D\u9001\u81F3\u2019 |
| custom-and-exist-title | \u81EA\u5B9A\u4E49\u5730\u5740\u4E0E\u5DF2\u6709\u5730\u5740\u5207\u6362\u6309\u94AE\u6587\u6848 \uFF0Ctype=\u2018exist\u2019 \u65F6\u751F\u6548 | String | \u2018\u9009\u62E9\u5176\u4ED6\u5730\u5740\u2019 |
- provinceName \u7701\u7684\u540D\u5B57
- cityName \u5E02\u7684\u540D\u5B57
- countyName \u53BF\u7684\u540D\u5B57
- townName \u4E61/\u9547\u7684\u540D\u5B57
- addressDetail \u5177\u4F53\u5730\u5740
- selectedAddress \u5B57\u6BB5\u7528\u4E8E\u5224\u65AD\u5F53\u524D\u5730\u5740\u5217\u8868\u7684\u9009\u4E2D\u9879\u3002
Event
| \u5B57\u6BB5 | \u8BF4\u660E | \u56DE\u8C03\u53C2\u6570 |
|---|
| change | \u81EA\u5B9A\u4E49\u9009\u62E9\u5730\u5740\u65F6\uFF0C\u9009\u62E9\u5730\u533A\u65F6\u89E6\u53D1 | \u53C2\u8003 onChange |
| selected | \u9009\u62E9\u5DF2\u6709\u5730\u5740\u5217\u8868\u65F6\u89E6\u53D1 | \u53C2\u8003 selected |
| close | \u5730\u5740\u9009\u62E9\u5F39\u6846\u5173\u95ED\u65F6\u89E6\u53D1 | \u53C2\u8003 close |
| close-mask | \u70B9\u51FB\u906E\u7F69\u5C42\u6216\u70B9\u51FB\u53F3\u4E0A\u89D2\u53C9\u53F7\u5173\u95ED\u65F6\u89E6\u53D1 | {closeWay:\u2018mask\u2019/\u2018cross\u2019} |
| switch-module | \u70B9\u51FB\u2018\u9009\u62E9\u5176\u4ED6\u5730\u5740\u2019\u6216\u81EA\u5B9A\u4E49\u5730\u5740\u9009\u62E9\u5DE6\u4E0A\u89D2\u8FD4\u56DE\u6309\u94AE\u89E6\u53D1 | {type:\u2018exist\u2019/\u2018custom\u2019/\u2018custom2\u2019} |
change \u56DE\u8C03\u53C2\u6570
| \u53C2\u6570 | \u8BF4\u660E | \u53EF\u80FD\u503C |
|---|
| custom | \u5F53\u524D\u70B9\u51FB\u7684\u884C\u653F\u533A\u57DF | province(\u7701) / city(\u5E02) / country(\u53BF) / town(\u4E61) |
| next | \u5F53\u524D\u70B9\u51FB\u7684\u884C\u653F\u533A\u57DF\u7684\u4E0B\u4E00\u7EA7 | province(\u7701) / city(\u5E02) / country(\u53BF) / town(\u4E61) |
| value | \u5F53\u524D\u70B9\u51FB\u7684\u884C\u653F\u533A\u57DF\u7684\u503C\uFF08\u8FD4\u56DE\u4F20\u5165\u7684\u503C\uFF09 | {} |
selected \u56DE\u8C03\u53C2\u6570
| \u53C2\u6570 | \u8BF4\u660E | \u53EF\u80FD\u503C |
|---|
| \u7B2C\u4E00\u4E2A\u53C2\u6570\uFF08prevExistAdd\uFF09 | \u9009\u62E9\u524D\u9009\u4E2D\u7684\u5730\u5740 | {} |
| \u7B2C\u4E8C\u4E2A\u53C2\u6570\uFF08nowExistAdd\uFF09 | \u5F53\u524D\u9009\u4E2D\u7684\u5730\u5740 | {} |
| \u7B2C\u4E09\u4E2A\u53C2\u6570\uFF08arr\uFF09 | \u9009\u62E9\u5B8C\u4E4B\u540E\u7684\u5DF2\u6709\u5730\u5740\u5217\u8868\uFF08selectedAddress \u503C\u53D1\u751F\u6539\u53D8\uFF09 | {} |
close \u56DE\u8C03\u53C2\u6570
| \u53C2\u6570 | \u8BF4\u660E | \u53EF\u80FD\u503C |
|---|
| type | \u5730\u5740\u9009\u62E9\u7C7B\u578B exist/custom/custom2 | exist/custom/custom2 |
| data | \u9009\u62E9\u5730\u5740\u7684\u503C,custom \u65F6\uFF0CaddressStr \u4E3A\u9009\u62E9\u7684\u5730\u5740\u7EC4\u5408 | {} |
`,32),c=[p],o={setup(e,{expose:s}){return s({frontmatter:{}}),(h,j)=>(n(),a("div",l,c))}};export{o as default};