/**
|
* 角色管理的单例
|
*/
|
var SubscribeMessage = {
|
id: "subscribeMessageTable", //表格id
|
seItem: null, //选中的条目
|
table: null,
|
layerIndex: -1
|
};
|
|
/**
|
* 初始化表格的列
|
*/
|
SubscribeMessage.initColumn = function () {
|
var columns = [
|
{field: 'select_item', radio: true},
|
{title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
|
{title: '序号', field: 'id', align: 'center', valign: 'middle', width: '50px',
|
formatter: function (value, item, i) {
|
return (i+1);
|
}
|
},
|
{title: '模板ID', field: 'priTmplId', align: 'center', valign: 'middle', width: '300px',
|
formatter: function (value, row) {
|
return '<span title="' + value + '">' + value + '</span>'
|
}
|
},
|
{title: '模板标题', field: 'title', align: 'center', valign: 'middle', width: '100px'},
|
{title: '模板内容', field: 'content', align: 'center', valign: 'middle', width: '200px',
|
formatter: function (value, row) {
|
value = value.replaceAll("\n", '<br/>')
|
return '<span title="' + value + '">' + value + '</span>'
|
}
|
},
|
{title: '配置时间', field: 'createTime', align: 'center', valign: 'middle', width: '150px'},
|
{title: '推送规则', field: 'pushRule', align: 'center', valign: 'middle', width: '150px'},
|
{title: '请求规则', field: 'types', align: 'center', valign: 'middle', width: '200px',
|
formatter: function (value, row) {
|
var t = "";
|
for(var i in value){
|
switch (value[i]) {
|
case 1:
|
t += '券包页面购买成功后<br/>'
|
break;
|
case 2:
|
t += '领券活动页面购买成功后<br/>'
|
break;
|
case 3:
|
t += '我的页面点击“会员权益等级”区域<br/>';
|
break;
|
case 4:
|
t += '我的页面点击“优惠券”按钮<br/>';
|
break;
|
case 5:
|
t += '我的页面点击“任务”按钮<br/>';
|
break;
|
case 6:
|
t += '我的页面点击“订单”按钮<br/>';
|
break;
|
case 7:
|
t += '我的页面点击“签到按钮”<br/>';
|
break;
|
case 8:
|
t += '我的页面点击“积分商城”按钮<br/>';
|
break;
|
case 9:
|
t += '首页点击“头像权益”区域<br/>';
|
break;
|
case 10:
|
t += '首页点击“加油站”列表区域<br/>';
|
break;
|
case 11:
|
t += '导航栏点击“积分商城”按钮<br/>';
|
break;
|
case 12:
|
t += '导航栏点击“我的”按钮<br/>';
|
break;
|
case 13:
|
t += '集点活动页面兑换成功后<br/>';
|
break;
|
case 14:
|
t += '集点活动页面点击“报名”按钮<br/>';
|
break;
|
}
|
}
|
return t;
|
}
|
},
|
{title: '状态', field: 'status', align: 'center', valign: 'middle', width: '100px',
|
formatter: function (value, row) {
|
if(1 == value){
|
return '启用';
|
}
|
if(2 == value){
|
return '禁用';
|
}
|
}
|
}
|
]
|
return columns;
|
};
|
|
|
/**
|
* 检查是否选中
|
*/
|
SubscribeMessage.check = function () {
|
var selected = $('#' + this.id).bootstrapTable('getSelections');
|
if (selected.length == 0) {
|
Feng.info("请先选中表格中的某一记录!");
|
return false;
|
} else {
|
SubscribeMessage.seItem = selected[0];
|
return true;
|
}
|
};
|
|
|
SubscribeMessage.synchronousTemplate = function () {
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/synchronousTemplate", function (resp) {
|
if(resp.code == 200){
|
Feng.success("同步成功!");
|
SubscribeMessage.table.refresh();
|
}else{
|
Feng.error(resp.msg);
|
}
|
}, function (data) {
|
Feng.error("同步失败!" + data.responseJSON.message + "!");
|
});
|
ajax.start();
|
};
|
|
|
SubscribeMessage.enableSubscribeMessage = function () {
|
if (this.check()) {
|
if(SubscribeMessage.seItem.status == 1){
|
Feng.info("不能重复操作!");
|
return
|
}
|
var operation = function() {
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/editSubscribeMessageStatus", function (resp) {
|
if(resp.code == 200){
|
Feng.success("修改成功!");
|
SubscribeMessage.table.refresh();
|
}else{
|
Feng.error(resp.msg);
|
}
|
}, function (data) {
|
Feng.error("修改失败!" + data.responseJSON.message + "!");
|
});
|
ajax.set("id", SubscribeMessage.seItem.id);
|
ajax.set("status", 1);
|
ajax.start();
|
}
|
Feng.confirm("确定启用该消息模板?",operation);
|
}
|
};
|
|
|
SubscribeMessage.disableSubscribeMessage = function () {
|
if (this.check()) {
|
if(SubscribeMessage.seItem.status == 2){
|
Feng.info("不能重复操作!");
|
return
|
}
|
var operation = function() {
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/editSubscribeMessageStatus", function (resp) {
|
if(resp.code == 200){
|
Feng.success("修改成功!");
|
SubscribeMessage.table.refresh();
|
}else{
|
Feng.error(resp.msg);
|
}
|
}, function (data) {
|
Feng.error("修改失败!" + data.responseJSON.message + "!");
|
});
|
ajax.set("id", SubscribeMessage.seItem.id);
|
ajax.set("status", 2);
|
ajax.start();
|
}
|
Feng.confirm("确定禁用该消息模板?",operation);
|
}
|
};
|
|
|
SubscribeMessage.deriveSubscribeMessage = function(){
|
let title = $("#title").val();
|
let keyWords = $("#keyWords").val();
|
let priTmplId = $("#priTmplId").val();
|
let status = $("#status").val();
|
window.location.href = Feng.ctxPath + "/subscribeMessage/deriveSubscribeMessage?title=" + title + "&keyWords=" + keyWords + "&priTmplId=" + priTmplId + "&status=" + status;
|
}
|
|
|
|
|
SubscribeMessage.pushRule = function () {
|
if (this.check()) {
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/querySubscribeMessagePush", function (data) {
|
if (data.code == 200) {
|
var array = data.data;
|
var t1 = false;
|
var t2 = false;
|
var t3 = false;
|
var t4 = false;
|
var title = '';
|
for (var i in array){
|
title = array[i].title;
|
if(1 == array[i].type){
|
t1 = true;
|
}
|
if(2 == array[i].type){
|
t2 = true;
|
}
|
if(3 == array[i].type){
|
t3 = true;
|
}
|
if(4 == array[i].type){
|
t4 = true;
|
}
|
}
|
const str = '' +
|
'<div class="row">' +
|
// ' <div class="form-group">\n' +
|
// ' <label class="col-sm-3 control-label" style="text-align: right;line-height: 35px;">推送类型</label>\n' +
|
// ' <div class="col-sm-8">\n' +
|
// ' <input class="form-control" id="title1" value="' + title + '" placeholder="事件推送">\n' +
|
// ' </div>\n' +
|
// ' </div>' +
|
' <div class="form-group" style="padding-top: 40px;">\n' +
|
' <label class="col-sm-3 control-label" style="text-align: right;line-height: 50px;">*事件类型</label>\n' +
|
' <div class="col-sm-8">\n' +
|
' <div class="col-sm-4" style="padding: 15px 0px;">' +
|
' <input type="checkbox" id="t1" ' + (t1 ? 'checked' : '') + '> 券包购买成功' +
|
' </div>' +
|
' <div class="col-sm-4" style="padding: 15px 0px;">' +
|
' <input type="checkbox" id="t2" ' + (t2 ? 'checked' : '') + '> 签到成功' +
|
' </div>' +
|
' <div class="col-sm-4" style="padding: 15px 0px;">' +
|
' <input type="checkbox" id="t3" ' + (t3 ? 'checked' : '') + '> 会员等级变更' +
|
' </div>' +
|
' <div class="col-sm-4" style="padding: 15px 0px;">' +
|
' <input type="checkbox" id="t4" ' + (t4 ? 'checked' : '') + '> 领券活动购买成功' +
|
' </div>' +
|
' </div>\n' +
|
' </div>' +
|
'</div>'
|
layer.open({
|
type: 1
|
, title: '查看推送规则'
|
, area: ['800px', '400px']
|
, offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
|
, id: 'layerDemo' //防止重复弹出
|
, content: '<div style="padding: 20px">' + str + '</div>'
|
, btn: ['取消']
|
, btnAlign: 'c' //按钮居中
|
, shade: 0.5 //不显示遮罩
|
, yes: function () {
|
layer.closeAll();
|
SubscribeMessage.resetSearch();
|
// var title = $('#title1').val();
|
// var t1 = $('#t1').is(':checked') ? 1 : '';
|
// var t2 = $('#t2').is(':checked') ? 2 : '';
|
// var t3 = $('#t3').is(':checked') ? 3 : '';
|
// var t4 = $('#t4').is(':checked') ? 4 : '';
|
// // if('' == title){
|
// // Feng.error("推送类型不能为空");
|
// // return
|
// // }
|
// if('' == t1 && '' == t2 && '' == t3 && '' == t4){
|
// Feng.error("请选择有效的事件类型");
|
// return
|
// }
|
// var type = [t1, t2, t3, t4];
|
// var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/editSubscribeMessagePush", function (data) {
|
// if(data.code == 200){
|
// Feng.success("配置成功");
|
// layer.closeAll();
|
// SubscribeMessage.resetSearch();
|
// }else{
|
// Feng.error(data.msg);
|
// }
|
// }, function (data) {
|
// Feng.error("配置失败!" + data.responseJSON.message + "!");
|
// });
|
// ajax.set("priTmplId", SubscribeMessage.seItem.priTmplId);
|
// ajax.set("title", title);
|
// ajax.set("type", JSON.stringify(type));
|
// ajax.start();
|
},
|
});
|
} else {
|
Feng.error(data.msg);
|
}
|
}, function (data) {
|
Feng.error("获取失败!" + data.responseJSON.message + "!");
|
});
|
ajax.set("priTmplId", SubscribeMessage.seItem.priTmplId);
|
ajax.start();
|
}
|
};
|
|
|
SubscribeMessage.requestRule = function () {
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/queryAuthorizedSubscribeMessage", function (data) {
|
if (data.code == 200) {
|
var obj = data.data;
|
let s = '';
|
let vv = [];
|
for(var i in obj.selected){
|
vv.push(obj.selected[i].priTmplId + ';' + obj.selected[i].title + ';' + obj.selected[i].content);
|
var content = obj.selected[i].content;
|
content = content.replaceAll("\n", '<br/>')
|
s += '<tr><td><span title="' + obj.selected[i].priTmplId + '">' + obj.selected[i].priTmplId + '</span></td><td>' + obj.selected[i].title + '</td><td>' + content + '</td><td><button onclick="SubscribeMessage.delTable(this)">删除</button></td></tr>'
|
}
|
let ss = '';
|
for(var i in obj.subscribeMessages){
|
ss += '<option value="' + obj.subscribeMessages[i].priTmplId + ';' + obj.subscribeMessages[i].title + ';' + obj.subscribeMessages[i].content + '">' + obj.subscribeMessages[i].title + '</option>';
|
}
|
|
const str = '' +
|
'<div class="row" id="asm_id" tag="' + (typeof obj.id == "undefined" ? '' : obj.id) + '">' +
|
' <div class="form-group" style="height: 40px;">\n' +
|
' <label class="col-sm-2 control-label" style="text-align: right;line-height: 35px;">*请求事件</label>\n' +
|
' <div class="col-sm-10">\n' +
|
' <select class="form-control" id="type" onchange="SubscribeMessage.queryAuthorizedSubscribeMessage(this)">' +
|
' <option value="1" ' + (obj.type == 1 ? 'selected' : '') + '>券包页面购买成功后</option>' +
|
' <option value="2" ' + (obj.type == 2 ? 'selected' : '') + '>领券活动页面购买成功后</option>' +
|
' <option value="3" ' + (obj.type == 3 ? 'selected' : '') + '>我的页面点击"会员权益等级"区域</option>' +
|
' <option value="4" ' + (obj.type == 4 ? 'selected' : '') + '>我的页面点击"优惠券"按钮</option>' +
|
' <option value="5" ' + (obj.type == 5 ? 'selected' : '') + '>我的页面点击"任务"按钮</option>' +
|
' <option value="6" ' + (obj.type == 6 ? 'selected' : '') + '>我的页面点击"订单"按钮</option>' +
|
' <option value="7" ' + (obj.type == 7 ? 'selected' : '') + '>我的页面点击"签到按钮"</option>' +
|
' <option value="8" ' + (obj.type == 8 ? 'selected' : '') + '>我的页面点击"积分商城"按钮</option>' +
|
' <option value="9" ' + (obj.type == 9 ? 'selected' : '') + '>首页点击"头像权益"区域</option>' +
|
' <option value="10" ' + (obj.type == 10 ? 'selected' : '') + '>首页点击"加油站"列表区域</option>' +
|
' <option value="11" ' + (obj.type == 11 ? 'selected' : '') + '>导航栏点击"积分商城"按钮</option>' +
|
' <option value="12" ' + (obj.type == 12 ? 'selected' : '') + '>导航栏点击"我的"按钮</option>' +
|
' <option value="13" ' + (obj.type == 13 ? 'selected' : '') + '>集点活动页面兑换成功后</option>' +
|
' <option value="14" ' + (obj.type == 14 ? 'selected' : '') + '>集点活动页面点击"报名"按钮</option>' +
|
' </select>' +
|
' </div>\n' +
|
' </div>' +
|
' <div class="form-group" style="height: 40px;">\n' +
|
' <label class="col-sm-2 control-label" style="text-align: right;line-height: 35px;">*弹出频率</label>\n' +
|
' <div class="col-sm-10">\n' +
|
' 每人' +
|
' <input class="other" id="frequency" value="' + (typeof obj.frequency == "undefined" ? "" : obj.frequency) + '" style="width: 200px;" onblur="IntegerCheck(this)">\n' +
|
' 天/1次' +
|
' </div>\n' +
|
' </div>' +
|
' <div class="form-group" style="height: 40px;">\n' +
|
' <label class="col-sm-2 control-label" style="text-align: right;line-height: 35px;">*弹出总数</label>\n' +
|
' <div class="col-sm-10">\n' +
|
' 每人' +
|
' <input class="other" id="total" value="' + (typeof obj.total == "undefined" ? "" : obj.total) + '" style="width: 200px;" onblur="IntegerCheck(this)">\n' +
|
' 次' +
|
' </div>\n' +
|
' </div>' +
|
' <div class="form-group" style="height: 40px;">\n' +
|
' <label class="col-sm-2 control-label" style="text-align: right;line-height: 35px;">*消息模板</label>\n' +
|
' <div class="col-sm-8">\n' +
|
' <select id="subscribeMessages" name="selectpicker" class="selectpicker show-tick form-control" multiple data-live-search="true" data-style="btn-primary" data-none-selected-text="请选择">\n' +
|
ss +
|
' </select>\n' +
|
' </div>' +
|
' <div class="col-sm-2"><button onclick="SubscribeMessage.addDataToTable()">添加</button></div>' +
|
' </div>' +
|
' <div class="form-group">\n' +
|
' <label class="col-sm-2 control-label" style="text-align: right;line-height: 35px;">*已有模板</label>\n' +
|
' <div class="col-sm-10" id="priTmplId">' +
|
' <table>' +
|
' <thead>' +
|
' <tr><th>模板ID</th><th>模板标题</th><th>模板内容</th><th style="width: 70px;">操作</th></tr>' +
|
' </thead>' +
|
' <tbody>' +
|
s +
|
' </tbody>' +
|
' </table>' +
|
' </div>\n' +
|
' </div>' +
|
'</div>'
|
layer.open({
|
type: 1
|
, title: '设置请求规则'
|
, area: ['1000px', '90%']
|
, offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
|
, id: 'layerDemo' //防止重复弹出
|
, content: '<div style="padding: 20px">' + str + '</div>'
|
, btn: ['保存', '取消']
|
, btnAlign: 'c' //按钮居中
|
, shade: 0.5 //不显示遮罩
|
, yes: function () {
|
var id = $('#asm_id').attr("tag");
|
var type = $('#asm_id #type').val();
|
var frequency = $('#asm_id #frequency').val();
|
var total = $('#asm_id #total').val();
|
var priTmplId = [];
|
$('#asm_id #priTmplId tbody tr').each(function (i, e) {
|
priTmplId.push($($(e).find('td')[0]).text());
|
});
|
if('' == type){
|
Feng.error("请选择有效的请求事件");
|
return
|
}
|
let patt = /^[0-9]*$/;
|
if('' == frequency){
|
Feng.error("请数据有效的弹出频率");
|
return
|
}
|
if(!patt.test(frequency)){
|
Feng.info("请输入整数值的弹出频率");
|
return
|
}
|
if('' == total){
|
Feng.error("请数据有效的弹出总数");
|
return
|
}
|
if(!patt.test(frequency)){
|
Feng.info("请输入整数值的弹出总数");
|
return
|
}
|
// if(priTmplId.length == 0){
|
// Feng.error("请添加有效的消息模板");
|
// return
|
// }
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/editAuthorizedSubscribeMessage", function (data) {
|
if(data.code == 200){
|
Feng.success("配置成功");
|
layer.closeAll();
|
SubscribeMessage.resetSearch();
|
}else{
|
Feng.error(data.msg);
|
}
|
}, function (data) {
|
Feng.error("配置失败!" + data.responseJSON.message + "!");
|
});
|
ajax.set("id", id);
|
ajax.set("type", type);
|
ajax.set("frequency", frequency);
|
ajax.set("total", total);
|
ajax.set("priTmplId", JSON.stringify(priTmplId));
|
ajax.start();
|
},
|
});
|
$('.selectpicker').selectpicker();
|
$('#subscribeMessages').selectpicker('val', vv);
|
$('#subscribeMessages').selectpicker('refresh');
|
} else {
|
Feng.error(data.msg);
|
}
|
}, function (data) {
|
Feng.error("获取失败!" + data.responseJSON.message + "!");
|
});
|
ajax.start();
|
};
|
|
|
function IntegerCheck(e){
|
let v = $(e).val();
|
let patt = /^[0-9]*$/;
|
if(!patt.test(v)){
|
Feng.info("请输入整数值");
|
return
|
}
|
}
|
|
|
|
SubscribeMessage.queryAuthorizedSubscribeMessage = function (e) {
|
var ajax = new $ax(Feng.ctxPath + "/subscribeMessage/queryAuthorizedSubscribeMessage", function (data) {
|
if (data.code == 200) {
|
var obj = data.data;
|
let s = '';
|
let v = [];
|
for(var i in obj.selected){
|
var content = obj.selected[i].content;
|
content = content.replaceAll("\n", '<br/>')
|
s += '<tr><td><span title="' + obj.selected[i].priTmplId + '">' + obj.selected[i].priTmplId + '</span></td><td>' + obj.selected[i].title + '</td><td>' + content + '</td><td><button onclick="SubscribeMessage.delTable(this)">删除</button></td></tr>'
|
v.push(obj.selected[i].priTmplId + ';' + obj.selected[i].title + ';' + obj.selected[i].content);
|
}
|
$('#asm_id').attr('tag', typeof obj.id == "undefined" ? '' : obj.id);
|
$('#asm_id #frequency').val(typeof obj.frequency == "undefined" ? '' : obj.frequency);
|
$('#asm_id #total').val(typeof obj.total == "undefined" ? '' : obj.total);
|
$('#asm_id #priTmplId tbody').html(s);
|
$('#subscribeMessages').val(v);
|
$('#subscribeMessages').selectpicker('val', v);
|
$('#subscribeMessages').selectpicker('refresh');
|
} else {
|
Feng.error(data.msg);
|
}
|
}, function (data) {
|
Feng.error("获取失败!" + data.responseJSON.message + "!");
|
});
|
ajax.set("type", $(e).val());
|
ajax.start();
|
};
|
|
SubscribeMessage.delTable = function(e){
|
$(e).parent().parent().remove();
|
}
|
|
|
SubscribeMessage.addDataToTable = function(){
|
var subscribeMessages = $('#subscribeMessages').val();
|
if('' == subscribeMessages || null == subscribeMessages){
|
Feng.info("请选择有效的消息模板");
|
return
|
}
|
if(subscribeMessages.length > 3){
|
Feng.info("只能添加最多3个消息模板");
|
return
|
}
|
var str = '';
|
for(var i in subscribeMessages){
|
var o = subscribeMessages[i].split(';');
|
var content = o[2];
|
content = content.replaceAll("\n", '<br/>')
|
str += '<tr><td><span title="' + o[0] + '">' + o[0] + '</span></td><td>' + o[1] + '</td><td>' + content + '</td><td><button onclick="SubscribeMessage.delTable(this)">删除</button></td></tr>'
|
}
|
$('#asm_id #priTmplId tbody').html(str);
|
}
|
|
|
/**
|
* 搜索角色
|
*/
|
SubscribeMessage.search = function () {
|
var queryData = {};
|
queryData['title'] = $("#title").val();
|
queryData['keyWords'] = $("#keyWords").val();
|
queryData['priTmplId'] = $("#priTmplId").val();
|
queryData['status'] = $("#status").val();
|
queryData['pushRule'] = $('#pushRule').val();
|
SubscribeMessage.table.refresh({query: queryData});
|
}
|
|
SubscribeMessage.resetSearch = function(){
|
$("#title").val('');
|
$("#keyWords").val('');
|
$("#priTmplId").val('');
|
$("#status").val('');
|
$('#pushRule').val('');
|
SubscribeMessage.search();
|
}
|
|
$(function () {
|
var defaultColunms = SubscribeMessage.initColumn();
|
var table = new BSTable(SubscribeMessage.id, "/subscribeMessage/querySubscribeMessageList", defaultColunms);
|
table.setPaginationType("server");
|
table.init();
|
SubscribeMessage.table = table;
|
});
|