Browse Source

no message

Jianghan 3 years ago
parent
commit
6abbdb66af

+ 1 - 0
src/front/front.go

@@ -38,6 +38,7 @@ type Front struct {
 	userModify         xweb.Mapper `xweb:"/front/group/user/modify"`  // 修改用户信息
 	groupList          xweb.Mapper `xweb:"/front/group/list"`         //用户组选择列表
 	userList           xweb.Mapper `xweb:"/front/group/user/list"`    //用户组的普通用户列表
+	groupNameExist     xweb.Mapper `xweb:"/front/group/name/exist"`   //用户组名称是否存在
 
 	//menu
 	menu           xweb.Mapper `xweb:"/front/menu"`            //查一级菜单

+ 5 - 4
src/front/remark.go

@@ -526,6 +526,7 @@ func DealData(tmpLen int, publishtime float64, tmp []map[string]interface{}, mor
 // GetNextDataId 获取当前数据下一条的id
 func GetNextDataId(id, coll, tid string) string {
 	nextIdQuery := map[string]interface{}{
+		"i_ckdata": 0,
 		"_id": map[string]interface{}{
 			"$gt": mgo.StringTOBsonId(id),
 		},
@@ -538,12 +539,14 @@ func GetNextDataId(id, coll, tid string) string {
 		return mgo.BsonIdToSId((*one)[0]["_id"])
 	} else {
 		delete(nextIdQuery, "_id")
+		qu.Debug(nextIdQuery)
 		one, _ = util.Mgo.Find(coll, nextIdQuery, `{"_id":1}`, `{"_id":1}`, true, 0, 1)
 		if len(*one) == 1 && len((*one)[0]) > 0 {
+			qu.Debug((*one))
 			return mgo.BsonIdToSId((*one)[0]["_id"])
 		}
 	}
-	return id
+	return ""
 }
 
 // GetNextDataId1 质检下一条
@@ -571,7 +574,7 @@ func GetNextDataId1(id, coll, tid string) string {
 			return mgo.BsonIdToSId((*one)[0]["_id"])
 		}
 	}
-	return id
+	return ""
 }
 
 func (f *Front) CheckList() {
@@ -641,7 +644,6 @@ func (f *Front) CheckData() {
 			} else {
 				query["s_usertaskid"] = tid
 			}
-			query["b_istag"] = true
 		} else {
 			if stype == "notag" {
 				if datatype == 1 {
@@ -674,7 +676,6 @@ func (f *Front) CheckData() {
 				map[string]interface{}{"v_baseinfo.title": map[string]interface{}{"$regex": search}},
 			}
 		}
-		qu.Debug("Query:", query)
 		fields := map[string]interface{}{"v_baseinfo.title": 1, "b_check": 1, "i_ckdata": 1, "s_login": 1}
 		info, _ := util.Mgo.Find(sourceinfo, query, `{"_id": 1}`, fields, false, start, limit)
 		count := util.Mgo.Count(sourceinfo, query)

+ 145 - 39
src/front/user.go

@@ -140,6 +140,19 @@ func (f *Front) UserGroup() {
 	}
 }
 
+func (f *Front) GroupNameExist() {
+	name := f.GetString("s_name")
+	info, _ := Mgo.FindOne("s_group", map[string]interface{}{"s_name": name})
+	if len(*info) > 0 {
+		f.ServeJson(map[string]interface{}{
+			"rep": true,
+		})
+	}
+	f.ServeJson(map[string]interface{}{
+		"rep": false,
+	})
+}
+
 func (f *Front) UserGroupNew() {
 	defer qu.Catch()
 	if f.Method() == "POST" {
@@ -160,7 +173,11 @@ func (f *Front) UserGroupNew() {
 			m1["s_groupid"] = gid
 			m1["s_name"] = ""
 			m1["s_login"] = group["s_name"]
-			m1["s_password"] = qu.SE.EncodeString(qu.ObjToString(group["s_password"]))
+			if group["default_pwd"] == false {
+				m1["s_password"] = qu.SE.EncodeString(qu.ObjToString(group["s_password"]))
+			} else {
+				m1["s_password"] = qu.SE.EncodeString(Password)
+			}
 			m1["i_role"] = group["i_role"]
 			m1["s_phone"] = ""
 			m1["i_createtime"] = currenttime
@@ -174,7 +191,11 @@ func (f *Front) UserGroupNew() {
 				m["s_groupid"] = gid
 				m["s_name"] = ""
 				m["s_login"] = qu.ObjToString(group["s_name"]) + "_zj_" + strconv.Itoa(i+1)
-				m["s_password"] = qu.SE.EncodeString(qu.ObjToString(user["u1_pwd"]))
+				if user["u1_default_pwd"] == false {
+					m["s_password"] = qu.SE.EncodeString(qu.ObjToString(user["u1_pwd"]))
+				} else {
+					m["s_password"] = qu.SE.EncodeString(Password)
+				}
 				m["i_role"] = "3"
 				m["s_phone"] = ""
 				m["i_createtime"] = currenttime
@@ -189,7 +210,11 @@ func (f *Front) UserGroupNew() {
 				m["s_groupid"] = gid
 				m["s_name"] = ""
 				m["s_login"] = qu.ObjToString(group["s_name"]) + "_" + strconv.Itoa(i+1)
-				m["s_password"] = qu.SE.EncodeString(qu.ObjToString(user["u2_pwd"]))
+				if user["u2_default_pwd"] == false {
+					m["s_password"] = qu.SE.EncodeString(qu.ObjToString(user["u2_pwd"]))
+				} else {
+					m["s_password"] = qu.SE.EncodeString(Password)
+				}
 				m["i_role"] = "4"
 				m["s_phone"] = ""
 				m["i_createtime"] = currenttime
@@ -294,6 +319,7 @@ func (f *Front) UserGroupDel() {
 
 func (f *Front) UserManage() {
 	defer qu.Catch()
+	stype := f.GetString("stype")
 	if f.Method() == "POST" {
 		data := GetPostForm(f.Request)
 		gid := qu.ObjToString(data["gid"])
@@ -316,6 +342,7 @@ func (f *Front) UserManage() {
 		}
 	} else {
 		f.T["gid"] = f.GetString("id")
+		f.T["stype"] = stype
 		_ = f.Render("user/user_list.html", &f.T)
 	}
 }
@@ -402,55 +429,134 @@ func (f *Front) UserNew() {
 	defer qu.Catch()
 	if f.Method() == "POST" {
 		user := f.GetSession("user").(map[string]interface{})
-		role := qu.ObjToString(user["i_role"])
-		gid := qu.ObjToString(user["s_groupid"])
+		//uRole := qu.ObjToString(user["i_role"])
 		currenttime := time.Now().Unix()
-		newUser := make(map[string]interface{})
-		var login, pwd = "", ""
-		if role == "0" || role == "1" {
-			newUser["i_role"] = "1"
-			login = f.GetString("login")
-			pwd = f.GetString("pwd")
-		} else {
-			irole := f.GetString("i_role")
+		stype := f.GetString("stype")
+		irole := f.GetString("i_role")
+		if stype == "group" {
+			size, e := f.GetInteger("size")
+			if e != nil {
+				f.ServeJson(map[string]interface{}{
+					"rep": false,
+					"msg": "新增保存数量出错",
+				})
+				return
+			}
+			gid := f.GetString("gid")
 			info, _ := Mgo.FindById("s_group", gid, map[string]interface{}{"check_size": 1, "user_size": 1, "s_name": 1})
 			if len(*info) > 0 {
-				newUser["i_role"] = irole
 				if irole == "3" {
-					i := qu.IntAll((*info)["check_size"])
-					i++
-					login = qu.ObjToString((*info)["s_name"]) + "_zj_" + strconv.Itoa(i)
-					Mgo.UpdateById("s_group", gid, map[string]interface{}{"$set": map[string]interface{}{"check_size": i}})
+					oldnum := qu.IntAll((*info)["check_size"])
+					Mgo.UpdateById("s_group", gid, map[string]interface{}{"$set": map[string]interface{}{"check_size": oldnum + size}})
+					for i := 0; i < size; i++ {
+						newUser := make(map[string]interface{})
+						newUser["i_role"] = irole
+						newUser["s_name"] = ""
+						newUser["s_phone"] = ""
+						newUser["s_groupid"] = gid
+						newUser["s_login"] = qu.ObjToString((*info)["s_name"]) + "_zj_" + strconv.Itoa(oldnum+i+1)
+						newUser["s_password"] = qu.SE.EncodeString(Password)
+						newUser["i_createtime"] = currenttime
+						newUser["i_updatetime"] = currenttime
+						newUser["i_state"] = true
+						newUser["b_delete"] = false
+						Mgo.Save("s_user", newUser)
+					}
 				} else if irole == "4" {
-					i := qu.IntAll((*info)["user_size"])
-					i++
-					login = qu.ObjToString((*info)["s_name"]) + "_" + strconv.Itoa(i)
-					Mgo.UpdateById("s_group", gid, map[string]interface{}{"$set": map[string]interface{}{"user_size": i}})
+					oldnum := qu.IntAll((*info)["user_size"])
+					Mgo.UpdateById("s_group", gid, map[string]interface{}{"$set": map[string]interface{}{"user_size": oldnum + size}})
+					for i := 0; i < size; i++ {
+						newUser := make(map[string]interface{})
+						newUser["i_role"] = irole
+						newUser["s_name"] = ""
+						newUser["s_phone"] = ""
+						newUser["s_groupid"] = gid
+						newUser["s_login"] = qu.ObjToString((*info)["s_name"]) + "_" + strconv.Itoa(oldnum+i+1)
+						newUser["s_password"] = qu.SE.EncodeString(Password)
+						newUser["i_createtime"] = currenttime
+						newUser["i_updatetime"] = currenttime
+						newUser["i_state"] = true
+						newUser["b_delete"] = false
+						Mgo.Save("s_user", newUser)
+					}
 				}
-				pwd = Password
 			}
-		}
-		newUser["s_name"] = f.GetString("name")
-		newUser["s_phone"] = f.GetString("phone")
-		newUser["s_groupid"] = gid
-		newUser["s_login"] = login
-		newUser["s_password"] = qu.SE.EncodeString(pwd)
-		newUser["i_createtime"] = currenttime
-		newUser["i_updatetime"] = currenttime
-		newUser["i_state"] = true
-		newUser["b_delete"] = false
-		id := Mgo.Save("s_user", newUser)
-		if id != "" {
-			qu.Debug(id)
 			f.ServeJson(map[string]interface{}{
 				"rep": true,
 			})
 		} else {
+			gid := qu.ObjToString(user["s_groupid"]) //登陆用户的组id
+			if irole == "1" {
+				// 添加jy管理人员账号
+				login := f.GetString("login")
+				pwd := f.GetString("pwd")
+				newUser := make(map[string]interface{})
+				newUser["i_role"] = irole
+				newUser["s_name"] = f.GetString("name")
+				newUser["s_phone"] = f.GetString("phone")
+				newUser["s_groupid"] = gid
+				newUser["s_login"] = login
+				newUser["s_password"] = qu.SE.EncodeString(pwd)
+				newUser["i_createtime"] = currenttime
+				newUser["i_updatetime"] = currenttime
+				newUser["i_state"] = true
+				newUser["b_delete"] = false
+				Mgo.Save("s_user", newUser)
+			} else {
+				size, e := f.GetInteger("size")
+				if e != nil {
+					f.ServeJson(map[string]interface{}{
+						"rep": false,
+						"msg": "新增保存数量出错",
+					})
+					return
+				}
+				info, _ := Mgo.FindById("s_group", gid, map[string]interface{}{"check_size": 1, "user_size": 1, "s_name": 1})
+				if len(*info) > 0 {
+					if irole == "3" {
+						oldnum := qu.IntAll((*info)["check_size"])
+						Mgo.UpdateById("s_group", gid, map[string]interface{}{"$set": map[string]interface{}{"check_size": oldnum + size}})
+						for i := 0; i < size; i++ {
+							newUser := make(map[string]interface{})
+							newUser["i_role"] = irole
+							newUser["s_name"] = ""
+							newUser["s_phone"] = ""
+							newUser["s_groupid"] = gid
+							newUser["s_login"] = qu.ObjToString((*info)["s_name"]) + "_zj_" + strconv.Itoa(oldnum+i+1)
+							newUser["s_password"] = qu.SE.EncodeString(Password)
+							newUser["i_createtime"] = currenttime
+							newUser["i_updatetime"] = currenttime
+							newUser["i_state"] = true
+							newUser["b_delete"] = false
+							Mgo.Save("s_user", newUser)
+						}
+					} else if irole == "4" {
+						oldnum := qu.IntAll((*info)["user_size"])
+						for i := 0; i < size; i++ {
+							newUser := make(map[string]interface{})
+							newUser["i_role"] = irole
+							newUser["s_name"] = ""
+							newUser["s_phone"] = ""
+							newUser["s_groupid"] = gid
+							newUser["s_login"] = qu.ObjToString((*info)["s_name"]) + "_" + strconv.Itoa(oldnum+i+1)
+							newUser["s_password"] = qu.SE.EncodeString(Password)
+							newUser["i_createtime"] = currenttime
+							newUser["i_updatetime"] = currenttime
+							newUser["i_state"] = true
+							newUser["b_delete"] = false
+							Mgo.Save("s_user", newUser)
+						}
+					}
+				}
+			}
 			f.ServeJson(map[string]interface{}{
-				"rep": false,
-				"msg": "新增保存失败",
+				"rep": true,
 			})
 		}
+		f.ServeJson(map[string]interface{}{
+			"rep": false,
+			"msg": "添加账号信息失败",
+		})
 	}
 }
 
@@ -474,7 +580,7 @@ func (f *Front) UserList() {
 		gid := qu.ObjToString(user["s_groupid"])
 		query := map[string]interface{}{"s_groupid": gid, "b_delete": false, "i_state": true, "i_role": "4"}
 		field := map[string]interface{}{"s_login": 1, "s_groupid": 1, "s_name": 1}
-		info, b := Mgo.Find("s_user", query, `{"_id": -1}`, field, false, -1, -1)
+		info, b := Mgo.Find("s_user", query, `{"_id": 1}`, field, false, -1, -1)
 		if b && len(*info) > 0 {
 			f.ServeJson(map[string]interface{}{
 				"rep":  b,

+ 12 - 10
src/web/templates/project/task_list.html

@@ -138,7 +138,7 @@
                         tmp = '<div>' +
                             '<a class="btn btn-sm btn-primary" href="/front/group/user/task/list?grouptaskid=' + val + '&s_sourceinfo='+row.s_sourceinfo+'">查看</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-primary" onclick="retrieveTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">收回</a>&nbsp;&nbsp;' +
-                            '<a class="btn btn-sm btn-primary" href="/front/user/check/data?pid='+row.s_projectid+'&tid=' + val + '&s_sourceinfo='+row.s_sourceinfo+'">质检</a>&nbsp;&nbsp;' +
+                            '<a class="btn btn-sm btn-primary" href="/front/user/check/data?pid='+row.s_projectid+'&tid=' + val + '&s_sourceinfo='+row.s_sourceinfo+'&stype=group">质检</a>&nbsp;&nbsp;' +
                             '<a class="btn btn-sm btn-primary" onclick="closeTask(\'' + val + '\',\''+row.s_sourceinfo+'\',\'' + row.s_status + '\')">关闭</a>&nbsp;&nbsp;' +
                             '</div>';
                         return tmp
@@ -156,12 +156,12 @@
                 if (st != null) {
                     let s = st.toLocaleDateString()
                     let sc = Date.parse(new Date(s).toString())/1000
-                    e.starttime = sc
+                    e.i_starttime = sc
                 }
                 if (et != null) {
                     let es = et.toLocaleDateString()
                     let etc = Date.parse(new Date(es).toString())/1000
-                    e.endtime = etc
+                    e.i_completetime = etc
                 }
             }
         });
@@ -235,19 +235,21 @@
         let status = $("#statusSelect option:selected").val()
         let st = $('#starttime').datepicker('getDate')
         let et = $('#endtime').datepicker('getDate')
+        let sttime = 0
+        let edtime = 0
         if (st != null) {
-            st = st.toLocaleDateString()
-            st = Date.parse(new Date(st).toString())/1000
+            let stc = st.toLocaleDateString()
+            sttime = Date.parse(new Date(stc).toString())/1000
         }else {
-            st = 0
+            sttime = 0
         }
         if (et != null) {
-            et = et.toLocaleDateString()
-            et = Date.parse(new Date(et).toString())/1000
+            let etc = et.toLocaleDateString()
+            edtime = Date.parse(new Date(etc).toString())/1000
         }else {
-            st = 0
+            edtime = 0
         }
-        window.location.href = "/front/group/task/export?"+"i_starttime="+st+"&i_completetime="+et+"&s_search="+search+"&s_status="+status
+        window.location.href = "/front/group/task/export?"+"i_starttime="+sttime+"&i_completetime="+edtime+"&s_search="+search+"&s_status="+status
     }
 
 </script>

+ 1 - 12
src/web/templates/user/user_group.html

@@ -170,7 +170,7 @@
                 {"data": "_id", width:"11%",render: function (val, a, row, pos) {
                       tmp = '<div>' +
                           '<a class="btn btn-sm btn-primary" onclick="editGroup(\''+pos.row+'\')">编辑</a>&nbsp;&nbsp;'+
-                          '<a class="btn btn-sm btn-primary" href="/front/group/user?id='+val+'&s_sourceinfo='+row.s_sourceinfo+'">设置</a>&nbsp;&nbsp;'+
+                          '<a class="btn btn-sm btn-primary" href="/front/group/user?id='+val+'&stype=group">设置</a>&nbsp;&nbsp;'+
                           '<a class="btn btn-sm btn-danger" onclick="del(\''+val+'\')">删除</a>'+
                           '</div>';
                       return tmp
@@ -315,15 +315,4 @@
         }
     }
 
-    function editPro() {
-        $.ajax({
-            url: "/front/group/edit",
-            type: "POST",
-            data: {"gid": ""},
-            success: function (r) {
-
-            }
-        })
-    }
-
 </script>

+ 51 - 7
src/web/templates/user/user_group_create.html

@@ -28,7 +28,7 @@
                     <div class="form-group">
                         <label class="col-sm-2 control-label"><span style="color:red;">* </span>用户组名称</label>
                         <div class="col-sm-3">
-                            <input type="text" class="form-control" id="group-name" placeholder="用户组名称" required>
+                            <input type="text" class="form-control" id="group-name" placeholder="用户组名称" required onblur="nameExist()">
                         </div>
                         <label class="col-sm-2 control-label"><span style="color:red;">* </span>公司名称</label>
                         <div class="col-sm-3">
@@ -90,7 +90,8 @@
                             </div>
                             <label class="col-sm-2 control-label">用户个数(个)</label>
                             <div class="col-sm-3">
-                                <input type="number" id="u1-size" class="form-control" value="1" oninput="if(value<0)value=0;if(value>10)value=10">
+                                <input type="number" id="u1-size" class="form-control" value="1"
+                                       oninput="if(value>10)value=10;if(value.length>2)value=value.slice(0,2);if(value<0)value=0">
                             </div>
                         </div>
                         <div class="form-group">
@@ -122,7 +123,8 @@
                             </div>
                             <label class="col-sm-2 control-label">用户个数(个)</label>
                             <div class="col-sm-3">
-                                <input type="number" id="u2-size" class="form-control" value="1" oninput="if(value<0)value=0;if(value>30)value=30">
+                                <input type="number" id="u2-size" class="form-control" value="1"
+                                       oninput="if(value>50)value=50;if(value.length>2)value=value.slice(0,2);if(value<0)value=0">
                             </div>
                         </div>
                         <div class="form-group">
@@ -155,6 +157,7 @@
     menuActive("group");
     let group = {}
     let user = {}
+    let existName = false
 
     $(document).ready(function () {
         $("#group-pwd").val({{.T.pwd}})
@@ -217,23 +220,43 @@
     $("#u2-switch-state").bootstrapSwitch('onSwitchChange', function (event, state){user["u2_state"] = state})
 
     function saveMethod() {
-
+        if (existName) {
+            showTip("用户组名称已存在")
+            return;
+        }
         const gname = $("#group-name").val();
         const company = $("#company-name").val()
         const lender = $("#leader").val()
+
+        let gpwd = $("#group-pwd").val()
+        let u1pwd = $("#u1-pwd").val()
+        let u2pwd = $("#u2-pwd").val()
         if (gname === "" || company === "" || lender === "") {
             return
         }
+        if (!group["default_pwd"] && gpwd === "") {
+            alert("登陆密码不能为空")
+            return
+        }
+        if (!user["u1_default_pwd"] && u1pwd === "") {
+            alert("登陆密码不能为空")
+            return
+        }
+        if (!user["u2_default_pwd"] && u2pwd === "") {
+            alert("登陆密码不能为空")
+            return
+        }
+
         group["i_role"] = $("input[name='role']:checked").val()
         group["s_name"] = gname
         group["s_entname"] = company
         group["s_personname"] = lender
         group["s_personcontact"] = $("#contract").val()
-        group["s_password"] = $("#group-pwd").val()
+        group["s_password"] = gpwd
         user["u1_size"] = $("#u1-size").val()
-        user["u1_pwd"] = $("#u1-pwd").val()
+        user["u1_pwd"] =
         user["u2_size"] = $("#u2-size").val()
-        user["u2_pwd"] = $("#u2-pwd").val()
+        user["u2_pwd"] = u2pwd
 
         $.ajax({
             url: "/front/group/new",
@@ -248,4 +271,25 @@
             }
         })
     }
+
+    function nameExist() {
+        let str = $('#group-name').val()
+        if (str !== "") {
+            $.ajax({
+                url: "/front/group/name/exist",
+                type: "POST",
+                data: {"s_name": str},
+                success: function (r) {
+                    if (r.rep) {
+                        existName = true
+                        $('#group-name').focus();
+                        showTip("用户组名称已存在")
+                    }else {
+                        existName = false
+                    }
+                }
+            })
+        }
+
+    }
 </script>

+ 82 - 24
src/web/templates/user/user_list.html

@@ -9,7 +9,12 @@
             <small></small>
         </h1>
         <ol class="breadcrumb">
-            <li><a href="#"><i class="fa fa-dashboard"></i> 用户列表</a></li>
+            {{if .T.stype}}
+                <li><a href="/front/group"><i class="fa fa-dashboard"></i> 用户组管理</a></li>
+                <li><a href="#"><i class="fa fa-dashboard"></i> 用户列表</a></li>
+            {{else}}
+                <li><a href="#"><i class="fa fa-dashboard"></i> 用户列表</a></li>
+            {{end}}
         </ol>
     </section>
     <!-- Main content -->
@@ -104,7 +109,7 @@
 </div>
 
 <div class="modal fade" id="modal-new-user" tabindex="-1" role="dialog" aria-hidden="true">
-    <div class="modal-dialog" style="width: 30%">
+    <div class="modal-dialog" style="width: 40%">
         <div class="modal-content">
             <div class="modal-header">
                 <div class="modal-header">
@@ -122,15 +127,12 @@
                                     <input type="text" class="form-control" id="user-new-login" placeholder="质检员/普通用户" readonly>
                                 </div>
                             </div>
-                            <div class="form-group margin-bottom" id="user-new-role" style="display: none">
+                            <div class="form-group margin-bottom" id="user-new-role">
                                 <label class="col-sm-3 control-label">用户组权限</label>
                                 <div class="col-sm-8 radio">
-<!--                                    <label class="margin-r-5">-->
-<!--                                        <input type="radio" name="role" value=1>系统管理员-->
-<!--                                    </label>-->
-<!--                                    <label class="margin-r-5">-->
-<!--                                        <input type="radio" name="role" value="2" checked>管理员-->
-<!--                                    </label>-->
+                                    <label class="margin-r-5" id="jy-admin">
+                                        <input type="radio" name="role" value="1">系统管理员
+                                    </label>
                                     <label class="margin-r-5">
                                         <input type="radio" name="role" value="3">质检员
                                     </label>
@@ -139,6 +141,13 @@
                                     </label>
                                 </div>
                             </div>
+                            <div class="form-group margin-bottom" id="jy-account">
+                                <label class="col-sm-3 control-label"><span style="color:red;">* </span>账号个数</label>
+                                <div class="col-sm-8">
+                                    <input type="number" class="form-control" id="user-num" value="1"
+                                           required oninput="if(value>50)value=50;if(value.length>2)value=value.slice(0,2);if(value<0)value=0">
+                                </div>
+                            </div>
                             <div class="form-group margin-bottom">
                                 <label class="col-sm-3 control-label">用户名称</label>
                                 <div class="col-sm-8">
@@ -170,12 +179,18 @@
 </div>
 
 <script>
-    menuActive("/front/user");
+
     let gid = {{ .T.gid }}
     let selectIndex = [];               //选中的编号
     let keyTableChecked = false;        //关键词表格数据是否有选中
     let keyTableAllChecked = true;      //表单数据是否被全选中
 
+    let stype = {{ .T.stype }}          //页面入口 group: 组,
+    if (stype === "group") {
+        menuActive("group");
+    }else {
+        menuActive("/front/user");
+    }
     $(function () {
         ttable = $('#dataTable').dataTable({
             "paging": true,
@@ -253,6 +268,27 @@
                     }}
             ]
         });
+
+        $("input[name=role]").click(function(){
+            let v = $(this).val();
+            if (v === "1") {
+                $('#user-new-login').removeAttr('readonly').attr('placeholder', '用户账号')
+                $('#user-new-pwd').removeAttr('readonly').val('')
+                $('#jy-account').hide()
+            }else {
+                $('#user-new-login').attr('readonly', 'readonly').attr('placeholder', '质检员/普通用户')
+                $('#user-new-pwd').attr('readonly', 'readonly').val('****')
+                $('#jy-account').show()
+                if (v === "3") {
+                    if ($('#user-num').val() > "30") {
+                        $('#user-num').val('30')
+                    }
+                    $('#user-num').attr('oninput', 'if(value>10)value=10;if(value.length>2)value=value.slice(0,2);if(value<0)value=0')
+                }else {
+                    $('#user-num').attr('oninput', 'if(value>50)value=50;if(value.length>2)value=value.slice(0,2);if(value<0)value=0')
+                }
+            }
+        });
     });
 
     function setupState(id, v) {
@@ -387,14 +423,23 @@
 
     function newMethod() {
         $('#modal-new-user').modal('show')
-        let role = {{(session "user").i_role}}
-        if (role === "0" || role === "1") {
-            $('#user-new-login').removeAttr('readonly')
-            $('#user-new-pwd').removeAttr('readonly')
-            $('#user-new-login').attr('placeholder', '用户账号')
-        }else {
-            $('#user-new-role').show()
+        if (stype === "group") {
+            // $('#user-new-role').show()
             $('#user-new-pwd').val('****')
+            $('#jy-admin').hide()
+        }else {
+            let role = {{(session "user").i_role}}
+            if (role === "0" || role === "1") {
+                // $('#user-new-login').removeAttr('readonly').attr('placeholder', '用户账号')
+                // $('#user-new-pwd').removeAttr('readonly')
+                // $('#user-new-role').hide()
+                $('#user-new-pwd').val('****')
+                $('#jy-admin').show()
+            }else {
+                $('#jy-admin').hide()
+                $('#user-new-pwd').val('****')
+            }
+
         }
     }
 
@@ -403,19 +448,32 @@
         let name = $("#user-new-name").val()
         let phone = $("#user-new-contract").val()
         let pwd = $('#user-new-pwd').val()
+        let size = $('#user-num').val()
         let s_role = $("input[name='role']:checked").val()
-        let role = {{(session "user").i_role}}
-        if (role === "0" || role === "1") {
-            console.log(login, pwd)
-            if (login === "" || pwd === "") {
-                showTip("账号或密码不能为空")
-                return
+        if (stype === "group") {
+            if (size === "") {
+                showTip("账号数量不能为空")
+                return;
+            }
+        }else {
+            if (s_role === "1") {
+                if (login === "" || pwd === "") {
+                    showTip("账号或密码不能为空")
+                    return
+                }
             }
         }
         $.ajax({
             url: "/front/group/user/new",
             type: "POST",
-            data: {"login": login, "name": name, "phone": phone, "pwd": pwd, "i_role": s_role},
+            data: {"login": login,
+                "gid": gid,
+                "name": name,
+                "phone": phone,
+                "pwd": pwd,
+                "i_role": s_role,
+                "size": size,
+                "stype": stype},
             success: function (r) {
                 if (r.rep) {
                     $('#modal-new-user').modal('hide')