address.page.js 3.34 KB
/**
 * [个人中心]收货地址
 * @author: jiangmin
 * @date: 2016/07/05
 */


var cascadingAddress = require('../plugins/cascading-address');
var dialog = require('../plugins/dialog');
var _confirm = dialog.Confirm;
var $consignee = $('#consignee');
var $addressDetail = $('#addressDetail');
var $mobile = $('#mobile');
var $phone = $('#phone');

require('./me');

// 设置收货地址
$('.default-address').click(function () {
    if ($(this).hasClass('checked')) {
        $(this).removeClass('checked');
        $(this).html('');
    } else {
        $(this).addClass('checked');
        $(this).html('');
    }
});

// 校验
$consignee.keydown(function () {
    $(this).next().hide();
});
$consignee.blur(function () {
    if ($(this).val().trim() === '') {
        $(this).next().show();
    }
});
$addressDetail.keydown(function () {
    $(this).next().hide();
});
$addressDetail.blur(function () {
    if ($(this).val().trim() === '') {
        $(this).next().show();
    }
});
$mobile.keydown(function () {
    $(this).next().hide();
});
$mobile.blur(function () {
    if ($(this).val().trim() === '') {
        $(this).next().show();
    } else {
        let reg = new RegExp(/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/);

        if (!reg.test(($(this).val().trim()))) {
            $(this).next().show();
            $(this).next().html('手机号码格式不正确');
        }
    }
});

// 保存收货地址
$('#save-address').click(function () {
    if ($consignee.val().trim() === '') {
        alert('name不能为空');
    } else {
        $.ajax({
            type: 'POST',
            url: '/me/address/add',
            dataType: 'json',
            data: {// 保存数据
                // todo uid
                uid: '123456',
                consignee: $consignee.val(),

                // todo 城市编码
                area_code: '123',
                address: $addressDetail.val(),
                mobile: $mobile.val(),
                phone: $phone.val()
            },
            success: function () { // 刷新下面列表数据

            }
        });
    }

});

// 修改收货地址

// 删除收货地址
$('.del-address').click(function () {
    let id = $(this).data('id');

    new _confirm({
        content: '您确定要删除收货地址吗?',
        cb: function () {
            $.ajax({
                type: 'POST',
                url: '/me/address/del',
                dataType: 'json',
                data: {
                    // todo uid
                    uid: '123456',
                    id: id
                },
                success: function () { // 刷新下面列表数据

                }
            });
        }
    }).show();
});

// 设置默认收货地址
$('.set-default').click(function () {
    let id = $(this).data('id');

    $.ajax({
        type: 'POST',
        url: '/me/address/default',
        dataType: 'json',
        data: {// 保存数据
            // todo uid
            uid: '123456',
            id: id
        },
        success: function () { // 刷新下面列表数据

        }
    });
});

$(function () {
    // 运行此demo
    // 1. 安装 npm i -g json-server
    // 2. json-server --watch mock/address.json
    cascadingAddress({
        el: '#address',
        url: 'http://localhost:3000/areas/0',
        resource: 'areas'
    });
});