浏览代码

前端架构

zhangjinkun 7 年之前
父节点
当前提交
ca9035fac0

+ 60 - 0
src/jy/admin/version.go

@@ -0,0 +1,60 @@
+// version
+package admin
+
+import (
+	. "jy/mongodbutil"
+	"net/http"
+	"time"
+
+	"github.com/gin-gonic/gin"
+)
+
+func init() {
+	Admin.GET("/version", func(c *gin.Context) {
+		//版本创建人列表
+		u, _ := Mgo.Find("user", `{"role":"0"}`, nil, nil, false, -1, -1)
+		v, _ := Mgo.Find("version", `{}`, nil, nil, false, -1, -1)
+		c.HTML(
+			http.StatusOK, "version.html",
+			gin.H{"user": u, "version": v},
+		)
+	})
+	Admin.POST("/version/data", Version)
+	Admin.POST("/version/save", VersionSave)
+	Admin.POST("/version/use", VersionUse)
+}
+
+func Version(c *gin.Context) {
+	data, _ := Mgo.Find("version", `{}`, `{"_id":-1}`, nil, false, -1, -1)
+	c.JSON(200, gin.H{"data": data})
+}
+func VersionSave(c *gin.Context) {
+	version, _ := c.GetPostForm("version")
+	preversion, _ := c.GetPostForm("preversion")
+	cname, _ := c.GetPostForm("cname")
+	descript, _ := c.GetPostForm("descript")
+	isuse, _ := c.GetPostForm("isuse")
+	data := map[string]interface{}{
+		"version":    version,
+		"preversion": preversion,
+		"cname":      cname,
+		"descript":   descript,
+		"isuse":      isuse,
+		"time":       time.Now().Unix(),
+	}
+	b := Mgo.Save("version", data)
+	c.JSON(200, gin.H{"rep": b})
+}
+func VersionUse(c *gin.Context) {
+	_id, _ := c.GetPostForm("_id")
+	isuse, _ := c.GetPostForm("isuse")
+	if isuse == "1" { //启用确保只有一个版本
+		l, _ := Mgo.Find("version", `{"isuse":"1"}`, nil, nil, false, -1, -1)
+		if len(*l) > 0 {
+			c.JSON(200, gin.H{"rep": false})
+			return
+		}
+	}
+	b := Mgo.UpdateById("version", _id, `{"$set":{"isuse":"`+isuse+`"}}`)
+	c.JSON(200, gin.H{"rep": b})
+}

+ 1 - 1
src/jy/front/front.go

@@ -14,8 +14,8 @@ func init() {
 	front := Router.Group("/")
 	{
 		front.Static("/front", "./web/templates/front")
+		front.Static("/res", "./web/res")
 	}
-	front.Static("/res", "./web/res")
 	front.POST("/login", Login) //登录
 }
 

+ 67 - 15
src/web/templates/admin/com_header.html

@@ -19,11 +19,11 @@
           <!-- User Account Menu -->
           <li class="dropdown user user-menu">
             <!-- Menu Toggle Button -->
-            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+            <a href="#" class="dropdown-toggle" data-toggle="modal" data-target="#modal-topuserinfo">
               <!-- The user image in the navbar-->
               <img src="../res/dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
               <!-- hidden-xs hides the username on small devices so only the image appears. -->
-              <span class="hidden-xs">admin</span>
+              <span class="hidden-xs">{{ .session.user }}admin</span>
             </a>
           </li>
         </ul>
@@ -33,20 +33,72 @@
 
 <!-- common modal -->  
 <div id="com-alert" class="modal" style="z-index:9999;display: none;" >  
-      <div class="modal-dialog modal-sm">  
-        <div class="modal-content">  
-          <div class="modal-header">  
-            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>  
-            <h5 class="modal-title"><i class="fa fa-exclamation-circle"></i> [Title]</h5>  
-          </div>  
-          <div class="modal-body small">  
-            <p>[Message]</p>  
-          </div>  
-          <div class="modal-footer" >  
-            <button type="button" class="btn btn-default cancel" data-dismiss="modal">[BtnCancel]</button>  
-            <button type="button" class="btn btn-primary ok" data-dismiss="modal">[BtnOk]</button>  
-          </div>  
+    <div class="modal-dialog modal-sm">  
+      <div class="modal-content">  
+        <div class="modal-header">  
+          <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>  
+          <h5 class="modal-title"><i class="fa fa-exclamation-circle"></i> [Title]</h5>  
+        </div>  
+        <div class="modal-body small">  
+          <p>[Message]</p>  
+        </div>  
+        <div class="modal-footer" >  
+          <button type="button" class="btn btn-default cancel" data-dismiss="modal">[BtnCancel]</button>  
+          <button type="button" class="btn btn-primary ok" data-dismiss="modal">[BtnOk]</button>  
         </div>  
       </div>  
     </div>  
+</div>
+
+<div id="modal-topuserinfo" class="modal fade">
+  	<div class="modal-dialog">
+	    <form id="topuserform" class="form-horizontal" role="form">
+		<div class="modal-content">
+		    <div class="modal-header">
+		        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+		          <span aria-hidden="true">&times;</span></button>
+		        <h4 class="modal-title">用户信息</h4>
+		    </div>
+		    <div class="modal-body">
+		     	<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">账号:</label>
+				    <div class="col-sm-10">
+				      <input id="t_email" type="email" class="form-control" id="code" placeholder="请输入账号">
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">密码:</label>
+				    <div class="col-sm-10">
+				      <input id="t_pwd" type="password" class="form-control" id="code" placeholder="请输入密码">
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="site" class="col-sm-2 control-label">姓名:</label>
+				    <div class="col-sm-10">
+				      <input id="t_name" type="text" class="form-control" placeholder="请输入姓名">
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="modify" class="col-sm-2 control-label">角色:</label>
+				    <div class="col-sm-10">
+				     	<select id="t_role" class="form-control" id="modify">
+							<option value="2">开发员</option>
+							<option value="1">审核员</option>
+					  		<option value="0">管理员</option>
+						</select>
+				    </div>
+				</div>
+				<div class="modal-footer">
+			        <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
+			        <button type="button" class="btn btn-primary" onclick="t_save()">保存</button>
+	    		</div>	
+		    </div>
+		</div>
+	    <!-- /.modal-content -->
+	    </form>
+  	</div>
+  <!-- /.modal-dialog -->
+</div>
+<!-- /.modal -->
+	  
 {{ end }}

+ 7 - 7
src/web/templates/admin/com_memu.html

@@ -6,15 +6,15 @@
         <!-- Optionally, you can add icons to the links -->
         <li class="active"><a href="/admin/user"><i class="fa fa-link"></i> <span>人员管理</span></a></li>
         <li class="treeview">
-          <a href="#"><i class="fa fa-laptop"></i> <span>其他管理</span>
+          	<a href="#"><i class="fa fa-laptop"></i> <span>版本控制</span>
             <span class="pull-right-container">
                 <i class="fa fa-angle-left pull-right"></i>
-              </span>
-          </a>
-          <ul class="treeview-menu">
-            <li><a href="#"><i class="fa fa-circle-o"></i>管理1</a></li>
-            <li><a href="#"><i class="fa fa-circle-o"></i>管理2</a></li>
-          </ul>
+            </span>
+          	</a>
+          	<ul class="treeview-menu">
+	            <li><a href="/admin/version"><i class="fa fa-circle-o"></i>版本管理</a></li>
+	            <li><a href="#"><i class="fa fa-circle-o"></i>管理2</a></li>
+          	</ul>
         </li>
       </ul>
     </section>

+ 2 - 2
src/web/templates/admin/user.html

@@ -55,7 +55,7 @@
 				<div class="form-group">
 				    <label for="code" class="col-sm-2 control-label">密码:</label>
 				    <div class="col-sm-10">
-				      <input id="pwd" type="password" class="form-control" id="code" placeholder="请输入密码">
+				      <input id="pwd" type="password" class="form-control" placeholder="请输入密码">
 				    </div>
 				</div>
 				<div class="form-group">
@@ -67,7 +67,7 @@
 				<div class="form-group">
 				    <label for="modify" class="col-sm-2 control-label">角色:</label>
 				    <div class="col-sm-10">
-				     	<select id="role" class="form-control" id="modify">
+				     	<select id="role" class="form-control">
 							<option value="2">开发员</option>
 							<option value="1">审核员</option>
 					  		<option value="0">管理员</option>

+ 201 - 0
src/web/templates/admin/version.html

@@ -0,0 +1,201 @@
+{{template "inc"}}
+<!-- Main Header -->
+{{template "header"}}
+<!-- Left side column. 权限菜单 -->
+{{template "memu"}}
+
+<!-- Content Wrapper. Contains page content -->
+<div class="content-wrapper">
+  <!-- Main content -->
+  <section class="content">
+      <div class="row">
+	      <div class="col-xs-12">
+	        <div class="box">
+		        <div class="box-header">
+		            <button type="button" class="btn btn-info" data-toggle="modal" data-target="#modal-info">新增版本</button>
+		        </div>
+		        <!-- /.box-header -->
+		        <div class="box-body">
+		            <table id="dataTable" class="table table-bordered table-hover">
+		              <thead>
+		              <tr>
+		                <th>版本号</th>
+						<th>依赖版本</th>
+						<th>创建人</th>
+						<th>描述</th>
+						<th>是否启用</th>
+						<th>操作</th>
+		              </tr>
+		              </thead>
+		            </table>
+		        </div>
+	          <!-- /.box-body -->
+	        </div>
+        <!-- /.box -->
+		</div>
+	</div>
+  </section>
+</div>
+  
+<div class="modal fade" id="modal-info">
+  	<div class="modal-dialog">
+	    <form id="dataform" class="form-horizontal" role="form">
+		<div class="modal-content">
+		    <div class="modal-header">
+		        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+		          <span aria-hidden="true">&times;</span></button>
+		        <h4 class="modal-title">版本信息</h4>
+		    </div>
+		    <div class="modal-body">
+		     	<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">版本号:</label>
+				    <div class="col-sm-10">
+				      <input id="version" type="text" class="form-control" id="code" placeholder="请输入版本号">
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="modify" class="col-sm-2 control-label">依赖版本:</label>
+				    <div class="col-sm-10">
+				     	<select id="preversion" class="form-control">
+							<option value="">不依赖</option>
+							{{ range .version }}  
+								<option value={{.version}}>{{.version}} </option>
+							{{ end }} 
+						</select>
+				    </div>
+				</div>	
+				<div class="form-group">
+				    <label for="modify" class="col-sm-2 control-label">创建人:</label>
+				    <div class="col-sm-10">
+				     	<select id="cname" class="form-control">
+							<option value=""></option>
+							{{ range .user }}  
+							<option>{{.name}} </option>
+							{{ end }}
+						</select>
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">描述:</label>
+				    <div class="col-sm-10">
+				      <input id="descript" type="text" class="form-control" placeholder="描述">
+				    </div>
+				</div>
+				<!--
+				<div class="form-group">
+				    <label for="site" class="col-sm-2 control-label">是否启用:</label>
+					<div class="col-sm-10">
+						不启用&nbsp;<input type="radio" name="isuse" value="0" checked>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+						启用&nbsp;<input type="radio" name="isuse" value="1">
+					</div>
+				</div>
+				-->
+		    </div>
+		    <div class="modal-footer">
+		        <button type="button" class="btn btn-default" data-dismiss="modal" onclick="reset()">取消</button>
+		        <button type="button" class="btn btn-primary" onclick="save()">保存</button>
+	    	</div>
+		</div>
+	    <!-- /.modal-content -->
+	    </form>
+  	</div>
+  <!-- /.modal-dialog -->
+</div>
+<!-- /.modal -->
+	
+<!-- footer -->
+{{template "footer"}}
+
+<script>
+$(function () {
+	ttable=$('#dataTable').DataTable({
+		"paging"      : false,
+		"lengthChange": false,
+		"searching"   : true,
+		"ordering"    : false,
+		"info"        : true,
+		"autoWidth"   : false,
+		"ajax": {
+			"url": "/admin/version/data",
+			"type": "post",
+			"data":{}
+		 },
+		"language": {
+            "url": "../res/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+            { "data": "version"},
+			{ "data": "preversion"},
+			{ "data": "cname"},
+			{ "data": "descript"},
+			{ "data": "isuse",render:function(val,a,row){
+				tmp=""
+				if(val=="1"){
+					tmp="启用"
+				}else{
+					tmp="未启用"
+				}
+				return tmp
+			}},
+			{"data":"_id",render:function(val,a,row){
+				tmp=""
+				if(row.isuse=="1"){
+					tmp="<a href='#' title='停用' onclick='use(\""+val+"\",\"0\")'><i class='fa fa-fw fa-circle text-green'></i></a>"
+				}else{
+					tmp="<a href='#' title='启用' onclick='use(\""+val+"\",\"1\")'><i class='fa fa-fw fa-circle text-red'></i></a>"
+				} 
+				return  tmp
+			}}
+       	]
+	});
+	//ttable.on('init.dt', function () {});
+})
+function save(){
+	version=$("#version").val()
+	preversion=$("#preversion").val()
+	cname=$("#cname").val()
+	descript=$("#descript").val()
+	//isuse = $("input[name='isuse']:checked").val();
+	if(version==""||cname==""||descript==""){
+		alert("表单填写不完整!")
+		return false;
+	}
+	$.ajax({
+		url:"/admin/version/save",
+		type:"post",
+		data:{"version":version,"preversion":preversion,
+		"cname":cname,"descript":descript,"isuse":"0"},
+		success:function(r){
+			if(r.rep){
+				$("#dataform")[0].reset();
+				$("#modal-info").modal("hide");
+				ttable.ajax.reload();
+			}else{
+				alert("保存失败");
+			}
+		}
+	})
+}
+function use(_id,utype){
+	smg=""
+	if(utype=="1"){
+		smg="确定启用?"
+	}else{
+		smg="确定停用?"
+	}
+	showConfirm(smg, function() {
+		$.ajax({
+			url:"/admin/version/use",
+			type:"post",
+			data:{"_id":_id,"isuse":utype},
+			success:function(r){
+				if(r.rep){				
+					ttable.ajax.reload();
+				}else{
+					showTip("启用失败", 1000, function() {});
+				}
+			}
+		})
+	});
+}
+</script>