投票前端全部逻辑

let form_lock = false;
function layer_msg(msg,time = 2) {
    layer.open({
        content: msg
        , skin: 'msg'
        , time: time //2秒后自动关闭
    });
}


// 查看排行榜
$(".vote-rank").on('click', function () {
    var id = $('#vote_id').val();
    window.location.href = '/wx.php/Index/rank?id=' + id;
});

// 查看事迹
$(".view-btn").on('click', function () {
    var id = $(this).data('id');
    window.location.href = '/wx.php/Index/detail?option_id=' + id;
    return false; // 不触发父div点击事件
});

// 发起投票
$(".vote-btn").on('click', function () {
    var vote_id = $('#vote_id').val();
    var openid = $('#openid').val();
    // 获取勾选的候选人id
    var select_count = $('.select').length;
    if (select_count == 0) {
        layer_msg('请勾选候选者');
        return false;
    }

    var vote_option_ids = '';
    $(".select").each(function (index) {
        if (vote_option_ids == '') {
            vote_option_ids += ',' + $(this).data('id') + ',';
        } else {
            vote_option_ids += $(this).data('id') + ',';
        }
    });

    if (form_lock) {
        // 请勿重复提交
        layer_msg('请勿重复提交');
        return false;
    } else {
        // 上锁
        form_lock = true;
        $.ajax({
            type:'POST',
            url: '/wx.php/Index/ajaxVoteData',
            data: {
                vote_id:vote_id,
                openid:openid,
                vote_option_ids:vote_option_ids
            },
            dataType: 'json',
            timeout: 3000,
            async: true, //所有请求均为异步。如果需要发送同步请求
            cache: false, //浏览器是否应该被允许缓存GET响应。
            context: $('body'),
            success: function (res) {
                // form_lock = false;
                if (res.errno == 0) {
                    layer_msg('投票成功');
                    setTimeout(function(){
                        window.location.reload();
                    }, 2000);
                } else {
                    layer_msg(res.errdesc);
                }
            },
            error: function () {
                form_lock = false;
                layer_msg('请求失败,请重试');
            }
        })
    }
});

// 勾选候选人
$(".option-item").on('click', function () {
    var can_vote = $('#can_vote').val();
    if (can_vote == 0) {
        return false;
    }

    // 获取已勾选的候选人数量
    var person_count = $('#person_count').val();
    var select_count = $('.select').length;

    if ($(this).hasClass('select')) {
        $(this).removeClass('select');
    } else {
        if (person_count == 1) {
            $('.select').removeClass('select');
        } else {
            if (select_count >= person_count) {
                layer_msg('每次投票最多投' + person_count + '人');
                return false;
            }
        }
        $(this).addClass('select');
    }
});
posted @ 2020-08-28 18:09  TBHacker  阅读(276)  评论(0编辑  收藏  举报