You've already forked qlg.tsgz.moe
							
							Init Repo
This commit is contained in:
		
							
								
								
									
										110
									
								
								hyhproject/admin/view/addons/addons.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										110
									
								
								hyhproject/admin/view/addons/addons.js
									
									
									
									
									
										Executable 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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										168
									
								
								hyhproject/admin/view/addons/config.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										168
									
								
								hyhproject/admin/view/addons/config.html
									
									
									
									
									
										Executable 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>    
 | 
			
		||||
		<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}
 | 
			
		||||
							
								
								
									
										27
									
								
								hyhproject/admin/view/addons/list.html
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								hyhproject/admin/view/addons/list.html
									
									
									
									
									
										Executable 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;">  安装插件后,进入“设置”,填写配置信息,然后点击保存!</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}
 | 
			
		||||
		Reference in New Issue
	
	Block a user