You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

597 lines
20 KiB
HTML

<extend name="Public/base" />
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="__CSS__/admin_table.css" media="all">
<link href="__STATIC__/icons_alibaba/iconfont.css" rel="stylesheet">
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script type="text/javascript" src="__STATIC__/provincecityarea/AreaData_min.js"></script>
<script src="__STATIC__/layer/layer.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<style>
.tabcon1711 input.time {
width: 150px;
}
#form .txt_area {
width: 300px;
height: 150px;
}
.tabcon1711 .form_unit {
margin-left: 2px;
}
.tabcon1711 .mustmark {
margin-left:-7px;
}
.list-ratio {
display: table;
}
.list-ratio .li-ratio {
display: flex;
margin-bottom: 20px;
align-items: center;
}
.list-ratio .li-ratio .turnover, .list-ratio .li-ratio .turnover-ratio {
position: relative;
}
.list-ratio .li-ratio .turnover span, .list-ratio .li-ratio .turnover-ratio .error-message {
color: red;
position: absolute;
left: 0;
top: 30px;
white-space: nowrap;
display: none;
}
.iconfont-btn {
cursor: pointer;
}
.iconfont-style {
font-size: 18px;
color: #fff;
border-radius: 4px;
border: 0;
padding: 5px;
margin-left: 10px;
}
.iconfont-selected {
background-color: #0A9AF2;
}
.iconfont-selected:hover {
background-color: #03a9f4;
}
.iconfont-unselected {
background-color: #999;
}
.iconfont-unselected:hover {
background-color: #ababab;
}
.tabcon1711 .submit_btn.small-btn {
float: none;
line-height: 25px;
width: 50px;
height: 25px;
font-size: 12px;
padding: 0px 8px 0px 0px;
}
.select2-container--default .select2-selection--multiple {
line-height: 22px;
}
.select2-container .select2-search--inline {
float: left;
height: 29px;
line-height: 29px;
}
.select2-container--default .select2-search--inline .select2-search__field {
height: 22px;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
height: 22px;
line-height: 22px;
}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">{$meta_title}</h3>
<!-- <p class="description_text">说明:此功是创建推广员时所需填写信息</p>-->
</div>
<!-- 标签页导航 -->
<div class="tab-wrap">
<div class="tab-content tabcon1711">
<!-- 表单 -->
<form id="form" method="post" class="form-horizontal" style="margin-bottom: 40px;">
<!-- 基础文档模型 -->
<div id="tab1" class="tab-pane in tab1">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l"><i class="mustmark">*</i>公司类型:</td>
<td class="r">
<select name="company_belong" id="company-belong-select" class="select_gallery">
<option value="-1">所有公司类型</option>
<?php foreach($companyBelongs as $key => $name):?>
<option value="<?=$key?>"><?=$name?></option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>推广公司:</td>
<td class="r">
<select name="company_id[]" id="company-select" class="select_gallery" multiple="multiple" style="width: 500px;">
<option value="0">所有公司</option>
<?php foreach($companies as $company):?>
<option value="<?=$company['id']?>"><?=$company['company_name']?></option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>游戏类型:</td>
<td class="r">
<select name="game_type_id" id="game-type-select" class="select_gallery">
<option value="0">所有游戏类型</option>
<?php foreach($gameTypes as $gameType):?>
<option value="<?=$gameType['id']?>"><?=$gameType['type_name']?></option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>游戏:</td>
<td class="r">
<select name="game_id" id="game-select" class="select_gallery" multiple="multiple" style="width: 500px;">
<option value="0">所有游戏</option>
<?php foreach($games as $game):?>
<option value="<?=$game['id']?>"><?=$game['name']?></option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>支付宝支付配置:</td>
<td class="r">
<select name="alipay_merchant_id" id="alipay-merchant-select" class="select_gallery" style="width: 450px;">
<option value="0">跟随系统默认商户【<?=$defaultAlipay?></option>
<?php foreach($aliMerchants as $merchant):?>
<option value="<?=$merchant['id']?>"><?=$merchant['name']?>(<?=$merchant['account']?>)</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>微信支付配置:</td>
<td class="r">
<select name="weixin_merchant_id" id="weixin-merchant-select" class="select_gallery" style="width: 450px;">
<option value="0">跟随系统默认商户【<?=$defaultWeixin?></option>
<?php foreach($weixinMerchants as $merchant):?>
<option value="<?=$merchant['id']?>"><?=$merchant['name']?>(<?=$merchant['account']?>)</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>快捷支付配置:</td>
<td class="r">
<select name="express_merchant_id" id="express-merchant-select" class="select_gallery" style="width: 450px;">
<option value="0">跟随系统默认商户【<?=$defaultExpress?></option>
<?php foreach($expressMerchants as $merchant):?>
<option value="<?=$merchant['id']?>"><?=$merchant['name']?>(<?=$merchant['account']?>)</option>
<?php endforeach;?>
</select>
</td>
</tr>
<tr>
<td class="l"><i class="mustmark">*</i>生效时间(开始):</td>
<td class="r">
<input type="text" id="start_time" name="start_time" class="time" value="" autocomplete="off" placeholder="请选择生效时间(开始)" style="width: 200px"/>
</td>
</tr>
<tr>
<td class="l">生效时间(结束):</td>
<td class="r">
<input type="text" id="end_time" name="end_time" class="time" value="" autocomplete="off" placeholder="请选择生效时间(开始)" style="width: 200px"/>
</td>
</tr>
</tbody>
</table>
</div>
<div class="form-item cf">
<button class="submit_btn mlspacing" id="add-item" type="button" target-form="form-horizontal" style="margin-top: 10px;">
新增
</button>
</div>
</form>
<div class="data_list">
<div class="">
<table id="record-table">
<!-- 表头 -->
<thead>
<tr>
<th>公司类型</th>
<th>推广公司</th>
<th>游戏类型</th>
<th>游戏产品</th>
<th>支付宝支付配置</th>
<th>微信支付配置</th>
<th>快捷支付配置</th>
<th>生效时间</th>
<th>操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
</tbody>
</table>
</div>
</div>
<div style="margin-top: 30px; height: 35px; width: 100%;">
<a class="submit_btn" href="javascript:;" id="submit" style="margin: 0px auto; margin-left: 208px; ">全部提交</a>
</div>
</div>
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="Promote/lists/type/1">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('PaymentMerchant/rules')}");
$(".select_gallery").select2();
$(function(){
$('.time').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
autoclose: true,
scrollMonth: false,
scrollTime: false,
scrollInput: false,
startView: 'month',
minView:'month',
maxView:'month',
});
showTab();
$('#company-belong-select').on({
change: function() {
var companyBelong = $(this).val()
getCompaniesByBelong(companyBelong, function(companies) {
var html = '<option value="0">所有推广公司</option>'
for (var key in companies) {
html += '<option value="' +
companies[key].id +
'">' + companies[key].company_name + '</option>'
}
$('#company-select').html(html)
$('#company-select').select2()
})
}
})
$('#game-type-select').on({
change: function() {
var gameTypeId = $(this).val()
getGamesByType(gameTypeId, function(games) {
var html = '<option value="0">所有游戏</option>'
for (var key in games) {
html += '<option value="' +
games[key].id +
'">' + games[key].name + '</option>'
}
$('#game-select').html(html)
$('#game-select').select2()
})
}
})
function getCompaniesByBelong(companyBelong, callback) {
$.ajax({
url: '{:U("getCompaniesByBelong")}',
type: 'get',
dataType: 'json',
data: {company_belong: companyBelong},
success: function(result) {
if (result.status == 1) {
callback(result.data.companies)
} else {
layer.msg(result.message)
}
}
})
}
function getGamesByType(gameTypeId, callback) {
$.ajax({
url: '{:U("getGamesByType")}',
type: 'get',
dataType: 'json',
data: {game_type_id: gameTypeId},
success: function(result) {
if (result.status == 1) {
callback(result.data.games)
} else {
layer.msg(result.message)
}
}
})
}
function descartes(list) {
//parent上一级索引;count指针计数
var point = {};
var result = [];
var pIndex = null;
var tempCount = 0;
var temp = [];
//根据参数列生成指针对象
for(var index in list) {
if(typeof list[index] == 'object') {
point[index] = {'parent':pIndex,'count':0}
pIndex = index;
}
}
//单维度数据结构直接返回
if(pIndex == null) {
return list;
}
//动态生成笛卡尔积
while(true) {
for(var index in list) {
tempCount = point[index]['count'];
temp.push(list[index][tempCount]);
}
//压入结果数组
result.push(temp);
temp = [];
//检查指针最大值问题
while(true) {
if(point[index]['count']+1 >= list[index].length) {
point[index]['count'] = 0;
pIndex = point[index]['parent'];
if(pIndex == null) {
return result;
}
//赋值parent进行再次检查
index = pIndex;
} else {
point[index]['count']++;
break;
}
}
}
}
function getRangeTimeDisplay(startTime, endTime)
{
if (startTime === '' && endTime === '') {
return '永久';
}
if (startTime !== '' && endTime !== '') {
return startTime + ' 至 ' + endTime;
}
if (startTime === '' && endTime !== '') {
return '从前 至 ' + endTime;
}
if (startTime !== '' && endTime === '') {
return startTime + ' 至 永久';
}
}
function getCompanyName(id) {
return $("#company-select option[value=" + id + "]").html();
}
function getGameName(id) {
return $("#game-select option[value=" + id + "]").html();
}
function isUniqueKeyExists(uniqueKey) {
return ($("#record-table tr[data-key=" + uniqueKey + "]").length == 0 ? false : true);
}
function getUniqueKey(data) {
var startTime = data.start_time == '' ? '0' : data.start_time.replace(/-/g, "")
var endTime = data.end_time == '' ? '0' : data.end_time.replace(/-/g, "")
return data.company_belong + '_' + data.company_id + '_' + data.game_id + '_' + data.game_type_id + '_' + startTime + '_' + endTime
}
function getTodayValue() {
var now = new Date()
var year = now.getFullYear().toString()
var month = now.getMonth() + 1
var date = now.getDate()
if (month < 10) {
month = "0" + month;
}
if (date < 10) {
date = "0" + date;
}
return parseInt(year + month + date);
}
$('#add-item').on({
click: function () {
var companySelect = $("#company-select");
var companyIds = companySelect.val()
var companyBelongOption = $("#company-belong-select option:selected");
var companyBelongId = companyBelongOption.val()
var companyBelongName = companyBelongOption.text()
var gameTypeOption = $("#game-type-select option:selected");
var gameTypeId = gameTypeOption.val()
var gameTypeName = gameTypeOption.text()
var gameSelect = $("#game-select");
var gameIds = gameSelect.val()
var alipayOption = $("#alipay-merchant-select option:selected");
var alipayId = alipayOption.val()
var alipayName = alipayOption.text()
var weixinOption = $("#weixin-merchant-select option:selected");
var weixinId = weixinOption.val()
var weixinName = weixinOption.text()
var expressOption = $("#express-merchant-select option:selected");
var expressId = expressOption.val()
var expressName = expressOption.text()
var startTime = $("#start_time").val();
var endTime = $("#end_time").val();
if (companyIds == null || companyIds.length == 0) {
return layer.msg('请选择推广公司')
}
if (gameIds == null || gameIds.length == 0) {
return layer.msg('请选择游戏')
}
if (startTime == '') {
return layer.msg('开始生效时间必填')
}
var notValue = getTodayValue()
var startValue = parseInt(startTime.replace(/-/g, ""))
var endValue = parseInt(endTime.replace(/-/g, ""))
if (notValue > startValue) {
return layer.msg('开始生效时间至少从今天开始')
}
if (endTime != '') {
var endValue = parseInt(endTime.replace(/-/g, ""))
if (notValue >= endValue) {
return layer.msg('最终生效时间必须在今天之后')
}
if (startValue > endValue) {
return layer.msg('开始生效时间不能大于最终生效时间')
}
}
var items = descartes([
[companyBelongId], companyIds, [gameTypeId], gameIds
])
var uniqueKeys = []
var records = []
for (var i in items) {
var data = {
company_belong: items[i][0],
company_id: items[i][1],
game_type_id: items[i][2],
game_id: items[i][3],
alipay_merchant_id: alipayId,
weixin_merchant_id: weixinId,
express_merchant_id: expressId,
start_time: startTime,
end_time: endTime,
}
console.log(data)
var uniqueKey = getUniqueKey(data)
if (isUniqueKeyExists(uniqueKey)) {
return layer.msg('已经添加相同配置,请检查')
}
data.unique_key = uniqueKey
records.push(data)
}
for (var i in records) {
var data = records[i]
var html = '<tr data-post=' + JSON.stringify(data) + ' data-key="' + data.unique_key + '"><td>' + companyBelongName + '</td>' +
'<td>' + getCompanyName(data.company_id) + '</td>' +
'<td>' + gameTypeName + '</td>' +
'<td>' + getGameName(data.game_id) + '</td>' +
'<td>' + alipayName + '</td>' +
'<td>' + weixinName + '</td>' +
'<td>' + expressName + '</td>' +
'<td>' + getRangeTimeDisplay(startTime, endTime) + '</td>' +
'<td><a class="delete-btn">删除</a></td>' +
'</tr>';
$('#record-table').find('tbody').append(html);
}
}
})
$('#record-table').on('click', '.delete-btn', function() {
var tr = $(this).parents('tr').eq(0)
tr.remove()
})
$('#submit').click(function (e) {
var records = []
$('#record-table').find('tbody').children('tr').each(function() {
records.push(JSON.parse($(this).attr('data-post')))
})
if (records.length == 0) {
return layer.msg('请添加配置数据')
}
var accessStatus = true
var checkStatus = true
$.ajax({
url: '{:U("checkRules")}',
type: 'post',
dataType: 'json',
async: false,
data: {records: records},
success: function(result) {
if (result.status == 1) {
if (result.data.is_repeat) {
checkStatus = false
}
} else {
accessStatus = false
layer.msg(result.message)
}
}
})
if (!accessStatus) {
return layer.msg('验证异常')
}
if (!checkStatus) {
layer.confirm('该时间段已有相同条件设置,是否设置?', {
title: "是否设置",
btn: ['确定', '取消']
}, function () {
saveRules(records)
});
} else {
saveRules(records)
}
});
function saveRules(records) {
$.ajax({
url: '{:U("saveRule")}',
type: 'post',
dataType: 'json',
data: {records: records},
success: function(result) {
if (result.status == 1) {
layer.msg(result.message)
setTimeout(function() {
window.location.href = '{:U("rules")}'
}, 200)
} else {
layer.msg(result.message)
}
}
})
}
});
</script>
</block>