Index.js 13.9 KB
/**
 * Created by wangqianjun on 16/2/23.
 */
var $ = require('jquery'),
    common = require('../../../common/common');

// 热搜词状态
var StatusEnum = {
    ON: 2,// 开启
    OFF: 1 // 关闭
};
//界面分类值
var PagEnum = {
    DEF_HOT_SEARCH_WORDS: 1, //默认搜索词管理页面
    PULL_DOWN_WORDS: 2,//下拉词管理页面
    HOT_SEARCH_WORDS: 3,//热搜词管理页面
    SYNONYMS_: 4,//同义词管理页面
    DISABLE_WORDS: 5//停用词管理页面
};
//界面分类显示
var titles = {
    1: {
        name1: "默认搜索词列表",
        name2: "默认搜索词列表",
        title: "默认搜索词",
        tips: '注:默认搜索词是默认显示在前台搜索框里的词或者短语'
    },
    2: {
        name1: "下拉词列表",
        name2: "下拉词列表",
        title: "下拉词",
        tips: '注:下拉词是前台输入框获取焦点之后下拉显示的词'
    },
    3: {
        name1: "热搜词列表",
        name2: "热搜词列表",
        title: "热搜词",
        tips: '注:热搜词是前台搜索框下面的词'
    },
    4: {
        name1: "同义词列表",
        name2: "同义词列表",
        title: "同义词",
        tips: '注:同义词,比如阿迪达斯和三叶草就是一对同义词'
    },
    5: {
        name1: "停用词列表",
        name2: "停用词列表",
        title: "停用词",
        tips: '注:停用词是指搜索引擎不进行拆分检索的词'
    }
};
// 下拉框
new common.dropDown({
    el: "#status-filter"
});
new common.dropDown({
    el: "#channelIds-filter"
});
new common.dropDown({
    el: "#channel-ops"
});

// 初始化日期插件
new common.edit("#filter").init();
var edit = new common.edit2(".modal-body");
var Bll = {
    module: null,
    getQueryString: function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null)return unescape(r[2]);
        return null;
    },
    _render1: function () {
        if(parseInt(type) == PagEnum.DEF_HOT_SEARCH_WORDS || parseInt(type) == PagEnum.HOT_SEARCH_WORDS){
            $('#channelIds-filter').parent().show();
        }else{
            $('#channelIds-filter').parent().hide();
        }
        //只有默认搜索词才显示时间选择
        if (parseInt(type) == PagEnum.DEF_HOT_SEARCH_WORDS) {
            $('#starttime-filter').parent().show();
            $('#endtime-filter').parent().show();
            // $('#channel-ops').parent().parent().show();
        } else {
            $('#starttime-filter').parent().hide();
            $('#endtime-filter').parent().hide();
            $('#channel-ops').parent().parent().hide();
        }
        var tem = common.util.__template2($("#template").html(), titles[parseInt(type)]);
        $(".media-body").html(tem);
    },
    __render: function (selecter, templater, data) {
        $(selecter).html(common.util.__template2($("#" + templater).html(), data));
    },
    //弹框
    toast: function (url, module, hint) {
        module.tips = titles[module._type].tips;
        Bll.module = module;
        var d = new common.dialog({
            title: hint + titles[module._type].title,
            content: common.util.__template2($("#template-content").html(), Bll.module),
            width: '40%',
            button: [
                {
                    value: "保存",
                    callback: function () {
                        if (edit.validate()) {
                            common.util.__ajax({
                                url: url,
                                data: Bll.module
                            }, function () {
                                g.reload();
                                d.close();
                            });
                        }
                        return false;
                    },
                    css: "btn-primary"
                },
                {
                    "value": "取消",
                    "css": "btn-info"
                }
            ]
        });
        Bll.__editRender();
    },
    renderDialog: function (templater) {
        Bll.__render(".modal-body", templater, Bll.module);
        Bll.__editRender();
    },
    __editRender: function () {
        edit.init();
    }
};
/**
 * 全局变量,当前界面的类型
 * @type {*}
 */
var type = Bll.getQueryString("type");
/**
 * 加载界面
 */
Bll._render1();
/**
 * 界面表格
 * @type {common.grid}
 */
var g = new common.grid({
    el: '#search-words-list',
    parms: function () {
        switch (parseInt(type)) {
            //默认搜索词管理页面
            case PagEnum.DEF_HOT_SEARCH_WORDS :
                return {
                    type: type,
                    status: $.trim(common.util.__input("status-filter")),
                    channelIds: $.trim(common.util.__input("channelIds-filter")),
                    startTime: $.trim($('#starttime-filter').val()),
                    endTime: $.trim($('#endtime-filter').val()),
                    content: $.trim($('#content-filter').val())
                };
            //热搜词管理页面
            case PagEnum.HOT_SEARCH_WORDS :
            //下拉词管理页面
            case PagEnum.PULL_DOWN_WORDS :
            //同义词管理页面
            case PagEnum.SYNONYMS_ :
            //停用词管理页面
            case PagEnum.DISABLE_WORDS :
                return {
                    type: type,
                    status: $.trim(common.util.__input("status-filter")),
                    channelIds: $.trim(common.util.__input("channelIds-filter")),
                    content: $.trim($('#content-filter').val())
                };
        }
    },
    columns: (function () {
        switch (parseInt(type)) {
            //默认搜索词管理页面
            case PagEnum.DEF_HOT_SEARCH_WORDS :
                return [
                    {display: "序号", name: "id"},
                    {display: "内容", name: "content"},
                    {display: "频道", name: "channelNames"},
                    { display: "PC链接", name:"matchPcUrl" },
                    { display: "移动端链接", name:"matchAppUrl" },
                    {
                        display: "状态", name: "status", render: function (item) {
                        if (item.status === StatusEnum.ON) {
                            return "<span>开启</span>";
                        } else {
                            return "<span>关闭</span>";
                        }
                    }
                    },
                    {display: "开始时间", name: "startTime"},
                    {display: "结束时间", name: "endTime"},
                    {display: "添加人", name: "creatorUsrname"},
                    {display: "添加时间", name: "createdTime"},
                    {display: "修改人", name: "modifyUsrname"},
                    {display: "修改时间", name: "modifyTime"},
                    {
                        display: "操作", name: "", render: function (item) {
                        return '<a class="btn btn-xs btn-info modify"  data-index="' + item.__index + '">修改</a>';
                    }
                    }
                ];

            //下拉词管理页面
            case PagEnum.PULL_DOWN_WORDS :
                return [
                    {display: "序号", name: "id"},
                    {display: "内容", name: "content"},
                    {
                        display: "状态", name: "status", render: function (item) {
                        if (item.status === StatusEnum.ON) {
                            return "<span>开启</span>";
                        } else {
                            return "<span>关闭</span>";
                        }
                    }
                    },
                    {display: "排序", name: "sort"},
                    {display: "商品数", name: "goodsNum"},
                    {display: "添加人", name: "creatorUsrname"},
                    {display: "添加时间", name: "createdTime"},
                    {display: "修改人", name: "modifyUsrname"},
                    {display: "修改时间", name: "modifyTime"},
                    {
                        display: "操作", name: "", render: function (item) {
                        return '<a class="btn btn-xs btn-info modify" data-index="' + item.__index + '">修改</a>';
                    }
                    }
                ];

            //热搜词管理页面
            case PagEnum.HOT_SEARCH_WORDS :
                return [
                    {display: "序号", name: "id"},
                    {display: "内容", name: "content"},
                    {display: "频道", name: "channelNames"},
                    {
                        display: "链接", name: "url", render: function (item) {
                        var url = item.url ? item.url : "";
                        return '<a href="' + url + '" target="_blank"> ' + url + '</a>' //'+item.url?item.url:""+'
                    }
                    },
                    {
                        display: "状态", name: "status", render: function (item) {
                        if (item.status === StatusEnum.ON) {
                            return "<span>开启</span>";
                        } else {
                            return "<span>关闭</span>";
                        }
                    }
                    },
                    {display: "排序", name: "sort"},
                    {display: "添加人", name: "creatorUsrname"},
                    {display: "添加时间", name: "createdTime"},
                    {display: "修改人", name: "modifyUsrname"},
                    {display: "修改时间", name: "modifyTime"},
                    {
                        display: "操作", name: "", render: function (item) {
                        return '<a class="btn btn-xs btn-info modify" data-index="' + item.__index + '">修改</a>';
                    }
                    }
                ];

            //同义词管理页面
            case PagEnum.SYNONYMS_ :
                return [
                    {display: "序号", name: "id"},
                    {display: "内容", name: "content"},
                    {
                        display: "状态", name: "status", render: function (item) {
                        if (item.status === StatusEnum.ON) {
                            return "<span>开启</span>";
                        } else {
                            return "<span>关闭</span>";
                        }
                    }
                    },
                    {display: "添加人", name: "creatorUsrname"},
                    {display: "添加时间", name: "createdTime"},
                    {display: "修改人", name: "modifyUsrname"},
                    {display: "修改时间", name: "modifyTime"},
                    {
                        display: "操作", name: "", render: function (item) {
                        return '<a class="btn btn-xs btn-info modify" data-index="' + item.__index + '">修改</a>';
                    }
                    }
                ];

            //停用词管理页面
            case PagEnum.DISABLE_WORDS :
                return [
                    {display: "序号", name: "id"},
                    {display: "内容", name: "content"},
                    {
                        display: "状态", name: "status", render: function (item) {
                        if (item.status === StatusEnum.ON) {
                            return "<span>开启</span>";
                        } else {
                            return "<span>关闭</span>";
                        }
                    }
                    },
                    {display: "添加人", name: "creatorUsrname"},
                    {display: "添加时间", name: "createdTime"},
                    {display: "修改人", name: "modifyUsrname"},
                    {display: "修改时间", name: "modifyTime"},
                    {
                        display: "操作", name: "", render: function (item) {
                        return '<a class="btn btn-xs btn-info modify"  data-index="' + item.__index + '">修改</a>';
                    }
                    }
                ];
        }
    })()
});
g.init('/operation/terms/searchWordsList');

/**
 * 监听输入框变化
 */
$(document).on("change", ".observe", function () {
    var $this = $(this);
    var name = $this.data("field");
    Bll.module = common.util.__buildobj(name, '.', Bll.module, function (obj, name1) {
        obj[name1] = $this.val();
    });
});

$(document).on("click", "input[name='searchType']", function() {
    var type = $(this).val();
    Bll.module["searchType"] = type;
    switch (type) {
        case "1": 
        $(".search_type2").hide();
        $("#matchPcUrl").removeAttr("required");
        $("#matchAppAction").removeAttr("required");
        $("#matchAppUrl").removeAttr("required");
        break; 
        case "2": 
        $(".search_type2").show();
        $("#matchPcUrl").attr("required", "required");
        $("#matchAppAction").attr("required", "required");
        $("#matchAppUrl").attr("required", "required");
        break;
    }
});

/**
 * 查询按钮
 */
$("#filter-btn").click(function () {
    g.reload(1);
});
/**
 * 添加
 */
$("#filter-add").click(function () {
    var item = {
        "type": parseInt(type),
        "content": "",
        "channelIds": "",
        "url": "",
        "startTime": "",
        "endTime": "",
        "goodsNum": 0,
        "sort": 1
    };
    item._status = "add";
    item._type = parseInt(type);
    Bll.toast('/operations/terms/add', item, "添加");
});
/**
 * 修改
 */
$(document).on("click", ".modify", function () {
    var item = g.rows[$(this).data('index')];
    item._status = "update";
    item._type = parseInt(type);
    Bll.toast('/operations/terms/modify', item, "修改");
});