Browse Source

Merge branch 'dev3.3' of http://192.168.3.207:10080/qmx/jy-data-extract into dev3.3

fengweiqiang 5 năm trước cách đây
mục cha
commit
511e119ecd

+ 93 - 28
dataprocess/src/front/front.go

@@ -2,6 +2,7 @@ package front
 
 import (
 	qu "qfw/util"
+	"time"
 
 	. "../util"
 
@@ -11,54 +12,60 @@ import (
 
 type Front struct {
 	*xweb.Action
-	homepage  xweb.Mapper `xweb:"/"`                //登录页面
-	login     xweb.Mapper `xweb:"/front/login"`     //登录
+	login     xweb.Mapper `xweb:"/"`                //登录页面
 	index     xweb.Mapper `xweb:"/front/index"`     //index页面
 	logout    xweb.Mapper `xweb:"/front/logout"`    //注销
-	updatepwd xweb.Mapper `xweb:"/front/updatepwd"` //注销
-}
+	updatepwd xweb.Mapper `xweb:"/front/updatepwd"` //更新密码
 
-func (f *Front) Homepage() {
-	f.Render("login.html")
+	user xweb.Mapper `xweb:"/front/user"`      //查所有用户
+	del  xweb.Mapper `xweb:"/front/user/del"`  //删除用户
+	save xweb.Mapper `xweb:"/front/user/save"` //删除用户
 }
 
 func (f *Front) Login() {
-	email := f.GetString("email")
-	password := f.GetString("pwd")
-	//f.SetSession("password", password)
-	passwordEn := qu.SE.EncodeString(password)
-	query := bson.M{
-		"s_email": email,
-		"s_pwd":   passwordEn,
-	}
-	user, _ := Mgo.FindOne("user", query)
-	checked := false
-	if (*user) != nil {
-		checked = true
-		f.SetSession("user", map[string]interface{}{
-			"name":  (*user)["s_name"],
-			"role":  (*user)["s_role"],
-			"pwd":   password,
-			"email": email,
-			"id":    qu.BsonIdToSId((*user)["_id"]),
+	defer qu.Catch()
+	if f.Method() == "POST" {
+		email := f.GetString("email")
+		password := f.GetString("pwd")
+		//f.SetSession("password", password)
+		passwordEn := qu.SE.EncodeString(password)
+		query := bson.M{
+			"s_email": email,
+			"s_pwd":   passwordEn,
+		}
+		user, _ := Mgo.FindOne("user", query)
+		checked := false
+		if (*user) != nil {
+			checked = true
+			f.SetSession("user", map[string]interface{}{
+				"name":  (*user)["s_name"],
+				"role":  (*user)["s_role"],
+				"pwd":   password,
+				"email": email,
+				"id":    qu.BsonIdToSId((*user)["_id"]),
+			})
+		}
+		f.ServeJson(map[string]interface{}{
+			"checked": checked,
 		})
+	} else {
+		f.Render("login.html")
 	}
-	f.ServeJson(map[string]interface{}{
-		"checked": checked,
-	})
 
 }
 
 func (f *Front) Index() {
+	defer qu.Catch()
 	f.Render("index.html")
 }
 
 func (f *Front) Logout() {
 	f.DelSession("user")
-	f.Render("login.html")
+	f.Redirect("/")
 }
 
 func (f *Front) Updatepwd() {
+	defer qu.Catch()
 	id := f.GetString("id")
 	password := f.GetString("pwd")
 	set := bson.M{
@@ -73,3 +80,61 @@ func (f *Front) Updatepwd() {
 	}
 
 }
+
+func (f *Front) User() {
+	defer qu.Catch()
+	if f.Method() == "POST" {
+		data, _ := Mgo.Find("user", nil, `{"_id":1}`, nil, false, -1, -1)
+		for _, d := range *data {
+			d["s_pwd"] = qu.SE.DecodeString(qu.ObjToString(d["s_pwd"]))
+		}
+		f.ServeJson(map[string]interface{}{
+			"data": data,
+		})
+	} else {
+		f.Render("com/user.html")
+	}
+}
+
+func (f *Front) Del() {
+	defer qu.Catch()
+	_id := f.GetString("_id")
+	query := bson.M{
+		"_id": qu.StringTOBsonId(_id),
+	}
+	b := Mgo.Del("user", query)
+	f.ServeJson(map[string]interface{}{
+		"rep": b,
+	})
+}
+
+func (f *Front) Save() {
+	_id := f.GetString("_id")
+	role := f.GetString("role")
+	name := f.GetString("name")
+	email := f.GetString("email")
+	pwd := f.GetString("pwd")
+	set := bson.M{
+		"$set": bson.M{
+			"s_role":       role,
+			"s_name":       name,
+			"s_email":      email,
+			"s_pwd":        qu.SE.EncodeString(pwd),
+			"i_comeintime": time.Now().Unix(),
+		},
+	}
+	query := bson.M{
+		"_id": qu.StringTOBsonId(_id),
+	}
+	if _id == "" {
+		query = bson.M{
+			"_id": bson.NewObjectId(),
+		}
+	}
+
+	b := Mgo.Update("user", query, set, true, false)
+	//b := Mgo.UpdateById("user", _id, set)
+	f.ServeJson(map[string]interface{}{
+		"rep": b,
+	})
+}

+ 1 - 0
dataprocess/src/front/memu.go

@@ -0,0 +1 @@
+package front

+ 1 - 0
dataprocess/src/front/role.go

@@ -0,0 +1 @@
+package front

+ 1 - 1
dataprocess/src/main.go

@@ -29,7 +29,7 @@ func init() {
 	xweb.AddAction(&front.Front{})
 	xweb.RootApp().AppConfig.SessionTimeout = 1 * time.Hour
 	xweb.RootApp().Logger.SetOutputLevel(4)
-	xweb.AddTmplVar("add", func(a, b int) int { return a + b })
+	//xweb.AddTmplVar("add", func(a, b int) int { return a + b })
 }
 
 func main() {

+ 5 - 5
dataprocess/src/web/templates/com/memu.html

@@ -26,7 +26,7 @@
 	            <li><a href="/admin/rule/pre"><i class="fa fa-circle-o"></i>菜单</a></li>
 			</ul>
         </li>
-		<li><a href="/admin/version"><i class="fa fa-navicon"></i><span>结果追踪</span></a></li>
+		<li><a href="/front/usertest"><i class="fa fa-navicon"></i><span>结果追踪</span></a></li>
         <li><a href="/admin/distribution"><i class="fa fa-laptop"></i> <span>分布式抽取</span></a></li>
 		<li class="treeview">
 			<a href="/admin/user"><i class="fa fa-link"></i> <span>权限管理</span>
@@ -34,14 +34,14 @@
                 <i class="fa fa-angle-left pull-right"></i>
             </span></a>
           	<ul class="treeview-menu">
-	            <li><a href="/admin/user"><i class="fa fa-circle-o"></i>人员管理</a></li>
+	            <li><a href="/front/user"><i class="fa fa-circle-o"></i>人员管理</a></li>
 				<li><a href="/admin/rule/pre"><i class="fa fa-circle-o"></i>角色管理</a></li>
 				<li><a href="/admin/rule/pre"><i class="fa fa-circle-o"></i>菜单管理</a></li>
 			</ul>
 		</li>
       </ul>
     </section>
-	<span id="role" class="hidden">{{session "role"}}</span>
+	<!--<span id="role" class="hidden">{{session "role"}}</span>-->
 </aside>
 <script>
 /**$(function () {
@@ -69,7 +69,7 @@
 			}
         }
     })
-})
+})*/
 function menuActive(name){
     setTimeout(function(){
         $(".sidebar-menu").tree();
@@ -86,5 +86,5 @@ function menuActive(name){
 	a.parent().parent().parent().addClass("menu-open");
     },100);
 }
- */
+ 
 </script>

+ 204 - 0
dataprocess/src/web/templates/com/user.html

@@ -0,0 +1,204 @@
+{{include "com/inc.html"}}
+<!-- Main Header -->
+{{include "com/header.html"}}
+<!-- Left side column. 权限菜单 -->
+{{include "com/memu.html"}}
+
+<!-- Content Wrapper. Contains page content -->
+<div class="content-wrapper">
+	<section class="content-header">
+		<h1>
+			<small><button type="button" class="btn btn-primary" data-toggle="modal" onclick="add()">新增用户</button></small>
+		</h1>
+		<ol class="breadcrumb">
+		  <li><a href="/front/user"><i class="fa fa-dashboard"></i> 人员管理</a></li>
+		</ol>
+    </section>
+  <!-- Main content -->
+  <section class="content">
+      <div class="row">
+	      <div class="col-xs-12">
+	        <div class="box">
+		        <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>
+		              </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="userform" 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="email" name="email" type="email" class="form-control" placeholder="请输入账号">
+				    </div>
+				</div>
+				<div class="form-group">
+				    <label for="code" class="col-sm-2 control-label">密码:</label>
+				    <div class="col-sm-10">
+				      <input id="pwd" name="pwd" type="password" 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">
+				      <input id="name"  name="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="role" name="role" class="form-control">
+							<option value="2">开发员</option>
+							<option value="1">审核员</option>
+					  		<option value="0">管理员</option>
+						</select>
+				    </div>
+				</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="save()">保存</button>
+	    	</div>
+		</div>
+	    <!-- /.modal-content -->
+	    </form>
+  	</div>
+  <!-- /.modal-dialog -->
+</div>
+<!-- /.modal -->
+	
+<!-- footer -->
+{{include "com/footer.html"}}
+
+<script>
+menuActive("user")
+var _id=""; 
+$(function () {
+	ttable=$('#dataTable').DataTable({
+		"paging"      : true,
+		"lengthChange": false,
+		"searching"   : true,
+		"ordering"    : true,
+		"info"        : true,
+		"autoWidth"   : false,
+		"ajax": {
+			"url": "/front/user",
+			"type": "post",
+			"data":{}
+		 },
+		"language": {
+            "url": "/dist/js/dataTables.chinese.lang"
+        },
+		"columns": [
+            { "data": "_id",render:function(val,a,row){
+				return row._id
+			}},
+			{ "data": "s_email"},
+			{ "data": "s_name"},
+			{ "data": "s_role",render:function(val,a,row){
+				role=""
+				if(val==2){
+					role="开发员"
+				}else if(val==1){
+					role="审核员"
+				}else if(val==0){
+                    role="管理员"
+                }else{
+					role="超级管理员"
+				}
+				return role
+			}},
+			{ "data":"_id",render:function(val,a,row){
+				return  "<a href='#' onclick='edit(\""+row['_id']+"\",\""+row['s_email']+"\",\""+row['s_name']+"\",\""+row['s_role']+"\",\""+row['s_pwd']+"\")'><i class='fa fa-fw fa-edit text-yellow'></i></a> &nbsp;"+
+						"<a href='#' onclick='del(\""+val+"\")'><i class='fa fa-fw fa-trash text-red'></i></a>"
+			}}
+       	]
+	});
+	//ttable.on('init.dt', function () {});
+})
+function save(){
+	role=$("#role").val();
+	email=$("#email").val();
+	name=$("#name").val();
+	pwd=$("#pwd").val();
+	if(email==""||name==""||role==""||pwd==""){
+		alert("表单填写不完整!")
+		return false;
+	}
+	$.ajax({
+		url:"/front/user/save",
+		type:"post",
+		data:{"role":role,"_id":_id,"email":email,"name":name,"pwd":pwd},
+		success:function(r){
+			if(r.rep){
+				$("#modal-info").modal("hide");
+				ttable.ajax.reload();
+			}else{
+				alert("保存失败");
+			}
+		}
+	})
+}
+function edit(id,email,name,role,pwd){
+	_id=id;
+	$("#modal-info #email").val(email);
+	$("#modal-info #name").val(name);
+	$("#modal-info #role").val(role);
+	$("#modal-info #pwd").val(pwd);
+	$("#modal-info #email").attr("disabled",true);
+	$("#modal-info #name").attr("disabled",true);
+	$("#modal-info #pwd").attr("disabled",true);
+	$("#modal-info").modal("show");
+}
+function del(_id){
+	showConfirm("确定删除?", function() {
+		$.ajax({
+			url:"/front/user/del",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				if(r.rep){				
+					ttable.ajax.reload();
+				}else{
+					showTip("删除失败", 1000, function() {});
+				}
+			}
+		})
+	});
+}
+function add(){
+	_id="";
+	$("#modal-info #email").val("");
+	$("#modal-info #name").val("");
+	$("#modal-info #pwd").val("");
+	$("#modal-info #role").val("2");
+	$("#modal-info #email").removeAttr("disabled",true);
+	$("#modal-info #name").removeAttr("disabled",true);
+	$("#modal-info #pwd").removeAttr("disabled",true);
+	$("#modal-info").modal("show");
+}
+</script>

+ 1 - 1
dataprocess/src/web/templates/index.html

@@ -13,4 +13,4 @@
   </div>
 
 <!-- footer -->
-{{include "com/footer.html"}}
+{{include "com/footer.html"}}

+ 1 - 1
dataprocess/src/web/templates/login.html

@@ -81,7 +81,7 @@ function login(){
 		return false;
 	}
 	$.ajax({
-		url:"/front/login",
+		url:"/",
 		type:"post",
 		data:{"email":email,"pwd":pwd},
 		success:function(r){