<template>
<view id="address-list">
	<lf-nav title="地址管理" :showIcon="true" bgColor="#fff"></lf-nav>
    <view class="list-box">
        <view class="list-item" 
			:data-info="JSON.stringify(item)" 
			:data-id="item.id" 
			v-for="(item, index) in list" 
			:key="index"
			@click="selectAddress(item.id)">
            <!-- <view class="user">
                <view class="name">
                    <text>{{item.accept_name}}</text>
                    <text class="phone">{{item.mobile}}</text>
                </view>
                <view class="default" v-if="item.is_default">
                    默认
                </view>
            </view>
            <view class="address">{{item.address_name}} {{item.address}}</view> -->
			
			<view class="lf-font-28 user-item">
				<text class="lf-color-black lf-font-bold">{{item.accept_name}}</text>
				<text class="lf-color-777 lf-m-l-20">{{item.mobile}}</text>
			</view>
			<view class="address-item lf-line-2">
				<text>{{item.address_name}}</text>
				<text>{{item.address}}</text>
			</view>
			<view class="menu-item lf-row-between lf-m-t-30">
				<view class="lf-row-center">
					<radio-group @change="radioChange">
						<radio :checked="item.is_default" :value="index"></radio>
					</radio-group>
					<text class="lf-m-l-15 lf-font-24 lf-color-777">默认地址</text>
				</view>
				<view class="lf-row-between">
					<view @tap="setInfo(item)">
						<text class="lf-iconfont icon-bianji"></text>
						<text class="lf-m-l-10">编辑</text>
					</view>
					<view class="lf-m-l-50 lf-color-red" @click="deleteAddress(item, index)">
						<text class="lf-iconfont icon-shanchu"></text>
						<text class="lf-m-l-10">删除</text>
					</view>
				</view>
			</view>
        </view>
		<lf-nocontent src="/static/images/empty.png" text="您还未添加地址" v-if="list.length <= 0 && !is_load"></lf-nocontent>
    </view>
	<view style="height: 230rpx;"></view>
	<view class="add-address" @tap="add">
	    <view class="small-btn">
	    	<text class="lf-iconfont icon-jia"></text>
	    	<text class="lf-m-l-10">新增收货地址</text>
	    </view>
	</view>
</view>

</template>
<script>
import {pageLogin, getUrl,config,is} from '@/common/js/utils.js';

export default {
  data() {
    return {
      list: [],
      order_no: '',
      url: '',
	  id:'',
	  is_load: true,
	  is_select: false
    };
  },

  onShow() {
    this.queryAddressList(); // let app =getApp(); 暂时注释
	
    // app.isBirthday().then(()=>{
    //     if(this.$cookieStorage.get("birthday_gift")){
    //         var giftData=this.$cookieStorage.get("birthday_gift").data;
    //         new app.ToastPannel().__page.showText(giftData);
    //     }
    // });
  },

  onLoad(e) {
    pageLogin(getUrl());
	
	this.is_select = Boolean(Number(e.is_select));
	
    this.setData({
      order_no: e.order_no,
      url: e.url
    });
  },

  components: {},
  props: {},
  methods: {
	  // 删除收货地址
	  deleteAddress(item, index){
		  console.log("item", item)
		  
		  uni.showModal({
		  	title: '温馨提示',
			content: '您确定删除该收货地址吗？',
			success: result => {
				if(result.confirm){
					var token = this.$cookieStorage.get('user_token');
					this.$http.ajax({
					  api: '/api/address/'+ item.id,
					  method: 'DELETE',
					  header: {
						Authorization: token
					  }
					}).then(res => {
					  console.log("删除地址", res);
					  this.$msg('删除成功', {icon: 'success'});
					  this.list.splice(index, 1);
					}).catch(err => {
					  this.$msg('删除失败', {icon: 'error'});
					})
				}
			}
		  })
	  },
	  // 切换默认地址
	  radioChange(e){
		  uni.showLoading({
		  	title: '切换默认地址中'
		  })
		  let current = e.target.value;
		  let id = null;
		  this.list.forEach((item, index) => {
			  if(current == index){
				  item.is_default = 1;
				  id = item.id;
			  }else{
				  item.is_default = 0;
			  }
		  })
		  this.switchDefaultAddress(id);
	  },
	  // 选择地址
	  selectAddress(id){
		  if(this.is_select){
			  let pages = getCurrentPages();
			  let prePage = pages[pages.length - 2];
			  prePage.$vm.address_id = id;
			  this.$toBack();
		  }
	  },
	  switchDefaultAddress(id){
		  var token = this.$cookieStorage.get('user_token');
		  this.$http.ajax({
		    api: 'api/address/'+ id,
		    method: 'PUT',
		    header: {
		      Authorization: token
		    },
		    data: {
				is_default: 1
			}
		  }).then(res => {
			  uni.hideLoading();
			  this.$msg('操作成功', {icon: 'success'});
		  }).catch(err => {
			   uni.hideLoading();
			  this.$msg('切换默认地址失败');
		  })
	  },
    setInfo(e) {
      // var from = e.currentTarget.dataset.info;
	  var from = e;
      var data = this.$cookieStorage.get('order_form');
	  // var from=JSON.parse(from);
	 
      if (!data) {
        return this.view(from.id);
      }

      var order_no = this.order_no;

      if (order_no && data.order_no === order_no) {
        data.address = from;
        this.$cookieStorage.set('order_form', data);
        wx.navigateBack({
          url: '/' + this.url
        });
      } else {
        return this.view(from.id);
      }
    },

    view(id) {
      wx.navigateTo({
        url: '/pages/address/add/add?id=' + id
      });
    },

    add() {
      wx.navigateTo({
        url: '/pages/address/add/add'
      });
    },

    // 查询收货地址列表
    queryAddressList() {
		this.is_load = true;
      var token = this.$cookieStorage.get('user_token');
      this.$http.get({
        api: 'api/address',
        header: {
          Authorization: token
        }
      }).then(res => {
        if (res.statusCode == 200) {
          res = res.data;
		
          if (res.status) {
            this.setData({
              list: res.data
            });
          } else {
            wx.showToast({
              title: res.message,
              icon: 'error'
            });
          }
        } else {
          wx.showToast({
            title: '获取信息失败',
            icon: 'error'
          });
        }
		this.is_load = false;
      }).catch(err => {
		  this.is_load = false;
	  })
    },

    setData: function (obj) {
      let that = this;
      let keys = [];
      let val, data;
      Object.keys(obj).forEach(function (key) {
        keys = key.split('.');
        val = obj[key];
        data = that.$data;
        keys.forEach(function (key2, index) {
          if (index + 1 == keys.length) {
            that.$set(data, key2, val);
          } else {
            if (!data[key2]) {
              that.$set(data, key2, {});
            }
          }

          data = data[key2];
        });
      });
    }
  },
  computed: {},
  watch: {}
};
</script>

<style>
	page{
		background-color: #F8F8F8;
	}
</style>
<style rel="stylesheet/less" lang="less">
    @import "list";
	.lf-color-red{
		color: red;
	}
	.user-item, .menu-item{
		height: 50rpx;
		width: 100%;
	}
	.address-item{
		width: 100%;
		margin-top: 10rpx;
		font-size: 28rpx;
		color: #333333;
	}
</style>
