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,110 @@
var mmg;
function initGrid(){
var h = WST.pageHeight();
var cols = [
{title:'名称', name:'title', width: 50,sortable:true},
{title:'标识', name:'name', width: 10,sortable:true},
{title:'描述', name:'description', width: 220,sortable:true},
{title:'状态', name:'status', width: 10,sortable:true, renderer: function(val,item,rowIndex){
if(item['status']==0){
return "<span class='statu-wait'><i class='fa fa-ban'></i> "+item.statusName+"</span>";
}else if(item['status']==2){
return "<span class='statu-no'><i class='fa fa-ban'></i> "+item.statusName+"</span>";
}else{
return "<span class='statu-yes'><i class='fa fa-check-circle'></i> "+item.statusName+"</span>";
}
}},
{title:'作者', name:'author', width: 10,sortable:true},
{title:'版本', name:'version', width: 5,sortable:true},
{title:'操作', name:'' ,width:100, align:'center', renderer: function(val,item,rowIndex){
var h = "";
if(WST.GRANT.CJGL_01 && item['status']>0 && item['isConfig']==1)h += "<a class='btn btn-blue' href='"+WST.U('admin/Addons/toEdit','id='+item['addonId'])+"'><i class='fa fa-gear'></i>设置</a> ";
if(WST.GRANT.CJGL_02 && item['status']==0)h += "<a class='btn btn-blue' href='javascript:install(" + item['addonId'] + ")'><i class='fa fa-gear'></i>安装</a> ";
if(WST.GRANT.CJGL_03 && item['status']>0)h += "<a class='btn btn-red' href='javascript:uninstall(" + item['addonId'] + ")'><i class='fa fa-trash-o'></i>卸载</a> ";
if(WST.GRANT.CJGL_04 && item['status']==2)h += "<a class='btn btn-blue' href='javascript:enable(" + item['addonId'] + ")'><i class='fa fa-check'></i>启用</a> ";
if(WST.GRANT.CJGL_05 && item['status']==1)h += "<a class='btn btn-red' href='javascript:disable(" + item['addonId'] + ")'><i class='fa fa-ban'></i>禁用</a> ";
return h;
}}
];
mmg = $('.mmg').mmGrid({height: h-85,indexCol: true, cols: cols,method:'POST',
url: WST.U('admin/addons/pageQuery'), fullWidthRows: true, autoLoad: true,remoteSort: true,sortName:'status',sortStatus:'desc',
plugins: [
$('#pg').mmPaginator({})
]
});
}
//安装
function install(id){
var loading = WST.msg('正在安装,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/addons/install'),{id:id},function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
WST.msg("安装成功,请刷页面",{icon:1});
layer.close(loading);
addonsQuery();
}else{
WST.msg(json.msg,{icon:2});
}
});
}
//卸载
function uninstall(id){
var box = WST.confirm({content:"您确定要卸载吗?",yes:function(){
var loading = WST.msg('正在卸载,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/addons/uninstall'),{id:id},function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
WST.msg("卸载成功,请刷页面",{icon:1});
layer.close(box);
addonsQuery();
}else{
WST.msg(json.msg,{icon:2});
}
});
}});
}
//禁用
function enable(id){
var loading = WST.msg('正在启用,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/addons/enable'),{id:id},function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
WST.msg("启用成功",{icon:1});
layer.close(loading);
addonsQuery();
}else{
WST.msg(json.msg,{icon:2});
}
});
}
//启用
function disable(id){
var loading = WST.msg('正在禁用,请稍后...', {icon: 16,time:60000});
$.post(WST.U('admin/addons/disable'),{id:id},function(data,textStatus){
layer.close(loading);
var json = WST.toAdminJson(data);
if(json.status=='1'){
WST.msg("禁用成功",{icon:1});
layer.close(loading);
addonsQuery();
}else{
WST.msg(json.msg,{icon:2});
}
});
}
//查询
function addonsQuery(){
var query = WST.getParams('.query');
query.page = 1;
mmg.load(query);
}

View File

@ -0,0 +1,168 @@
{extend name="base" /}
{block name="main"}
<div >
<form action="{:url('saveConfig')}" method="post" style="line-height: 30px;margin:10px;" autocomplete="off">
<div class="main-title cf">
<div class="addoncfg-title">插件配置 [ {$data.title} ]</div>
</div>
{foreach name="data['config']" item="form" key="o_key"}
<div class="form-item cf">
{present name="form.title"}
<label class="item-label">
<span style="font-weight: bold;">{$form.title|default=''}</span>
</label>
{/present}
{switch name="form.type"}
{case value="tips"}
<div>
{$form.value}
</div>
{/case}
{case value="text"}
<div>
<input type="text" name="config[{$o_key}]" class="text input-large" value="{$form.value}" style="width:400px;"><?php if(isset($form['tips'])){ ?><span>{$form.tips}</span><?php } ?>
</div>
{/case}
{case value="password"}
<div>
<input type="password" name="config[{$o_key}]" class="text input-large" value="{$form.value}">
</div>
{/case}
{case value="hidden"}
<input type="hidden" name="config[{$o_key}]" value="{$form.value}">
{/case}
{case value="radio"}
<div class="layui-form">
{foreach name="form.options" item="opt" key="opt_k"}
<label class="radio">
<input type="radio" name="config[{$o_key}]" value="{$opt_k}" {eq name="form.value" value="$opt_k"} checked{/eq} title="{$opt}">
</label>
{/foreach}
</div>
{/case}
{case value="checkbox"}
<div>
{foreach name="form.options" item="opt" key="opt_k"}
<label class="checkbox">
{php}
is_null($form["value"]) && $form["value"] = array();
{/php}
<input type="checkbox" name="config[{$o_key}][]" value="{$opt_k}" {in name="opt_k" value="$form.value"}checked{/in}>{$opt}
</label>
{/foreach}
</div>
{/case}
{case value="select"}
<div>
<select name="config[{$o_key}]">
{foreach name="form.options" item="opt" key="opt_k"}
<option value="{$opt_k}" {eq name="form.value" value="$opt_k"} selected{/eq}>{$opt}</option>
{/foreach}
</select>
</div>
{/case}
{case value="textarea"}
<div>
<label class="textarea input-large">
<textarea name="config[{$o_key}]" style="width:500px;height:200px;">{$form.value}</textarea>
</label>
</div>
{/case}
{case value="group"}
<ul class="tab-nav nav">
{volist name="form.options" id="li"}
<li data-tab="tab{$i}" {eq name="i" value="1"}class="current" {/eq} ><a href="javascript:void(0);">{$li.title}</a></li>
{/volist}
<div style="clear: both;"></div>
</ul>
<div class="tab-content">
{volist name="form.options" id="tab"}
<div id="tab{$i}" class="tab-pane {eq name="i" value="1"}in{/eq} tab{$i}">
{foreach name="tab['options']" item="tab_form" key="o_tab_key"}
<label class="item-label">
<span style="font-weight: bold;">{$tab_form.title|default=''}</span>
{present name="tab_form.tip"}
<span class="check-tips">{$tab_form.tip}</span>
{/present}
</label>
<div>
{switch name="tab_form.type"}
{case value="tips"}
<div>
{$form.value}
</div>
{/case}
{case value="text"}
<input type="text" name="config[{$o_tab_key}]" class="text input-large" value="{$tab_form.value}" style="width:400px;">
{/case}
{case value="password"}
<input type="password" name="config[{$o_tab_key}]" class="text input-large" value="{$tab_form.value}">
{/case}
{case value="hidden"}
<input type="hidden" name="config[{$o_tab_key}]" value="{$tab_form.value}">
{/case}
{case value="radio"}
{foreach name="tab_form.options" item="opt" key="opt_k"}
<label class="layui-form radio">
<input type="radio" name="config[{$o_tab_key}]" value="{$opt_k}" {eq name="tab_form.value" value="$opt_k"} checked{/eq} title="{$opt}">
</label>
{/foreach}
{/case}
{case value="checkbox"}
{foreach name="tab_form.options" item="opt" key="opt_k"}
<label class="checkbox">
{php}
is_null($tab_form["value"]) && $tab_form["value"] = array();
{/php}
<input type="checkbox" name="config[{$o_tab_key}][]" value="{$opt_k}" {in name="opt_k" value="$tab_form.value"} checked{/in}>{$opt}
</label>
{/foreach}
{/case}
{case value="select"}
<select name="config[{$o_tab_key}]">
{foreach name="tab_form.options" item="opt" key="opt_k"}
<option value="{$opt_k}" {eq name="tab_form.value" value="$opt_k"} selected{/eq}>{$opt}</option>
{/foreach}
</select>
{/case}
{case value="textarea"}
<label>
<textarea name="config[{$o_tab_key}]">{$tab_form.value}</textarea>
</label>
{/case}
{/switch}
</div>
{/foreach}
</div>
{/volist}
</div>
{/case}
{/switch}
</div>
{/foreach}
<div class="form-item cf wst-bottombar" style='padding-left:130px;padding-top:10px'>
<input type="hidden" name="id" value="{$addonId}" readonly/>
<button type="submit" class="btn submit-btn ajax-post btn-primary btn-mright" ><i class="fa fa-check"></i>确 定</button>&nbsp;&nbsp;&nbsp;&nbsp;
<button type="button" class='btn' onclick="location.href='{:url("admin/addons/index")}'"><i class="fa fa-angle-double-left"></i>返回</button>
</div>
</form>
</div>
{/block}
{block name="js"}
<script type="text/javascript" charset="utf-8">
$(function(){
$(".tab-nav li").click(function(){
var self = $(this), target = self.data("tab");
self.addClass("current").siblings(".current").removeClass("current");
//window.location.hash = "#" + target.substr(3);
$(".tab-pane.in").removeClass("in");
$("." + target).addClass("in");
}).filter("[data-tab=tab" + window.location.hash.substr(1) + "]").click();
})
</script>
{/block}

View File

@ -0,0 +1,27 @@
{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/mmgrid/mmGrid.js?v={$v}" type="text/javascript"></script>
<script src="__ADMIN__/addons/addons.js?v={$v}" type="text/javascript"></script>
{/block}
{block name="main"}
<div class="wst-toolbar">
<div id="query" style="float:left;">
<input type="text" name="keyWords" placeholder="插件名称、标识" id="keyWords" class="j-ipt query">
<button type="button" class='btn btn-primary btn-mright' onclick="javascript:addonsQuery()"><i class="fa fa-search"></i>查询</button>
<span style="color:red;font-weight:bold;">&nbsp;&nbsp;安装插件后,进入“设置”,填写配置信息,然后点击保存!</span>
</div>
<div style="clear:both"></div>
</div>
<div class='wst-grid'>
<div id="mmg" class="mmg"></div>
<div id="pg" style="text-align: right;"></div>
</div>
<script>
$(function(){initGrid()});
</script>
{/block}