yohoCoin.js 12.3 KB
//yoho币
'use strict';
var $ = require('jquery'),
    common=require('../common/common');

var pricePercent = 0.2;  //yoho币审核比例线
var loadModal = null;
var importYohoCoinData = null;
var isNeedAudit = false;
var ENUM = {
    gender: {
        1: '男',
        2: '女',
        3: '通用'
    },
    status: {
        0: '未设置',
        1: '<b style="color:#428bca">待审核</b>',
        2: '<b style="color:#5cb85c">通过</b>',
        3: '<b style="color:#ff0000">驳回</b>'
    },
    auditor: {
        2965: 'Tracy',
        10235: 'David Wong'
    }
}

new common.dropDown({
    el: '#shop',
    ajax: 'shopsRest'
});
new common.dropDown({
    el: '#brand',
    ajax: 'brand'
});
new common.dropDown({
    el: '#supplier',
    ajax: 'querySupplier'
});

//多级菜单
var tabTree = new common.tabTree("#sortTree", {status: 1, sortLevel: 1});
tabTree.init();

//grid列表生成
var g = new common.grid({
    el: "#yohoCoin_table",
    parms: function() {
        var select = tabTree.getAddress();
        return {
            productSkn: common.util.__input("skn"),
            shopId: common.util.__input("shop"),
            brandId: common.util.__input("brand"),
            supplierId: common.util.__input("supplier"),
            gender: common.util.__input("gender"),
            auditStatus: common.util.__input("auditStatus"),
            maxSortId: select[0] ? select[0].id : "",
            middleSortId: select[1] ? select[1].id : "",
            smallSortId: select[2] ? select[2].id : "",
            sortId: select[3] ? select[3].id : ""
        };
    },
    columns: [
        {display: '', type: 'checkbox'},
        {display: '', render: function(item){
            var html = "";
            if(item.__index == 0){
                $("#yohoCoin_table").find("thead tr th").eq(1).html($("#coinListHead").html());
            }
            item.genderName = ENUM.gender[item.gender];
            item.statusName = ENUM.status[item.productPrice.coinStatus];
            if(item.productPrice.auditorId){item.auditorName = ENUM.auditor[item.productPrice.auditorId];}
            if(item.productPrice.auditDt){item.updateTime = getTime(item.productPrice.auditDt);}

            html += common.util.__template2($("#coinList").html(),item);
            return html;
        }
    }]
});
g.init($("#gridurl").val());

//批量上传
ajaxUpload();

/**********************接口*************************/

//保存接口
function ajaxSave(productSkn, yohoCoin, auditorId, salesPrice){
    common.util.__ajax({
        url:'/good/yohoCoin/set',
        data: {
            "productSkn": productSkn,
            "returnCoin": yohoCoin,
            "salesPrice": salesPrice,
            "auditorId": auditorId
        }
    },function(rs){
        freshYohoCoinRowData(rs.data, yohoCoin);
    });
}

//批量导入接口
function ajaxUpload(){
    common.edit.ajaxfileupload('#yohoCoinUpload',{
        params: {
            type: "yohoCoin",
            __type: "batch-import"
        },
        onStart: function() {
            loadModal = common.dialog.load();
            clearImportResult();
        },
        onComplete: function(response) {
            console.log("批量接口返回数据",response);
            if (response.code == 200 && response.data.successList) {
                loadingClose();
                showImportMessage("批量导入成功!", "success");
                common.util.__tip("批量导入成功!", 'success');
                //显示导入列表数据
                showImportTable(response.data);
                return true;
            }
            else if(response.code == 200 && response.data.failFileReason){
                loadingClose();
                showImportMessage(response.data.failFileReason.join('<br/>'), "error");
                common.util.__tip("上传出错!具体请看批量上传结果。", 'warning');
                return false;
            }
            else{
                loadingClose();
                showImportMessage(response.message, "error");
                common.util.__tip(response.message);
            }
        }
    });
}

//批量上传确认
function ajaxUploadSubmit(importAuditorId){
    common.util.__ajax({
        url:'/good/yohoCoin/insertBatch',
        data: {
            auditorId: importAuditorId,
            productPrices: JSON.stringify(importYohoCoinData)
        }
    },function(rs){
        if(rs.code == 200){
            common.util.__tip("批量导入保存成功!", "success");
            setTimeout(function() {
                location.href = '';
            }, 1000);
        }else{
            common.util.__tip(rs.data.message);
        }
    },true);
}

/**********************业务方法*************************/

//显示批量导入结果
function showImportMessage(message, statue){
    $("#yohoCoinImportMessage").removeAttr("class").addClass(statue).show();
    $("#detailMassage").html(message);
}

//显示批量导入数据表
function showImportTable(data){
    importYohoCoinData = data.successList;
    isNeedAudit = data.isNeedAudit;

    $("#importResultTable").html(common.util.__template2($("#yohoCoinImportResultTable").html(),data));
    $("#yohoCoinImportResultSet").show();
    $("#yohoCoinImportResult").show();
}

//初始化批量导入结果及列表
function clearImportResult(){
    $("#detailMassage").empty();
    $("#importResultTable").empty();
    $("#importAuditor").val("");

    $("#yohoCoinImportMessage").hide();
    $("#yohoCoinImportResultSet").hide();
    $("#yohoCoinImportResult").hide();
}

//批量导入确认—校验审核人
function isNeedImportAuditor(){
    $.each(importYohoCoinData, function(index,value){
        if(value.isNeedAudit || value.salesPrice * pricePercent <= value.needAuditCoin) return true;
    });
    return false;
}

//吊牌价跟销售价校验
function checkPrice(retailPrice, salesPrice){
    if(retailPrice == salesPrice){
        return true;
    }else{
        common.util.__tip("销售价与吊牌价不同,YOHO币只能为0!");
        return false;
    }
}

//yoho币金额校验
function checkYohoCoin(yohoCoin, auditor, price){
    if(yohoCoin.val()){
        if(!isNaN(yohoCoin.val())){
            if(yohoCoin.val() < 0){
                yohoCoin.focus().select().addClass("error");
                common.util.__tip("YOHO币金额不能小于0!");
                return false;
            }
            //yoho币大于等于销售额的20%需要校验审核人
            if(yohoCoin.val() >= (price * pricePercent)){
                return checkAuditor(auditor);
            }
        }else{
            yohoCoin.focus().select().addClass("error");
            common.util.__tip("YOHO币金额必须为数字!");
            return false;
        }
    }else{
        yohoCoin.focus().addClass("error");
        common.util.__tip("YOHO币金额不能为空!");
        return false;
    }
    return true;
}

//审核人校验
function checkAuditor(auditor){
    if(auditor.val() == ""){
        auditor.focus().addClass("error");
        common.util.__tip("审核人不能为空!");
        return false;
    }
    return true;
}

//保存单行数据刷新
function freshYohoCoinRowData(data, needAuditCoin){
    var productSkn = data.productSkn;
    var yohoCoin = data.returnCoin;
    var status = data.coinStatus;
    var founderName = data.founderName;
    var updateTime = getTime(data.auditDt);
    var auditorId = data.auditorId;

    var SknDom = $('._' + productSkn);
    SknDom.find(".returnYohoCoin").text(yohoCoin);
    SknDom.find(".coinStatus").html(ENUM.status[status]);

    var OperatInfoHtml = "<p>操作人:"+ founderName +"</p>";
    if(status == 1 && auditorId) OperatInfoHtml += "<p>审核金额:"+ needAuditCoin +"</p><p>审核人:"+ ENUM.auditor[auditorId] +"</p>";
    OperatInfoHtml += "<div style='color: #999; font-size: 12px'>"+ updateTime + "</div>";
    SknDom.find(".OperatInfo").html(OperatInfoHtml);

    if(status == 1){
        SknDom.find(".operation").empty();
    }else{
        SknDom.find(".operation").html("<button type='button' name='修改' class='btn btn-info btn-sm btn-modify'>修改</button>");
    }
    SknDom.find(".dataForEditor td").hide();
}

//找到以选中的商品的SKN
function findCheckedSknList(){
    var sknList = new Array();
    var checkedItems = $("#yohoCoin_table").find(".wqt_checkbox:checked");
    $.each(checkedItems, function(index,value){
        var skn = $(value).parent().next().find(".dataForShow").data("skn");
        sknList.push(skn);
    });
    return sknList;
}

//关闭loading
function loadingClose(){
    if (loadModal) {
        loadModal.close();
    }
}

//时间转换
function getTime(time){
    var t = new Date(time);
    var formattedTime = common.util.__dateFormat(t, "yyyy-MM-dd hh:mm:ss");
    return formattedTime;
}

/**********************事件*************************/

//批量导入结果列表删除
$(document).on('click', '.btn-delete-yohoCoin', function() {
    var index = $(this).data("index");
    if(importYohoCoinData){
        [].splice.call(importYohoCoinData,index,1);
        $("#importResultTable").html(common.util.__template2($("#yohoCoinImportResultTable").html(),{"successList":importYohoCoinData}));
    }
});

//批量导入结果列表确定
$(document).on('click', '.btn-submit-yohoCoin', function() {
    var importAuditorIdInput = $("#importAuditor");
    if(isNeedImportAuditor()){
        if(!checkAuditor(importAuditorIdInput)){
            return false;
        }
    }
    ajaxUploadSubmit(importAuditorIdInput.val());
});

//保存操作
$(document).on('click', '.btn-save', function() {
    var productSkn = $(this).data('productskn');
    var sknDom = $('._' + productSkn);

    var retailPrice = sknDom.find('.retailPrice').text();  //吊牌价
    var salesPrice = sknDom.find('.salesPrice').text();  //销售价

    if(checkPrice(retailPrice, salesPrice)){
        var yohoCoinInput = sknDom.find('.editor-yohoCoin');
        var auditorInput = sknDom.find('.editor-auditor');

        if(checkYohoCoin(yohoCoinInput, auditorInput, salesPrice)){
            ajaxSave(productSkn, yohoCoinInput.val(), auditorInput.val(), salesPrice);
        }
    }
});

//显示修改
$(document).on('click', '.btn-modify', function() {
    if($(this).hasClass("openEditor")){
        $(this).text($(this).attr("name")).removeClass("openEditor");
        var dataForShow = $(this).parents(".dataForShow");
        dataForShow.find(".dataForEditor td").hide();
        dataForShow.find(".editor-yohoCoin").val(dataForShow.find(".returnYohoCoin").text());
        dataForShow.find(".editor-auditor").val("");
    }else{
        $(this).text("收起").addClass("openEditor");
        $(this).parents(".dataForShow").find(".dataForEditor td").show();
    }
});

//查看驳回理由
$(document).on('click', '.noCheckReason', function() {
    var reason = $(this).data("text");
    common.dialog.confirm("查看驳回理由", reason, function(){}, function(){});
});

//显示批量导入
$(document).on('click', '#import-btn', function() {
    $('#yohoCoin_table').hide();
    $('#yohoCoinSearch').hide();
    $('#yohoCoin_import').show();
});

//导出
$(document).on('click', '#export-btn', function() {
    var exportSknList = findCheckedSknList();
    if(exportSknList.length > 0){
        var exportSknListShow = "";
        for(var i=0; i<exportSknList.length; i++){
            exportSknListShow += "<span style='margin-right: 10px; font-weight: bold; color: #5cb85c; display: inline-block'>"+ exportSknList[i] +"</span>"
        }
        common.dialog.confirm(
            "批量导出确认",
            "<div><p>请确认&nbsp;&nbsp;<b style='color:#428bca'>导出</b>&nbsp;&nbsp;SKN为:</p><p>"+ exportSknListShow +"</p></div>",
            function(){
                window.open("/ajax/down?queryConf=" + exportSknList.join("|") + "&type=yohoCoin");
            },
            function(){}
        );
    }else{
        common.util.__tip("没有选择任何商品!");
    }
});

//返回列表
$(document).on('click', '#return-btn', function() {
    $('#yohoCoin_import').hide();
    $('#yohoCoinSearch').show();
    $('#yohoCoin_table').show();
});

//筛选
$(document).on('click', '#filter-btn', function() {
    g.reload(1);
});

//全部
$(document).on('click', '#all-btn', function() {
    location.href = '';
});

//校验失败编辑
$(document).on('change', '.error', function() {
    $(this).removeClass('error');
});