自学实前后端践项目2 phone Store 2

前端的页面以及路由配置

1.创建views文件夹存放vue文件

1)addressEdit.vue文件

<template>
    <van-address-edit
            :area-list="areaList"
            show-delete
            :address-info="addressInfo"
            save-button-text="修改"
            @save="onSave"
            @delete="onDelete"
    />
</template>

<script>
    import AreaList from '../api/area';
    import { Toast } from 'vant';
    export default {
        name: "AddressEdit",
        created(){
            let data = JSON.parse(this.$route.query.item)
            this.addressInfo = data
            let index = data.address.indexOf('区')
            if(index < 0) index = data.address.indexOf('县')
            this.addressInfo.addressDetail = data.address.substring(index+1)
        },
        data() {
            return {
                areaList: AreaList,
                addressInfo: null
            }
        },
        methods: {
            onSave(item) {
                let instance = Toast('修改成功');
                setTimeout(() => {
                    instance.close()
                    _this.$router.push('/addressList')
                }, 1000)
                const _this = this
                axios.put('http://localhost:8181/address/update',item).then(function (resp) {
                    if(resp.data.code == 0){
                        let instance = Toast('修改成功');
                        setTimeout(() => {
                            instance.close()
                            _this.$router.push('/addressList')
                        }, 1000)
                    }
                })

            },
            onDelete() {
                history.go(-1)
            }
        }
    }
</script>

<style scoped>

</style>

 

2)AddressList.vue文

<template>
    <div>
        <van-address-list
                v-model="chosenAddressId"
                :list="list"
                default-tag-text="默认"
                @add="onAdd"
                @edit="onEdit"
                @select="onselect"
        />
    </div>
</template>

<script>
    import { Toast } from 'vant';
    export default {
        data() {
            return {
                chosenAddressId: 0,
                list:'',   
//没有连接后端的时候可以使用下面的假数据进行测试
          
   // list: [
                //     {
                //         id: '1',
                //         name: '张三',
                //         tel: '13000000000',
                //         address: '浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室',
                //         isDefault: true,
                //         areaCode:130105,
                //     },
                //     {
                //         id: '2',
                //         name: '李四',
                //         tel: '1310000000',
                //         address: '浙江省杭州市拱墅区莫干山路 50 号',
                //         areaCode:130105,
                //     },
                // ],
                disabledList: [
                    {
                        id: '3',
                        name: '王五',
                        tel: '1320000000',
                        address: '浙江省杭州市滨江区江南大道 15 号',
                        areaCode:130105,
                    },
                ],
            }
        },
        created(){
            const _this = this
            axios.get('http://localhost:8181/address/list').then(function (resp) {
                _this.list = resp.data.data
            })
        },
        methods: {
            onAdd() {
                this.$router.push('/addressNew')
            },
            onEdit(item) {
                let data = JSON.stringify(item)
                this.$router.push({path:'/addressEdit',query:{item:data}})
            },
            onselect(item){
                let instance = Toast('下单成功');
                setTimeout(() => {
                    instance.close();
                    this.$router.push('detail')
                }, 1000)
                let orderForm = {
                    name: item.name,
                    tel: item.tel,
                    address: item.address,
                    specsId: this.$store.state.specsId,
                    quantity: this.$store.state.quantity
                }

                const _this = this
                axios.post('http://localhost:8181/order/create',orderForm).then(function (resp) {
                    if(resp.data.code == 0){
                        let instance = Toast('下单成功');
                        setTimeout(() => {
                            instance.close();
                            _this.$router.push('/detail?orderId='+resp.data.data.orderId)
                        }, 1000)
                    }
                })
            }
        }
    }
</script>

3)AddressNew.vue地址新增页面

<template>
    <van-address-edit
            :area-list="areaList"
            show-delete
            @save="onSave"
            @delete="onDelete"
    />
</template>

<script>
    import AreaList from '../api/area';
    impor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值