1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| <template>
| <div>
| <van-popup v-model:show="showDizhi" position="bottom" :style="{ height: '100%' }">
| <van-nav-bar
| title="收货地址管理"
| left-text="返回"
| left-arrow
| @click-left="onClickLeft"
| />
| <van-address-list
| v-model="chosenAddressId"
| :list="list"
| default-tag-text="默认"
| @add="onAdd"
| @edit="onEdit"
| />
| </van-popup>
| <van-popup v-model:show="editDizhi" position="bottom" :style="{ height: '100%' }">
| <van-nav-bar
| title="编辑地址"
| left-text="返回"
| left-arrow
| @click-left="onClickLeft2"
| />
| <van-address-edit
| ref="addressEditRef"
| :area-list="areaList"
| show-delete
| show-set-default
| show-search-result
| :address-info="addressInfo"
| :area-columns-placeholder="['请选择', '请选择', '请选择']"
| @save="onSave"
| @delete="onDelete"
| />
| </van-popup>
| </div>
| </template>
| <script setup lang="ts">
|
| import { Toast } from 'vant';
| import { ref } from 'vue';
| import { areaList } from '@vant/area-data';
| import type { AddressEditInstance } from 'vant';
| name:"dizhibianji"
| const emit = defineEmits(['fanhuiFun'])
| const showDizhi=ref(false)
| const editDizhi=ref(false)
| const addressEditRef = ref<AddressEditInstance>();
| const chosenAddressId = ref('1')
| const addressInfo=ref({
| name:'',
| tel:'',
| province:'',
| city:"",
| county:'',
| addressDetail:'',
| isDefault:false
| })
| const list =[
| {
| id: '1',
| name: '张三',
| tel: '13000000000',
| address: '浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室',
| isDefault: true,
| },
| {
| id: '2',
| name: '李四',
| tel: '1310000000',
| address: '浙江省杭州市拱墅区莫干山路 50 号',
| },
| ]
| const openShow=()=>{
| showDizhi.value=true
| }
| const onClickLeft=()=>{
| showDizhi.value=false
| }
| const onClickLeft2=()=>{
| addressEditRef.value?.setAddressDetail('3434343');
| editDizhi.value=false
| }
| const onAdd = () =>{
| editDizhi.value=true
| addressInfo.value={
| name:'',
| tel:'17717874345',
| province:'',
| city:"",
| county:'',
| addressDetail:'',
| isDefault:false
| }
| }
| const onEdit = (item:any, index:number) =>{
| console.log(item)
| addressInfo.value={
| name:item.name,
| tel:item.tel,
| province:'',
| city:"",
| county:'',
| addressDetail:item.address,
| isDefault:item.isDefault
| }
| editDizhi.value=true
| }
| const onSave = (form:any) => {
| Toast('save');
| console.log(form)
|
| }
| const onDelete = () => Toast('delete');
| defineExpose({
| openShow
| } )
| </script>
|
|