Init Repo

This commit is contained in:
root
2019-09-06 23:53:10 +08:00
commit f0ef89dfbb
7905 changed files with 914138 additions and 0 deletions

View File

@ -0,0 +1,100 @@
{extend name="base" /}
{block name="css"}
<link rel="stylesheet" type="text/css" href="__STATIC__/plugins/webuploader/webuploader.css?v={$v}" />
<style>
body{overflow: hidden}
</style>
{/block}
{block name="js"}
<script src="__STATIC__/plugins/webuploader/webuploader.js?v={$v}" type="text/javascript" ></script>
<script src="__ADMIN__/wxmenus/wxmenus.js?v={$v}" type="text/javascript"></script>
<script>
$(function () {
{if condition="$object['menuId'] !=0 "}
WST.setValues({$object});
{/if}
$('#menuForm').validator({
fields: {
menuName: {
tip: "请输入菜单名称",
rule: '菜单名称:required;length[~16];'
}
},
valid: function(form){
var menuId = $('#menuId').val();
toEdits(menuId);
}
})
});
</script>
{/block}
{block name="main"}
<div class="l-loading" style="display: block" id="wst-loading"></div>
<form id="menuForm" autocomplete="off">
<input type='hidden' id='menuId' name="menuId" value="{$menuId}" class='ipt'/>
<input type='hidden' id='parentId' name="parentId" value="{$parentId}" class='ipt'/>
<table class='wst-form wst-box-top'>
<tr>
<th width='150'>菜单名称<font color='red'>*</font></th>
<td><input type="text" id='menuName' name='menuName' maxLength='20' style='width:300px;' class='ipt'/></td>
</tr>
<tr style="display:none;">
<th>子菜单内容<font color='red'>*</font></th>
<td>
<label>
<input type='radio' id="content" name='content' value='0' class='ipt' checked onclick="javascript:wayChange(1)">跳转网页
</label>
<label>
<input type='radio' id="content" name='content' value='1' class='ipt' onclick="javascript:wayChange(0)">发送消息
</label>
</td>
</tr>
<tr id="urltext">
<th>跳转网址:</th>
<td><input type="text" id='menuUrl' name='menuUrl' maxLength='255' style='width:500px;' class='ipt' data-tip="输入网址时以http://或https://开头"/></td>
</tr>
<tr class="newstext" style="display:none;">
<th></th>
<td>
<label>
<input type='radio' name='material' value='1' checked onclick="javascript:matChange(1)">文字
</label>
<label>
<input type='radio' name='material' value='2' onclick="javascript:matChange(2)">图片
</label>
<label>
<input type='radio' name='material' value='3' onclick="javascript:matChange(3)">图文
</label>
<label>
<input type='radio' name='material' value='4' onclick="javascript:matChange(4)">语音
</label>
<label>
<input type='radio' name='material' value='5' onclick="javascript:matChange(5)">视频
</label>
</td>
</tr>
<tr class="newstext" style="display:none;">
<th></th>
<td>
<div class="wst-view j-view" id="view1"><a href="javascript:void(0);" onclick="javascript:addMaterial(1);">选择文本</a></div>
<div class="wst-view j-view" id="view2" style="display:none;"><a href="javascript:void(0);" onclick="javascript:addMaterial(2);">选择文本素材</a></div>
<div class="wst-view j-view" id="view3" style="display:none;"><a href="javascript:void(0);" onclick="javascript:addMaterial(3);">选择图文素材</a></div>
<div class="wst-view j-view" id="view4" style="display:none;"><a href="javascript:void(0);" onclick="javascript:addMaterial(4);">选择语音素材</a></div>
<div class="wst-view j-view" id="view5" style="display:none;"><a href="javascript:void(0);" onclick="javascript:addMaterial(5);">选择视频素材</a></div>
</td>
</tr>
<tr>
<th width="100">排序号<font color="red">*</font></th>
<td><input type="text" id="menuSort" name="menuSort" class="ipt" style="width:60px;" onkeypress="return WST.isNumberKey(event);" onkeyup="javascript:WST.isChinese(this,1)" maxlength="10" value="0" aria-required="true" data-tip="请输入排序号"></td>
</tr>
<tr>
<td colspan='2' align='center'>
<button type="submit" class="btn btn-primary btn-mright"><i class="fa fa-check"></i>&nbsp;</button>
<button type="button" class="btn" onclick="javascript:history.go(-1)"><i class="fa fa-angle-double-left"></i>&nbsp;</button>
</td>
</tr>
</table>
</form>
<div id='wxmenusBox' style='display:none'>
</div>
{/block}

View File

@ -0,0 +1,41 @@
{extend name="base" /}
{block name="css"}
<link rel="stylesheet" type="text/css" href="__ADMIN__/js/mmgrid/mmGrid.css?v={$v}" />
{/block}
{block name="js"}
<script src="__ADMIN__/js/wstgridtree.js?v={$v}" type="text/javascript"></script>
<script src="__ADMIN__/wxmenus/wxmenus.js?v={$v}" type="text/javascript"></script>
<script>
$(function(){initGrid();inView();})
</script>
{/block}
{block name="main"}
<style>
html{height: 100%;}
body{height: 100%;overflow:hidden}
.mmGrid{border-bottom:0px}
</style>
<div id='alertTips' class='alert alert-success alert-tips fade in'>
<div id='headTip' class='head'><i class='fa fa-lightbulb-o'></i>操作说明</div>
<ul class='body'>
<li>本功能主要用于管理微信公众号菜单,使用前请先在微信认证平台中停用了微信公众号自定义菜单功能。</li>
</ul>
</div>
<div class="wst-toolbar">
{if WSTGrant('WX_ZDYCD_01')}
<button class="btn btn-success f-right" onclick='javascript:toEdit(0,0)'><i class='fa fa-plus'></i>新增</button>
{/if}
{if WSTGrant('WX_ZDYCD_00')}
<button class="btn btn-success f-right" style="margin-right:10px;" onclick='javascript:adSynchro();'><i class='fa fa-cloud-upload'></i>同步到微信菜单</button>
<button class="btn btn-success f-right" style="margin-right:10px;" onclick='javascript:wxSynchro();'><i class='fa fa-cloud-upload'></i>与微信菜单同步</button>
{/if}
<div style='clear:both'></div>
</div>
<div class="wst-views">
<div class="reveal">
<div class="revealt"></div>
<div class="revealb"><i></i><div class="ui" id="list"></div></div>
</div>
</div>
<div class='mmGrid layui-form wst-maingr' id="maingrid"></div>
{/block}

View File

@ -0,0 +1,185 @@
var grid;
function initGrid(){
grid = $('#maingrid').WSTGridTree({
url:WST.U('admin/wxmenus/pageQuery'),
pageSize:10000,
pageSizeOptions:[10000],
height:'99%',
width:'100%',
minColToggle:6,
delayLoad :true,
rownumbers:true,
columns: [
{ display: '分类名称',width:120,name: 'menuName', id:'menuId', align: 'left',isSort: false},
{ display: '页面地址',name: 'menuUrl',isSort: false,
render: function (rowdata){
var m = "<div class='urled' style='word-wrap: break-word;padding:6px;'>"+rowdata.menuUrl+"</div>";
return m;
}},
{ display: '类型', name: 'type',width: 100,isSort: false,
render: function (rowdata){
if(rowdata['menuType']==0)t = "";
if(rowdata['menuType']==1)t = "点击推送";
if(rowdata['menuType']==2)t = "跳转地址";
if(rowdata['menuType']==3)t = "扫码推送";
if(rowdata['menuType']==4)t = "扫码推送且弹出“消息接收中”提示框";
if(rowdata['menuType']==5)t = "系统拍照发图";
if(rowdata['menuType']==6)t = "拍照或者相册发图";
if(rowdata['menuType']==7)t = "微信相册发图";
if(rowdata['menuType']==8)t = "地理位置选择";
if(rowdata['menuType']==9)t = "下发消息(除文本消息)";
if(rowdata['menuType']==10)t = "图文消息地址";
return t;
}},
{ display: '序号', name: 'menuSort',width: 80,isSort: false},
{ display: '操作', name: 'op',width: 150,isSort: false,
render: function (rowdata){
var h = "";
if(WST.GRANT.WX_ZDYCD_01)if(rowdata['parentId']==0)h += "<a class='btn btn-green' href='javascript:toEdit("+rowdata["menuId"]+",0)'><i class='fa fa-plus'></i>新增子菜单</a> ";
if(WST.GRANT.WX_ZDYCD_02)h += "<a class='btn btn-blue' href='javascript:toEdit("+rowdata["parentId"]+","+rowdata["menuId"]+")'><i class='fa fa-pencil'></i>修改</a> ";
if(WST.GRANT.WX_ZDYCD_03)h += "<a class='btn btn-red' href='javascript:toDel("+rowdata["parentId"]+","+rowdata["menuId"]+")'><i class='fa fa-trash-o'></i>删除</a> ";
return h;
}}
]
});
}
//与微信菜单同步
function wxSynchro(){
var box = WST.confirm({content:"您确定与微信菜单同步吗?",yes:function(){
var loading = WST.msg('正在同步数据,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/wxmenus/synchroWx'),'',function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
inView();
WST.msg(json.msg,{icon:1});
layer.close(box);
grid.reload();
}else{
WST.msg(json.msg,{icon:2});
}
});
}});
}
//同步到微信菜单
function adSynchro(){
var box = WST.confirm({content:"您确定同步到微信菜单吗?",yes:function(){
var loading = WST.msg('正在同步数据,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/wxmenus/synchroAd'),'',function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
WST.msg(json.msg,{icon:1});
layer.close(box);
grid.reload();
}else{
WST.msg(json.msg,{icon:2});
}
});
}});
}
function toEdit(parentId,menuId){
location.href=WST.U('admin/wxmenus/toEdit','menuId='+menuId+'&parentId='+parentId);
}
function wayChange(type){
if(type==1){
WST.showHide(1,'#urltext');
WST.showHide('','.newstext');
}else{
WST.showHide('','#urltext');
WST.showHide(1,'.newstext');
}
}
function matChange(n){
$("#view"+n).show().siblings('.j-view').hide();
}
//素材选择
function addMaterial(n){
var title = '选择文本素材';
if(n==2)title= '选择图文素材';
if(n==3)title= '选择图文素材';
if(n==4)title= '选择语音素材';
if(n==5)title= '选择视频素材';
var box = WST.open({title:title,type:1,content:$('#wxmenusBox'),area: ['800px', '500px'],btn:['确定','取消'],yes:function(){
}});
}
function toEdits(id){
var params = WST.getParams('.ipt');
var loading = WST.msg('正在提交数据,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/wxmenus/'+((id>0)?"edit":"add")),params,function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
WST.msg(json.msg,{icon:1},function(){
location.href=WST.U('admin/wxmenus/index');
});
}else{
WST.msg(json.msg,{icon:2});
}
});
}
function toDel(pid,id){
var box = WST.confirm({content:"您确定要删除该菜单吗?",yes:function(){
var loading = WST.msg('正在提交数据,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/wxmenus/del'),{id:id},function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
inView();
WST.msg(json.msg,{icon:1});
layer.close(box);
grid.reload(pid);
}else{
WST.msg(json.msg,{icon:2});
}
});
}});
}
function inView(){
$.post(WST.U('admin/wxmenus/listQuery'),'',function(data,textStatus){
var json = WST.toAdminJson(data);
$("#list").html('');
if(json && json.length>0){
var html = [];
for(var i=0;i<json.length;i++){
var me = json[i];
html.push('<div class="li" onclick="javascript:liSelected(this);">'+WST.cutStr(me.menuName,8));
html.push('<div class="lis" style="display:none;">');
if(me.listSon.length>0){
for(var s=0;s<me.listSon.length;s++){
html.push('<span class="list">'+WST.cutStr(me.listSon[s].menuName,8)+'</span>');
}
}
html.push("</div>");
html.push("</div>");
}
$("#list").html(html.join(""));
}
});
}
function liSelected(obj){
$(obj).addClass('selected').children('.lis').show();
$(obj).siblings().removeClass('selected').children('.lis').hide();
}
$(function(){
var windowH = $(window).height();
var windowW = $(window).width();
$('.urled').css('width',windowW/4);
if(windowH > 820){
$('.wst-views').css('height',800);
}else{
$('.wst-views').css('height',windowH-35);
}
$('.wst-maingr').css('width',windowW-335);
})
$(window).resize(function(){
var windowH = $(window).height();
var windowW = $(window).width();
$('.urled').css('width',windowW/4);
if(windowH > 820){
$('.wst-views').css('height',800);
}else{
$('.wst-views').css('height',windowH-35);
}
$('.wst-maingr').css('width',windowW-335);
})