Index.js 7.64 KB
/**
 * Created by JiangMin on 2016/3/22.
 * 产品图片管理
 */
var $ = require('jquery');
var common = require('../../../common/common');
//日期插件
$('.hasDatepicker').fdatepicker({
    format: 'yyyy-mm-dd'
});

/**
 * 列表显示数据
 * @type {common.grid}
 */
var g = new common.grid({
    el: '#content-list',
    hash: false,
    complete: function () {
        $('#content-list').poptrox({
            usePopupCaption: true
        });
    },
    parms: function () {
        return {
//查询参数
            productSkn: common.util.__input('content-filter1'),
            productSkc: common.util.__input('content-filter2'),
            productSku: common.util.__input('content-filter3'),
            startTime: ((new Date($('#starttime').val())).getTime()) / 1000,
            endTime: ((new Date($('#endtime').val())).getTime()) / 1000,
            shopId: common.util.__input("shopId")
        };
    },
//列表显示
    columns: [
        {display: "SKN", name: "productSkn",
            render: function (item) {
                var formatted = '<a target="_blank" href="/goods/netsale/edit/' + item.productSkn + '">'+item.productSkn+'</a>';
                return formatted ;
            }},
        {
            display: "最后上传时间", name: "lastAddTime",
            render: function (item) {
                var t = new Date(item.lastAddTime * 1000);
                var formatted = common.util.__dateFormat(t, "yyyy-MM-dd hh:mm:ss");
                return "<p>" + formatted + "</p>";
            }
        },
        {
            display: "图片", name: "pictureBoList", render: function (item) {
            var a = item.pictureBoList || [];
            if (a.length > 0) {
                var b;
                for (var i = 0; i < a.length; i++) {
                    b = b + '<a class="pop" href="' + item.pictureBoList[i].fileName + '"> <img src="' + item.pictureBoList[i].fileName + '?imageView/2/w/100/h/100"  title="' + item.pictureBoList[i].originalName + '" width="100" height="60"/></a>'
                }
                return b.substr(9);
            }
            else {
                return ""
            }
        }
        },
        {
            display: "操作", name: "", render: function (item) {
            var arr = [];
            arr.push('<a class="btn btn-xs btn-info update" data-index="' + item.__index + '">编辑</a>');
            return arr.join('');
        }
        }
    ]
});
g.init("/shotManage/proPhoto/index2");


var Bll = {
    pictureBoList: [],
    selectedBoId: [],
    clonePics: [],
//重新渲染图片列表
    rendBoList: function (pictureBoList) {
        $(".image-list").html('');
        $("#addPic").prepend(common.util.__template2($("#template2").html(),
            {
                pictureBoList: pictureBoList
            }
        ));
    },
//获取编辑时新增的图片
    getNewPics: function (pictureBoList) {
        var newPic = [];
        if (pictureBoList.length > 0) {
            for (var i = 0; i < pictureBoList.length; i++) {
                if (!pictureBoList[i].id) {
                    newPic.push(pictureBoList[i])
                }
            }
        }
        return newPic
    },
//模态
    toast: function (url, item, datacall) {
        Bll.pictureBoList = item.pictureBoList || [];
        Bll.selectedBoId = [];
        var a = new common.dialog({
            title: "图片",
            width: '80%',
            content: common.util.__template2($("#template1").html(), item),
            button: [
                {
                    value: "提交", callback: function () {
                    var data = {};
                    if (item.__state == 'add') {
                        data = datacall && datacall(Bll.clonePics, Bll.selectedBoId);
                    } else {
                        data = datacall && datacall(Bll.getNewPics(Bll.clonePics), Bll.selectedBoId);
                    }
                    common.util.__ajax({
                        url: url,
                        data: data
                    }, function (res) {
                        if (res.code == '200') {
                            if (res.data.length > 0) {
                                var mess = "失败列表:";
                                for (var i = 0; i < res.data.length; i++) {
                                    mess = mess + '<p>' + res.data[i].originalName + ';' + '</p>';
                                }
                                common.util.__tip(mess, 'warning');
                            }
                            g.reload();
                            a.close();
                        }
                    });
                    return false;
                }, css: "btn-primary"
                },
                {
                    "value": "取消",
                    css: "btn-info"
                }
            ]
        });
        Bll.rendBoList(Bll.pictureBoList);
        common.edit.ajaxfileupload(".picfile", {
            params: {
                __type: "upload",
                bucket: "goodsimg"
            },
            valid_extensions: ['png', 'jpg', 'jpeg'],
            onComplete: function (response) {
                if (response.status && response.code == 200) {
                    for (var i = 0; i < response.datas.length; i++) {
                        var name = response.names[i];
                        var index = name.indexOf('.');
                        var name1 = name.substr(0, index);
//判断图片名称是否符合标准
                        if ((/^[0-9]+[_][0-9]+$/).test(name1) || (/^[1-9]\d*$/).test(name1)) {
                            Bll.pictureBoList.push({
                                "fileName": response.datas[i],
                                "originalName": response.names[i]
                            });
                            Bll.clonePics.push({
                                "fileName": response.datas[i],
                                "originalName": response.names[i]
                            })
                        }
                        else {
                            common.util.__tip("图片应以sku命名", "warning");
                        }
                    }
                    Bll.rendBoList(Bll.clonePics);
                }
                else {
                    common.util.__tip(response.message, 'warning');
                }
            }
        });
    }
};
//上传图片--点击事件
$('#upload-btn').on('click', function () {
    var item = {
        __state: "add"
    };
    Bll.clonePics = [];
    Bll.toast('/shotManage/proPhoto/add', item, function (pictureBoList, selectedBoId) {
        return {
            productPhotoAddStrList: JSON.stringify(pictureBoList)
        }
    });
});

/*下拉选择*/
new common.dropDown({
    el: "#shopId",
    ajax: "queryShopPass",
    hash: true
});

//编辑
$(document).on('click', '.update', function () {
    var item = g.rows[$(this).data("index")];
    item.__state = "update";
    Bll.clonePics = [];
    Array.prototype.push.apply(Bll.clonePics, item.pictureBoList);
    Bll.toast('/shotManage/proPhoto/add', item, function (pictureBoList, selectedBoId) {
        return {
            productSkn: item.productSkn,
            ids: JSON.stringify(selectedBoId),
            productPhotoAddStrList: JSON.stringify(pictureBoList)
        }
    });
});

//删除单张图片
$(document).on('click', '.remove1', function () {
    var index = $(this).data("index");
    if (Bll.clonePics[index].id) {
        Bll.selectedBoId.push(Bll.clonePics[index].id);
    }
    Bll.clonePics.splice(index, 1);
    Bll.rendBoList(Bll.clonePics);
});

//查询按钮--点击事件
$(document).on('click', '#filter-btn', function () {
    g.reload(1);
});