288 lines
11 KiB
HTML
288 lines
11 KiB
HTML
{extend name="public/base" /}
|
|
{block name="body"}
|
|
<style>
|
|
.clinhei{width:100%;height:25px;}
|
|
.inp{width:200px;}
|
|
.inpdiv{width:25%;}
|
|
.inpdivbut{width:10%;float:left;}
|
|
.so{width:80px;height:34px;border:0;margin-top:25px;text-align:center;line-height:34px;cursor: pointer;}
|
|
.tdinp{width:100%;border:0;}
|
|
.up{border:0;cursor: pointer;}
|
|
.wxlist .checkbox-inline{margin-top:10px;margin-left:10px}
|
|
</style>
|
|
|
|
<div class="main-box clearfix">
|
|
<header class="main-box-header clearfix">
|
|
<div class="pull-left">
|
|
<h2>群发推送编辑</h2>
|
|
</div>
|
|
|
|
</header>
|
|
<div class="main-box-body clearfix">
|
|
|
|
<div class="container">
|
|
<form id="forms" enctype="multipart/form-data">
|
|
<input type="hidden" id="gurl" value="{$info.imgurl}">
|
|
<div class="inpdiv" style="width:800px;">
|
|
<img src="{$info.imgurl}" width='250px'>
|
|
</div>
|
|
<br>
|
|
<div class="form-group">
|
|
<label class="sr-only" for="inputfile">更改图片</label>
|
|
<input type="file" id="imgurl" name="imgurl">
|
|
</div>
|
|
|
|
<div class="inpdiv" style="width:800px;">
|
|
<label for="name">标题</label>
|
|
<input type="text" class="form-control inp" id="title" value="{$info.title}" style="width:800px;">
|
|
</div>
|
|
<br>
|
|
<div class="inpdiv" style="width:800px;">
|
|
<label for="name">描述</label>
|
|
<textarea class="form-control inp" id="d" style="width:800px;">{$info.d}</textarea>
|
|
</div>
|
|
<br>
|
|
<div class="inpdiv" style="width:800px;">
|
|
<label for="name">链接地址</label>
|
|
<input type="text" class="form-control inp" id="url" value="{$info.url}" style="width:800px;">
|
|
</div>
|
|
<br>
|
|
<div class="inpdiv" style="width:800px;">
|
|
<label for="name" style="color: #e84e40;">测试ID 用于测试推送</label>
|
|
<input type="text" class="form-control inp" id="cid">
|
|
</div>
|
|
|
|
<div class="input-group" style="width:200px;margin-top: 20px;">
|
|
<input type="text" class="form-control inp" name="startdata" id="startdata" placeholder="推送时间">
|
|
<span class="input-group-addon"><i class="fa fa-th"></i></span>
|
|
</div>
|
|
|
|
<!-- 公众号选择 -->
|
|
<label for="name" style="color: darkcyan;margin-top: 20px;">公众号筛选(不填则默认全部推送)</label>
|
|
<div class="wxlist">
|
|
{volist name="wxlist" id="v"}
|
|
<label class="checkbox-inline">
|
|
<input type="checkbox" value="{$v.id}" name="wxlist" {if chackwxid($v.id,$checkArr)}checked="checked"{/if}> {$v.title}
|
|
</label>
|
|
{/volist}
|
|
</div>
|
|
|
|
<br>
|
|
<p style="color: red;">注意:如有修改请先保存素材 在推送</p>
|
|
|
|
<div class="inpdivbut">
|
|
<div class="btn-info so" onclick="formsub()">保存素材</div>
|
|
</div>
|
|
|
|
<div class="inpdivbut">
|
|
<div class="btn-danger so" onclick="push()">开始推送</div>
|
|
</div>
|
|
|
|
<div class="inpdivbut">
|
|
<button class="btn btn-primary" type="button" style="margin-top: 25px;" onclick="timepush()">定时推送</button>
|
|
</div>
|
|
|
|
<div class="inpdivbut">
|
|
<a href="{:url('wxopenaccount/recording')}"><button type="button" class="btn btn-success" style="margin-top: 25px;">推送记录</button></a>
|
|
</div>
|
|
|
|
<div class="inpdivbut">
|
|
<a href="{:url('wxopenaccount/timedkefulist')}"><button type="button" class="btn btn-success" style="margin-top: 25px;">定时推送列表</button></a>
|
|
</div>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
<div class="clinhei"></div>
|
|
<div id="showweb" style="display: none;">
|
|
<p class="text-warning">记录实时展示 忽略刷新即可 或 跳转页面 发送成功共:<font style="color:seagreen" id="iok"></font> 人 发送失败共:<font style="color: red;" id="ino"></font> 人</p>
|
|
<div id="weblist"></div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
{/block}
|
|
{block name="script"}
|
|
<!-- datepicker statr -->
|
|
<link href="/public/plugs/datepicker/css/foundation-datepicker.min.css" rel="stylesheet" type="text/css">
|
|
<script src="/public/plugs/datepicker/js/foundation-datepicker.js"></script>
|
|
<script src="/public/plugs/datepicker/js/foundation-datepicker.zh-CN.js"></script>
|
|
<script>
|
|
// 时间选择器
|
|
$('#startdata').fdatepicker({
|
|
clearBtn: true,
|
|
todayBtn: true,
|
|
format: 'yyyy-mm-dd h:i',
|
|
pickTime: true
|
|
});
|
|
// 推送
|
|
function push(){
|
|
var cid = $('#cid').val();
|
|
if(cid==''){
|
|
// 群发推送
|
|
swal({
|
|
title: '确定群发推送?',
|
|
text: "请不要频繁推送 对服务器消耗是巨大的 频繁推送会导致微信封禁",
|
|
type: 'warning',
|
|
buttons:{
|
|
confirm: {
|
|
text : '确认群发',
|
|
className : 'btn btn-success'
|
|
},
|
|
cancel: {
|
|
text : '关闭',
|
|
visible: true,
|
|
className: 'btn btn-danger'
|
|
}
|
|
}
|
|
}).then((Delete) => {
|
|
if (Delete) {
|
|
// 群发
|
|
$.ajax({
|
|
type: "POST",
|
|
url:"{:url('Wxopenaccount/allpush')}",
|
|
data: {a:'pushall'},
|
|
dataType:"json",
|
|
error: function(request) {
|
|
|
|
},
|
|
success: function(data) {
|
|
if(data.status==1){
|
|
swal('成功',data.reg, {icon : "success",buttons:{confirm:{className : 'btn btn-success'}},});
|
|
}else{
|
|
swal('错误',data.reg, {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}
|
|
}
|
|
});
|
|
} else {
|
|
swal.close();
|
|
}
|
|
});
|
|
}else{
|
|
// 单个测试推送
|
|
$.ajax({
|
|
type: "POST",
|
|
url:"{:url('Wxopenaccount/onepush')}",
|
|
data: {id:cid},
|
|
dataType:"json",
|
|
error: function(request) {
|
|
|
|
},
|
|
success: function(data) {
|
|
if(data.status==1){
|
|
swal('成功',data.reg, {icon : "success",buttons:{confirm:{className : 'btn btn-success'}},});
|
|
}else{
|
|
swal('错误',data.reg, {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// 保存素材
|
|
function formsub(){
|
|
var title = $('#title').val();
|
|
var d = $('#d').val();
|
|
var url = $('#url').val();
|
|
var cid = $('#cid').val();
|
|
if(title==''){
|
|
swal('错误','标题不能为空', {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}else if(d==''){
|
|
swal('错误','描述不能为空', {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}else if(url==''){
|
|
swal('错误','链接地址不能为空', {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}else{
|
|
var wxarr = [];
|
|
$('input[name="wxlist"]:checked').each(function(){
|
|
wxarr.push($(this).val());
|
|
});
|
|
//console.log(wxarr);
|
|
var formData = new FormData();
|
|
formData.append("imgurl",$('#imgurl')[0].files[0]);
|
|
formData.append("title",title);
|
|
formData.append("d",d);
|
|
formData.append("url",url);
|
|
formData.append("gurl",$('#gurl').val());
|
|
if(cid!=''){
|
|
formData.append("cid",cid);
|
|
}
|
|
formData.append("wxlist",wxarr);
|
|
$.ajax({
|
|
type: "POST",
|
|
url:"{:url('wxopenaccount/kefu')}",
|
|
data: formData,
|
|
async: false,
|
|
cache: false,
|
|
processData:false,
|
|
contentType:false,
|
|
dataType:"json",
|
|
error: function(request) {
|
|
console.log('错误')
|
|
},
|
|
success: function(data) {
|
|
if(data.status==1){
|
|
swal('保存成功',"", {icon : "success",buttons:{confirm:{className : 'btn btn-success'}},});
|
|
window.location.href=""
|
|
}else{
|
|
swal('错误',data.reg, {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
// 定时推送
|
|
function timepush(){
|
|
var t = $('#startdata').val();
|
|
if(t==''){
|
|
swal('错误','时间不能为空', {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}else{
|
|
var oldTime = (new Date(t)).getTime()/1000;
|
|
swal({
|
|
title: '确定定时推送?',
|
|
text: "请不要频繁推送 对服务器消耗是巨大的 频繁推送会导致微信封禁",
|
|
type: 'warning',
|
|
buttons:{
|
|
confirm: {
|
|
text : '确认',
|
|
className : 'btn btn-success'
|
|
},
|
|
cancel: {
|
|
text : '关闭',
|
|
visible: true,
|
|
className: 'btn btn-danger'
|
|
}
|
|
}
|
|
}).then((Delete) => {
|
|
if (Delete) {
|
|
// 定时群发
|
|
$.ajax({
|
|
type: "POST",
|
|
url:"{:url('Wxopenaccount/timing')}",
|
|
data: {type:'timing',tasktime:oldTime},
|
|
dataType:"json",
|
|
error: function(request) {
|
|
|
|
},
|
|
success: function(data) {
|
|
if(data.status==1){
|
|
swal('成功',data.reg, {icon : "success",buttons:{confirm:{className : 'btn btn-success'}},});
|
|
}else{
|
|
swal('错误',data.reg, {icon : "error",buttons:{confirm:{className : 'btn btn-danger'}},});
|
|
}
|
|
}
|
|
});
|
|
|
|
} else {
|
|
swal.close();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
</script>
|
|
{/block}
|